Initial commit: AetherBags + KamiToolKit for FC Gitea
Debug Build and Test / Build against Latest Dalamud (push) Has been cancelled
Debug Build and Test / Build against Staging Dalamud (push) Has been cancelled

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-08 14:46:31 -05:00
commit 8db4ce6094
375 changed files with 34124 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
using System;
using System.IO;
using System.Runtime.CompilerServices;
using Dalamud.Interface.Textures.TextureWraps;
using Dalamud.IoC;
using Dalamud.Plugin;
using Dalamud.Plugin.Services;
namespace KamiToolKit.Classes;
internal class DalamudInterface {
private static DalamudInterface? instance;
public static DalamudInterface Instance => instance ??= new DalamudInterface();
[PluginService] public IPluginLog Log { get; set; } = null!;
[PluginService] public IAddonLifecycle AddonLifecycle { get; set; } = null!;
[PluginService] public IDataManager DataManager { get; set; } = null!;
[PluginService] public ITextureProvider TextureProvider { get; set; } = null!;
[PluginService] public IFramework Framework { get; set; } = null!;
[PluginService] public IAddonEventManager AddonEventManager { get; set; } = null!;
[PluginService] public IDalamudPluginInterface PluginInterface { get; set; } = null!;
[PluginService] public IGameGui GameGui { get; set; } = null!;
[PluginService] public IGameInteropProvider GameInteropProvider { get; set; } = null!;
[PluginService] public ISeStringEvaluator SeStringEvaluator { get; set; } = null!;
private DalamudInterface() {
if (!KamiToolKitLibrary.IsInitialized)
throw new Exception("KamiToolKit not initialized! You must call KamiToolKitLibrary.Initialize() before using KamiToolKit.\n" +
"Don't forget to call KamiToolKitLibrary.Dispose() in your plugins dispose to ensure all assets are freed and to trigger bad practice warnings.");
}
public string GetAssetDirectoryPath()
=> Path.Combine(PluginInterface.AssemblyLocation.DirectoryName ?? throw new Exception("Directory from Dalamud is Invalid Somehow"), "Assets");
public string GetAssetPath(string assetName)
=> Path.Combine(GetAssetDirectoryPath(), assetName);
public IDalamudTextureWrap? LoadAsset(string assetName)
=> TextureProvider.GetFromFile(GetAssetPath(assetName)).GetWrapOrDefault();
}
internal static class Log {
private static readonly bool ExcessiveLogging = false;
internal static void Debug(string message) {
DalamudInterface.Instance.Log.Debug($"[KamiToolKit] {message}");
}
internal static void Fatal(string message) {
DalamudInterface.Instance.Log.Fatal($"[KamiToolKit] {message}");
}
internal static void Warning(string message) {
DalamudInterface.Instance.Log.Warning($"[KamiToolKit] {message}");
}
internal static void Verbose(string message) {
DalamudInterface.Instance.Log.Verbose($"[KamiToolKit] {message}");
}
internal static void Excessive(string message) {
if (ExcessiveLogging) {
Verbose($"[KamiToolKit] {message}");
}
}
internal static void Error(string message) {
DalamudInterface.Instance.Log.Error($"[KamiToolKit] {message}");
}
internal static void Exception(Exception exception, [CallerMemberName] string? callerName = null) {
DalamudInterface.Instance.Log.Error(exception, $"Exception in {callerName}");
}
}