mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
chore: Remove IGameNetwork
- Deprecated in favor of hooks. See #2241. - Subject to Goat yelling at me.
This commit is contained in:
parent
191dfb57e3
commit
cb29322968
2 changed files with 16 additions and 39 deletions
|
|
@ -17,7 +17,7 @@ namespace Dalamud.Game.Network;
|
||||||
/// This class handles interacting with game network events.
|
/// This class handles interacting with game network events.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ServiceManager.EarlyLoadedService]
|
[ServiceManager.EarlyLoadedService]
|
||||||
internal sealed unsafe class GameNetwork : IInternalDisposableService, IGameNetwork
|
internal sealed unsafe class GameNetwork : IInternalDisposableService
|
||||||
{
|
{
|
||||||
private readonly GameNetworkAddressResolver address;
|
private readonly GameNetworkAddressResolver address;
|
||||||
private readonly Hook<PacketDispatcher.Delegates.OnReceivePacket> processZonePacketDownHook;
|
private readonly Hook<PacketDispatcher.Delegates.OnReceivePacket> processZonePacketDownHook;
|
||||||
|
|
@ -51,11 +51,23 @@ internal sealed unsafe class GameNetwork : IInternalDisposableService, IGameNetw
|
||||||
this.processZonePacketUpHook.Enable();
|
this.processZonePacketUpHook.Enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The delegate type of a network message event.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dataPtr">The pointer to the raw data.</param>
|
||||||
|
/// <param name="opCode">The operation ID code.</param>
|
||||||
|
/// <param name="sourceActorId">The source actor ID.</param>
|
||||||
|
/// <param name="targetActorId">The taret actor ID.</param>
|
||||||
|
/// <param name="direction">The direction of the packed.</param>
|
||||||
|
public delegate void OnNetworkMessageDelegate(nint dataPtr, ushort opCode, uint sourceActorId, uint targetActorId, NetworkMessageDirection direction);
|
||||||
|
|
||||||
[UnmanagedFunctionPointer(CallingConvention.ThisCall)]
|
[UnmanagedFunctionPointer(CallingConvention.ThisCall)]
|
||||||
private delegate byte ProcessZonePacketUpDelegate(IntPtr a1, IntPtr dataPtr, IntPtr a3, byte a4);
|
private delegate byte ProcessZonePacketUpDelegate(IntPtr a1, IntPtr dataPtr, IntPtr a3, byte a4);
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <summary>
|
||||||
public event IGameNetwork.OnNetworkMessageDelegate? NetworkMessage;
|
/// Event that is called when a network message is sent/received.
|
||||||
|
/// </summary>
|
||||||
|
public event OnNetworkMessageDelegate? NetworkMessage;
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
void IInternalDisposableService.DisposeService()
|
void IInternalDisposableService.DisposeService()
|
||||||
|
|
@ -136,39 +148,3 @@ internal sealed unsafe class GameNetwork : IInternalDisposableService, IGameNetw
|
||||||
return this.processZonePacketUpHook.Original(a1, dataPtr, a3, a4);
|
return this.processZonePacketUpHook.Original(a1, dataPtr, a3, a4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Plugin-scoped version of a AddonLifecycle service.
|
|
||||||
/// </summary>
|
|
||||||
[PluginInterface]
|
|
||||||
[ServiceManager.ScopedService]
|
|
||||||
#pragma warning disable SA1015
|
|
||||||
[ResolveVia<IGameNetwork>]
|
|
||||||
#pragma warning restore SA1015
|
|
||||||
internal class GameNetworkPluginScoped : IInternalDisposableService, IGameNetwork
|
|
||||||
{
|
|
||||||
[ServiceManager.ServiceDependency]
|
|
||||||
private readonly GameNetwork gameNetworkService = Service<GameNetwork>.Get();
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the <see cref="GameNetworkPluginScoped"/> class.
|
|
||||||
/// </summary>
|
|
||||||
internal GameNetworkPluginScoped()
|
|
||||||
{
|
|
||||||
this.gameNetworkService.NetworkMessage += this.NetworkMessageForward;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc/>
|
|
||||||
public event IGameNetwork.OnNetworkMessageDelegate? NetworkMessage;
|
|
||||||
|
|
||||||
/// <inheritdoc/>
|
|
||||||
void IInternalDisposableService.DisposeService()
|
|
||||||
{
|
|
||||||
this.gameNetworkService.NetworkMessage -= this.NetworkMessageForward;
|
|
||||||
|
|
||||||
this.NetworkMessage = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void NetworkMessageForward(nint dataPtr, ushort opCode, uint sourceActorId, uint targetActorId, NetworkMessageDirection direction)
|
|
||||||
=> this.NetworkMessage?.Invoke(dataPtr, opCode, sourceActorId, targetActorId, direction);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ namespace Dalamud.Plugin.Services;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This class handles interacting with game network events.
|
/// This class handles interacting with game network events.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[Obsolete("Will be removed in a future release. Use packet handler hooks instead.", true)]
|
||||||
public interface IGameNetwork
|
public interface IGameNetwork
|
||||||
{
|
{
|
||||||
// TODO(v9): we shouldn't be passing pointers to the actual data here
|
// TODO(v9): we shouldn't be passing pointers to the actual data here
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue