using NetCoreServer; using Server.DB; using Wonderking.Packets.Incoming; using Wonderking.Packets.Outgoing; namespace Server.PacketHandlers; public class CharacterNameCheckHandler : IPacketHandler { private readonly WonderkingContext _wonderkingContext; public CharacterNameCheckHandler(WonderkingContext wonderkingContext) { _wonderkingContext = wonderkingContext; } public Task HandleAsync(CharacterNameCheckPacket packet, TcpSession session) { var isTaken = _wonderkingContext.Characters.Any(c => c.Name == packet.Name); var responsePacket = new CharacterNameCheckPacketResponse { IsTaken = isTaken }; if (session is AuthSession authSession) { return authSession.SendAsync(responsePacket); } return Task.CompletedTask; } }