From 344dc52614bb166af4945a33c25b2c561bea915c Mon Sep 17 00:00:00 2001 From: RisaDev <151885272+RisaDev@users.noreply.github.com> Date: Mon, 18 Nov 2024 01:08:25 +0300 Subject: [PATCH] Experimental: no longer run in dev/staging dalamud when not Debug/ReleaseValidate --- .../CustomizePlus.GameData.csproj | 8 +++-- CustomizePlus.sln | 30 +++++++++++++++++++ CustomizePlus/Core/Helpers/VersionHelper.cs | 9 ++++++ .../Services/Dalamud/DalamudBranchService.cs | 17 ++++++++++- CustomizePlus/Core/Services/HookingService.cs | 13 ++++---- .../Core/Services/UserNotifierService.cs | 26 +++++++++++++--- CustomizePlus/CustomizePlus.csproj | 12 ++++++-- CustomizePlus/UI/Windows/CPlusChangeLog.cs | 10 +++++++ .../UI/Windows/Controls/PluginStateBlock.cs | 4 +-- .../UI/Windows/MainWindow/MainWindow.cs | 6 +++- .../UI/Windows/PopupSystem.Messages.cs | 7 ++++- 11 files changed, 124 insertions(+), 18 deletions(-) diff --git a/CustomizePlus.GameData/CustomizePlus.GameData.csproj b/CustomizePlus.GameData/CustomizePlus.GameData.csproj index 53b705d..0d4b257 100644 --- a/CustomizePlus.GameData/CustomizePlus.GameData.csproj +++ b/CustomizePlus.GameData/CustomizePlus.GameData.csproj @@ -5,7 +5,7 @@ enable enable true - Debug;Release + Debug;Release;ReleaseValidate @@ -49,8 +49,12 @@ INCOGNIFY_STRINGS --> - + INCOGNIFY_STRINGS + + + VALIDATE_BUILD + diff --git a/CustomizePlus.sln b/CustomizePlus.sln index 1d09a6c..b909f47 100644 --- a/CustomizePlus.sln +++ b/CustomizePlus.sln @@ -30,6 +30,8 @@ Global Debug|x64 = Debug|x64 Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 + ReleaseValidate|Any CPU = ReleaseValidate|Any CPU + ReleaseValidate|x64 = ReleaseValidate|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5BA385F5-C17E-4CE4-828A-24F7F19C434B}.Debug|Any CPU.ActiveCfg = Debug|x64 @@ -40,6 +42,10 @@ Global {5BA385F5-C17E-4CE4-828A-24F7F19C434B}.Release|Any CPU.Build.0 = Release|x64 {5BA385F5-C17E-4CE4-828A-24F7F19C434B}.Release|x64.ActiveCfg = Release|x64 {5BA385F5-C17E-4CE4-828A-24F7F19C434B}.Release|x64.Build.0 = Release|x64 + {5BA385F5-C17E-4CE4-828A-24F7F19C434B}.ReleaseValidate|Any CPU.ActiveCfg = ReleaseValidate|x64 + {5BA385F5-C17E-4CE4-828A-24F7F19C434B}.ReleaseValidate|Any CPU.Build.0 = ReleaseValidate|x64 + {5BA385F5-C17E-4CE4-828A-24F7F19C434B}.ReleaseValidate|x64.ActiveCfg = Release|x64 + {5BA385F5-C17E-4CE4-828A-24F7F19C434B}.ReleaseValidate|x64.Build.0 = Release|x64 {0D465539-6133-4088-B4BB-F260FA2A1557}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0D465539-6133-4088-B4BB-F260FA2A1557}.Debug|Any CPU.Build.0 = Debug|Any CPU {0D465539-6133-4088-B4BB-F260FA2A1557}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -48,6 +54,10 @@ Global {0D465539-6133-4088-B4BB-F260FA2A1557}.Release|Any CPU.Build.0 = Release|Any CPU {0D465539-6133-4088-B4BB-F260FA2A1557}.Release|x64.ActiveCfg = Release|Any CPU {0D465539-6133-4088-B4BB-F260FA2A1557}.Release|x64.Build.0 = Release|Any CPU + {0D465539-6133-4088-B4BB-F260FA2A1557}.ReleaseValidate|Any CPU.ActiveCfg = Release|Any CPU + {0D465539-6133-4088-B4BB-F260FA2A1557}.ReleaseValidate|Any CPU.Build.0 = Release|Any CPU + {0D465539-6133-4088-B4BB-F260FA2A1557}.ReleaseValidate|x64.ActiveCfg = Release|Any CPU + {0D465539-6133-4088-B4BB-F260FA2A1557}.ReleaseValidate|x64.Build.0 = Release|Any CPU {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.Debug|Any CPU.Build.0 = Debug|Any CPU {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -56,6 +66,10 @@ Global {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.Release|Any CPU.Build.0 = Release|Any CPU {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.Release|x64.ActiveCfg = Release|Any CPU {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.Release|x64.Build.0 = Release|Any CPU + {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.ReleaseValidate|Any CPU.ActiveCfg = ReleaseValidate|Any CPU + {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.ReleaseValidate|Any CPU.Build.0 = ReleaseValidate|Any CPU + {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.ReleaseValidate|x64.ActiveCfg = Release|Any CPU + {CDB26C94-1200-45AA-AF96-D4526DC76AD5}.ReleaseValidate|x64.Build.0 = Release|Any CPU {D79C8833-D241-4867-BF6F-8097E0ED8067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D79C8833-D241-4867-BF6F-8097E0ED8067}.Debug|Any CPU.Build.0 = Debug|Any CPU {D79C8833-D241-4867-BF6F-8097E0ED8067}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -64,6 +78,10 @@ Global {D79C8833-D241-4867-BF6F-8097E0ED8067}.Release|Any CPU.Build.0 = Release|Any CPU {D79C8833-D241-4867-BF6F-8097E0ED8067}.Release|x64.ActiveCfg = Release|Any CPU {D79C8833-D241-4867-BF6F-8097E0ED8067}.Release|x64.Build.0 = Release|Any CPU + {D79C8833-D241-4867-BF6F-8097E0ED8067}.ReleaseValidate|Any CPU.ActiveCfg = Release|Any CPU + {D79C8833-D241-4867-BF6F-8097E0ED8067}.ReleaseValidate|Any CPU.Build.0 = Release|Any CPU + {D79C8833-D241-4867-BF6F-8097E0ED8067}.ReleaseValidate|x64.ActiveCfg = Release|Any CPU + {D79C8833-D241-4867-BF6F-8097E0ED8067}.ReleaseValidate|x64.Build.0 = Release|Any CPU {CC460943-1E07-4FA0-8B8C-67F0EF385290}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CC460943-1E07-4FA0-8B8C-67F0EF385290}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC460943-1E07-4FA0-8B8C-67F0EF385290}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -72,6 +90,10 @@ Global {CC460943-1E07-4FA0-8B8C-67F0EF385290}.Release|Any CPU.Build.0 = Release|Any CPU {CC460943-1E07-4FA0-8B8C-67F0EF385290}.Release|x64.ActiveCfg = Release|Any CPU {CC460943-1E07-4FA0-8B8C-67F0EF385290}.Release|x64.Build.0 = Release|Any CPU + {CC460943-1E07-4FA0-8B8C-67F0EF385290}.ReleaseValidate|Any CPU.ActiveCfg = Release|Any CPU + {CC460943-1E07-4FA0-8B8C-67F0EF385290}.ReleaseValidate|Any CPU.Build.0 = Release|Any CPU + {CC460943-1E07-4FA0-8B8C-67F0EF385290}.ReleaseValidate|x64.ActiveCfg = Release|Any CPU + {CC460943-1E07-4FA0-8B8C-67F0EF385290}.ReleaseValidate|x64.Build.0 = Release|Any CPU {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.Debug|Any CPU.Build.0 = Debug|Any CPU {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -80,6 +102,10 @@ Global {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.Release|Any CPU.Build.0 = Release|Any CPU {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.Release|x64.ActiveCfg = Release|Any CPU {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.Release|x64.Build.0 = Release|Any CPU + {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.ReleaseValidate|Any CPU.ActiveCfg = Release|Any CPU + {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.ReleaseValidate|Any CPU.Build.0 = Release|Any CPU + {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.ReleaseValidate|x64.ActiveCfg = Release|Any CPU + {CB1DFB63-22D9-4E90-A8C1-A4F7CFEF7823}.ReleaseValidate|x64.Build.0 = Release|Any CPU {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.Debug|Any CPU.ActiveCfg = Debug|x64 {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.Debug|Any CPU.Build.0 = Debug|x64 {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.Debug|x64.ActiveCfg = Debug|x64 @@ -88,6 +114,10 @@ Global {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.Release|Any CPU.Build.0 = Release|x64 {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.Release|x64.ActiveCfg = Release|x64 {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.Release|x64.Build.0 = Release|x64 + {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.ReleaseValidate|Any CPU.ActiveCfg = Release|x64 + {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.ReleaseValidate|Any CPU.Build.0 = Release|x64 + {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.ReleaseValidate|x64.ActiveCfg = Release|x64 + {41F4BB08-FCFD-420F-AD18-ED9D7FB3251C}.ReleaseValidate|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CustomizePlus/Core/Helpers/VersionHelper.cs b/CustomizePlus/Core/Helpers/VersionHelper.cs index 5696b25..61c5507 100644 --- a/CustomizePlus/Core/Helpers/VersionHelper.cs +++ b/CustomizePlus/Core/Helpers/VersionHelper.cs @@ -12,6 +12,8 @@ internal static class VersionHelper public static bool IsDebug { get; private set; } = false; + public static bool IsValidate { get; private set; } = false; + static VersionHelper() { #if DEBUG @@ -24,7 +26,14 @@ static VersionHelper() if (ThisAssembly.Git.BaseTag.ToLowerInvariant().Contains("testing")) IsTesting = true; + #if VALIDATE_BUILD + IsValidate = true; + #endif + if (IsTesting) Version += " [TESTING BUILD]"; + + if (IsValidate) + Version += " [VALIDATE BUILD]"; } } diff --git a/CustomizePlus/Core/Services/Dalamud/DalamudBranchService.cs b/CustomizePlus/Core/Services/Dalamud/DalamudBranchService.cs index 18d6345..e2ec452 100644 --- a/CustomizePlus/Core/Services/Dalamud/DalamudBranchService.cs +++ b/CustomizePlus/Core/Services/Dalamud/DalamudBranchService.cs @@ -5,6 +5,12 @@ namespace CustomizePlus.Core.Services.Dalamud; public class DalamudBranchService : IService { + /// + /// Message used in various places to tell user why the plugin is disabled + /// + public const string PluginDisabledMessage = "You are running development or testing version of Dalamud.\n" + + "Regular users are not supposed to run Customize+ on non-release versions of Dalamud therefore Customize+ has disabled itself."; + /// /// Current Dalamud branch /// @@ -15,6 +21,11 @@ public class DalamudBranchService : IService /// public string CurrentBranchName { get; private set; } + /// + /// Whether to allow or not Customize+ to actually function + /// + public bool AllowPluginToRun { get; private set; } = true; + public DalamudBranchService(DalamudConfigService dalamudConfigService, Logger logger) { dalamudConfigService.GetDalamudConfig(DalamudConfigService.BetaKindOption, out var betaOption); @@ -33,7 +44,11 @@ public DalamudBranchService(DalamudConfigService dalamudConfigService, Logger lo break; } - logger.Information($"Current Dalamud branch is: {CurrentBranchName} ({CurrentBranch})"); + #if CHECK_DALAMUD_BRANCH + AllowPluginToRun = CurrentBranch == DalamudBranch.Release; + #endif + + logger.Information($"Current Dalamud branch is: {CurrentBranchName} ({CurrentBranch}). Plugin allowed to run: {AllowPluginToRun}"); } public enum DalamudBranch diff --git a/CustomizePlus/Core/Services/HookingService.cs b/CustomizePlus/Core/Services/HookingService.cs index 788b8e0..e93e2ae 100644 --- a/CustomizePlus/Core/Services/HookingService.cs +++ b/CustomizePlus/Core/Services/HookingService.cs @@ -25,7 +25,7 @@ public class HookingService : IDisposable private readonly ProfileManager _profileManager; private readonly ArmatureManager _armatureManager; private readonly GameStateService _gameStateService; - //private readonly DalamudBranchService _dalamudBranchService; + private readonly DalamudBranchService _dalamudBranchService; private readonly Logger _logger; private Hook? _renderManagerHook; @@ -46,7 +46,7 @@ public HookingService( ProfileManager profileManager, ArmatureManager armatureManager, GameStateService gameStateService, - //DalamudBranchService dalamudBranchService, + DalamudBranchService dalamudBranchService, Logger logger) { _configuration = configuration; @@ -55,7 +55,7 @@ public HookingService( _profileManager = profileManager; _armatureManager = armatureManager; _gameStateService = gameStateService; - //_dalamudBranchService = dalamudBranchService; + _dalamudBranchService = dalamudBranchService; _logger = logger; ReloadHooks(); @@ -75,8 +75,11 @@ public void ReloadHooks() RenderHookFailed = false; MovementHookFailed = false; - /*if(_dalamudBranchService.CurrentBranch != DalamudBranchService.DalamudBranch.Release) - return;*/ + if(!_dalamudBranchService.AllowPluginToRun) + { + _logger.Error("Not reloading hooks because the plugin is not allowed to run. (Branch Service)"); + return; + } try { diff --git a/CustomizePlus/Core/Services/UserNotifierService.cs b/CustomizePlus/Core/Services/UserNotifierService.cs index bc0e6be..331ca73 100644 --- a/CustomizePlus/Core/Services/UserNotifierService.cs +++ b/CustomizePlus/Core/Services/UserNotifierService.cs @@ -2,7 +2,9 @@ using CustomizePlus.Core.Helpers; using CustomizePlus.Core.Services.Dalamud; using CustomizePlus.Game.Services; +using CustomizePlus.UI.Windows; using Dalamud.Plugin.Services; +using FFXIVClientStructs.FFXIV.Client.UI; namespace CustomizePlus.Core.Services; @@ -11,17 +13,20 @@ public class UserNotifierService : IDisposable private readonly IClientState _clientState; private readonly ChatService _chatService; private readonly DalamudBranchService _dalamudBranchService; + private readonly PopupSystem _popupSystem; public UserNotifierService( IClientState clientState, ChatService chatService, - DalamudBranchService dalamudBranchService) + DalamudBranchService dalamudBranchService, + PopupSystem popupSystem) { _clientState = clientState; _chatService = chatService; _dalamudBranchService = dalamudBranchService; + _popupSystem = popupSystem; - OnLogin(); + NotifyUser(true); _clientState.Login += OnLogin; } @@ -32,13 +37,26 @@ public void Dispose() } private void OnLogin() + { + NotifyUser(true); + } + + private void NotifyUser(bool displayOptionalMessages = false) { if (VersionHelper.IsTesting) _chatService.PrintInChat($"You are running testing version of Customize+! Some features like integration with other plugins might not function correctly.", ChatService.ChatMessageColor.Warning); - if (_dalamudBranchService.CurrentBranch != DalamudBranchService.DalamudBranch.Release) - _chatService.PrintInChat($"You are running development or testing version of Dalamud. This is not supported and might be actively prevented in the future.", + if (!_dalamudBranchService.AllowPluginToRun) + { + _chatService.PrintInChat(DalamudBranchService.PluginDisabledMessage, ChatService.ChatMessageColor.Error); + + if (displayOptionalMessages) + { + UIGlobals.PlayChatSoundEffect(11); + _popupSystem.ShowPopup(PopupSystem.Messages.PluginDisabledNonReleaseDalamud); + } + } } } diff --git a/CustomizePlus/CustomizePlus.csproj b/CustomizePlus/CustomizePlus.csproj index d712c6b..3a161ef 100644 --- a/CustomizePlus/CustomizePlus.csproj +++ b/CustomizePlus/CustomizePlus.csproj @@ -9,7 +9,7 @@ https://github.com/Aether-Tools/CustomizePlus true - Debug;Release + Debug;Release;ReleaseValidate @@ -90,10 +90,18 @@ INCOGNIFY_STRINGS --> - + INCOGNIFY_STRINGS + + CHECK_DALAMUD_BRANCH + + + + VALIDATE_BUILD + + false diff --git a/CustomizePlus/UI/Windows/CPlusChangeLog.cs b/CustomizePlus/UI/Windows/CPlusChangeLog.cs index 5f077e4..a69bb7d 100644 --- a/CustomizePlus/UI/Windows/CPlusChangeLog.cs +++ b/CustomizePlus/UI/Windows/CPlusChangeLog.cs @@ -25,6 +25,7 @@ public CPlusChangeLog(PluginConfiguration config) Add2_0_6_0(Changelog); Add2_0_6_3(Changelog); Add2_0_7_0(Changelog); + Add2_0_7_2(Changelog); } private (int, ChangeLogDisplayType) ConfigData() @@ -37,6 +38,15 @@ private void Save(int version, ChangeLogDisplayType type) _config.Save(); } + private static void Add2_0_7_2(Changelog log) + => log.NextVersion("Version 2.0.7.2") + .RegisterHighlight("Support for 7.1 and Dalamud API 11.") + .RegisterImportant("As an experiment Customize+ will no longer run if you are running testing or development version of Dalamud. Please leave your feedback about this change in support Discord.") + .RegisterEntry("Developers can prevent this from triggering by manually compiling \"Debug\" or \"ReleaseValidate\" builds of Customize+.", 1) + .RegisterHighlight("Fixed an issue which prevented owned characters (such as Carbuncles and Trust NPCs) from being detected. (2.0.7.1)") + + .RegisterEntry("Source code maintenance - external libraries update."); + private static void Add2_0_7_0(Changelog log) => log.NextVersion("Version 2.0.7.0") .RegisterImportant("Some parts of Customize+ have been considerably rewritten in this update. If you encounter any issues please report them.") diff --git a/CustomizePlus/UI/Windows/Controls/PluginStateBlock.cs b/CustomizePlus/UI/Windows/Controls/PluginStateBlock.cs index 71addbc..1932802 100644 --- a/CustomizePlus/UI/Windows/Controls/PluginStateBlock.cs +++ b/CustomizePlus/UI/Windows/Controls/PluginStateBlock.cs @@ -79,11 +79,11 @@ public void Draw(float yPos) severity = PluginStateSeverity.Error; message = "Detected failure in IPC. Integrations with other plugins will not function."; } - else if (_dalamudBranchService.CurrentBranch != DalamudBranchService.DalamudBranch.Release) + else if (!_dalamudBranchService.AllowPluginToRun) { severity = PluginStateSeverity.Error; message = "You are running unsupported version of Dalamud, hover for more information."; - hoverInfo = "Regular users are not supposed to run Customize+ on development or testing versions of Dalamud.\nThis is not supported and might be actively prevented in the future."; + hoverInfo = "Regular users are not supposed to run Customize+ on development or testing versions of Dalamud.\nThis is not supported and therefore Customize+ has disabled itself."; } else if(VersionHelper.IsTesting) { diff --git a/CustomizePlus/UI/Windows/MainWindow/MainWindow.cs b/CustomizePlus/UI/Windows/MainWindow/MainWindow.cs index f9964e1..80c1988 100644 --- a/CustomizePlus/UI/Windows/MainWindow/MainWindow.cs +++ b/CustomizePlus/UI/Windows/MainWindow/MainWindow.cs @@ -20,6 +20,7 @@ using CustomizePlus.Templates.Data; using ECommonsLite.Schedulers; using CustomizePlus.Core.Helpers; +using CustomizePlus.Core.Services.Dalamud; namespace CustomizePlus.UI.Windows.MainWindow; @@ -37,6 +38,7 @@ public class MainWindow : Window, IDisposable private readonly TemplateEditorManager _templateEditorManager; private readonly PluginConfiguration _configuration; private readonly HookingService _hookingService; + private readonly DalamudBranchService _dalamudBranchService; private readonly TemplateEditorEvent _templateEditorEvent; @@ -59,6 +61,7 @@ public MainWindow( TemplateEditorManager templateEditorManager, PluginConfiguration configuration, HookingService hookingService, + DalamudBranchService dalamudBranchService, TemplateEditorEvent templateEditorEvent ) : base($"Customize+ {VersionHelper.Version}###CPlusMainWindow") { @@ -74,6 +77,7 @@ TemplateEditorEvent templateEditorEvent _templateEditorManager = templateEditorManager; _configuration = configuration; _hookingService = hookingService; + _dalamudBranchService = dalamudBranchService; _templateEditorEvent = templateEditorEvent; @@ -97,7 +101,7 @@ public override void Draw() { var yPos = ImGui.GetCursorPosY(); - using (var disabled = ImRaii.Disabled(_hookingService.RenderHookFailed || _hookingService.MovementHookFailed)) + using (var disabled = ImRaii.Disabled(_hookingService.RenderHookFailed || _hookingService.MovementHookFailed || !_dalamudBranchService.AllowPluginToRun)) { LockWindowClosureIfNeeded(); ImGuiEx.EzTabBar("##tabs", null, _switchToTab, [ diff --git a/CustomizePlus/UI/Windows/PopupSystem.Messages.cs b/CustomizePlus/UI/Windows/PopupSystem.Messages.cs index 47c7066..bdc0be3 100644 --- a/CustomizePlus/UI/Windows/PopupSystem.Messages.cs +++ b/CustomizePlus/UI/Windows/PopupSystem.Messages.cs @@ -1,4 +1,5 @@ -using System.Numerics; +using CustomizePlus.Core.Services.Dalamud; +using System.Numerics; namespace CustomizePlus.UI.Windows; @@ -23,6 +24,8 @@ public static class Messages public const string ClipboardDataUnsupported = "clipboard_data_unsupported_version"; public const string ClipboardDataNotLongTerm = "clipboard_data_not_longterm"; + + public const string PluginDisabledNonReleaseDalamud = "non_release_dalamud"; } private void RegisterMessages() @@ -44,5 +47,7 @@ private void RegisterMessages() RegisterPopup(Messages.ClipboardDataUnsupported, "Clipboard data you are trying to use cannot be used in this version of Customize+."); RegisterPopup(Messages.ClipboardDataNotLongTerm, "Warning: clipboard data is not designed to be used as long-term way of storing your templates.\nCompatibility of copied data between different Customize+ versions is not guaranteed.", true, new Vector2(5, 10)); + + RegisterPopup(Messages.PluginDisabledNonReleaseDalamud, DalamudBranchService.PluginDisabledMessage, false, new Vector2(5, 8)); } }