From cf3b86ff76cb0cc1a43088ea2a220ac55be88d6e Mon Sep 17 00:00:00 2001 From: hondacrx Date: Fri, 10 Jun 2022 13:47:17 -0400 Subject: [PATCH] Scripts/Commands: Convert title commands to new system Port From (https://github.com/TrinityCore/TrinityCore/commit/b1847b1fd9c94f05d786ffbef19ee68fc7e2921b) --- Source/Framework/Constants/AccountConst.cs | 4 +- Source/Game/Chat/Commands/TitleCommands.cs | 74 ++++++---------------- 2 files changed, 20 insertions(+), 58 deletions(-) diff --git a/Source/Framework/Constants/AccountConst.cs b/Source/Framework/Constants/AccountConst.cs index 3245c9498..193923118 100644 --- a/Source/Framework/Constants/AccountConst.cs +++ b/Source/Framework/Constants/AccountConst.cs @@ -636,11 +636,11 @@ namespace Framework.Constants CommandTicketUnassign = 758, // Deprecated Since Draenor Don'T Reuse CommandTicketViewid = 759, // Deprecated Since Draenor Don'T Reuse CommandTicketViewname = 760, // Deprecated Since Draenor Don'T Reuse - CommandTitles = 761, + // 761 previously used, do not reuse CommandTitlesAdd = 762, CommandTitlesCurrent = 763, CommandTitlesRemove = 764, - CommandTitlesSet = 765, + // 765 previously used, do not reuse CommandTitlesSetMask = 766, CommandWp = 767, CommandWpAdd = 768, diff --git a/Source/Game/Chat/Commands/TitleCommands.cs b/Source/Game/Chat/Commands/TitleCommands.cs index 30987c750..ef5655ba7 100644 --- a/Source/Game/Chat/Commands/TitleCommands.cs +++ b/Source/Game/Chat/Commands/TitleCommands.cs @@ -28,19 +28,8 @@ namespace Game.Chat.Commands class TitleCommands { [Command("current", RBACPermissions.CommandTitlesCurrent)] - static bool HandleTitlesCurrentCommand(CommandHandler handler, StringArguments args) + static bool HandleTitlesCurrentCommand(CommandHandler handler, uint titleId) { - // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r - string id_p = handler.ExtractKeyFromLink(args, "Htitle"); - if (string.IsNullOrEmpty(id_p)) - return false; - - if (!uint.TryParse(id_p, out uint id) || id == 0) - { - handler.SendSysMessage(CypherStrings.InvalidTitleId, id); - return false; - } - Player target = handler.GetSelectedPlayer(); if (!target) { @@ -52,36 +41,26 @@ namespace Game.Chat.Commands if (handler.HasLowerSecurity(target, ObjectGuid.Empty)) return false; - CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(id); + CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(titleId); if (titleInfo == null) { - handler.SendSysMessage(CypherStrings.InvalidTitleId, id); + handler.SendSysMessage(CypherStrings.InvalidTitleId, titleId); return false; } string tNameLink = handler.GetNameLink(target); + string titleNameStr = string.Format(target.GetNativeGender() == Gender.Male ? titleInfo.Name[handler.GetSessionDbcLocale()] : titleInfo.Name1[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); - target.SetTitle(titleInfo); // to be sure that title now known + target.SetTitle(titleInfo); target.SetChosenTitle(titleInfo.MaskID); - handler.SendSysMessage(CypherStrings.TitleCurrentRes, id, (target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()], tNameLink); + handler.SendSysMessage(CypherStrings.TitleCurrentRes, titleId, titleNameStr, tNameLink); return true; } [Command("add", RBACPermissions.CommandTitlesAdd)] - static bool HandleTitlesAddCommand(CommandHandler handler, StringArguments args) + static bool HandleTitlesAddCommand(CommandHandler handler, uint titleId) { - // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r - string id_p = handler.ExtractKeyFromLink(args, "Htitle"); - if (string.IsNullOrEmpty(id_p)) - return false; - - if (!uint.TryParse(id_p, out uint id) || id == 0) - { - handler.SendSysMessage(CypherStrings.InvalidTitleId, id); - return false; - } - Player target = handler.GetSelectedPlayer(); if (!target) { @@ -93,10 +72,10 @@ namespace Game.Chat.Commands if (handler.HasLowerSecurity(target, ObjectGuid.Empty)) return false; - CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(id); + CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(titleId); if (titleInfo == null) { - handler.SendSysMessage(CypherStrings.InvalidTitleId, id); + handler.SendSysMessage(CypherStrings.InvalidTitleId, titleId); return false; } @@ -105,25 +84,14 @@ namespace Game.Chat.Commands string titleNameStr = string.Format((target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); target.SetTitle(titleInfo); - handler.SendSysMessage(CypherStrings.TitleAddRes, id, titleNameStr, tNameLink); + handler.SendSysMessage(CypherStrings.TitleAddRes, titleId, titleNameStr, tNameLink); return true; } [Command("remove", RBACPermissions.CommandTitlesRemove)] - static bool HandleTitlesRemoveCommand(CommandHandler handler, StringArguments args) + static bool HandleTitlesRemoveCommand(CommandHandler handler, uint titleId) { - // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r - string id_p = handler.ExtractKeyFromLink(args, "Htitle"); - if (string.IsNullOrEmpty(id_p)) - return false; - - if (!uint.TryParse(id_p, out uint id) || id == 0) - { - handler.SendSysMessage(CypherStrings.InvalidTitleId, id); - return false; - } - Player target = handler.GetSelectedPlayer(); if (!target) { @@ -135,20 +103,19 @@ namespace Game.Chat.Commands if (handler.HasLowerSecurity(target, ObjectGuid.Empty)) return false; - CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(id); + CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(titleId); if (titleInfo == null) { - handler.SendSysMessage(CypherStrings.InvalidTitleId, id); + handler.SendSysMessage(CypherStrings.InvalidTitleId, titleId); return false; } target.SetTitle(titleInfo, true); string tNameLink = handler.GetNameLink(target); - string titleNameStr = string.Format((target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); - handler.SendSysMessage(CypherStrings.TitleRemoveRes, id, titleNameStr, tNameLink); + handler.SendSysMessage(CypherStrings.TitleRemoveRes, titleId, titleNameStr, tNameLink); if (!target.HasTitle(target.m_playerData.PlayerTitle)) { @@ -164,13 +131,8 @@ namespace Game.Chat.Commands { //Edit Player KnownTitles [Command("mask", RBACPermissions.CommandTitlesSetMask)] - static bool HandleTitlesSetMaskCommand(CommandHandler handler, StringArguments args) + static bool HandleTitlesSetMaskCommand(CommandHandler handler, ulong mask) { - if (args.Empty()) - return false; - - ulong titles = args.NextUInt64(); - Player target = handler.GetSelectedPlayer(); if (!target) { @@ -182,14 +144,14 @@ namespace Game.Chat.Commands if (handler.HasLowerSecurity(target, ObjectGuid.Empty)) return false; - ulong titles2 = titles; + ulong titles2 = mask; foreach (CharTitlesRecord tEntry in CliDB.CharTitlesStorage.Values) titles2 &= ~(1ul << tEntry.MaskID); - titles &= ~titles2; // remove not existed titles + mask &= ~titles2; // remove not existed titles - target.SetKnownTitles(0, titles); + target.SetKnownTitles(0, mask); handler.SendSysMessage(CypherStrings.Done); if (!target.HasTitle(target.m_playerData.PlayerTitle))