diff --git a/Dalamud/Configuration/DalamudConfiguration.cs b/Dalamud/Configuration/DalamudConfiguration.cs
index 46ef9f208..cb2ffa1ce 100644
--- a/Dalamud/Configuration/DalamudConfiguration.cs
+++ b/Dalamud/Configuration/DalamudConfiguration.cs
@@ -17,6 +17,17 @@ namespace Dalamud.Configuration
[JsonIgnore]
private string configPath;
+ ///
+ /// Delegate for the event that occurs when the dalamud configuration is saved.
+ ///
+ /// The current dalamud configuration.
+ public delegate void DalamudConfigurationSavedDelegate(DalamudConfiguration dalamudConfiguration);
+
+ ///
+ /// Event that occurs when dalamud configuration is saved.
+ ///
+ public event DalamudConfigurationSavedDelegate OnDalamudConfigurationSaved;
+
///
/// Gets or sets a list of muted works.
///
@@ -156,6 +167,7 @@ namespace Dalamud.Configuration
public void Save()
{
File.WriteAllText(this.configPath, JsonConvert.SerializeObject(this, Formatting.Indented));
+ this.OnDalamudConfigurationSaved?.Invoke(this);
}
}
}
diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs
index e4a5b45fa..544ef9209 100644
--- a/Dalamud/Plugin/DalamudPluginInterface.cs
+++ b/Dalamud/Plugin/DalamudPluginInterface.cs
@@ -11,6 +11,7 @@ using Dalamud.Game;
using Dalamud.Game.ClientState;
using Dalamud.Game.Command;
using Dalamud.Game.Internal;
+using Dalamud.Game.Text;
using Dalamud.Game.Text.Sanitizer;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Game.Text.SeStringHandling.Payloads;
@@ -50,6 +51,7 @@ namespace Dalamud.Plugin
this.pluginName = pluginName;
this.configs = configs;
+ this.GeneralChatType = this.dalamud.Configuration.GeneralChatType;
this.Sanitizer = new Sanitizer(this.Data.Language);
if (this.dalamud.Configuration.LanguageOverride != null)
{
@@ -65,6 +67,7 @@ namespace Dalamud.Plugin
}
dalamud.LocalizationManager.OnLocalizationChanged += this.OnLocalizationChanged;
+ dalamud.Configuration.OnDalamudConfigurationSaved += this.OnDalamudConfigurationSaved;
}
///
@@ -152,6 +155,11 @@ namespace Dalamud.Plugin
///
public ISanitizer Sanitizer { get; }
+ ///
+ /// Gets the chat type used by default for plugin messages.
+ ///
+ public XivChatType GeneralChatType { get; private set; }
+
///
/// Gets the action that should be executed when any plugin sends a message.
///
@@ -374,6 +382,7 @@ namespace Dalamud.Plugin
this.UiBuilder.Dispose();
this.Framework.Gui.Chat.RemoveChatLinkHandler(this.pluginName);
this.dalamud.LocalizationManager.OnLocalizationChanged -= this.OnLocalizationChanged;
+ this.dalamud.Configuration.OnDalamudConfigurationSaved -= this.OnDalamudConfigurationSaved;
}
private void OnLocalizationChanged(string langCode)
@@ -381,5 +390,10 @@ namespace Dalamud.Plugin
this.UiLanguage = langCode;
this.OnLanguageChanged?.Invoke(langCode);
}
+
+ private void OnDalamudConfigurationSaved(DalamudConfiguration dalamudConfiguration)
+ {
+ this.GeneralChatType = dalamudConfiguration.GeneralChatType;
+ }
}
}