示例#1
0
        private static void HandleInvite(GameSession session, PacketReader packet)
        {
            string targetPlayer = packet.ReadUnicodeString();

            Guild guild = GameServer.GuildManager.GetGuildByLeader(session.Player);

            if (guild == null)
            {
                return;
            }

            Player playerInvited = GameServer.Storage.GetPlayerByName(targetPlayer);

            if (playerInvited == null)
            {
                session.Send(GuildPacket.ErrorNotice((byte)GuildErrorNotice.UnableToSendInvite));
            }

            if (playerInvited.Guild != null)
            {
                session.Send(GuildPacket.ErrorNotice((byte)GuildErrorNotice.CharacterIsAlreadyInAGuild));
                return;
            }

            if (guild.Members.Count >= guild.Capacity)
            {
                //TODO Plug in 'full guild' error packets
                return;
            }

            session.Send(GuildPacket.InviteConfirm(playerInvited));
            playerInvited.Session.Send(GuildPacket.SendInvite(session.Player, playerInvited, guild));
        }