diff --git a/Dalamud/Plugin/Services/IAddonEventManager.cs b/Dalamud/Plugin/Services/IAddonEventManager.cs
index c6499e4e2..6b7b1166e 100644
--- a/Dalamud/Plugin/Services/IAddonEventManager.cs
+++ b/Dalamud/Plugin/Services/IAddonEventManager.cs
@@ -1,4 +1,4 @@
-using Dalamud.Game.Addon.Events;
+using Dalamud.Game.Addon.Events;
using Dalamud.Game.Addon.Events.EventDataTypes;
namespace Dalamud.Plugin.Services;
@@ -6,7 +6,7 @@ namespace Dalamud.Plugin.Services;
///
/// Service provider for addon event management.
///
-public interface IAddonEventManager
+public interface IAddonEventManager : IDalamudService
{
///
/// Delegate to be called when an event is received.
diff --git a/Dalamud/Plugin/Services/IAddonLifecycle.cs b/Dalamud/Plugin/Services/IAddonLifecycle.cs
index ebf629b85..1269b13dc 100644
--- a/Dalamud/Plugin/Services/IAddonLifecycle.cs
+++ b/Dalamud/Plugin/Services/IAddonLifecycle.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using System.Runtime.InteropServices;
using Dalamud.Game.Addon.Lifecycle;
@@ -9,7 +9,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class provides events for in-game addon lifecycles.
///
-public interface IAddonLifecycle
+public interface IAddonLifecycle : IDalamudService
{
///
/// Delegate for receiving addon lifecycle event messages.
diff --git a/Dalamud/Plugin/Services/IAetheryteList.cs b/Dalamud/Plugin/Services/IAetheryteList.cs
index 88c2ff616..58b82ebf6 100644
--- a/Dalamud/Plugin/Services/IAetheryteList.cs
+++ b/Dalamud/Plugin/Services/IAetheryteList.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.ClientState.Aetherytes;
@@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
///
/// This collection represents the list of available Aetherytes in the Teleport window.
///
-public interface IAetheryteList : IReadOnlyCollection
+public interface IAetheryteList : IDalamudService, IReadOnlyCollection
{
///
/// Gets the amount of Aetherytes the local player has unlocked.
diff --git a/Dalamud/Plugin/Services/IBuddyList.cs b/Dalamud/Plugin/Services/IBuddyList.cs
index 77c0b9c17..8d3790b6d 100644
--- a/Dalamud/Plugin/Services/IBuddyList.cs
+++ b/Dalamud/Plugin/Services/IBuddyList.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.ClientState.Buddy;
@@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
/// This collection represents the buddies present in your squadron or trust party.
/// It does not include the local player.
///
-public interface IBuddyList : IReadOnlyCollection
+public interface IBuddyList : IDalamudService, IReadOnlyCollection
{
///
/// Gets the amount of battle buddies the local player has.
diff --git a/Dalamud/Plugin/Services/IChatGui.cs b/Dalamud/Plugin/Services/IChatGui.cs
index c474ca386..572ac6c95 100644
--- a/Dalamud/Plugin/Services/IChatGui.cs
+++ b/Dalamud/Plugin/Services/IChatGui.cs
@@ -10,7 +10,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class handles interacting with the native chat UI.
///
-public interface IChatGui
+public interface IChatGui : IDalamudService
{
///
/// A delegate type used with the event.
diff --git a/Dalamud/Plugin/Services/IClientState.cs b/Dalamud/Plugin/Services/IClientState.cs
index 0342ea77c..7b6abc2bd 100644
--- a/Dalamud/Plugin/Services/IClientState.cs
+++ b/Dalamud/Plugin/Services/IClientState.cs
@@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class represents the state of the game client at the time of access.
///
-public interface IClientState
+public interface IClientState : IDalamudService
{
///
/// A delegate type used for the event.
diff --git a/Dalamud/Plugin/Services/ICommandManager.cs b/Dalamud/Plugin/Services/ICommandManager.cs
index a6bc4763f..46138cd71 100644
--- a/Dalamud/Plugin/Services/ICommandManager.cs
+++ b/Dalamud/Plugin/Services/ICommandManager.cs
@@ -1,4 +1,4 @@
-using System.Collections.ObjectModel;
+using System.Collections.ObjectModel;
using Dalamud.Game.Command;
@@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class manages registered in-game slash commands.
///
-public interface ICommandManager
+public interface ICommandManager : IDalamudService
{
///
/// Gets a read-only list of all registered commands.
diff --git a/Dalamud/Plugin/Services/ICondition.cs b/Dalamud/Plugin/Services/ICondition.cs
index 4ea9e7f76..c37117f3c 100644
--- a/Dalamud/Plugin/Services/ICondition.cs
+++ b/Dalamud/Plugin/Services/ICondition.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.ClientState.Conditions;
@@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
///
/// Provides access to conditions (generally player state). You can check whether a player is in combat, mounted, etc.
///
-public interface ICondition
+public interface ICondition : IDalamudService
{
///
/// A delegate type used with the event.
diff --git a/Dalamud/Plugin/Services/IConsole.cs b/Dalamud/Plugin/Services/IConsole.cs
index 0b6832efb..be920a5c9 100644
--- a/Dalamud/Plugin/Services/IConsole.cs
+++ b/Dalamud/Plugin/Services/IConsole.cs
@@ -1,4 +1,4 @@
-using System.Diagnostics.CodeAnalysis;
+using System.Diagnostics.CodeAnalysis;
using Dalamud.Console;
@@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
/// Provides functions to register console commands and variables.
///
[Experimental("Dalamud001")]
-public interface IConsole
+public interface IConsole : IDalamudService
{
///
/// Gets this plugin's namespace prefix, derived off its internal name.
diff --git a/Dalamud/Plugin/Services/IContextMenu.cs b/Dalamud/Plugin/Services/IContextMenu.cs
index 02f773441..ed99f595e 100644
--- a/Dalamud/Plugin/Services/IContextMenu.cs
+++ b/Dalamud/Plugin/Services/IContextMenu.cs
@@ -5,7 +5,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class provides methods for interacting with the game's context menu.
///
-public interface IContextMenu
+public interface IContextMenu : IDalamudService
{
///
/// A delegate type used for the event.
diff --git a/Dalamud/Plugin/Services/IDalamudService.cs b/Dalamud/Plugin/Services/IDalamudService.cs
new file mode 100644
index 000000000..1472b27da
--- /dev/null
+++ b/Dalamud/Plugin/Services/IDalamudService.cs
@@ -0,0 +1,10 @@
+namespace Dalamud.Plugin.Services;
+
+///
+/// Marker interface for Dalamud services.
+///
+///
+/// This interface is implemented by all services provided through Dalamud's
+/// dependency injection system.
+///
+public interface IDalamudService;
diff --git a/Dalamud/Plugin/Services/IDataManager.cs b/Dalamud/Plugin/Services/IDataManager.cs
index 65c51a9fb..474d34ecb 100644
--- a/Dalamud/Plugin/Services/IDataManager.cs
+++ b/Dalamud/Plugin/Services/IDataManager.cs
@@ -14,7 +14,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class provides data for Dalamud-internal features, but can also be used by plugins if needed.
///
-public interface IDataManager
+public interface IDataManager : IDalamudService
{
///
/// Gets the current game client language.
diff --git a/Dalamud/Plugin/Services/IDtrBar.cs b/Dalamud/Plugin/Services/IDtrBar.cs
index 8ab34c6f2..a24327e23 100644
--- a/Dalamud/Plugin/Services/IDtrBar.cs
+++ b/Dalamud/Plugin/Services/IDtrBar.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.Gui.Dtr;
using Dalamud.Game.Text.SeStringHandling;
@@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
///
/// Class used to interface with the server info bar.
///
-public interface IDtrBar
+public interface IDtrBar : IDalamudService
{
///
/// Gets a read-only copy of the list of all DTR bar entries.
diff --git a/Dalamud/Plugin/Services/IDutyState.cs b/Dalamud/Plugin/Services/IDutyState.cs
index 3d49f68cb..9ad2e3c24 100644
--- a/Dalamud/Plugin/Services/IDutyState.cs
+++ b/Dalamud/Plugin/Services/IDutyState.cs
@@ -1,9 +1,9 @@
-namespace Dalamud.Plugin.Services;
+namespace Dalamud.Plugin.Services;
///
/// This class represents the state of the currently occupied duty.
///
-public interface IDutyState
+public interface IDutyState : IDalamudService
{
///
/// Event that gets fired when the duty starts.
diff --git a/Dalamud/Plugin/Services/IFateTable.cs b/Dalamud/Plugin/Services/IFateTable.cs
index d10141050..3392d8e23 100644
--- a/Dalamud/Plugin/Services/IFateTable.cs
+++ b/Dalamud/Plugin/Services/IFateTable.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.ClientState.Fates;
@@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
///
/// This collection represents the currently available Fate events.
///
-public interface IFateTable : IReadOnlyCollection
+public interface IFateTable : IDalamudService, IReadOnlyCollection
{
///
/// Gets the address of the Fate table.
diff --git a/Dalamud/Plugin/Services/IFlyTextGui.cs b/Dalamud/Plugin/Services/IFlyTextGui.cs
index 04fae351d..6c0e40fd6 100644
--- a/Dalamud/Plugin/Services/IFlyTextGui.cs
+++ b/Dalamud/Plugin/Services/IFlyTextGui.cs
@@ -1,4 +1,4 @@
-using Dalamud.Game.Gui.FlyText;
+using Dalamud.Game.Gui.FlyText;
using Dalamud.Game.Text.SeStringHandling;
namespace Dalamud.Plugin.Services;
@@ -6,7 +6,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class facilitates interacting with and creating native in-game "fly text".
///
-public interface IFlyTextGui
+public interface IFlyTextGui : IDalamudService
{
///
/// The delegate defining the type for the FlyText event.
diff --git a/Dalamud/Plugin/Services/IFramework.cs b/Dalamud/Plugin/Services/IFramework.cs
index f1a4b6906..3524ca668 100644
--- a/Dalamud/Plugin/Services/IFramework.cs
+++ b/Dalamud/Plugin/Services/IFramework.cs
@@ -1,4 +1,4 @@
-using System.Threading;
+using System.Threading;
using System.Threading.Tasks;
using Dalamud.Interface.Internal.Windows.Data.Widgets;
@@ -24,7 +24,7 @@ namespace Dalamud.Plugin.Services;
/// See to see the difference in behaviors, and how would a misuse of these
/// functions result in a deadlock.
///
-public interface IFramework
+public interface IFramework : IDalamudService
{
///
/// A delegate type used with the event.
diff --git a/Dalamud/Plugin/Services/IGameConfig.cs b/Dalamud/Plugin/Services/IGameConfig.cs
index 5d8378659..10883c6d1 100644
--- a/Dalamud/Plugin/Services/IGameConfig.cs
+++ b/Dalamud/Plugin/Services/IGameConfig.cs
@@ -1,4 +1,4 @@
-using System.Diagnostics;
+using System.Diagnostics;
using Dalamud.Game.Config;
using Dalamud.Plugin.Internal.Types;
@@ -17,7 +17,7 @@ namespace Dalamud.Plugin.Services;
/// If property access from the plugin constructor is desired, do the value retrieval asynchronously via
/// ; do not wait for the result right away.
///
-public interface IGameConfig
+public interface IGameConfig : IDalamudService
{
///
/// Event which is fired when any game config option is changed.
diff --git a/Dalamud/Plugin/Services/IGameGui.cs b/Dalamud/Plugin/Services/IGameGui.cs
index e2326328a..beffc131a 100644
--- a/Dalamud/Plugin/Services/IGameGui.cs
+++ b/Dalamud/Plugin/Services/IGameGui.cs
@@ -9,7 +9,7 @@ namespace Dalamud.Plugin.Services;
///
/// A class handling many aspects of the in-game UI.
///
-public unsafe interface IGameGui
+public unsafe interface IGameGui : IDalamudService
{
///
/// Event which is fired when the game UI hiding is toggled.
diff --git a/Dalamud/Plugin/Services/IGameInteropProvider.cs b/Dalamud/Plugin/Services/IGameInteropProvider.cs
index 99e36c7ed..645d70ac6 100644
--- a/Dalamud/Plugin/Services/IGameInteropProvider.cs
+++ b/Dalamud/Plugin/Services/IGameInteropProvider.cs
@@ -1,4 +1,4 @@
-using System.Diagnostics;
+using System.Diagnostics;
using Dalamud.Hooking;
using Dalamud.Utility.Signatures;
@@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
///
/// Service responsible for the creation of hooks.
///
-public interface IGameInteropProvider
+public interface IGameInteropProvider : IDalamudService
{
///
/// Available hooking backends.
diff --git a/Dalamud/Plugin/Services/IGameInventory.cs b/Dalamud/Plugin/Services/IGameInventory.cs
index 0dff1ff03..cba1c9872 100644
--- a/Dalamud/Plugin/Services/IGameInventory.cs
+++ b/Dalamud/Plugin/Services/IGameInventory.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.Inventory;
using Dalamud.Game.Inventory.InventoryEventArgTypes;
@@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class provides events for the in-game inventory.
///
-public interface IGameInventory
+public interface IGameInventory : IDalamudService
{
///
/// Delegate function to be called when inventories have been changed.
diff --git a/Dalamud/Plugin/Services/IGameLifecycle.cs b/Dalamud/Plugin/Services/IGameLifecycle.cs
index caa64ed23..8fae3fc0e 100644
--- a/Dalamud/Plugin/Services/IGameLifecycle.cs
+++ b/Dalamud/Plugin/Services/IGameLifecycle.cs
@@ -1,11 +1,11 @@
-using System.Threading;
+using System.Threading;
namespace Dalamud.Plugin.Services;
///
/// Class offering cancellation tokens for common gameplay events.
///
-public interface IGameLifecycle
+public interface IGameLifecycle : IDalamudService
{
///
/// Gets a token that is cancelled when Dalamud is unloading.
diff --git a/Dalamud/Plugin/Services/IGameNetwork.cs b/Dalamud/Plugin/Services/IGameNetwork.cs
index 969176da7..4abf20834 100644
--- a/Dalamud/Plugin/Services/IGameNetwork.cs
+++ b/Dalamud/Plugin/Services/IGameNetwork.cs
@@ -1,4 +1,4 @@
-using Dalamud.Game.Network;
+using Dalamud.Game.Network;
namespace Dalamud.Plugin.Services;
@@ -6,7 +6,7 @@ namespace Dalamud.Plugin.Services;
/// This class handles interacting with game network events.
///
[Obsolete("Will be removed in a future release. Use packet handler hooks instead.", true)]
-public interface IGameNetwork
+public interface IGameNetwork : IDalamudService
{
// TODO(v9): we shouldn't be passing pointers to the actual data here
diff --git a/Dalamud/Plugin/Services/IGamepadState.cs b/Dalamud/Plugin/Services/IGamepadState.cs
index 2816c927e..bdb07b91b 100644
--- a/Dalamud/Plugin/Services/IGamepadState.cs
+++ b/Dalamud/Plugin/Services/IGamepadState.cs
@@ -1,4 +1,4 @@
-using System.Numerics;
+using System.Numerics;
using Dalamud.Bindings.ImGui;
using Dalamud.Game.ClientState.GamePad;
@@ -10,7 +10,7 @@ namespace Dalamud.Plugin.Services;
///
/// Will block game's gamepad input if is set.
///
-public interface IGamepadState
+public interface IGamepadState : IDalamudService
{
///
/// Gets the pointer to the current instance of the GamepadInput struct.
diff --git a/Dalamud/Plugin/Services/IJobGauges.cs b/Dalamud/Plugin/Services/IJobGauges.cs
index 4489a7be7..3313de7f6 100644
--- a/Dalamud/Plugin/Services/IJobGauges.cs
+++ b/Dalamud/Plugin/Services/IJobGauges.cs
@@ -1,11 +1,11 @@
-using Dalamud.Game.ClientState.JobGauge.Types;
+using Dalamud.Game.ClientState.JobGauge.Types;
namespace Dalamud.Plugin.Services;
///
/// This class converts in-memory Job gauge data to structs.
///
-public interface IJobGauges
+public interface IJobGauges : IDalamudService
{
///
/// Gets the address of the JobGauge data.
diff --git a/Dalamud/Plugin/Services/IKeyState.cs b/Dalamud/Plugin/Services/IKeyState.cs
index de78978ca..06d6c9b49 100644
--- a/Dalamud/Plugin/Services/IKeyState.cs
+++ b/Dalamud/Plugin/Services/IKeyState.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.ClientState.Keys;
@@ -16,7 +16,7 @@ namespace Dalamud.Plugin.Services;
/// index & 2 = key up (ephemeral).
/// index & 3 = short key press (ephemeral).
///
-public interface IKeyState
+public interface IKeyState : IDalamudService
{
///
/// Get or set the key-pressed state for a given vkCode.
diff --git a/Dalamud/Plugin/Services/IMarketBoard.cs b/Dalamud/Plugin/Services/IMarketBoard.cs
index 3fded6987..0bdfad175 100644
--- a/Dalamud/Plugin/Services/IMarketBoard.cs
+++ b/Dalamud/Plugin/Services/IMarketBoard.cs
@@ -1,11 +1,11 @@
-using Dalamud.Game.Network.Structures;
+using Dalamud.Game.Network.Structures;
namespace Dalamud.Plugin.Services;
///
/// Provides access to market board related events as the client receives/sends them.
///
-public interface IMarketBoard
+public interface IMarketBoard : IDalamudService
{
///
/// A delegate type used with the event.
diff --git a/Dalamud/Plugin/Services/INamePlateGui.cs b/Dalamud/Plugin/Services/INamePlateGui.cs
index eb2579bae..b58b5b7d0 100644
--- a/Dalamud/Plugin/Services/INamePlateGui.cs
+++ b/Dalamud/Plugin/Services/INamePlateGui.cs
@@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
///
/// Class used to modify the data used when rendering nameplates.
///
-public interface INamePlateGui
+public interface INamePlateGui : IDalamudService
{
///
/// The delegate used for receiving nameplate update events.
diff --git a/Dalamud/Plugin/Services/INotificationManager.cs b/Dalamud/Plugin/Services/INotificationManager.cs
index 7d9ccd0b0..6d9dbf584 100644
--- a/Dalamud/Plugin/Services/INotificationManager.cs
+++ b/Dalamud/Plugin/Services/INotificationManager.cs
@@ -3,7 +3,7 @@ using Dalamud.Interface.ImGuiNotification;
namespace Dalamud.Plugin.Services;
/// Manager for notifications provided by Dalamud using ImGui.
-public interface INotificationManager
+public interface INotificationManager : IDalamudService
{
/// Adds a notification.
/// The new notification.
diff --git a/Dalamud/Plugin/Services/IObjectTable.cs b/Dalamud/Plugin/Services/IObjectTable.cs
index 4c5305513..40dddb9ec 100644
--- a/Dalamud/Plugin/Services/IObjectTable.cs
+++ b/Dalamud/Plugin/Services/IObjectTable.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.ClientState.Objects.Types;
@@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
///
/// This collection represents the currently spawned FFXIV game objects.
///
-public interface IObjectTable : IEnumerable
+public interface IObjectTable : IDalamudService, IEnumerable
{
///
/// Gets the address of the object table.
diff --git a/Dalamud/Plugin/Services/IPartyFinderGui.cs b/Dalamud/Plugin/Services/IPartyFinderGui.cs
index fb7a49acd..d9b14baed 100644
--- a/Dalamud/Plugin/Services/IPartyFinderGui.cs
+++ b/Dalamud/Plugin/Services/IPartyFinderGui.cs
@@ -1,11 +1,11 @@
-using Dalamud.Game.Gui.PartyFinder.Types;
+using Dalamud.Game.Gui.PartyFinder.Types;
namespace Dalamud.Plugin.Services;
///
/// This class handles interacting with the native PartyFinder window.
///
-public interface IPartyFinderGui
+public interface IPartyFinderGui : IDalamudService
{
///
/// Event type fired each time the game receives an individual Party Finder listing.
diff --git a/Dalamud/Plugin/Services/IPartyList.cs b/Dalamud/Plugin/Services/IPartyList.cs
index b046f36db..1af3fa962 100644
--- a/Dalamud/Plugin/Services/IPartyList.cs
+++ b/Dalamud/Plugin/Services/IPartyList.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Game.ClientState.Party;
@@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
///
/// This collection represents the actors present in your party or alliance.
///
-public interface IPartyList : IReadOnlyCollection
+public interface IPartyList : IDalamudService, IReadOnlyCollection
{
///
/// Gets the amount of party members the local player has.
diff --git a/Dalamud/Plugin/Services/IPluginLog.cs b/Dalamud/Plugin/Services/IPluginLog.cs
index 38406fd91..38786f0d2 100644
--- a/Dalamud/Plugin/Services/IPluginLog.cs
+++ b/Dalamud/Plugin/Services/IPluginLog.cs
@@ -1,4 +1,4 @@
-using Serilog;
+using Serilog;
using Serilog.Events;
#pragma warning disable CS1573 // See https://github.com/dotnet/roslyn/issues/40325
@@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
///
/// An opinionated service to handle logging for plugins.
///
-public interface IPluginLog
+public interface IPluginLog : IDalamudService
{
///
/// Gets a Serilog ILogger instance for this plugin. This is the entrypoint for plugins that wish to use more
diff --git a/Dalamud/Plugin/Services/ISeStringEvaluator.cs b/Dalamud/Plugin/Services/ISeStringEvaluator.cs
index 4efc29e3e..8ab7adad1 100644
--- a/Dalamud/Plugin/Services/ISeStringEvaluator.cs
+++ b/Dalamud/Plugin/Services/ISeStringEvaluator.cs
@@ -9,7 +9,7 @@ namespace Dalamud.Plugin.Services;
///
/// Defines a service for retrieving localized text for various in-game entities.
///
-public interface ISeStringEvaluator
+public interface ISeStringEvaluator : IDalamudService
{
///
/// Evaluates macros in a .
diff --git a/Dalamud/Plugin/Services/ISigScanner.cs b/Dalamud/Plugin/Services/ISigScanner.cs
index ac0f2c55f..fbbd8b05a 100644
--- a/Dalamud/Plugin/Services/ISigScanner.cs
+++ b/Dalamud/Plugin/Services/ISigScanner.cs
@@ -2,12 +2,14 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
+using Dalamud.Plugin.Services;
+
namespace Dalamud.Game;
///
/// A SigScanner facilitates searching for memory signatures in a given ProcessModule.
///
-public interface ISigScanner
+public interface ISigScanner : IDalamudService
{
///
/// Gets a value indicating whether the search on this module is performed on a copy.
diff --git a/Dalamud/Plugin/Services/ITargetManager.cs b/Dalamud/Plugin/Services/ITargetManager.cs
index 5ba9f390e..9c9fce550 100644
--- a/Dalamud/Plugin/Services/ITargetManager.cs
+++ b/Dalamud/Plugin/Services/ITargetManager.cs
@@ -1,11 +1,12 @@
-using Dalamud.Game.ClientState.Objects.Types;
+using Dalamud.Game.ClientState.Objects.Types;
+using Dalamud.Plugin.Services;
namespace Dalamud.Game.ClientState.Objects;
///
/// Get and set various kinds of targets for the player.
///
-public interface ITargetManager
+public interface ITargetManager : IDalamudService
{
///
/// Gets or sets the current target.
diff --git a/Dalamud/Plugin/Services/ITextureProvider.cs b/Dalamud/Plugin/Services/ITextureProvider.cs
index a8ad76995..7cd1b7c86 100644
--- a/Dalamud/Plugin/Services/ITextureProvider.cs
+++ b/Dalamud/Plugin/Services/ITextureProvider.cs
@@ -32,7 +32,7 @@ namespace Dalamud.Plugin.Services;
/// .
///
///
-public interface ITextureProvider
+public interface ITextureProvider : IDalamudService
{
/// Creates an empty texture.
/// Texture specifications.
diff --git a/Dalamud/Plugin/Services/ITextureReadbackProvider.cs b/Dalamud/Plugin/Services/ITextureReadbackProvider.cs
index 3d2894355..00b684cbb 100644
--- a/Dalamud/Plugin/Services/ITextureReadbackProvider.cs
+++ b/Dalamud/Plugin/Services/ITextureReadbackProvider.cs
@@ -3,14 +3,13 @@ using System.IO;
using System.Threading;
using System.Threading.Tasks;
-using Dalamud.Interface.Internal;
using Dalamud.Interface.Textures;
using Dalamud.Interface.Textures.TextureWraps;
namespace Dalamud.Plugin.Services;
/// Service that grants you to read instances of .
-public interface ITextureReadbackProvider
+public interface ITextureReadbackProvider : IDalamudService
{
/// Gets the raw data of a texture wrap.
/// The source texture wrap.
diff --git a/Dalamud/Plugin/Services/ITextureSubstitutionProvider.cs b/Dalamud/Plugin/Services/ITextureSubstitutionProvider.cs
index 371fbaf0f..dcd1b00cc 100644
--- a/Dalamud/Plugin/Services/ITextureSubstitutionProvider.cs
+++ b/Dalamud/Plugin/Services/ITextureSubstitutionProvider.cs
@@ -1,11 +1,11 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
namespace Dalamud.Plugin.Services;
///
/// Service that grants you the ability to replace texture data that is to be loaded by Dalamud.
///
-public interface ITextureSubstitutionProvider
+public interface ITextureSubstitutionProvider : IDalamudService
{
///
/// Delegate describing a function that may be used to intercept and replace texture data.
diff --git a/Dalamud/Plugin/Services/ITitleScreenMenu.cs b/Dalamud/Plugin/Services/ITitleScreenMenu.cs
index 9f7b17ea3..50bae62a1 100644
--- a/Dalamud/Plugin/Services/ITitleScreenMenu.cs
+++ b/Dalamud/Plugin/Services/ITitleScreenMenu.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using Dalamud.Interface;
using Dalamud.Interface.Textures;
@@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
///
/// Interface for class responsible for managing elements in the title screen menu.
///
-public interface ITitleScreenMenu
+public interface ITitleScreenMenu : IDalamudService
{
///
/// Gets the list of read only entries in the title screen menu.
diff --git a/Dalamud/Plugin/Services/IToastGui.cs b/Dalamud/Plugin/Services/IToastGui.cs
index ef83e95ac..c472cbb1f 100644
--- a/Dalamud/Plugin/Services/IToastGui.cs
+++ b/Dalamud/Plugin/Services/IToastGui.cs
@@ -1,4 +1,4 @@
-using Dalamud.Game.Gui.Toast;
+using Dalamud.Game.Gui.Toast;
using Dalamud.Game.Text.SeStringHandling;
namespace Dalamud.Plugin.Services;
@@ -6,7 +6,7 @@ namespace Dalamud.Plugin.Services;
///
/// This class facilitates interacting with and creating native toast windows.
///
-public interface IToastGui
+public interface IToastGui : IDalamudService
{
///
/// A delegate type used when a normal toast window appears.