Ejemplo n.º 1
0
        static bool HandleGroupJoinCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            Player     playerSource = null;
            Player     playerTarget = null;
            Group      groupSource  = null;
            Group      groupTarget  = null;
            ObjectGuid guidSource   = ObjectGuid.Empty;
            ObjectGuid guidTarget   = ObjectGuid.Empty;
            string     nameplgrStr  = args.NextString();
            string     nameplStr    = args.NextString();

            if (!handler.GetPlayerGroupAndGUIDByName(nameplgrStr, out playerSource, out groupSource, out guidSource, true))
            {
                return(false);
            }

            if (!groupSource)
            {
                handler.SendSysMessage(CypherStrings.GroupNotInGroup, playerSource.GetName());
                return(false);
            }

            if (!handler.GetPlayerGroupAndGUIDByName(nameplStr, out playerTarget, out groupTarget, out guidTarget, true))
            {
                return(false);
            }

            if (groupTarget || playerTarget.GetGroup() == groupSource)
            {
                handler.SendSysMessage(CypherStrings.GroupAlreadyInGroup, playerTarget.GetName());
                return(false);
            }

            if (groupSource.IsFull())
            {
                handler.SendSysMessage(CypherStrings.GroupFull);
                return(false);
            }

            groupSource.AddMember(playerTarget);
            groupSource.BroadcastGroupUpdate();
            handler.SendSysMessage(CypherStrings.GroupPlayerJoined, playerTarget.GetName(), playerSource.GetName());
            return(true);
        }
Ejemplo n.º 2
0
        static bool HandleGroupLeaderCommand(StringArguments args, CommandHandler handler)
        {
            Player     player  = null;
            Group      group   = null;
            ObjectGuid guid    = ObjectGuid.Empty;
            string     nameStr = args.NextString();

            if (!handler.GetPlayerGroupAndGUIDByName(nameStr, out player, out group, out guid))
            {
                return(false);
            }

            if (!group)
            {
                handler.SendSysMessage(CypherStrings.GroupNotInGroup, player.GetName());
                return(false);
            }

            if (group.GetLeaderGUID() != guid)
            {
                group.ChangeLeader(guid);
                group.SendUpdate();
            }

            return(true);
        }
Ejemplo n.º 3
0
        static bool HandleGroupDisbandCommand(StringArguments args, CommandHandler handler)
        {
            Player player;
            Group  group;
            string nameStr = args.NextString();

            if (!handler.GetPlayerGroupAndGUIDByName(nameStr, out player, out group, out _))
            {
                return(false);
            }

            if (!group)
            {
                handler.SendSysMessage(CypherStrings.GroupNotInGroup, player.GetName());
                return(false);
            }

            group.Disband();
            return(true);
        }
Ejemplo n.º 4
0
            static bool GroupFlagCommand(StringArguments args, CommandHandler handler, GroupMemberFlags flag, string what)
            {
                Player     player;
                Group      group;
                ObjectGuid guid;

                if (!handler.GetPlayerGroupAndGUIDByName(args.NextString(), out player, out group, out guid))
                {
                    return(false);
                }

                if (!group)
                {
                    handler.SendSysMessage(CypherStrings.NotInGroup, player.GetName());
                    return(false);
                }

                if (!group.IsRaidGroup())
                {
                    handler.SendSysMessage(CypherStrings.NotInRaidGroup, player.GetName());
                    return(false);
                }

                if (flag == GroupMemberFlags.Assistant && group.IsLeader(guid))
                {
                    handler.SendSysMessage(CypherStrings.LeaderCannotBeAssistant, player.GetName());
                    return(false);
                }

                if (group.GetMemberFlags(guid).HasAnyFlag(flag))
                {
                    group.SetGroupMemberFlag(guid, false, flag);
                    handler.SendSysMessage(CypherStrings.GroupRoleChanged, player.GetName(), "no longer", what);
                }
                else
                {
                    group.SetGroupMemberFlag(guid, true, flag);
                    handler.SendSysMessage(CypherStrings.GroupRoleChanged, player.GetName(), "now", what);
                }
                return(true);
            }
Ejemplo n.º 5
0
        static bool HandleGroupRemoveCommand(StringArguments args, CommandHandler handler)
        {
            Player     player;
            Group      group;
            ObjectGuid guid;
            string     nameStr = args.NextString();

            if (!handler.GetPlayerGroupAndGUIDByName(nameStr, out player, out group, out guid))
            {
                return(false);
            }

            if (!group)
            {
                handler.SendSysMessage(CypherStrings.GroupNotInGroup, player.GetName());
                return(false);
            }

            group.RemoveMember(guid);
            return(true);
        }