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); }
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); }
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); }
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); }
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); }