public async Task Handle(WorldClient client, GuildDismantlePacket packet)
        {
            if (!_guildManager.HasGuild || _guildManager.GuildRank != 1)
            {
                return;
            }

            var ok = await _guildManager.TryDeleteGuild();

            if (!ok)
            {
                return;
            }

            foreach (var player in _gameWorld.Players.Values.ToList())
            {
                _packetFactory.SendGuildListRemove(player.GameSession.Client, _guildManager.GuildId);
            }

            foreach (var member in _guildManager.GuildMembers.ToList())
            {
                if (!_gameWorld.Players.ContainsKey(member.Id))
                {
                    continue;
                }

                var guildPlayer = _gameWorld.Players[member.Id];
                await guildPlayer.GuildManager.Clear();

                _packetFactory.SendGuildDismantle(guildPlayer.GameSession.Client);
            }
        }