From 4a0ed7a31ecc44c02947ead5c0d5921e3e0bccca Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 9 Jun 2022 22:47:59 -0400 Subject: [PATCH] Group level up Port From (https://github.com/TrinityCore/TrinityCore/commit/77d320b9fc881f196789bfb99ef539c95311ad55) --- Source/Game/Chat/Commands/GroupCommands.cs | 50 +++++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/Source/Game/Chat/Commands/GroupCommands.cs b/Source/Game/Chat/Commands/GroupCommands.cs index cab8134a7..151c3efd3 100644 --- a/Source/Game/Chat/Commands/GroupCommands.cs +++ b/Source/Game/Chat/Commands/GroupCommands.cs @@ -119,6 +119,52 @@ namespace Game.Chat return true; } + [Command("level", RBACPermissions.CommandCharacterLevel, true)] + static bool HandleGroupLevelCommand(CommandHandler handler, string playerName, short level) + { + if (level < 1) + return false; + + var player = PlayerIdentifier.ParseFromString(playerName); + if (player == null) + player = PlayerIdentifier.FromTargetOrSelf(handler); + if (player == null) + return false; + + Player target = player.GetConnectedPlayer(); + if (target == null) + return false; + + Group groupTarget = target.GetGroup(); + if (groupTarget == null) + return false; + + for (GroupReference it = groupTarget.GetFirstMember(); it != null; it = it.Next()) + { + target = it.GetSource(); + if (target != null) + { + uint oldlevel = target.GetLevel(); + + if (level != oldlevel) + { + target.SetLevel((uint)level); + target.InitTalentForLevel(); + target.SetXP(0); + } + + if (handler.NeedReportToTarget(target)) + { + if (oldlevel < level) + target.SendSysMessage(CypherStrings.YoursLevelUp, handler.GetNameLink(), level); + else // if (oldlevel > newlevel) + target.SendSysMessage(CypherStrings.YoursLevelDown, handler.GetNameLink(), level); + } + } + } + return true; + } + [Command("list", RBACPermissions.CommandGroupList)] static bool HandleGroupListCommand(CommandHandler handler, StringArguments args) { @@ -252,7 +298,7 @@ namespace Game.Chat return true; } - [Command("revive", RBACPermissions.CommandRevive)] + [Command("revive", RBACPermissions.CommandRevive, true)] static bool HandleGroupReviveCommand(CommandHandler handler, StringArguments args) { Player playerTarget; @@ -264,7 +310,7 @@ namespace Game.Chat if (groupTarget == null) return false; - for (GroupReference it = groupTarget.GetFirstMember(); it != null; it = i.Next()) + for (GroupReference it = groupTarget.GetFirstMember(); it != null; it = it.Next()) { Player target = it.GetSource(); if (target)