public void Enter(Character character, Command replyCommand) { Logger.Info("[Zone Enter] start request. character:" + character.Id + " reply:" + replyCommand); try { if (this.TryGetPlayer(character, out Player player)) { Logger.Info("[Zone Enter] player on zone. player: " + player.Eid + " character:" + character.Id + " reply:" + replyCommand); EnterQueueService.SendReplyCommand(character, player, replyCommand); return; } if (replyCommand == Commands.TeleportUse) { EnterQueueService.LoadPlayerAndSendReply(character, replyCommand); return; } EnterQueueService.EnqueuePlayer(character, replyCommand); } finally { Logger.Info("[Zone Enter] end request. character:" + character.Id + " reply:" + replyCommand); } }
private void OnCharacterDeselected(ISession session, Character character) { EnterQueueService.RemovePlayer(character); var zoneSession = GetSessionByCharacter(character); zoneSession?.Disconnect(); }