protected override async Task Process(WorldSession session, Select packet) { if (session.Account is null) { await session.Disconnect(); return; } var character = await characterRepository.GetCharacterInSlot(session.Account.Id, packet.Slot); if (character is null) { await session.Disconnect(); return; } session.Character = new Character(session) { Id = character.Id, Name = character.Name, Job = character.Job, HairColor = character.HairColor, HairStyle = character.HairStyle, Gender = character.Gender, Level = character.Level, JobLevel = character.JobLevel, HeroLevel = character.HeroLevel, Experience = character.Experience, JobExperience = character.JobExperience, HeroExperience = character.HeroExperience, Direction = character.Direction, Position = new Position { X = character.X, Y = character.Y }, Hp = character.Hp, Mp = character.Mp, MaxHp = 300, MaxMp = 150, Reputation = character.Reputation, Dignity = character.Dignity, Speed = 10, ReputationIcon = await reputationService.GetIcon(character.Reputation), Map = await mapManager.GetMap(character.MapId) }; await session.SendPacket(new Ok()); }