Class Util
Class providing various helper methods for use in Dalamud and plugins.
Assembly: Dalamud.dll
public static class Util
Methods
DescribeAddress(void*)
Describes a memory address relative to module, or allocation base.
public static string DescribeAddress(void* p)
Returns
System.String: Address description.
Parameters
| Type | Name | Description |
|---|---|---|
System.Void* | p | Address. |
DescribeAddress(nint)
Describes a memory address relative to module, or allocation base.
public static string DescribeAddress(nint p)
Returns
System.String: Address description.
Parameters
| Type | Name | Description |
|---|---|---|
System.IntPtr | p | Address. |
DumpMemory(nint, int)
Read memory from an offset and hexdump them via Serilog.
public static void DumpMemory(nint offset, int len = 512)
Parameters
| Type | Name | Description |
|---|---|---|
System.IntPtr | offset | The offset to read from. |
System.Int32 | len | The length to read. |
ByteArrayToHex(byte[], int, int)
Create a hexdump of the provided bytes.
public static string ByteArrayToHex(byte[] bytes, int offset = 0, int bytesPerLine = 16)
Returns
System.String: The generated hexdump in string form.
Parameters
| Type | Name | Description |
|---|---|---|
System.Byte[] | bytes | The bytes to hexdump. |
System.Int32 | offset | The offset in the byte array to start at. |
System.Int32 | bytesPerLine | The amount of bytes to display per line. |
ShowStruct(object, ulong, bool, IEnumerable<string>?)
Show a structure in an ImGui context.
public static void ShowStruct(object obj, ulong addr, bool autoExpand = false, IEnumerable<string>? path = null)
Parameters
| Type | Name | Description |
|---|---|---|
System.Object | obj | The structure to show. |
System.UInt64 | addr | The address to the structure. |
System.Boolean | autoExpand | Whether this structure should start out expanded. |
System.Collections.Generic.IEnumerable<System.String> | path | The already followed path. |
ShowStruct<T>(T*, bool)
Show a structure in an ImGui context.
public static void ShowStruct<T>(T* obj, bool autoExpand = false) where T : unmanaged
Parameters
| Type | Name | Description |
|---|---|---|
<T>* | obj | The pointer to the structure. |
System.Boolean | autoExpand | Whether this structure should start out expanded. |
Type Parameters
| Name | Description |
|---|---|
T | The type of the structure. |
ShowGameObjectStruct(IGameObject, bool)
Show a GameObject's internal data in an ImGui-context.
public static void ShowGameObjectStruct(IGameObject go, bool autoExpand = true)
Parameters
| Type | Name | Description |
|---|---|---|
| Dalamud.Game.ClientState.Objects.Types.IGameObject | go | The GameObject to show. |
System.Boolean | autoExpand | Whether the struct should start as expanded. |
ShowObject(object)
Show all properties and fields of the provided object via ImGui.
public static void ShowObject(object obj)
Parameters
| Type | Name | Description |
|---|---|---|
System.Object | obj | The object to show. |
Fatal(string, string, bool)
Display an error MessageBox and exit the current process.
public static void Fatal(string message, string caption, bool exit = true)
Parameters
| Type | Name | Description |
|---|---|---|
System.String | message | MessageBox body. |
System.String | caption | MessageBox caption (title). |
System.Boolean | exit | Specify whether to exit immediately. |
FormatBytes(long)
Transform byte count to human readable format.
public static string FormatBytes(long bytes)
Returns
System.String: Human readable version.
Parameters
| Type | Name | Description |
|---|---|---|
System.Int64 | bytes | Number of bytes. |
GetUTF8String(byte[])
Retrieve a UTF8 string from a null terminated byte array.
public static string GetUTF8String(byte[] array)
Returns
System.String: A UTF8 encoded string.
Parameters
| Type | Name | Description |
|---|---|---|
System.Byte[] | array | A null terminated UTF8 byte array. |
CompressString(string)
Compress a string using GZip.
public static byte[] CompressString(string str)
Returns
System.Byte[]: The compressed output bytes.
Parameters
| Type | Name | Description |
|---|---|---|
System.String | str | The input string. |
DecompressString(byte[])
Decompress a string using GZip.
public static string DecompressString(byte[] bytes)
Returns
System.String: The compressed output string.
Parameters
| Type | Name | Description |
|---|---|---|
System.Byte[] | bytes | The input bytes. |
IsWine()
Determine if Dalamud is currently running within a Wine context (e.g. either on macOS or Linux). This method will not return information about the host operating system.
public static bool IsWine()
Returns
System.Boolean: Returns true if running on Wine, false otherwise.
GetHostPlatform()
Gets the current host's platform based on the injector launch arguments or heuristics.
public static OSPlatform GetHostPlatform()
Returns
System.Runtime.InteropServices.OSPlatform: Returns the System.Runtime.InteropServices.OSPlatform that Dalamud is currently running on.
IsWindows11()
Heuristically determine if the Windows version is higher than Windows 11's first build.
public static bool IsWindows11()
Returns
System.Boolean: If Windows 11 has been detected.
OpenLink(string)
Open a link in the default browser, and attempts to focus the newly launched application.
public static void OpenLink(string url)
Parameters
| Type | Name | Description |
|---|---|---|
System.String | url | The link to open. |
ZipperMerge<TSource>(params IEnumerable<TSource>[])
Perform a "zipper merge" (A, 1, B, 2, C, 3) of multiple enumerables, allowing for lists to end early.
public static IEnumerable<TSource> ZipperMerge<TSource>(params IEnumerable<TSource>[] sources)
Returns
System.Collections.Generic.IEnumerable<<TSource>>: A new enumerable, consisting of the final merge of all lists.
Parameters
| Type | Name | Description |
|---|---|---|
System.Collections.Generic.IEnumerable<<TSource>>[] | sources | A set of enumerable sources to combine. |
Type Parameters
| Name | Description |
|---|---|
TSource | The resulting type of the merged list to return. |
ApplicationIsActivated()
Returns true if the current application has focus, false otherwise.
public static bool ApplicationIsActivated()
Returns
System.Boolean: If the current application is focused.
FlashWindow(bool)
Request that Windows flash the game window to grab the user's attention.
public static void FlashWindow(bool flashIfOpen = false)
Parameters
| Type | Name | Description |
|---|---|---|
System.Boolean | flashIfOpen | Attempt to flash even if the game is currently focused. |
GetReplaceableFileName(string)
Gets a temporary file name, for use as the sourceFileName in
System.IO.File.Replace(System.String%2cSystem.String%2cSystem.String).
public static string GetReplaceableFileName(string targetFile)
Returns
System.String: A temporary file name that should be usable with System.IO.File.Replace(System.String%2cSystem.String%2cSystem.String).
Parameters
| Type | Name | Description |
|---|---|---|
System.String | targetFile | The target file. |