Show / Hide Table of Contents

# Class DalamudPluginInterface

This class acts as an interface to various objects needed to interact with Dalamud and the game.

##### Inheritance

System.Object
DalamudPluginInterface

##### Implements

System.IDisposable

##### Inherited Members

System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()

###### Namespace: Dalamud.Plugin

###### Assembly: Dalamud.dll

##### Syntax

    public class DalamudPluginInterface : IDisposable

### Properties

| Improve this Doc View Source

#### ClientState

Gets the ClientState object that allows you to access current client memory information like actors, territories, etc.

##### Declaration

    public ClientState ClientState { get; }

##### Property Value

Type | Description
--- | ---
ClientState |

| Improve this Doc View Source

#### CommandManager

Gets the CommandManager object that allows you to add and remove custom chat commands.

##### Declaration

    public CommandManager CommandManager { get; }

##### Property Value

Type | Description
--- | ---
CommandManager |

| Improve this Doc View Source

#### ConfigDirectory

Gets the directory your plugin configurations are stored in.

##### Declaration

    public DirectoryInfo ConfigDirectory { get; }

##### Property Value

Type | Description
--- | ---
System.IO.DirectoryInfo |

| Improve this Doc View Source

#### ConfigFile

Gets the config file of your plugin.

##### Declaration

    public FileInfo ConfigFile { get; }

##### Property Value

Type | Description
--- | ---
System.IO.FileInfo |

| Improve this Doc View Source

#### DalamudAssetDirectory

Gets the directory Dalamud assets are stored in.

##### Declaration

    public DirectoryInfo DalamudAssetDirectory { get; }

##### Property Value

Type | Description
--- | ---
System.IO.DirectoryInfo |

| Improve this Doc View Source

#### Data

Gets the DataManager instance which allows you to access game data needed by the main dalamud features.

##### Declaration

    public DataManager Data { get; }

##### Property Value

Type | Description
--- | ---
DataManager |

| Improve this Doc View Source

#### Framework

Gets the Framework object that allows you to interact with the client.

##### Declaration

    public Framework Framework { get; }

##### Property Value

Type | Description
--- | ---
Framework |

| Improve this Doc View Source

#### IsDebugging

Gets a value indicating whether Dalamud is running in Debug mode or the /xldev menu is open. This can occur on release builds.

##### Declaration

    public bool IsDebugging { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean |

| Improve this Doc View Source

#### Reason

Gets the reason this plugin was loaded.

##### Declaration

    public PluginLoadReason Reason { get; }

##### Property Value

Type | Description
--- | ---
PluginLoadReason |

| Improve this Doc View Source

#### Sanitizer

Gets serializer class with functions to remove special characters from strings.

##### Declaration

    public ISanitizer Sanitizer { get; }

##### Property Value

Type | Description
--- | ---
ISanitizer |

| Improve this Doc View Source

#### SeStringManager

Gets the SeStringManager instance which allows creating and parsing SeString payloads.

##### Declaration

    public SeStringManager SeStringManager { get; }

##### Property Value

Type | Description
--- | ---
SeStringManager |

| Improve this Doc View Source

#### TargetModuleScanner

Gets the SigScanner instance targeting the main module of the FFXIV process.

##### Declaration

    public SigScanner TargetModuleScanner { get; }

##### Property Value

Type | Description
--- | ---
SigScanner |

| Improve this Doc View Source

#### UiBuilder

Gets the UiBuilder instance which allows you to draw UI into the game via ImGui draw calls.

##### Declaration

    public UiBuilder UiBuilder { get; }

##### Property Value

Type | Description
--- | ---
UiBuilder |

| Improve this Doc View Source

#### UiLanguage

Gets the current UI language in two-letter iso format.

##### Declaration

    public string UiLanguage { get; }

##### Property Value

Type | Description
--- | ---
System.String |

### Methods

| Improve this Doc View Source

#### AddChatLinkHandler(UInt32, Action<UInt32, SeString>)

Register a chat link handler.

##### Declaration

    public DalamudLinkPayload AddChatLinkHandler(uint commandId, Action<uint, SeString> commandAction)

##### Parameters

Type | Name | Description
--- | --- | ---
System.UInt32 | commandId | The ID of the command.
System.Action<System.UInt32, SeString> | commandAction | The action to be executed.

##### Returns

Type | Description
--- | ---
DalamudLinkPayload | Returns an SeString payload for the link.

| Improve this Doc View Source

#### Dispose()

Unregister your plugin and dispose all references. You have to call this when your IDalamudPlugin is disposed.

##### Declaration

    public void Dispose()

| Improve this Doc View Source

#### GetPluginConfig()

Get a previously saved plugin configuration or null if none was saved before.

##### Declaration

    public IPluginConfiguration GetPluginConfig()

##### Returns

Type | Description
--- | ---
IPluginConfiguration | A previously saved config or null if none was saved before.

| Improve this Doc View Source

#### GetPluginConfigDirectory()

Get the config directory.

##### Declaration

    public string GetPluginConfigDirectory()

##### Returns

Type | Description
--- | ---
System.String | directory with path of AppData/XIVLauncher/pluginConfig/PluginInternalName.

| Improve this Doc View Source

#### Log(String, Object[])

Log a templated message to the in-game debug log.

##### Declaration

    [Obsolete]
    public void Log(string messageTemplate, params object[] values)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | messageTemplate | The message template.
System.Object[] | values | Values to log.

| Improve this Doc View Source

#### LogError(Exception, String, Object[])

Log a templated error message to the in-game debug log.

##### Declaration

    [Obsolete]
    public void LogError(Exception exception, string messageTemplate, params object[] values)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Exception | exception | The exception that caused the error.
System.String | messageTemplate | The message template.
System.Object[] | values | Values to log.

| Improve this Doc View Source

#### LogError(String, Object[])

Log a templated error message to the in-game debug log.

##### Declaration

    [Obsolete]
    public void LogError(string messageTemplate, params object[] values)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | messageTemplate | The message template.
System.Object[] | values | Values to log.

| Improve this Doc View Source

#### RemoveChatLinkHandler()

Removes all chat link handlers registered by the plugin.

##### Declaration

    public void RemoveChatLinkHandler()

| Improve this Doc View Source

#### RemoveChatLinkHandler(UInt32)

Remove a chat link handler.

##### Declaration

    public void RemoveChatLinkHandler(uint commandId)

##### Parameters

Type | Name | Description
--- | --- | ---
System.UInt32 | commandId | The ID of the command.

| Improve this Doc View Source

#### SavePluginConfig(IPluginConfiguration)

Save a plugin configuration(inheriting IPluginConfiguration).

##### Declaration

    public void SavePluginConfig(IPluginConfiguration currentConfig)

##### Parameters

Type | Name | Description
--- | --- | ---
IPluginConfiguration | currentConfig | The current configuration.

| Improve this Doc View Source

#### SendMessage(ExpandoObject)

Send a message to all subscribed plugins.

##### Declaration

    [Obsolete("The current IPC mechanism is obsolete and scheduled to be replaced after API level 3.")]
    public void SendMessage(ExpandoObject message)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Dynamic.ExpandoObject | message | The message to send.

| Improve this Doc View Source

#### SendMessage(String, ExpandoObject)

Send a message to a specific plugin.

##### Declaration

    [Obsolete("The current IPC mechanism is obsolete and scheduled to be replaced after API level 3.")]
    public bool SendMessage(string pluginName, ExpandoObject message)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | pluginName | The InternalName of the plugin to send the message to.
System.Dynamic.ExpandoObject | message | The message to send.

##### Returns

Type | Description
--- | ---
System.Boolean | True if the corresponding plugin was present and received the message.

| Improve this Doc View Source

#### Subscribe(String, Action<ExpandoObject>)

Subscribe to an IPC message by a plugin.

##### Declaration

    [Obsolete("The current IPC mechanism is obsolete and scheduled to be replaced after API level 3.")]
    public void Subscribe(string pluginName, Action<ExpandoObject> action)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | pluginName | The InternalName of the plugin to subscribe to.
System.Action<System.Dynamic.ExpandoObject> | action | The action to take when a message was received.

| Improve this Doc View Source

#### SubscribeAny(Action<String, ExpandoObject>)

Subscribe to an IPC message by any plugin.

##### Declaration

    [Obsolete("The current IPC mechanism is obsolete and scheduled to be replaced after API level 3.")]
    public void SubscribeAny(Action<string, ExpandoObject> action)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Action<System.String, System.Dynamic.ExpandoObject> | action | The action to take when a message was received.

| Improve this Doc View Source

#### Unsubscribe(String)

Unsubscribe from messages from a plugin.

##### Declaration

    [Obsolete("The current IPC mechanism is obsolete and scheduled to be replaced after API level 3.")]
    public void Unsubscribe(string pluginName)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | pluginName | The InternalName of the plugin to unsubscribe from.

| Improve this Doc View Source

#### UnsubscribeAny()

Unsubscribe from messages from any plugin.

##### Declaration

    [Obsolete("The current IPC mechanism is obsolete and scheduled to be replaced after API level 3.")]
    public void UnsubscribeAny()

### Events

| Improve this Doc View Source

#### OnLanguageChanged

Event that gets fired when loc is changed

##### Declaration

    public event DalamudPluginInterface.LanguageChangedDelegate OnLanguageChanged

##### Event Type

Type | Description
--- | ---
DalamudPluginInterface.LanguageChangedDelegate |

### Implements

System.IDisposable