private static void OnCharacterCreationSuccess(WorldClient client)
        {
            CharacterHandler.SendCharacterCreationResultMessage(client, CharacterCreationResultEnum.OK);
            BasicHandler.SendBasicNoOperationMessage(client);

            CharacterHandler.SendCharactersListMessage(client);
        }
        public static void HandleCharactersListRequestMessage(WorldClient client, CharactersListRequestMessage message)
        {
            if (client.Account != null && client.Account.Login != "")
            {
                CharacterRecord characterRecord = CharacterHandler.FindCharacterFightReconnection(client);
                if (characterRecord != null)
                {
                    var fight = Singleton <FightManager> .Instance.GetFight(characterRecord.LeftFightId.Value);

                    CharacterHandler.SendCharacterSelectedForceMessage(client, characterRecord);
                    CharacterHandler.CommonCharacterForceSelection(client, characterRecord, fight);
                }
                else
                {
                    CharacterHandler.SendCharactersListMessage(client);
                    if (client.WorldAccount != null && client.StartupActions.Count > 0)
                    {
                        StartupHandler.SendStartupActionsListMessage(client, client.StartupActions);
                    }
                }
            }
            else
            {
                client.Send(new IdentificationFailedMessage((sbyte)IdentificationFailureReasonEnum.UNKNOWN_AUTH_ERROR));
                client.DisconnectLater(1000);
            }
        }
        public static void HandleCharacterDeletionRequestMessage(WorldClient client, CharacterDeletionRequestMessage message)
        {
            if (!IPCAccessor.Instance.IsConnected)
            {
                client.Send(new CharacterDeletionErrorMessage(1));
                client.DisconnectLater(1000);
            }
            else
            {
                CharacterRecord characterRecord = client.Characters.Find((CharacterRecord entry) => entry.Id == message.characterId);
                if (characterRecord == null)
                {
                    client.Send(new CharacterDeletionErrorMessage(1));
                    client.DisconnectLater(1000);
                }
                else
                {
                    Stump.Server.WorldServer.Game.Guilds.GuildMember guildMember = Singleton <GuildManager> .Instance.TryGetGuildMember(characterRecord.Id);

                    if (guildMember != null && guildMember.IsBoss)
                    {
                        client.Send(new CharacterDeletionErrorMessage(1));
                        client.DisconnectLater(1000);
                    }
                    else
                    {
                        string secretAnswerHash = message.secretAnswerHash;
                        if (Singleton <ExperienceManager> .Instance.GetCharacterLevel(characterRecord.Experience) <= 20 || (client.Account.SecretAnswer != null && secretAnswerHash == (message.characterId + "~" + client.Account.SecretAnswer).GetMD5()))
                        {
                            if (client.Account.DeletedCharactersCount > CharacterHandler.MaxDayCharacterDeletion)
                            {
                                client.Send(new CharacterDeletionErrorMessage(2));
                            }
                            else
                            {
                                Singleton <CharacterManager> .Instance.DeleteCharacterOnAccount(characterRecord, client);

                                CharacterHandler.SendCharactersListMessage(client);
                                BasicHandler.SendBasicNoOperationMessage(client);
                            }
                        }
                        else
                        {
                            client.Send(new CharacterDeletionErrorMessage(3));
                        }
                    }
                }
            }
        }