- Add new commands .group set assistant, .group set maintank and .group set mainassist to toggle raid member flags.
Port From (https://github.com/TrinityCore/TrinityCore/commit/17a0139b0e121b0d8d0f2a079fcfd49090ea35a4)
This commit is contained in:
@@ -766,10 +766,10 @@ namespace Framework.Constants
|
|||||||
CommandGobjectSpawngroup = 858, // Reserved For DynamicSpawning
|
CommandGobjectSpawngroup = 858, // Reserved For DynamicSpawning
|
||||||
CommandGobjectDespawngroup = 859, // Reserved For DynamicSpawning
|
CommandGobjectDespawngroup = 859, // Reserved For DynamicSpawning
|
||||||
CommandListRespawns = 860, // Reserved For DynamicSpawning
|
CommandListRespawns = 860, // Reserved For DynamicSpawning
|
||||||
CommandGroupSet = 861, // Reserved
|
CommandGroupSet = 861,
|
||||||
CommandGroupAssistant = 862, // Reserved
|
CommandGroupAssistant = 862,
|
||||||
CommandGroupMaintank = 863, // Reserved
|
CommandGroupMaintank = 863,
|
||||||
CommandGroupMainassist = 864, // Reserved
|
CommandGroupMainassist = 864,
|
||||||
CommandNpcShowloot = 865, // Reserved
|
CommandNpcShowloot = 865, // Reserved
|
||||||
CommandListSpawnpoints = 866, // Reserved
|
CommandListSpawnpoints = 866, // Reserved
|
||||||
CommandReloadQuestGreetingLocale = 867, // Reserved
|
CommandReloadQuestGreetingLocale = 867, // Reserved
|
||||||
|
|||||||
@@ -954,7 +954,10 @@ namespace Framework.Constants
|
|||||||
DisallowTicketsConfig = 1190,
|
DisallowTicketsConfig = 1190,
|
||||||
BanExists = 1191,
|
BanExists = 1191,
|
||||||
ChangeAccountSuccess = 1192,
|
ChangeAccountSuccess = 1192,
|
||||||
// Room For More Level 3 1193-1198 Not Used
|
NotInRaidGroup = 1193,
|
||||||
|
GroupRoleChanged = 1194,
|
||||||
|
LeaderCannotBeAssistant = 1195,
|
||||||
|
// Room for more level 3 1196-1198 not used
|
||||||
|
|
||||||
// Debug Commands
|
// Debug Commands
|
||||||
DebugAreatriggerLeft = 1999,
|
DebugAreatriggerLeft = 1999,
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
Player gmPlayer = handler.GetSession().GetPlayer();
|
Player gmPlayer = handler.GetSession().GetPlayer();
|
||||||
Group gmGroup = gmPlayer.GetGroup();
|
|
||||||
Map gmMap = gmPlayer.GetMap();
|
Map gmMap = gmPlayer.GetMap();
|
||||||
bool toInstance = gmMap.Instanceable();
|
bool toInstance = gmMap.Instanceable();
|
||||||
bool onlyLocalSummon = false;
|
bool onlyLocalSummon = false;
|
||||||
@@ -133,9 +132,8 @@ namespace Game.Chat
|
|||||||
Player player;
|
Player player;
|
||||||
Group group;
|
Group group;
|
||||||
ObjectGuid guid;
|
ObjectGuid guid;
|
||||||
string nameStr = args.NextString();
|
|
||||||
|
|
||||||
if (!handler.GetPlayerGroupAndGUIDByName(nameStr, out player, out group, out guid))
|
if (!handler.GetPlayerGroupAndGUIDByName(args.NextString(), out player, out group, out guid))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!group)
|
if (!group)
|
||||||
@@ -348,5 +346,73 @@ namespace Game.Chat
|
|||||||
// And finish after every iterator is done.
|
// And finish after every iterator is done.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CommandGroup("set", RBACPermissions.CommandGroupSet)]
|
||||||
|
class GroupSetCommands
|
||||||
|
{
|
||||||
|
[Command("assistant", RBACPermissions.CommandGroupAssistant)]
|
||||||
|
static bool HandleGroupSetAssistantCommand(StringArguments args, CommandHandler handler)
|
||||||
|
{
|
||||||
|
return GroupFlagCommand(args, handler, GroupMemberFlags.Assistant, "Assistant");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Command("leader", RBACPermissions.CommandGroupLeader)]
|
||||||
|
static bool HandleGroupSetLeaderCommand(StringArguments args, CommandHandler handler)
|
||||||
|
{
|
||||||
|
return HandleGroupLeaderCommand(args, handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Command("mainassist", RBACPermissions.CommandGroupMainassist)]
|
||||||
|
static bool HandleGroupSetMainAssistCommand(StringArguments args, CommandHandler handler)
|
||||||
|
{
|
||||||
|
return GroupFlagCommand(args, handler, GroupMemberFlags.MainAssist, "Main Assist");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Command("maintank", RBACPermissions.CommandGroupMaintank)]
|
||||||
|
static bool HandleGroupSetMainTankCommand(StringArguments args, CommandHandler handler)
|
||||||
|
{
|
||||||
|
return GroupFlagCommand(args, handler, GroupMemberFlags.MainTank, "Main Tank");
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2387,6 +2387,11 @@ namespace Game.Groups
|
|||||||
return GetLeaderGUID() == guid;
|
return GetLeaderGUID() == guid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsAssistant(ObjectGuid guid)
|
||||||
|
{
|
||||||
|
return GetMemberFlags(guid).HasAnyFlag(GroupMemberFlags.Assistant);
|
||||||
|
}
|
||||||
|
|
||||||
public ObjectGuid GetMemberGUID(string name)
|
public ObjectGuid GetMemberGUID(string name)
|
||||||
{
|
{
|
||||||
foreach (var member in m_memberSlots)
|
foreach (var member in m_memberSlots)
|
||||||
@@ -2395,12 +2400,13 @@ namespace Game.Groups
|
|||||||
return ObjectGuid.Empty;
|
return ObjectGuid.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsAssistant(ObjectGuid guid)
|
public GroupMemberFlags GetMemberFlags(ObjectGuid guid)
|
||||||
{
|
{
|
||||||
var mslot = _getMemberSlot(guid);
|
var mslot = _getMemberSlot(guid);
|
||||||
if (mslot == null)
|
if (mslot == null)
|
||||||
return false;
|
return 0;
|
||||||
return mslot.flags.HasAnyFlag(GroupMemberFlags.Assistant);
|
|
||||||
|
return mslot.flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SameSubGroup(ObjectGuid guid1, ObjectGuid guid2)
|
public bool SameSubGroup(ObjectGuid guid1, ObjectGuid guid2)
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
--
|
||||||
|
DELETE FROM `trinity_string` WHERE `entry` IN (1185,1186,1187);
|
||||||
|
INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
|
||||||
|
(1193, '%s is not in a raid group!'),
|
||||||
|
(1194, '%s %s has raid role \'%s\'.'),
|
||||||
|
(1195, 'The raid leader cannot be set as an assistant!');
|
||||||
|
|
||||||
|
DELETE FROM `command` WHERE `name` LIKE 'group set%';
|
||||||
|
INSERT INTO `command` (`name`,`permission`,`help`) VALUES
|
||||||
|
('group set leader', 473, "Syntax: .group set leader [$characterName]
|
||||||
|
|
||||||
|
Sets the given character (or selected) as his group's leader. Alias for '.group leader'."),
|
||||||
|
('group set assistant', 862, "Syntax: .group set assistant [$characterName]
|
||||||
|
|
||||||
|
Toggles the given character's assistant state in his raid group."),
|
||||||
|
('group set maintank', 863, "Syntax: .group set maintank [$characterName]
|
||||||
|
|
||||||
|
Toggles the given character's main tank flag in his raid group."),
|
||||||
|
('group set mainassist', 864, "Syntax: .group set mainassist [$characterName]
|
||||||
|
|
||||||
|
Toggles the given character's main assist flag in his raid group.");
|
||||||
Reference in New Issue
Block a user