diff --git a/LLib/LLib.ImGui/LWindow.cs b/LLib/LLib.ImGui/LWindow.cs
index 16df614..a355121 100644
--- a/LLib/LLib.ImGui/LWindow.cs
+++ b/LLib/LLib.ImGui/LWindow.cs
@@ -33,7 +33,7 @@ public abstract class LWindow : Window
}
}
- protected bool IsPinned
+ protected new bool IsPinned
{
get
{
@@ -45,7 +45,7 @@ public abstract class LWindow : Window
}
}
- protected bool IsClickthrough
+ protected new bool IsClickthrough
{
get
{
diff --git a/NotificationMasterAPI/NotificationMasterAPI.csproj b/NotificationMasterAPI/NotificationMasterAPI.csproj
new file mode 100644
index 0000000..d516cfc
--- /dev/null
+++ b/NotificationMasterAPI/NotificationMasterAPI.csproj
@@ -0,0 +1,19 @@
+
+
+
+ NotificationMasterAPI
+ False
+ netcoreapp9.0
+
+
+ 12.0
+ True
+
+
+
+
+
+ ..\..\..\..\..\ffxiv\alyssile-xivl\addon\Hooks\dev\Dalamud.dll
+
+
+
\ No newline at end of file
diff --git a/NotificationMasterAPI/NotificationMasterAPI/Data.cs b/NotificationMasterAPI/NotificationMasterAPI/Data.cs
new file mode 100644
index 0000000..3623dde
--- /dev/null
+++ b/NotificationMasterAPI/NotificationMasterAPI/Data.cs
@@ -0,0 +1,6 @@
+namespace NotificationMasterAPI;
+
+public static class Data
+{
+ public const string MFAudioFormats = "*.3g2;*.3gp;*.3gp2;*.3gpp;*.asf;*.wma;*.wmv;*.aac;*.adts;*.avi;*.mp3;*.m4a;*.m4v;*.mov;*.mp4;*.sami;*.smi;*.wav;*.aiff";
+}
diff --git a/NotificationMasterAPI/NotificationMasterAPI/NMAPINames.cs b/NotificationMasterAPI/NotificationMasterAPI/NMAPINames.cs
new file mode 100644
index 0000000..4ff0134
--- /dev/null
+++ b/NotificationMasterAPI/NotificationMasterAPI/NMAPINames.cs
@@ -0,0 +1,16 @@
+namespace NotificationMasterAPI;
+
+public static class NMAPINames
+{
+ public const string DisplayToastNotification = "NotificationMasterAPI.DisplayToastNotification";
+
+ public const string FlashTaskbarIcon = "NotificationMasterAPI.FlashTaskbarIcon";
+
+ public const string PlaySound = "NotificationMasterAPI.PlaySound";
+
+ public const string BringGameForeground = "NotificationMasterAPI.BringGameForeground";
+
+ public const string StopSound = "NotificationMasterAPI.StopSound";
+
+ public const string Active = "NotificationMasterAPI.Active";
+}
diff --git a/NotificationMasterAPI/NotificationMasterAPI/NotificationMasterApi.cs b/NotificationMasterAPI/NotificationMasterAPI/NotificationMasterApi.cs
new file mode 100644
index 0000000..6b9235c
--- /dev/null
+++ b/NotificationMasterAPI/NotificationMasterAPI/NotificationMasterApi.cs
@@ -0,0 +1,146 @@
+using System;
+using Dalamud.Plugin;
+using Dalamud.Plugin.Ipc.Exceptions;
+
+namespace NotificationMasterAPI;
+
+public class NotificationMasterApi
+{
+ private IDalamudPluginInterface PluginInterface;
+
+ ///
+ /// Creates an instance of NotificationMaster API. You do not need to check if NotificationMaster plugin is installed.
+ ///
+ /// Plugin interface reference
+ public NotificationMasterApi(IDalamudPluginInterface dalamudPluginInterface)
+ {
+ PluginInterface = dalamudPluginInterface;
+ }
+
+ private void Validate()
+ {
+ if (PluginInterface == null)
+ {
+ throw new NullReferenceException("NotificationMaster API was called before it was initialized");
+ }
+ }
+
+ ///
+ /// Checks if IPC is ready. You DO NOT need to call this method before invoking any of API functions unless you specifically want to check if plugin is installed and ready to accept requests.
+ ///
+ ///
+ public bool IsIPCReady()
+ {
+ Validate();
+ try
+ {
+ PluginInterface.GetIpcSubscriber