diff --git a/Dalamud/Configuration/PluginConfigurations.cs b/Dalamud/Configuration/PluginConfigurations.cs
index d108c5777..bb1f67d9f 100644
--- a/Dalamud/Configuration/PluginConfigurations.cs
+++ b/Dalamud/Configuration/PluginConfigurations.cs
@@ -42,6 +42,18 @@ namespace Dalamud.Configuration
});
}
+ public string GetDirectory(string pluginName) {
+ try {
+ var path = GetDirectoryPath(pluginName);
+ if (!path.Exists) {
+ path.Create();
+ }
+ return path.FullName;
+ } catch {
+ return string.Empty;
+ }
+ }
+
// Parameterized deserialization
// Currently this is called via reflection from DalamudPluginInterface.GetPluginConfig()
// Eventually there may be an additional pluginInterface method that can call this directly
@@ -59,5 +71,7 @@ namespace Dalamud.Configuration
}
private FileInfo GetPath(string pluginName) => new FileInfo(Path.Combine(this.configDirectory.FullName, $"{pluginName}.json"));
+ private DirectoryInfo GetDirectoryPath(string pluginName) => new DirectoryInfo(Path.Combine(this.configDirectory.FullName, pluginName));
+
}
}
diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs
index 4a2ae9f41..b6d6a12e2 100644
--- a/Dalamud/Plugin/DalamudPluginInterface.cs
+++ b/Dalamud/Plugin/DalamudPluginInterface.cs
@@ -131,6 +131,12 @@ namespace Dalamud.Plugin
return this.configs.Load(this.pluginName);
}
+ ///
+ /// Get the config directory
+ ///
+ /// directory with path of AppData/XIVLauncher/pluginConfig/PluginInternalName
+ public string GetPluginConfigDirectory() => this.configs.GetDirectory(this.pluginName);
+
#region Chat Links
///