Add IDalamudService marker interface

This commit is contained in:
Haselnussbomber 2025-10-19 22:52:20 +02:00
parent 481254447b
commit a8c8c79902
No known key found for this signature in database
GPG key ID: BB905BB49E7295D1
41 changed files with 82 additions and 70 deletions

View file

@ -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;
/// <summary>
/// Service provider for addon event management.
/// </summary>
public interface IAddonEventManager
public interface IAddonEventManager : IDalamudService
{
/// <summary>
/// Delegate to be called when an event is received.

View file

@ -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;
/// <summary>
/// This class provides events for in-game addon lifecycles.
/// </summary>
public interface IAddonLifecycle
public interface IAddonLifecycle : IDalamudService
{
/// <summary>
/// Delegate for receiving addon lifecycle event messages.

View file

@ -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;
/// <summary>
/// This collection represents the list of available Aetherytes in the Teleport window.
/// </summary>
public interface IAetheryteList : IReadOnlyCollection<IAetheryteEntry>
public interface IAetheryteList : IDalamudService, IReadOnlyCollection<IAetheryteEntry>
{
/// <summary>
/// Gets the amount of Aetherytes the local player has unlocked.

View file

@ -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.
/// </summary>
public interface IBuddyList : IReadOnlyCollection<IBuddyMember>
public interface IBuddyList : IDalamudService, IReadOnlyCollection<IBuddyMember>
{
/// <summary>
/// Gets the amount of battle buddies the local player has.

View file

@ -10,7 +10,7 @@ namespace Dalamud.Plugin.Services;
/// <summary>
/// This class handles interacting with the native chat UI.
/// </summary>
public interface IChatGui
public interface IChatGui : IDalamudService
{
/// <summary>
/// A delegate type used with the <see cref="ChatGui.ChatMessage"/> event.

View file

@ -8,7 +8,7 @@ namespace Dalamud.Plugin.Services;
/// <summary>
/// This class represents the state of the game client at the time of access.
/// </summary>
public interface IClientState
public interface IClientState : IDalamudService
{
/// <summary>
/// A delegate type used for the <see cref="ClassJobChanged"/> event.

View file

@ -1,4 +1,4 @@
using System.Collections.ObjectModel;
using System.Collections.ObjectModel;
using Dalamud.Game.Command;
@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
/// <summary>
/// This class manages registered in-game slash commands.
/// </summary>
public interface ICommandManager
public interface ICommandManager : IDalamudService
{
/// <summary>
/// Gets a read-only list of all registered commands.

View file

@ -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;
/// <summary>
/// Provides access to conditions (generally player state). You can check whether a player is in combat, mounted, etc.
/// </summary>
public interface ICondition
public interface ICondition : IDalamudService
{
/// <summary>
/// A delegate type used with the <see cref="ConditionChange"/> event.

View file

@ -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.
/// </summary>
[Experimental("Dalamud001")]
public interface IConsole
public interface IConsole : IDalamudService
{
/// <summary>
/// Gets this plugin's namespace prefix, derived off its internal name.

View file

@ -5,7 +5,7 @@ namespace Dalamud.Plugin.Services;
/// <summary>
/// This class provides methods for interacting with the game's context menu.
/// </summary>
public interface IContextMenu
public interface IContextMenu : IDalamudService
{
/// <summary>
/// A delegate type used for the <see cref="OnMenuOpened"/> event.

View file

@ -0,0 +1,10 @@
namespace Dalamud.Plugin.Services;
/// <summary>
/// Marker interface for Dalamud services.
/// </summary>
/// <remarks>
/// This interface is implemented by all services provided through Dalamud's
/// dependency injection system.
/// </remarks>
public interface IDalamudService;

View file

@ -14,7 +14,7 @@ namespace Dalamud.Plugin.Services;
/// <summary>
/// This class provides data for Dalamud-internal features, but can also be used by plugins if needed.
/// </summary>
public interface IDataManager
public interface IDataManager : IDalamudService
{
/// <summary>
/// Gets the current game client language.

View file

@ -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;
/// <summary>
/// Class used to interface with the server info bar.
/// </summary>
public interface IDtrBar
public interface IDtrBar : IDalamudService
{
/// <summary>
/// Gets a read-only copy of the list of all DTR bar entries.

View file

@ -1,9 +1,9 @@
namespace Dalamud.Plugin.Services;
namespace Dalamud.Plugin.Services;
/// <summary>
/// This class represents the state of the currently occupied duty.
/// </summary>
public interface IDutyState
public interface IDutyState : IDalamudService
{
/// <summary>
/// Event that gets fired when the duty starts.

View file

@ -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;
/// <summary>
/// This collection represents the currently available Fate events.
/// </summary>
public interface IFateTable : IReadOnlyCollection<IFate>
public interface IFateTable : IDalamudService, IReadOnlyCollection<IFate>
{
/// <summary>
/// Gets the address of the Fate table.

View file

@ -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;
/// <summary>
/// This class facilitates interacting with and creating native in-game "fly text".
/// </summary>
public interface IFlyTextGui
public interface IFlyTextGui : IDalamudService
{
/// <summary>
/// The delegate defining the type for the FlyText event.

View file

@ -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;
/// <para>See <see cref="TaskSchedulerWidget"/> to see the difference in behaviors, and how would a misuse of these
/// functions result in a deadlock.</para>
/// </remarks>
public interface IFramework
public interface IFramework : IDalamudService
{
/// <summary>
/// A delegate type used with the <see cref="Update"/> event.

View file

@ -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
/// <see cref="IFramework.RunOnFrameworkThread{T}(Func{T})"/>; do not wait for the result right away.
/// </remarks>
public interface IGameConfig
public interface IGameConfig : IDalamudService
{
/// <summary>
/// Event which is fired when any game config option is changed.

View file

@ -9,7 +9,7 @@ namespace Dalamud.Plugin.Services;
/// <summary>
/// A class handling many aspects of the in-game UI.
/// </summary>
public unsafe interface IGameGui
public unsafe interface IGameGui : IDalamudService
{
/// <summary>
/// Event which is fired when the game UI hiding is toggled.

View file

@ -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;
/// <summary>
/// Service responsible for the creation of hooks.
/// </summary>
public interface IGameInteropProvider
public interface IGameInteropProvider : IDalamudService
{
/// <summary>
/// Available hooking backends.

View file

@ -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;
/// <summary>
/// This class provides events for the in-game inventory.
/// </summary>
public interface IGameInventory
public interface IGameInventory : IDalamudService
{
/// <summary>
/// Delegate function to be called when inventories have been changed.

View file

@ -1,11 +1,11 @@
using System.Threading;
using System.Threading;
namespace Dalamud.Plugin.Services;
/// <summary>
/// Class offering cancellation tokens for common gameplay events.
/// </summary>
public interface IGameLifecycle
public interface IGameLifecycle : IDalamudService
{
/// <summary>
/// Gets a token that is cancelled when Dalamud is unloading.

View file

@ -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.
/// </summary>
[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

View file

@ -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 <see cref="ImGuiConfigFlags.NavEnableGamepad"/> is set.
/// </summary>
public interface IGamepadState
public interface IGamepadState : IDalamudService
{
/// <summary>
/// Gets the pointer to the current instance of the GamepadInput struct.

View file

@ -1,11 +1,11 @@
using Dalamud.Game.ClientState.JobGauge.Types;
using Dalamud.Game.ClientState.JobGauge.Types;
namespace Dalamud.Plugin.Services;
/// <summary>
/// This class converts in-memory Job gauge data to structs.
/// </summary>
public interface IJobGauges
public interface IJobGauges : IDalamudService
{
/// <summary>
/// Gets the address of the JobGauge data.

View file

@ -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 &amp; 2 = key up (ephemeral).
/// index &amp; 3 = short key press (ephemeral).
/// </remarks>
public interface IKeyState
public interface IKeyState : IDalamudService
{
/// <summary>
/// Get or set the key-pressed state for a given vkCode.

View file

@ -1,11 +1,11 @@
using Dalamud.Game.Network.Structures;
using Dalamud.Game.Network.Structures;
namespace Dalamud.Plugin.Services;
/// <summary>
/// Provides access to market board related events as the client receives/sends them.
/// </summary>
public interface IMarketBoard
public interface IMarketBoard : IDalamudService
{
/// <summary>
/// A delegate type used with the <see cref="HistoryReceived"/> event.

View file

@ -7,7 +7,7 @@ namespace Dalamud.Plugin.Services;
/// <summary>
/// Class used to modify the data used when rendering nameplates.
/// </summary>
public interface INamePlateGui
public interface INamePlateGui : IDalamudService
{
/// <summary>
/// The delegate used for receiving nameplate update events.

View file

@ -3,7 +3,7 @@ using Dalamud.Interface.ImGuiNotification;
namespace Dalamud.Plugin.Services;
/// <summary>Manager for notifications provided by Dalamud using ImGui.</summary>
public interface INotificationManager
public interface INotificationManager : IDalamudService
{
/// <summary>Adds a notification.</summary>
/// <param name="notification">The new notification.</param>

View file

@ -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;
/// <summary>
/// This collection represents the currently spawned FFXIV game objects.
/// </summary>
public interface IObjectTable : IEnumerable<IGameObject>
public interface IObjectTable : IDalamudService, IEnumerable<IGameObject>
{
/// <summary>
/// Gets the address of the object table.

View file

@ -1,11 +1,11 @@
using Dalamud.Game.Gui.PartyFinder.Types;
using Dalamud.Game.Gui.PartyFinder.Types;
namespace Dalamud.Plugin.Services;
/// <summary>
/// This class handles interacting with the native PartyFinder window.
/// </summary>
public interface IPartyFinderGui
public interface IPartyFinderGui : IDalamudService
{
/// <summary>
/// Event type fired each time the game receives an individual Party Finder listing.

View file

@ -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;
/// <summary>
/// This collection represents the actors present in your party or alliance.
/// </summary>
public interface IPartyList : IReadOnlyCollection<IPartyMember>
public interface IPartyList : IDalamudService, IReadOnlyCollection<IPartyMember>
{
/// <summary>
/// Gets the amount of party members the local player has.

View file

@ -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;
/// <summary>
/// An opinionated service to handle logging for plugins.
/// </summary>
public interface IPluginLog
public interface IPluginLog : IDalamudService
{
/// <summary>
/// Gets a Serilog ILogger instance for this plugin. This is the entrypoint for plugins that wish to use more

View file

@ -9,7 +9,7 @@ namespace Dalamud.Plugin.Services;
/// <summary>
/// Defines a service for retrieving localized text for various in-game entities.
/// </summary>
public interface ISeStringEvaluator
public interface ISeStringEvaluator : IDalamudService
{
/// <summary>
/// Evaluates macros in a <see cref="ReadOnlySeString"/>.

View file

@ -2,12 +2,14 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using Dalamud.Plugin.Services;
namespace Dalamud.Game;
/// <summary>
/// A SigScanner facilitates searching for memory signatures in a given ProcessModule.
/// </summary>
public interface ISigScanner
public interface ISigScanner : IDalamudService
{
/// <summary>
/// Gets a value indicating whether the search on this module is performed on a copy.

View file

@ -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;
/// <summary>
/// Get and set various kinds of targets for the player.
/// </summary>
public interface ITargetManager
public interface ITargetManager : IDalamudService
{
/// <summary>
/// Gets or sets the current target.

View file

@ -32,7 +32,7 @@ namespace Dalamud.Plugin.Services;
/// <see cref="TexWidget"/>.
/// </para>
/// </remarks>
public interface ITextureProvider
public interface ITextureProvider : IDalamudService
{
/// <summary>Creates an empty texture.</summary>
/// <param name="specs">Texture specifications.</param>

View file

@ -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;
/// <summary>Service that grants you to read instances of <see cref="IDalamudTextureWrap"/>.</summary>
public interface ITextureReadbackProvider
public interface ITextureReadbackProvider : IDalamudService
{
/// <summary>Gets the raw data of a texture wrap.</summary>
/// <param name="wrap">The source texture wrap.</param>

View file

@ -1,11 +1,11 @@
using System.Collections.Generic;
using System.Collections.Generic;
namespace Dalamud.Plugin.Services;
/// <summary>
/// Service that grants you the ability to replace texture data that is to be loaded by Dalamud.
/// </summary>
public interface ITextureSubstitutionProvider
public interface ITextureSubstitutionProvider : IDalamudService
{
/// <summary>
/// Delegate describing a function that may be used to intercept and replace texture data.

View file

@ -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;
/// <summary>
/// Interface for class responsible for managing elements in the title screen menu.
/// </summary>
public interface ITitleScreenMenu
public interface ITitleScreenMenu : IDalamudService
{
/// <summary>
/// Gets the list of read only entries in the title screen menu.

View file

@ -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;
/// <summary>
/// This class facilitates interacting with and creating native toast windows.
/// </summary>
public interface IToastGui
public interface IToastGui : IDalamudService
{
/// <summary>
/// A delegate type used when a normal toast window appears.