server-master/srcs/_plugins/WingsEmu.Plugins.PacketHandling/GenericCharScreenPacketHandlerBase.cs
2026-02-10 18:21:30 +01:00

28 lines
No EOL
809 B
C#

// WingsEmu
//
// Developed by NosWings Team
using System.Threading.Tasks;
using WingsEmu.Game._packetHandling;
using WingsEmu.Game.Networking;
using WingsEmu.Packets;
namespace WingsEmu.Plugins.PacketHandling;
public abstract class GenericCharScreenPacketHandlerBase<T> : ICharacterScreenPacketHandler where T : IPacket
{
public async Task HandleAsync(IClientSession session, IPacket packet)
{
if (packet is T typedPacket && !session.HasSelectedCharacter)
{
await HandlePacketAsync(session, typedPacket);
}
}
public void Handle(IClientSession session, IPacket packet)
{
HandleAsync(session, packet).ConfigureAwait(false).GetAwaiter().GetResult();
}
protected abstract Task HandlePacketAsync(IClientSession session, T packet);
}