From e9eed31d90681d766ce62251e99eb5b87baabf8a Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 20 Jan 2022 10:02:10 -0500 Subject: [PATCH] Ok really add the new command stuff. --- Source/Framework/IO/StringArguments.cs | 22 + Source/Game/Chat/CommandArgs.cs | 136 ++++ Source/Game/Chat/CommandHandler.cs | 7 +- Source/Game/Chat/CommandManager.cs | 166 ++-- Source/Game/Chat/Commands/AccountCommands.cs | 368 +++------ .../Game/Chat/Commands/AchievementCommands.cs | 44 + Source/Game/Chat/Commands/AhBotCommands.cs | 34 +- Source/Game/Chat/Commands/ArenaCommands.cs | 12 +- .../Game/Chat/Commands/BNetAccountCommands.cs | 18 +- Source/Game/Chat/Commands/BanCommands.cs | 28 +- .../Game/Chat/Commands/BattleFieldCommands.cs | 10 +- Source/Game/Chat/Commands/CastCommands.cs | 12 +- .../Game/Chat/Commands/CharacterCommands.cs | 32 +- Source/Game/Chat/Commands/CheatCommands.cs | 16 +- Source/Game/Chat/Commands/DebugCommands.cs | 90 +-- Source/Game/Chat/Commands/DeserterCommands.cs | 8 +- Source/Game/Chat/Commands/DisableCommands.cs | 32 +- Source/Game/Chat/Commands/EventCommands.cs | 8 +- Source/Game/Chat/Commands/GMCommands.cs | 12 +- .../Game/Chat/Commands/GameObjectCommands.cs | 26 +- Source/Game/Chat/Commands/GoCommands.cs | 464 ++++------- Source/Game/Chat/Commands/GroupCommands.cs | 22 +- Source/Game/Chat/Commands/GuildCommands.cs | 14 +- Source/Game/Chat/Commands/HonorCommands.cs | 6 +- Source/Game/Chat/Commands/InstanceCommands.cs | 12 +- Source/Game/Chat/Commands/LFGCommands.cs | 10 +- Source/Game/Chat/Commands/LearnCommands.cs | 26 +- Source/Game/Chat/Commands/ListCommands.cs | 16 +- Source/Game/Chat/Commands/LookupCommands.cs | 36 +- Source/Game/Chat/Commands/MMapsCommands.cs | 10 +- Source/Game/Chat/Commands/MessageCommands.cs | 16 +- Source/Game/Chat/Commands/MiscCommands.cs | 120 ++- Source/Game/Chat/Commands/ModifyCommands.cs | 58 +- Source/Game/Chat/Commands/NPCCommands.cs | 70 +- Source/Game/Chat/Commands/PetCommands.cs | 8 +- Source/Game/Chat/Commands/QuestCommands.cs | 8 +- Source/Game/Chat/Commands/RbacCommands.cs | 10 +- Source/Game/Chat/Commands/ReloadCommand.cs | 334 ++++---- Source/Game/Chat/Commands/ResetCommands.cs | 14 +- Source/Game/Chat/Commands/SceneCommands.cs | 8 +- Source/Game/Chat/Commands/SendCommands.cs | 8 +- Source/Game/Chat/Commands/ServerCommands.cs | 40 +- Source/Game/Chat/Commands/SpellCommands.cs | 8 +- Source/Game/Chat/Commands/TeleCommands.cs | 40 +- Source/Game/Chat/Commands/TicketCommands.cs | 130 +-- Source/Game/Chat/Commands/TitleCommands.cs | 8 +- Source/Game/Chat/Commands/WPCommands.cs | 14 +- Source/Game/Chat/Hyperlink.cs | 221 +++++ Source/Game/Chat/HyperlinkData.cs | 168 ++++ Source/Game/Chat/HyperlinkTags.cs | 189 +++++ Source/Game/Chat/Hyperlinks.cs | 764 ++++++++++++++++++ 51 files changed, 2550 insertions(+), 1383 deletions(-) create mode 100644 Source/Game/Chat/CommandArgs.cs create mode 100644 Source/Game/Chat/Commands/AchievementCommands.cs create mode 100644 Source/Game/Chat/Hyperlink.cs create mode 100644 Source/Game/Chat/HyperlinkData.cs create mode 100644 Source/Game/Chat/HyperlinkTags.cs create mode 100644 Source/Game/Chat/Hyperlinks.cs diff --git a/Source/Framework/IO/StringArguments.cs b/Source/Framework/IO/StringArguments.cs index 7d1b80a69..833ea2738 100644 --- a/Source/Framework/IO/StringArguments.cs +++ b/Source/Framework/IO/StringArguments.cs @@ -29,6 +29,13 @@ namespace Framework.IO activeposition = -1; } + public StringArguments(StringArguments args) + { + activestring = args.activestring; + activeposition = args.activeposition; + Current = args.Current; + } + public bool Empty() { return activestring.IsEmpty(); @@ -227,6 +234,21 @@ namespace Framework.IO Current = null; } + public bool IsAtEnd() + { + return activeposition == activestring.Length; + } + + public int GetCurrentPosition() + { + return activeposition; + } + + public void SetCurrentPosition(int currentPosition) + { + activeposition = currentPosition; + } + bool MoveNext(string delimiters) { //the stringtotokenize was never set: diff --git a/Source/Game/Chat/CommandArgs.cs b/Source/Game/Chat/CommandArgs.cs new file mode 100644 index 000000000..7b76ac710 --- /dev/null +++ b/Source/Game/Chat/CommandArgs.cs @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2012-2020 CypherCore + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using Framework.Constants; +using Framework.IO; +using Game.DataStorage; +using Game.Spells; +using System; +using System.Collections.Generic; + +namespace Game.Chat +{ + class CommandArgs + { + public static object[] Parse(Type[] parameterTypes, StringArguments args) + { + List arguments = new(); + //for each arg we need to see if its a: + //1: hyperlink + //2: Optional arg + //3: reg arg. + int index = 1; + while (index < parameterTypes.Length) + { + int oldPos = args.GetCurrentPosition(); + + //Is this a hyperlink? + if (Hyperlink.TryConsume(out dynamic value, parameterTypes[index], args) || ParseArgument(out value, parameterTypes[index], args)) + index++; + + if (args.IsAtEnd() && index < parameterTypes.Length) + { + //We found a optional arg and we dont have the correct amount of args + args.SetCurrentPosition(oldPos); + arguments.Add(default); + } + else + arguments.Add(value); + + } + + return arguments.ToArray(); + } + + public static bool ParseArgument(out dynamic value, Type type, StringArguments args) + { + value = default; + + if (args.IsAtEnd()) + return false; + + if (Hyperlink.TryConsume(out value, type, args)) + return value; + + switch (Type.GetTypeCode(type)) + { + case TypeCode.SByte: + value = args.NextSByte(); + break; + case TypeCode.Int16: + value = args.NextInt16(); + break; + case TypeCode.Int32: + value = args.NextInt32(); + break; + case TypeCode.Int64: + value = args.NextInt64(); + break; + case TypeCode.Byte: + value = args.NextByte(); + break; + case TypeCode.UInt16: + value = args.NextUInt16(); + break; + case TypeCode.UInt32: + value = args.NextUInt32(); + break; + case TypeCode.UInt64: + value = args.NextUInt64(); + break; + case TypeCode.Single: + value = args.NextSingle(); + break; + case TypeCode.String: + value = args.NextString(); + break; + case TypeCode.Boolean: + value = args.NextBoolean(); + break; + case TypeCode.Char: + value = args.NextChar(); + break; + case TypeCode.Object: + if (type.IsGenericType) + type = type.GenericTypeArguments[0].UnderlyingSystemType; + + switch (type.Name) + { + case nameof(AchievementRecord): + value = CliDB.AchievementStorage.LookupByKey(args.NextUInt32()); + break; + case nameof(CurrencyTypesRecord): + value = CliDB.CurrencyTypesStorage.LookupByKey(args.NextUInt32()); + break; + case nameof(GameTele): + value = Global.ObjectMgr.GetGameTele(args.NextString()); + break; + case nameof(SpellInfo): + value = Global.SpellMgr.GetSpellInfo(args.NextUInt32(), Difficulty.None); + break; + default: + return false; + } + + return true; + default: + return false; + } + return true; + } + } +} diff --git a/Source/Game/Chat/CommandHandler.cs b/Source/Game/Chat/CommandHandler.cs index 3533efa3d..9b8eafbab 100644 --- a/Source/Game/Chat/CommandHandler.cs +++ b/Source/Game/Chat/CommandHandler.cs @@ -78,9 +78,6 @@ namespace Game.Chat foreach (var command in table) { - //if (!command.Name.Equals(cmd)) - //continue; - if (!HasStringAbbr(command.Name, cmd)) continue; @@ -122,11 +119,11 @@ namespace Game.Chat } // must be available and have handler - if (command.Handler == null || !IsAvailable(command)) + if (!command.HasHandler() || !IsAvailable(command)) continue; _sentErrorMessage = false; - if (command.Handler(new StringArguments(!command.Name.IsEmpty() ? args.NextString("") : text), this)) + if (command.Invoke(this, new StringArguments(!command.Name.IsEmpty() ? args.NextString("") : text))) { if (GetSession() == null) // ignore console return true; diff --git a/Source/Game/Chat/CommandManager.cs b/Source/Game/Chat/CommandManager.cs index 9cff368b7..d6cb30069 100644 --- a/Source/Game/Chat/CommandManager.cs +++ b/Source/Game/Chat/CommandManager.cs @@ -30,45 +30,70 @@ namespace Game.Chat { static CommandManager() { - try + foreach (var type in Assembly.GetExecutingAssembly().GetTypes()) { - foreach (var type in Assembly.GetExecutingAssembly().GetTypes()) + if (type.Attributes.HasAnyFlag(TypeAttributes.NestedPrivate | TypeAttributes.NestedPublic)) + continue; + + var groupAttribute = type.GetCustomAttribute(true); + if (groupAttribute != null) + { + ChatCommand command = new(groupAttribute); + BuildChildCommandsForCommand(command, type); + _commands.Add(groupAttribute.Name, command); + } + else { - if (type.Attributes.HasAnyFlag(TypeAttributes.NestedPrivate)) - continue; - - var groupAttribute = type.GetCustomAttribute(true); - if (groupAttribute != null) - { - _commands.Add(groupAttribute.Name, new ChatCommand(type, groupAttribute)); - } - foreach (var method in type.GetMethods(BindingFlags.Static | BindingFlags.NonPublic)) { var commandAttribute = method.GetCustomAttribute(true); if (commandAttribute != null) - _commands.Add(commandAttribute.Name, new ChatCommand(commandAttribute, (HandleCommandDelegate)method.CreateDelegate(typeof(HandleCommandDelegate)))); + _commands.Add(commandAttribute.Name, new ChatCommand(commandAttribute, method)); } } + } - PreparedStatement stmt = DB.World.GetPreparedStatement(WorldStatements.SEL_COMMANDS); - SQLResult result = DB.World.Query(stmt); - if (!result.IsEmpty()) - { - do - { - string name = result.Read(0); - SetDataForCommandInTable(GetCommands(), name, result.Read(1), result.Read(2), name); - } - while (result.NextRow()); - } - } - catch (Exception ex) + PreparedStatement stmt = DB.World.GetPreparedStatement(WorldStatements.SEL_COMMANDS); + SQLResult result = DB.World.Query(stmt); + if (!result.IsEmpty()) { - Log.outException(ex); + do + { + string name = result.Read(0); + SetDataForCommandInTable(GetCommands(), name, result.Read(1), result.Read(2), name); + } + while (result.NextRow()); } } + static void BuildChildCommandsForCommand(ChatCommand command, Type type) + { + foreach (var nestedType in type.GetNestedTypes(BindingFlags.NonPublic)) + { + var groupAttribute = nestedType.GetCustomAttribute(true); + if (groupAttribute == null) + continue; + + ChatCommand childCommand = new(groupAttribute); + BuildChildCommandsForCommand(childCommand, nestedType); + command.AddChildCommand(childCommand); + } + + foreach (var method in type.GetMethods(BindingFlags.Static | BindingFlags.NonPublic)) + { + CommandAttribute commandAttribute = method.GetCustomAttribute(false); + if (commandAttribute == null) + continue; + + if (commandAttribute.GetType() == typeof(CommandNonGroupAttribute)) + continue; + + command.AddChildCommand(new ChatCommand(commandAttribute, method)); + } + + command.SortChildCommands(); + } + static bool SetDataForCommandInTable(ICollection table, string text, uint permission, string help, string fullcommand) { StringArguments args = new(text); @@ -143,55 +168,60 @@ namespace Game.Chat static SortedDictionary _commands = new(); } - public delegate bool HandleCommandDelegate(StringArguments args, CommandHandler handler); + public delegate bool HandleCommandDelegate(CommandHandler handler, StringArguments args); public class ChatCommand { - public ChatCommand(CommandAttribute attribute, HandleCommandDelegate handler) - { - Name = attribute.Name; - Permission = attribute.RBAC; - AllowConsole = attribute.AllowConsole; - Handler = handler; - Help = attribute.Help; - } - - public ChatCommand(Type type, CommandAttribute attribute) - { - Name = attribute.Name; - Permission = attribute.RBAC; - AllowConsole = attribute.AllowConsole; - Help = attribute.Help; - - foreach (var method in type.GetMethods(BindingFlags.Static | BindingFlags.NonPublic)) - { - CommandAttribute commandAttribute = method.GetCustomAttribute(false); - if (commandAttribute == null) - continue; - - if (commandAttribute.GetType() == typeof(CommandNonGroupAttribute)) - continue; - - ChildCommands.Add(new ChatCommand(commandAttribute, (HandleCommandDelegate)method.CreateDelegate(typeof(HandleCommandDelegate)))); - } - - foreach (var nestedType in type.GetNestedTypes(BindingFlags.NonPublic)) - { - var groupAttribute = nestedType.GetCustomAttribute(true); - if (groupAttribute == null) - continue; - - ChildCommands.Add(new ChatCommand(nestedType, groupAttribute)); - } - - ChildCommands = ChildCommands.OrderBy(p => string.IsNullOrEmpty(p.Name)).ThenBy(p => p.Name).ToList(); - } - public string Name; public RBACPermissions Permission; public bool AllowConsole; - public HandleCommandDelegate Handler; public string Help; public List ChildCommands = new(); + + MethodInfo _methodInfo; + Type[] parameterTypes; + + public ChatCommand(CommandAttribute attribute) + { + Name = attribute.Name; + Permission = attribute.RBAC; + AllowConsole = attribute.AllowConsole; + Help = attribute.Help; + } + + public ChatCommand(CommandAttribute attribute, MethodInfo methodInfo) : this(attribute) + { + _methodInfo = methodInfo; + parameterTypes = (from parameter in methodInfo.GetParameters() select parameter.ParameterType).ToArray(); + } + + public void AddChildCommand(ChatCommand command) + { + ChildCommands.Add(command); + } + + public void SortChildCommands() + { + ChildCommands = ChildCommands.OrderBy(p => string.IsNullOrEmpty(p.Name)).ThenBy(p => p.Name).ToList(); + } + + public bool Invoke(CommandHandler handler, StringArguments args) + { + if (parameterTypes.Contains(typeof(StringArguments)))//Old system, can remove once all commands are changed. + return (bool)_methodInfo.Invoke(null, new object[] { handler, args }); + else + return (bool)_methodInfo.Invoke(null, new object[] { handler }.Combine(CommandArgs.Parse(parameterTypes, args))); + + } + + public bool HasHandler() + { + return _methodInfo != null; + } + + public override string ToString() + { + return $"Name: {Name} Permission: {Permission} AllowConsole: {AllowConsole} ChildCommandCount: {ChildCommands.Count}"; + } } } diff --git a/Source/Game/Chat/Commands/AccountCommands.cs b/Source/Game/Chat/Commands/AccountCommands.cs index fc2a115b9..b0c1b7730 100644 --- a/Source/Game/Chat/Commands/AccountCommands.cs +++ b/Source/Game/Chat/Commands/AccountCommands.cs @@ -17,8 +17,6 @@ using Framework.Constants; using Framework.Database; -using Framework.IO; -using Game.Accounts; using Game.Entities; using System; @@ -28,7 +26,7 @@ namespace Game.Chat class AccountCommands { [Command("", RBACPermissions.CommandAccount)] - static bool HandleAccountCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountCommand(CommandHandler handler) { if (handler.GetSession() == null) return false; @@ -71,18 +69,9 @@ namespace Game.Chat } [Command("addon", RBACPermissions.CommandAccountAddon)] - static bool HandleAccountAddonCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountAddonCommand(CommandHandler handler, byte expansion) { - if (args.Empty()) - { - handler.SendSysMessage(CypherStrings.CmdSyntax); - return false; - } - - uint accountId = handler.GetSession().GetAccountId(); - - int expansion = args.NextInt32(); //get int anyway (0 if error) - if (expansion < 0 || expansion > WorldConfig.GetIntValue(WorldCfg.Expansion)) + if (expansion > WorldConfig.GetIntValue(WorldCfg.Expansion)) { handler.SendSysMessage(CypherStrings.ImproperValue); return false; @@ -90,7 +79,7 @@ namespace Game.Chat PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.UPD_EXPANSION); stmt.AddValue(0, expansion); - stmt.AddValue(1, accountId); + stmt.AddValue(1, handler.GetSession().GetAccountId()); DB.Login.Execute(stmt); handler.SendSysMessage(CypherStrings.AccountAddon, expansion); @@ -98,18 +87,8 @@ namespace Game.Chat } [Command("create", RBACPermissions.CommandAccountCreate, true)] - static bool HandleAccountCreateCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountCreateCommand(CommandHandler handler, string accountName, string password, string email) { - if (args.Empty()) - return false; - - var accountName = args.NextString().ToUpper(); - var password = args.NextString(); - string email = ""; - - if (string.IsNullOrEmpty(accountName) || string.IsNullOrEmpty(password)) - return false; - if (accountName.Contains("@")) { handler.SendSysMessage(CypherStrings.AccountUseBnetCommands); @@ -150,16 +129,8 @@ namespace Game.Chat } [Command("delete", RBACPermissions.CommandAccountDelete, true)] - static bool HandleAccountDeleteCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountDeleteCommand(CommandHandler handler, string accountName) { - if (args.Empty()) - return false; - - string accountName = args.NextString(); - - if (string.IsNullOrEmpty(accountName)) - return false; - uint accountId = Global.AccountMgr.GetId(accountName); if (accountId == 0) { @@ -190,27 +161,9 @@ namespace Game.Chat return true; } - [Command("email", RBACPermissions.CommandAccountSetSecEmail)] - static bool HandleAccountEmailCommand(StringArguments args, CommandHandler handler) + [Command("email", RBACPermissions.CommandAccountEmail)] + static bool HandleAccountEmailCommand(CommandHandler handler, string oldEmail, string password, string email, string emailConfirm) { - if (args.Empty()) - { - handler.SendSysMessage(CypherStrings.CmdSyntax); - return false; - } - - string oldEmail = args.NextString(); - string password = args.NextString(); - string email = args.NextString(); - string emailConfirmation = args.NextString(); - - if (string.IsNullOrEmpty(oldEmail) || string.IsNullOrEmpty(password) - || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(emailConfirmation)) - { - handler.SendSysMessage(CypherStrings.CmdSyntax); - return false; - } - if (!Global.AccountMgr.CheckEmail(handler.GetSession().GetAccountId(), oldEmail)) { handler.SendSysMessage(CypherStrings.CommandWrongemail); @@ -236,7 +189,7 @@ namespace Game.Chat return false; } - if (email != emailConfirmation) + if (email != emailConfirm) { handler.SendSysMessage(CypherStrings.NewEmailsNotMatch); Log.outInfo(LogFilter.Player, "Account: {0} (IP: {1}) Character:[{2}] (GUID: {3}) Tried to change email, but the provided password is wrong.", @@ -268,33 +221,11 @@ namespace Game.Chat } [Command("password", RBACPermissions.CommandAccountPassword)] - static bool HandleAccountPasswordCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountPasswordCommand(CommandHandler handler, string oldPassword, string newPassword, string confirmPassword, string confirmEmail) { - // If no args are given at all, we can return false right away. - if (args.Empty()) - { - handler.SendSysMessage(CypherStrings.CmdSyntax); - return false; - } - // First, we check config. What security type (sec type) is it ? Depending on it, the command branches out uint pwConfig = WorldConfig.GetUIntValue(WorldCfg.AccPasschangesec); // 0 - PW_NONE, 1 - PW_EMAIL, 2 - PW_RBAC - // Command is supposed to be: .account password [$oldpassword] [$newpassword] [$newpasswordconfirmation] [$emailconfirmation] - string oldPassword = args.NextString(); // This extracts [$oldpassword] - string newPassword = args.NextString(); // This extracts [$newpassword] - string passwordConfirmation = args.NextString(); // This extracts [$newpasswordconfirmation] - string emailConfirmation = args.NextString(); // This defines the emailConfirmation variable, which is optional depending on sec type. - - //Is any of those variables missing for any reason ? We return false. - if (string.IsNullOrEmpty(oldPassword) || string.IsNullOrEmpty(newPassword) - || string.IsNullOrEmpty(passwordConfirmation)) - { - handler.SendSysMessage(CypherStrings.CmdSyntax); - - return false; - } - // We compare the old, saved password to the entered old password - no chance for the unauthorized. if (!Global.AccountMgr.CheckPassword(handler.GetSession().GetAccountId(), oldPassword)) { @@ -307,19 +238,19 @@ namespace Game.Chat } // This compares the old, current email to the entered email - however, only... if ((pwConfig == 1 || (pwConfig == 2 && handler.GetSession().HasPermission(RBACPermissions.EmailConfirmForPassChange))) // ...if either PW_EMAIL or PW_RBAC with the Permission is active... - && !Global.AccountMgr.CheckEmail(handler.GetSession().GetAccountId(), emailConfirmation)) // ... and returns false if the comparison fails. + && !Global.AccountMgr.CheckEmail(handler.GetSession().GetAccountId(), confirmEmail)) // ... and returns false if the comparison fails. { handler.SendSysMessage(CypherStrings.CommandWrongemail); Log.outInfo(LogFilter.Player, "Account: {0} (IP: {1}) Character:[{2}] (GUID: {3}) Tried to change password, but the entered email [{4}] is wrong.", handler.GetSession().GetAccountId(), handler.GetSession().GetRemoteAddress(), handler.GetSession().GetPlayer().GetName(), handler.GetSession().GetPlayer().GetGUID().ToString(), - emailConfirmation); + confirmEmail); return false; } // Making sure that newly entered password is correctly entered. - if (newPassword != passwordConfirmation) + if (newPassword != confirmPassword) { handler.SendSysMessage(CypherStrings.NewPasswordsNotMatch); return false; @@ -347,13 +278,12 @@ namespace Game.Chat } [Command("onlinelist", RBACPermissions.CommandAccountOnlineList, true)] - static bool HandleAccountOnlineListCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountOnlineListCommand(CommandHandler handler) { // Get the list of accounts ID logged to the realm PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_CHARACTER_ONLINE); SQLResult result = DB.Characters.Query(stmt); - if (result.IsEmpty()) { handler.SendSysMessage(CypherStrings.AccountListEmpty); @@ -396,35 +326,13 @@ namespace Game.Chat class SetCommands { [Command("addon", RBACPermissions.CommandAccountSetAddon, true)] - static bool HandleAccountSetAddonCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountSetAddonCommand(CommandHandler handler, string accountName, byte expansion) { - if (args.Empty()) - return false; - - // Get the command line arguments - string account = args.NextString(); - string exp = args.NextString(); - - if (string.IsNullOrEmpty(account)) - return false; - - string accountName; uint accountId; - - if (string.IsNullOrEmpty(exp)) - { - Player player = handler.GetSelectedPlayer(); - if (!player) - return false; - - accountId = player.GetSession().GetAccountId(); - Global.AccountMgr.GetName(accountId, out accountName); - exp = account; - } - else + if (!accountName.IsEmpty()) { // Convert Account name to Upper Format - accountName = account.ToUpper(); + accountName = accountName.ToUpper(); accountId = Global.AccountMgr.GetId(accountName); if (accountId == 0) @@ -433,6 +341,15 @@ namespace Game.Chat return false; } } + else + { + Player player = handler.GetSelectedPlayer(); + if (!player) + return false; + + accountId = player.GetSession().GetAccountId(); + Global.AccountMgr.GetName(accountId, out accountName); + } // Let set addon state only for lesser (strong) security level // or to self account @@ -440,9 +357,6 @@ namespace Game.Chat handler.HasLowerSecurityAccount(null, accountId, true)) return false; - if (!byte.TryParse(exp, out byte expansion)) - return false; - if (expansion > WorldConfig.GetIntValue(WorldCfg.Expansion)) return false; @@ -458,28 +372,14 @@ namespace Game.Chat } [Command("gmlevel", RBACPermissions.CommandAccountSetSecLevel, true)] - static bool HandleAccountSetGmLevelCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountSetGmLevelCommand(CommandHandler handler, string accountName, byte securityLevel, int realmId = -1) { - return HandleAccountSetSecLevelCommand(args, handler); + return HandleAccountSetSecLevelCommand(handler, accountName, securityLevel, realmId); } [Command("password", RBACPermissions.CommandAccountSetPassword, true)] - static bool HandleAccountSetPasswordCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountSetPasswordCommand(CommandHandler handler, string accountName, string password, string confirmPassword) { - if (args.Empty()) - { - handler.SendSysMessage(CypherStrings.CmdSyntax); - return false; - } - - // Get the command line arguments - string accountName = args.NextString(); - string password = args.NextString(); - string passwordConfirmation = args.NextString(); - - if (string.IsNullOrEmpty(accountName) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(passwordConfirmation)) - return false; - uint targetAccountId = Global.AccountMgr.GetId(accountName); if (targetAccountId == 0) { @@ -492,7 +392,7 @@ namespace Game.Chat if (handler.HasLowerSecurityAccount(null, targetAccountId, true)) return false; - if (!password.Equals(passwordConfirmation)) + if (!password.Equals(confirmPassword)) { handler.SendSysMessage(CypherStrings.NewPasswordsNotMatch); return false; @@ -514,48 +414,32 @@ namespace Game.Chat handler.SendSysMessage(CypherStrings.CommandNotchangepassword); return false; } + return true; } [Command("seclevel", RBACPermissions.CommandAccountSetSecLevel, true)] - static bool HandleAccountSetSecLevelCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountSetSecLevelCommand(CommandHandler handler, string accountName, byte securityLevel, int realmId = -1) { - if (args.Empty()) + uint accountId; + if (!accountName.IsEmpty()) { - handler.SendSysMessage(CypherStrings.CmdSyntax); - return false; - } - - string accountName = ""; - - string arg1 = args.NextString(); - string arg2 = args.NextString(); - string arg3 = args.NextString(); - bool isAccountNameGiven = true; - - if (string.IsNullOrEmpty(arg3)) - { - if (!handler.GetSelectedPlayer()) - return false; - isAccountNameGiven = false; - } - - if (!isAccountNameGiven && string.IsNullOrEmpty(arg2)) - return false; - - if (isAccountNameGiven) - { - accountName = arg1; - if (Global.AccountMgr.GetId(accountName) == 0) + accountId = Global.AccountMgr.GetId(accountName); + if (accountId == 0) { handler.SendSysMessage(CypherStrings.AccountNotExist, accountName); return false; } } + else + { + Player player = handler.GetSelectedPlayer(); + if (!player) + return false; - // Check for invalid specified GM level. - if (!uint.TryParse(isAccountNameGiven ? arg2 : arg1, out uint securityLevel)) - return false; + accountId = player.GetSession().GetAccountId(); + Global.AccountMgr.GetName(accountId, out accountName); + } if (securityLevel > (uint)AccountTypes.Console) { @@ -563,20 +447,15 @@ namespace Game.Chat return false; } - // command.getSession() == NULL only for console - uint accountId = (isAccountNameGiven) ? Global.AccountMgr.GetId(accountName) : handler.GetSelectedPlayer().GetSession().GetAccountId(); - if (!int.TryParse(isAccountNameGiven ? arg3 : arg2, out int realmID)) - return false; - AccountTypes playerSecurity; if (handler.GetSession() != null) - playerSecurity = Global.AccountMgr.GetSecurity(handler.GetSession().GetAccountId(), realmID); + playerSecurity = Global.AccountMgr.GetSecurity(handler.GetSession().GetAccountId(), realmId); else playerSecurity = AccountTypes.Console; // can set security level only for target with less security and to less security that we have // This is also reject self apply in fact - AccountTypes targetSecurity = Global.AccountMgr.GetSecurity(accountId, realmID); + AccountTypes targetSecurity = Global.AccountMgr.GetSecurity(accountId, realmId); if (targetSecurity >= playerSecurity || (AccountTypes)securityLevel >= playerSecurity) { handler.SendSysMessage(CypherStrings.YoursSecurityIsLow); @@ -584,7 +463,7 @@ namespace Game.Chat } PreparedStatement stmt; // Check and abort if the target gm has a higher rank on one of the realms and the new realm is -1 - if (realmID == -1 && !Global.AccountMgr.IsConsoleAccount(playerSecurity)) + if (realmId == -1 && !Global.AccountMgr.IsConsoleAccount(playerSecurity)) { stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_ACCOUNT_ACCESS_SECLEVEL_TEST); stmt.AddValue(0, accountId); @@ -600,14 +479,14 @@ namespace Game.Chat } // Check if provided realmID has a negative value other than -1 - if (realmID < -1) + if (realmId < -1) { handler.SendSysMessage(CypherStrings.InvalidRealmid); return false; } - RBACData rbac = isAccountNameGiven ? null : handler.GetSelectedPlayer().GetSession().GetRBACData(); - Global.AccountMgr.UpdateAccountAccess(rbac, accountId, (byte)securityLevel, realmID); + Global.AccountMgr.UpdateAccountAccess(null, accountId, (byte)securityLevel, realmId); + handler.SendSysMessage(CypherStrings.YouChangeSecurity, accountName, securityLevel); return true; } @@ -616,22 +495,8 @@ namespace Game.Chat class SetSecCommands { [Command("email", RBACPermissions.CommandAccountSetSecEmail, true)] - static bool HandleAccountSetEmailCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountSetEmailCommand(CommandHandler handler, string accountName, string email, string confirmEmail) { - if (args.Empty()) - return false; - - // Get the command line arguments - string accountName = args.NextString(); - string email = args.NextString(); - string emailConfirmation = args.NextString(); - - if (string.IsNullOrEmpty(accountName) || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(emailConfirmation)) - { - handler.SendSysMessage(CypherStrings.CmdSyntax); - return false; - } - uint targetAccountId = Global.AccountMgr.GetId(accountName); if (targetAccountId == 0) { @@ -644,7 +509,7 @@ namespace Game.Chat if (handler.HasLowerSecurityAccount(null, targetAccountId, true)) return false; - if (!email.Equals(emailConfirmation)) + if (!email.Equals(confirmEmail)) { handler.SendSysMessage(CypherStrings.NewEmailsNotMatch); return false; @@ -672,27 +537,8 @@ namespace Game.Chat } [Command("regmail", RBACPermissions.CommandAccountSetSecRegmail, true)] - static bool HandleAccountSetRegEmailCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountSetRegEmailCommand(CommandHandler handler, string accountName, string email, string confirmEmail) { - if (args.Empty()) - return false; - - //- We do not want anything short of console to use this by default. - //- So we force that. - if (handler.GetSession()) - return false; - - // Get the command line arguments - string accountName = args.NextString(); - string email = args.NextString(); - string emailConfirmation = args.NextString(); - - if (string.IsNullOrEmpty(accountName) || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(emailConfirmation)) - { - handler.SendSysMessage(CypherStrings.CmdSyntax); - return false; - } - uint targetAccountId = Global.AccountMgr.GetId(accountName); if (targetAccountId == 0) { @@ -705,7 +551,7 @@ namespace Game.Chat if (handler.HasLowerSecurityAccount(null, targetAccountId, true)) return false; - if (!email.Equals(emailConfirmation)) + if (!email.Equals(confirmEmail)) { handler.SendSysMessage(CypherStrings.NewEmailsNotMatch); return false; @@ -738,87 +584,63 @@ namespace Game.Chat class LockCommands { [Command("country", RBACPermissions.CommandAccountLockCountry)] - static bool HandleAccountLockCountryCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountLockCountryCommand(CommandHandler handler, bool state) { - if (args.Empty()) + if (state) { - handler.SendSysMessage(CypherStrings.UseBol); - return false; - } + /*var ipBytes = System.Net.IPAddress.Parse(handler.GetSession().GetRemoteAddress()).GetAddressBytes(); + Array.Reverse(ipBytes); - string param = args.NextString(); - if (!param.IsEmpty()) - { - if (param == "on") + PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY); + stmt.AddValue(0, BitConverter.ToUInt32(ipBytes, 0)); + + SQLResult result = DB.Login.Query(stmt); + if (!result.IsEmpty()) { - var ipBytes = System.Net.IPAddress.Parse(handler.GetSession().GetRemoteAddress()).GetAddressBytes(); - Array.Reverse(ipBytes); - - /*PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY); - stmt.AddValue(0, BitConverter.ToUInt32(ipBytes, 0)); - - SQLResult result = DB.Login.Query(stmt); - if (!result.IsEmpty()) - { - string country = result.Read(0); - stmt = DB.Login.GetPreparedStatement(LoginStatements.UPD_ACCOUNT_LOCK_COUNTRY); - stmt.AddValue(0, country); - stmt.AddValue(1, handler.GetSession().GetAccountId()); - DB.Login.Execute(stmt); - handler.SendSysMessage(CypherStrings.CommandAcclocklocked); - } - else - { - handler.SendSysMessage("[IP2NATION] Table empty"); - Log.outDebug(LogFilter.Server, "[IP2NATION] Table empty"); - }*/ - } - else if (param == "off") - { - PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.UPD_ACCOUNT_LOCK_COUNTRY); - stmt.AddValue(0, "00"); + string country = result.Read(0); + stmt = DB.Login.GetPreparedStatement(LoginStatements.UPD_ACCOUNT_LOCK_COUNTRY); + stmt.AddValue(0, country); stmt.AddValue(1, handler.GetSession().GetAccountId()); DB.Login.Execute(stmt); - handler.SendSysMessage(CypherStrings.CommandAcclockunlocked); + handler.SendSysMessage(CypherStrings.CommandAcclocklocked); } - return true; + else + { + handler.SendSysMessage("[IP2NATION] Table empty"); + Log.outDebug(LogFilter.Server, "[IP2NATION] Table empty"); + }*/ } - handler.SendSysMessage(CypherStrings.UseBol); - return false; + else + { + PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.UPD_ACCOUNT_LOCK_COUNTRY); + stmt.AddValue(0, "00"); + stmt.AddValue(1, handler.GetSession().GetAccountId()); + DB.Login.Execute(stmt); + handler.SendSysMessage(CypherStrings.CommandAcclockunlocked); + } + return true; } [Command("ip", RBACPermissions.CommandAccountLockIp)] - static bool HandleAccountLockIpCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountLockIpCommand(CommandHandler handler, bool state) { - if (args.Empty()) + PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.UPD_ACCOUNT_LOCK); + + if (state) { - handler.SendSysMessage(CypherStrings.UseBol); - return false; + stmt.AddValue(0, true); // locked + handler.SendSysMessage(CypherStrings.CommandAcclocklocked); + } + else + { + stmt.AddValue(0, false); // unlocked + handler.SendSysMessage(CypherStrings.CommandAcclockunlocked); } - string param = args.NextString(); - if (!string.IsNullOrEmpty(param)) - { - PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.UPD_ACCOUNT_LOCK); + stmt.AddValue(1, handler.GetSession().GetAccountId()); - if (param == "on") - { - stmt.AddValue(0, true); // locked - handler.SendSysMessage(CypherStrings.CommandAcclocklocked); - } - else if (param == "off") - { - stmt.AddValue(0, false); // unlocked - handler.SendSysMessage(CypherStrings.CommandAcclockunlocked); - } - stmt.AddValue(1, handler.GetSession().GetAccountId()); - - DB.Login.Execute(stmt); - return true; - } - - handler.SendSysMessage(CypherStrings.UseBol); - return false; + DB.Login.Execute(stmt); + return true; } } } diff --git a/Source/Game/Chat/Commands/AchievementCommands.cs b/Source/Game/Chat/Commands/AchievementCommands.cs new file mode 100644 index 000000000..fc75564fe --- /dev/null +++ b/Source/Game/Chat/Commands/AchievementCommands.cs @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2012-2020 CypherCore + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using Framework.Constants; +using Framework.IO; +using Game.DataStorage; +using Game.Entities; +using System.Collections.Generic; + +namespace Game.Chat.Commands +{ + [CommandGroup("achievement", RBACPermissions.CommandAchievement)] + class AchievementCommand + { + [Command("add", RBACPermissions.CommandAchievementAdd)] + static bool Add(CommandHandler handler, AchievementRecord achievementEntry) + { + Player target = handler.GetSelectedPlayer(); + if (!target) + { + handler.SendSysMessage(CypherStrings.NoCharSelected); + return false; + } + + target.CompletedAchievement(achievementEntry); + + return true; + } + } +} diff --git a/Source/Game/Chat/Commands/AhBotCommands.cs b/Source/Game/Chat/Commands/AhBotCommands.cs index 306c3d412..178ef67ef 100644 --- a/Source/Game/Chat/Commands/AhBotCommands.cs +++ b/Source/Game/Chat/Commands/AhBotCommands.cs @@ -25,7 +25,7 @@ namespace Game.Chat.Commands class AhBotCommands { [Command("rebuild", RBACPermissions.CommandAhbotRebuild, true)] - static bool HandleAHBotRebuildCommand(StringArguments args, CommandHandler handler) + static bool HandleAHBotRebuildCommand(CommandHandler handler, StringArguments args) { /*char* arg = strtok((char*)args, " "); @@ -38,7 +38,7 @@ namespace Game.Chat.Commands } [Command("reload", RBACPermissions.CommandAhbotReload, true)] - static bool HandleAHBotReloadCommand(StringArguments args, CommandHandler handler) + static bool HandleAHBotReloadCommand(CommandHandler handler, StringArguments args) { //sAuctionBot->ReloadAllConfig(); //handler->SendSysMessage(LANG_AHBOT_RELOAD_OK); @@ -46,7 +46,7 @@ namespace Game.Chat.Commands } [Command("status", RBACPermissions.CommandAhbotStatus, true)] - static bool HandleAHBotStatusCommand(StringArguments args, CommandHandler handler) + static bool HandleAHBotStatusCommand(CommandHandler handler, StringArguments args) { /* char* arg = strtok((char*)args, " "); if (!arg) @@ -117,7 +117,7 @@ namespace Game.Chat.Commands class ItemsCommands { [Command("", RBACPermissions.CommandAhbotItems, true)] - static bool HandleAHBotItemsAmountCommand(StringArguments args, CommandHandler handler) + static bool HandleAHBotItemsAmountCommand(CommandHandler handler, StringArguments args) { /*public uint qVals[MAX_AUCTION_QUALITY]; char* arg = strtok((char*)args, " "); @@ -138,27 +138,27 @@ namespace Game.Chat.Commands } [Command("blue", RBACPermissions.CommandAhbotItemsBlue, true)] - static bool HandleAHBotItemsAmountQualityBlue(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsAmountQualityBlue(CommandHandler handler, StringArguments args) { return true; } [Command("gray", RBACPermissions.CommandAhbotItemsGray, true)] - static bool HandleAHBotItemsAmountQualityGray(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsAmountQualityGray(CommandHandler handler, StringArguments args) { return true; } [Command("green", RBACPermissions.CommandAhbotItemsGreen, true)] - static bool HandleAHBotItemsAmountQualityGreen(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsAmountQualityGreen(CommandHandler handler, StringArguments args) { return true; } [Command("orange", RBACPermissions.CommandAhbotItemsOrange, true)] - static bool HandleAHBotItemsAmountQualityOrange(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsAmountQualityOrange(CommandHandler handler, StringArguments args) { return true; } [Command("purple", RBACPermissions.CommandAhbotItemsPurple, true)] - static bool HandleAHBotItemsAmountQualityPurple(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsAmountQualityPurple(CommandHandler handler, StringArguments args) { return true; } [Command("white", RBACPermissions.CommandAhbotItemsWhite, true)] - static bool HandleAHBotItemsAmountQualityWhite(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsAmountQualityWhite(CommandHandler handler, StringArguments args) { return true; } [Command("yellow", RBACPermissions.CommandAhbotItemsYellow, true)] - static bool HandleAHBotItemsAmountQualityYellow(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsAmountQualityYellow(CommandHandler handler, StringArguments args) { return true; } - static bool HandleAHBotItemsAmountQualityCommand(StringArguments args, CommandHandler handler) + static bool HandleAHBotItemsAmountQualityCommand(CommandHandler handler, StringArguments args) { /* char* arg = strtok((char*)args, " "); @@ -178,7 +178,7 @@ namespace Game.Chat.Commands class RatioCommands { [Command("", RBACPermissions.CommandAhbotRatio, true)] - static bool HandleAHBotItemsRatioCommand(StringArguments args, CommandHandler handler) + static bool HandleAHBotItemsRatioCommand(CommandHandler handler, StringArguments args) { /*public uint rVal[MAX_AUCTION_QUALITY]; char* arg = strtok((char*)args, " "); @@ -199,15 +199,15 @@ namespace Game.Chat.Commands } [Command("alliance", RBACPermissions.CommandAhbotRatioAlliance, true)] - static bool HandleAHBotItemsRatioHouseAlliance(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsRatioHouseAlliance(CommandHandler handler, StringArguments args) { return true; } [Command("horde", RBACPermissions.CommandAhbotRatioHorde, true)] - static bool HandleAHBotItemsRatioHouseHorde(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsRatioHouseHorde(CommandHandler handler, StringArguments args) { return true; } [Command("neutral", RBACPermissions.CommandAhbotRatioNeutral, true)] - static bool HandleAHBotItemsRatioHouseNeutral(StringArguments args, CommandHandler handler) { return true; } + static bool HandleAHBotItemsRatioHouseNeutral(CommandHandler handler, StringArguments args) { return true; } - static bool HandleAHBotItemsRatioHouseCommand(StringArguments args, CommandHandler handler) + static bool HandleAHBotItemsRatioHouseCommand(CommandHandler handler, StringArguments args) { /*char* arg = strtok((char*)args, " "); if (!arg) diff --git a/Source/Game/Chat/Commands/ArenaCommands.cs b/Source/Game/Chat/Commands/ArenaCommands.cs index 0de091958..414e9e72f 100644 --- a/Source/Game/Chat/Commands/ArenaCommands.cs +++ b/Source/Game/Chat/Commands/ArenaCommands.cs @@ -26,7 +26,7 @@ namespace Game.Chat class ArenaCommands { [Command("create", RBACPermissions.CommandArenaCreate, true)] - static bool HandleArenaCreateCommand(StringArguments args, CommandHandler handler) + static bool HandleArenaCreateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -78,7 +78,7 @@ namespace Game.Chat } [Command("disband", RBACPermissions.CommandArenaDisband, true)] - static bool HandleArenaDisbandCommand(StringArguments args, CommandHandler handler) + static bool HandleArenaDisbandCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -114,7 +114,7 @@ namespace Game.Chat } [Command("rename", RBACPermissions.CommandArenaRename, true)] - static bool HandleArenaRenameCommand(StringArguments args, CommandHandler handler) + static bool HandleArenaRenameCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -169,7 +169,7 @@ namespace Game.Chat } [Command("captain", RBACPermissions.CommandArenaCaptain)] - static bool HandleArenaCaptainCommand(StringArguments args, CommandHandler handler) + static bool HandleArenaCaptainCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -238,7 +238,7 @@ namespace Game.Chat } [Command("info", RBACPermissions.CommandArenaInfo, true)] - static bool HandleArenaInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleArenaInfoCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -263,7 +263,7 @@ namespace Game.Chat } [Command("lookup", RBACPermissions.CommandArenaLookup)] - static bool HandleArenaLookupCommand(StringArguments args, CommandHandler handler) + static bool HandleArenaLookupCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/BNetAccountCommands.cs b/Source/Game/Chat/Commands/BNetAccountCommands.cs index 39af1c890..e1515b2b3 100644 --- a/Source/Game/Chat/Commands/BNetAccountCommands.cs +++ b/Source/Game/Chat/Commands/BNetAccountCommands.cs @@ -26,7 +26,7 @@ namespace Game.Chat.Commands class BNetAccountCommands { [Command("create", RBACPermissions.CommandBnetAccountCreate, true)] - static bool HandleAccountCreateCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountCreateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -79,7 +79,7 @@ namespace Game.Chat.Commands } [Command("gameaccountcreate", RBACPermissions.CommandBnetAccountCreateGame, true)] - static bool HandleGameAccountCreateCommand(StringArguments args, CommandHandler handler) + static bool HandleGameAccountCreateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -132,7 +132,7 @@ namespace Game.Chat.Commands } [Command("link", RBACPermissions.CommandBnetAccountLink, true)] - static bool HandleAccountLinkCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountLinkCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -162,7 +162,7 @@ namespace Game.Chat.Commands } [Command("listgameaccounts", RBACPermissions.CommandBnetAccountListGameAccounts, true)] - static bool HandleListGameAccountsCommand(StringArguments args, CommandHandler handler) + static bool HandleListGameAccountsCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -199,7 +199,7 @@ namespace Game.Chat.Commands } [Command("password", RBACPermissions.CommandBnetAccountPassword, true)] - static bool HandleAccountPasswordCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountPasswordCommand(CommandHandler handler, StringArguments args) { // If no args are given at all, we can return false right away. if (args.Empty()) @@ -258,7 +258,7 @@ namespace Game.Chat.Commands } [Command("unlink", RBACPermissions.CommandBnetAccountUnlink, true)] - static bool HandleAccountUnlinkCommand(StringArguments args, CommandHandler handler) + static bool HandleAccountUnlinkCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -289,7 +289,7 @@ namespace Game.Chat.Commands class LockCommands { [Command("country", RBACPermissions.CommandBnetAccountLockCountry, true)] - static bool HandleLockCountryCommand(StringArguments args, CommandHandler handler) + static bool HandleLockCountryCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -338,7 +338,7 @@ namespace Game.Chat.Commands } [Command("ip", RBACPermissions.CommandBnetAccountLockIp, true)] - static bool HandleLockIpCommand(StringArguments args, CommandHandler handler) + static bool HandleLockIpCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -376,7 +376,7 @@ namespace Game.Chat.Commands class SetCommands { [Command("password", RBACPermissions.CommandBnetAccountSetPassword, true)] - static bool HandleSetPasswordCommand(StringArguments args, CommandHandler handler) + static bool HandleSetPasswordCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { diff --git a/Source/Game/Chat/Commands/BanCommands.cs b/Source/Game/Chat/Commands/BanCommands.cs index 910b2ea9f..2d3b51dd0 100644 --- a/Source/Game/Chat/Commands/BanCommands.cs +++ b/Source/Game/Chat/Commands/BanCommands.cs @@ -28,13 +28,13 @@ namespace Game.Chat.Commands class BanCommands { [Command("account", RBACPermissions.CommandBanAccount, true)] - static bool HandleBanAccountCommand(StringArguments args, CommandHandler handler) + static bool HandleBanAccountCommand(CommandHandler handler, StringArguments args) { return HandleBanHelper(BanMode.Account, args, handler); } [Command("character", RBACPermissions.CommandBanCharacter, true)] - static bool HandleBanCharacterCommand(StringArguments args, CommandHandler handler) + static bool HandleBanCharacterCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -95,13 +95,13 @@ namespace Game.Chat.Commands } [Command("playeraccount", RBACPermissions.CommandBanPlayeraccount, true)] - static bool HandleBanAccountByCharCommand(StringArguments args, CommandHandler handler) + static bool HandleBanAccountByCharCommand(CommandHandler handler, StringArguments args) { return HandleBanHelper(BanMode.Character, args, handler); } [Command("ip", RBACPermissions.CommandBanIp, true)] - static bool HandleBanIPCommand(StringArguments args, CommandHandler handler) + static bool HandleBanIPCommand(CommandHandler handler, StringArguments args) { return HandleBanHelper(BanMode.IP, args, handler); } @@ -186,7 +186,7 @@ namespace Game.Chat.Commands class BanInfoCommands { [Command("account", RBACPermissions.CommandBaninfoAccount, true)] - static bool HandleBanInfoAccountCommand(StringArguments args, CommandHandler handler) + static bool HandleBanInfoAccountCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -206,7 +206,7 @@ namespace Game.Chat.Commands } [Command("character", RBACPermissions.CommandBaninfoCharacter, true)] - static bool HandleBanInfoCharacterCommand(StringArguments args, CommandHandler handler) + static bool HandleBanInfoCharacterCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -260,7 +260,7 @@ namespace Game.Chat.Commands } [Command("ip", RBACPermissions.CommandBaninfoIp, true)] - static bool HandleBanInfoIPCommand(StringArguments args, CommandHandler handler) + static bool HandleBanInfoIPCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -315,7 +315,7 @@ namespace Game.Chat.Commands class BanListCommands { [Command("account", RBACPermissions.CommandBanlistAccount, true)] - static bool HandleBanListAccountCommand(StringArguments args, CommandHandler handler) + static bool HandleBanListAccountCommand(CommandHandler handler, StringArguments args) { PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.DelExpiredIpBans); DB.Login.Execute(stmt); @@ -346,7 +346,7 @@ namespace Game.Chat.Commands } [Command("character", RBACPermissions.CommandBanlistCharacter, true)] - static bool HandleBanListCharacterCommand(StringArguments args, CommandHandler handler) + static bool HandleBanListCharacterCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -431,7 +431,7 @@ namespace Game.Chat.Commands } [Command("ip", RBACPermissions.CommandBanlistIp, true)] - static bool HandleBanListIPCommand(StringArguments args, CommandHandler handler) + static bool HandleBanListIPCommand(CommandHandler handler, StringArguments args) { PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.DelExpiredIpBans); DB.Login.Execute(stmt); @@ -595,13 +595,13 @@ namespace Game.Chat.Commands class UnBanCommands { [Command("account", RBACPermissions.CommandUnbanAccount, true)] - static bool HandleUnBanAccountCommand(StringArguments args, CommandHandler handler) + static bool HandleUnBanAccountCommand(CommandHandler handler, StringArguments args) { return HandleUnBanHelper(BanMode.Account, args, handler); } [Command("character", RBACPermissions.CommandUnbanCharacter, true)] - static bool HandleUnBanCharacterCommand(StringArguments args, CommandHandler handler) + static bool HandleUnBanCharacterCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -623,13 +623,13 @@ namespace Game.Chat.Commands } [Command("playeraccount", RBACPermissions.CommandUnbanPlayeraccount, true)] - static bool HandleUnBanAccountByCharCommand(StringArguments args, CommandHandler handler) + static bool HandleUnBanAccountByCharCommand(CommandHandler handler, StringArguments args) { return HandleUnBanHelper(BanMode.Character, args, handler); } [Command("ip", RBACPermissions.CommandUnbanIp, true)] - static bool HandleUnBanIPCommand(StringArguments args, CommandHandler handler) + static bool HandleUnBanIPCommand(CommandHandler handler, StringArguments args) { return HandleUnBanHelper(BanMode.IP, args, handler); } diff --git a/Source/Game/Chat/Commands/BattleFieldCommands.cs b/Source/Game/Chat/Commands/BattleFieldCommands.cs index 5909a78ce..0088bd3f9 100644 --- a/Source/Game/Chat/Commands/BattleFieldCommands.cs +++ b/Source/Game/Chat/Commands/BattleFieldCommands.cs @@ -25,7 +25,7 @@ namespace Game.Chat class BattleFieldCommands { [Command("enable", RBACPermissions.CommandBfEnable)] - static bool HandleBattlefieldEnable(StringArguments args, CommandHandler handler) + static bool HandleBattlefieldEnable(CommandHandler handler, StringArguments args) { uint battleid = args.NextUInt32(); BattleField bf = Global.BattleFieldMgr.GetBattlefieldByBattleId(battleid); @@ -50,7 +50,7 @@ namespace Game.Chat } [Command("start", RBACPermissions.CommandBfStart)] - static bool HandleBattlefieldStart(StringArguments args, CommandHandler handler) + static bool HandleBattlefieldStart(CommandHandler handler, StringArguments args) { uint battleid = args.NextUInt32(); BattleField bf = Global.BattleFieldMgr.GetBattlefieldByBattleId(battleid); @@ -67,7 +67,7 @@ namespace Game.Chat } [Command("stop", RBACPermissions.CommandBfStop)] - static bool HandleBattlefieldEnd(StringArguments args, CommandHandler handler) + static bool HandleBattlefieldEnd(CommandHandler handler, StringArguments args) { uint battleid = args.NextUInt32(); BattleField bf = Global.BattleFieldMgr.GetBattlefieldByBattleId(battleid); @@ -84,7 +84,7 @@ namespace Game.Chat } [Command("switch", RBACPermissions.CommandBfSwitch)] - static bool HandleBattlefieldSwitch(StringArguments args, CommandHandler handler) + static bool HandleBattlefieldSwitch(CommandHandler handler, StringArguments args) { uint battleid = args.NextUInt32(); BattleField bf = Global.BattleFieldMgr.GetBattlefieldByBattleId(battleid); @@ -100,7 +100,7 @@ namespace Game.Chat } [Command("timer", RBACPermissions.CommandBfTimer)] - static bool HandleBattlefieldTimer(StringArguments args, CommandHandler handler) + static bool HandleBattlefieldTimer(CommandHandler handler, StringArguments args) { uint battleid = args.NextUInt32(); BattleField bf = Global.BattleFieldMgr.GetBattlefieldByBattleId(battleid); diff --git a/Source/Game/Chat/Commands/CastCommands.cs b/Source/Game/Chat/Commands/CastCommands.cs index 69bf9cbb5..e0854f395 100644 --- a/Source/Game/Chat/Commands/CastCommands.cs +++ b/Source/Game/Chat/Commands/CastCommands.cs @@ -27,7 +27,7 @@ namespace Game.Chat class CastCommands { [Command("", RBACPermissions.CommandCast)] - static bool HandleCastCommand(StringArguments args, CommandHandler handler) + static bool HandleCastCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -59,7 +59,7 @@ namespace Game.Chat } [Command("back", RBACPermissions.CommandCastBack)] - static bool HandleCastBackCommand(StringArguments args, CommandHandler handler) + static bool HandleCastBackCommand(CommandHandler handler, StringArguments args) { Creature caster = handler.GetSelectedCreature(); if (!caster) @@ -91,7 +91,7 @@ namespace Game.Chat } [Command("dist", RBACPermissions.CommandCastDist)] - static bool HandleCastDistCommand(StringArguments args, CommandHandler handler) + static bool HandleCastDistCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -124,7 +124,7 @@ namespace Game.Chat } [Command("self", RBACPermissions.CommandCastSelf)] - static bool HandleCastSelfCommand(StringArguments args, CommandHandler handler) + static bool HandleCastSelfCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -150,7 +150,7 @@ namespace Game.Chat } [Command("target", RBACPermissions.CommandCastTarget)] - static bool HandleCastTargetCommad(StringArguments args, CommandHandler handler) + static bool HandleCastTargetCommad(CommandHandler handler, StringArguments args) { Creature caster = handler.GetSelectedCreature(); if (!caster) @@ -188,7 +188,7 @@ namespace Game.Chat } [Command("dest", RBACPermissions.CommandCastDest)] - static bool HandleCastDestCommand(StringArguments args, CommandHandler handler) + static bool HandleCastDestCommand(CommandHandler handler, StringArguments args) { Unit caster = handler.GetSelectedUnit(); if (!caster) diff --git a/Source/Game/Chat/Commands/CharacterCommands.cs b/Source/Game/Chat/Commands/CharacterCommands.cs index 368708050..6316560af 100644 --- a/Source/Game/Chat/Commands/CharacterCommands.cs +++ b/Source/Game/Chat/Commands/CharacterCommands.cs @@ -31,7 +31,7 @@ namespace Game.Chat class CharacterCommands { [Command("titles", RBACPermissions.CommandCharacterTitles, true)] - static bool HandleCharacterTitlesCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterTitlesCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -71,7 +71,7 @@ namespace Game.Chat //rename characters [Command("rename", RBACPermissions.CommandCharacterRename, true)] - static bool HandleCharacterRenameCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterRenameCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -195,7 +195,7 @@ namespace Game.Chat } [Command("level", RBACPermissions.CommandCharacterLevel, true)] - static bool HandleCharacterLevelCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterLevelCommand(CommandHandler handler, StringArguments args) { string nameStr; string levelStr; @@ -239,7 +239,7 @@ namespace Game.Chat // customize characters [Command("customize", RBACPermissions.CommandCharacterCustomize, true)] - static bool HandleCharacterCustomizeCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterCustomizeCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -267,7 +267,7 @@ namespace Game.Chat } [Command("changeaccount", RBACPermissions.CommandCharacterChangeaccount, true)] - static bool HandleCharacterChangeAccountCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterChangeAccountCommand(CommandHandler handler, StringArguments args) { string playerNameStr; string accountName; @@ -341,7 +341,7 @@ namespace Game.Chat } [Command("changefaction", RBACPermissions.CommandCharacterChangefaction, true)] - static bool HandleCharacterChangeFactionCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterChangeFactionCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -369,7 +369,7 @@ namespace Game.Chat } [Command("changerace", RBACPermissions.CommandCharacterChangerace, true)] - static bool HandleCharacterChangeRaceCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterChangeRaceCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -399,7 +399,7 @@ namespace Game.Chat } [Command("reputation", RBACPermissions.CommandCharacterReputation, true)] - static bool HandleCharacterReputationCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterReputationCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -443,7 +443,7 @@ namespace Game.Chat } [Command("erase", RBACPermissions.CommandCharacterErase, true)] - static bool HandleCharacterEraseCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterEraseCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -489,7 +489,7 @@ namespace Game.Chat class DeletedCommands { [Command("delete", RBACPermissions.CommandCharacterDeletedDelete, true)] - static bool HandleCharacterDeletedDeleteCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterDeletedDeleteCommand(CommandHandler handler, StringArguments args) { // It is required to submit at least one argument if (args.Empty()) @@ -516,7 +516,7 @@ namespace Game.Chat } [Command("list", RBACPermissions.CommandCharacterDeletedList, true)] - static bool HandleCharacterDeletedListCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterDeletedListCommand(CommandHandler handler, StringArguments args) { List foundList = new(); if (!GetDeletedCharacterInfoList(foundList, args.NextString())) @@ -535,7 +535,7 @@ namespace Game.Chat } [Command("restore", RBACPermissions.CommandCharacterDeletedRestore, true)] - static bool HandleCharacterDeletedRestoreCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterDeletedRestoreCommand(CommandHandler handler, StringArguments args) { // It is required to submit at least one argument if (args.Empty()) @@ -587,7 +587,7 @@ namespace Game.Chat } [Command("old", RBACPermissions.CommandCharacterDeletedOld, true)] - static bool HandleCharacterDeletedOldCommand(StringArguments args, CommandHandler handler) + static bool HandleCharacterDeletedOldCommand(CommandHandler handler, StringArguments args) { int keepDays = WorldConfig.GetIntValue(WorldCfg.ChardeleteKeepDays); @@ -730,7 +730,7 @@ namespace Game.Chat } [CommandNonGroup("levelup", RBACPermissions.CommandLevelup)] - static bool LevelUp(StringArguments args, CommandHandler handler) + static bool LevelUp(CommandHandler handler, StringArguments args) { string nameStr; string levelStr; @@ -804,7 +804,7 @@ namespace Game.Chat class PdumpCommand { [Command("load", RBACPermissions.CommandPdumpLoad, true)] - static bool HandlePDumpLoadCommand(StringArguments args, CommandHandler handler) + static bool HandlePDumpLoadCommand(CommandHandler handler, StringArguments args) { /* if (args.Empty()) @@ -917,7 +917,7 @@ namespace Game.Chat } [Command("write", RBACPermissions.CommandPdumpWrite, true)] - static bool HandlePDumpWriteCommand(StringArguments args, CommandHandler handler) + static bool HandlePDumpWriteCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/CheatCommands.cs b/Source/Game/Chat/Commands/CheatCommands.cs index 2a53b5de0..36b28a14f 100644 --- a/Source/Game/Chat/Commands/CheatCommands.cs +++ b/Source/Game/Chat/Commands/CheatCommands.cs @@ -25,7 +25,7 @@ namespace Game.Chat.Commands class CheatCommands { [Command("god", RBACPermissions.CommandCheatGod)] - static bool HandleGodModeCheatCommand(StringArguments args, CommandHandler handler) + static bool HandleGodModeCheatCommand(CommandHandler handler, StringArguments args) { string argstr = args.NextString(); if (args.Empty()) @@ -48,7 +48,7 @@ namespace Game.Chat.Commands } [Command("casttime", RBACPermissions.CommandCheatCasttime)] - static bool HandleCasttimeCheatCommand(StringArguments args, CommandHandler handler) + static bool HandleCasttimeCheatCommand(CommandHandler handler, StringArguments args) { string argstr = args.NextString(); @@ -72,7 +72,7 @@ namespace Game.Chat.Commands } [Command("cooldown", RBACPermissions.CommandCheatCooldown)] - static bool HandleCoolDownCheatCommand(StringArguments args, CommandHandler handler) + static bool HandleCoolDownCheatCommand(CommandHandler handler, StringArguments args) { string argstr = args.NextString(); @@ -96,7 +96,7 @@ namespace Game.Chat.Commands } [Command("power", RBACPermissions.CommandCheatPower)] - static bool HandlePowerCheatCommand(StringArguments args, CommandHandler handler) + static bool HandlePowerCheatCommand(CommandHandler handler, StringArguments args) { string argstr = args.NextString(); @@ -125,7 +125,7 @@ namespace Game.Chat.Commands } [Command("status", RBACPermissions.CommandCheatStatus)] - static bool HandleCheatStatusCommand(StringArguments args, CommandHandler handler) + static bool HandleCheatStatusCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); @@ -143,7 +143,7 @@ namespace Game.Chat.Commands } [Command("waterwalk", RBACPermissions.CommandCheatWaterwalk)] - static bool HandleWaterWalkCheatCommand(StringArguments args, CommandHandler handler) + static bool HandleWaterWalkCheatCommand(CommandHandler handler, StringArguments args) { string argstr = args.NextString(); @@ -170,7 +170,7 @@ namespace Game.Chat.Commands } [Command("taxi", RBACPermissions.CommandCheatTaxi)] - static bool HandleTaxiCheatCommand(StringArguments args, CommandHandler handler) + static bool HandleTaxiCheatCommand(CommandHandler handler, StringArguments args) { string argstr = args.NextString(); @@ -206,7 +206,7 @@ namespace Game.Chat.Commands } [Command("explore", RBACPermissions.CommandCheatExplore)] - static bool HandleExploreCheatCommand(StringArguments args, CommandHandler handler) + static bool HandleExploreCheatCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/DebugCommands.cs b/Source/Game/Chat/Commands/DebugCommands.cs index 0d290e651..ff38d3699 100644 --- a/Source/Game/Chat/Commands/DebugCommands.cs +++ b/Source/Game/Chat/Commands/DebugCommands.cs @@ -35,7 +35,7 @@ namespace Game.Chat class DebugCommands { [Command("anim", RBACPermissions.CommandDebugAnim)] - static bool HandleDebugAnimCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugAnimCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -48,7 +48,7 @@ namespace Game.Chat } [Command("areatriggers", RBACPermissions.CommandDebugAreatriggers)] - static bool HandleDebugAreaTriggersCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugAreaTriggersCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); if (!player.IsDebugAreaTriggers) @@ -65,21 +65,21 @@ namespace Game.Chat } [Command("arena", RBACPermissions.CommandDebugArena, true)] - static bool HandleDebugArenaCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugArenaCommand(CommandHandler handler, StringArguments args) { Global.BattlegroundMgr.ToggleArenaTesting(); return true; } [Command("bg", RBACPermissions.CommandDebugBg, true)] - static bool HandleDebugBattlegroundCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugBattlegroundCommand(CommandHandler handler, StringArguments args) { Global.BattlegroundMgr.ToggleTesting(); return true; } [Command("boundary", RBACPermissions.CommandDebugBoundary)] - static bool HandleDebugBoundaryCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugBoundaryCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); if (!player) @@ -107,7 +107,7 @@ namespace Game.Chat } [Command("conversation", RBACPermissions.CommandDebugConversation)] - static bool HandleDebugConversationCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugConversationCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -127,14 +127,14 @@ namespace Game.Chat } [Command("dummy", RBACPermissions.CommandDebugDummy)] - static bool HandleDebugDummyCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugDummyCommand(CommandHandler handler, StringArguments args) { handler.SendSysMessage("This command does nothing right now. Edit your local core (DebugCommands.cs) to make it do whatever you need for testing."); return true; } [Command("entervehicle", RBACPermissions.CommandDebugEntervehicle)] - static bool HandleDebugEnterVehicleCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugEnterVehicleCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target || !target.IsVehicle()) @@ -165,7 +165,7 @@ namespace Game.Chat } [Command("getitemstate", RBACPermissions.CommandDebugGetitemstate)] - static bool HandleDebugGetItemStateCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugGetItemStateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -444,7 +444,7 @@ namespace Game.Chat } [Command("combat", RBACPermissions.CommandDebugCombat)] - static bool HandleDebugCombatListCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugCombatListCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target) @@ -466,7 +466,7 @@ namespace Game.Chat } [Command("instancespawn", RBACPermissions.CommandDebugInstancespawn)] - static bool HandleDebugInstanceSpawns(StringArguments args, CommandHandler handler) + static bool HandleDebugInstanceSpawns(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); if (player == null) @@ -575,7 +575,7 @@ namespace Game.Chat } [Command("itemexpire", RBACPermissions.CommandDebugItemexpire)] - static bool HandleDebugItemExpireCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugItemExpireCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -594,7 +594,7 @@ namespace Game.Chat } [Command("loadcells", RBACPermissions.CommandDebugLoadcells)] - static bool HandleDebugLoadCellsCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugLoadCellsCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); if (!player) @@ -617,7 +617,7 @@ namespace Game.Chat } [Command("lootrecipient", RBACPermissions.CommandDebugLootrecipient)] - static bool HandleDebugGetLootRecipientCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugGetLootRecipientCommand(CommandHandler handler, StringArguments args) { Creature target = handler.GetSelectedCreature(); if (!target) @@ -629,7 +629,7 @@ namespace Game.Chat } [Command("los", RBACPermissions.CommandDebugLos)] - static bool HandleDebugLoSCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugLoSCommand(CommandHandler handler, StringArguments args) { Unit unit = handler.GetSelectedUnit(); if (unit) @@ -645,7 +645,7 @@ namespace Game.Chat } [Command("moveflags", RBACPermissions.CommandDebugMoveflags)] - static bool HandleDebugMoveflagsCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugMoveflagsCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target) @@ -693,7 +693,7 @@ namespace Game.Chat } [Command("neargraveyard", RBACPermissions.CommandNearGraveyard)] - static bool HandleDebugNearGraveyard(StringArguments args, CommandHandler handler) + static bool HandleDebugNearGraveyard(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); WorldSafeLocsEntry nearestLoc = null; @@ -743,7 +743,7 @@ namespace Game.Chat } [Command("phase", RBACPermissions.CommandDebugPhase)] - static bool HandleDebugPhaseCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugPhaseCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target) @@ -762,7 +762,7 @@ namespace Game.Chat } [Command("raidreset", RBACPermissions.CommandInstanceUnbind)] - static bool HandleDebugRaidResetCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugRaidResetCommand(CommandHandler handler, StringArguments args) { if (!int.TryParse(args.NextString(), out int map) || map <= 0) return false; @@ -822,7 +822,7 @@ namespace Game.Chat } [Command("setaurastate", RBACPermissions.CommandDebugSetaurastate)] - static bool HandleDebugSetAuraStateCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSetAuraStateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -851,7 +851,7 @@ namespace Game.Chat } [Command("setvid", RBACPermissions.CommandDebugSetvid)] - static bool HandleDebugSetVehicleIdCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSetVehicleIdCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target || target.IsVehicle()) @@ -866,7 +866,7 @@ namespace Game.Chat } [Command("spawnvehicle", RBACPermissions.CommandDebugSpawnvehicle)] - static bool HandleDebugSpawnVehicleCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSpawnVehicleCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -902,7 +902,7 @@ namespace Game.Chat } [Command("threat", RBACPermissions.CommandDebugThreat)] - static bool HandleDebugThreatListCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugThreatListCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (target == null) @@ -962,7 +962,7 @@ namespace Game.Chat } [Command("threatinfo", RBACPermissions.CommandDebugThreatinfo)] - static bool HandleDebugThreatInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugThreatInfoCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (target == null) @@ -1038,7 +1038,7 @@ namespace Game.Chat } [Command("transport", RBACPermissions.CommandDebugTransport)] - static bool HandleDebugTransportCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugTransportCommand(CommandHandler handler, StringArguments args) { Transport transport = handler.GetSession().GetPlayer().GetTransport(); if (!transport) @@ -1066,7 +1066,7 @@ namespace Game.Chat } [Command("worldstate", RBACPermissions.CommandDebugWorldState)] - static bool HandleDebugUpdateWorldStateCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugUpdateWorldStateCommand(CommandHandler handler, StringArguments args) { if (!uint.TryParse(args.NextString(), out uint variable) || variable == 0) return false; @@ -1077,7 +1077,7 @@ namespace Game.Chat } [Command("worldstate", RBACPermissions.CommandDebug)] - static bool HandleDebugWorldStateCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugWorldStateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1110,7 +1110,7 @@ namespace Game.Chat } [CommandNonGroup("wpgps", RBACPermissions.CommandWpgps)] - static bool HandleWPGPSCommand(StringArguments args, CommandHandler handler) + static bool HandleWPGPSCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); @@ -1121,7 +1121,7 @@ namespace Game.Chat } [Command("wsexpression", RBACPermissions.CommandDebug)] - static bool HandleDebugWSExpressionCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugWSExpressionCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1156,7 +1156,7 @@ namespace Game.Chat class PlayCommands { [Command("cinematic", RBACPermissions.CommandDebugPlayCinematic)] - static bool HandleDebugPlayCinematicCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugPlayCinematicCommand(CommandHandler handler, StringArguments args) { // USAGE: .debug play cinematic #cinematicid // #cinematicid - ID decimal number from CinemaicSequences.dbc (1st column) @@ -1194,7 +1194,7 @@ namespace Game.Chat } [Command("movie", RBACPermissions.CommandDebugPlayMovie)] - static bool HandleDebugPlayMovieCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugPlayMovieCommand(CommandHandler handler, StringArguments args) { // USAGE: .debug play movie #movieid // #movieid - ID decimal number from Movie.dbc (1st column) @@ -1217,7 +1217,7 @@ namespace Game.Chat } [Command("music", RBACPermissions.CommandDebugPlayMusic)] - static bool HandleDebugPlayMusicCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugPlayMusicCommand(CommandHandler handler, StringArguments args) { // USAGE: .debug play music #musicId // #musicId - ID decimal number from SoundEntries.dbc (1st column) @@ -1243,7 +1243,7 @@ namespace Game.Chat } [Command("sound", RBACPermissions.CommandDebugPlaySound)] - static bool HandleDebugPlaySoundCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugPlaySoundCommand(CommandHandler handler, StringArguments args) { // USAGE: .debug playsound #soundid // #soundid - ID decimal number from SoundEntries.dbc (1st column) @@ -1287,7 +1287,7 @@ namespace Game.Chat class SendCommands { [Command("buyerror", RBACPermissions.CommandDebugSendBuyerror)] - static bool HandleDebugSendBuyErrorCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendBuyErrorCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1298,7 +1298,7 @@ namespace Game.Chat } [Command("channelnotify", RBACPermissions.CommandDebugSendChannelnotify)] - static bool HandleDebugSendChannelNotifyCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendChannelNotifyCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1313,7 +1313,7 @@ namespace Game.Chat } [Command("chatmessage", RBACPermissions.CommandDebugSendChatmessage)] - static bool HandleDebugSendChatMsgCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendChatMsgCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1327,7 +1327,7 @@ namespace Game.Chat } [Command("equiperror", RBACPermissions.CommandDebugSendEquiperror)] - static bool HandleDebugSendEquipErrorCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendEquipErrorCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1338,7 +1338,7 @@ namespace Game.Chat } [Command("largepacket", RBACPermissions.CommandDebugSendLargepacket)] - static bool HandleDebugSendLargePacketCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendLargePacketCommand(CommandHandler handler, StringArguments args) { const string stuffingString = "This is a dummy string to push the packet's size beyond 128000 bytes. "; StringBuilder ss = new(); @@ -1349,14 +1349,14 @@ namespace Game.Chat } [Command("opcode", RBACPermissions.CommandDebugSendOpcode)] - static bool HandleDebugSendOpcodeCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendOpcodeCommand(CommandHandler handler, StringArguments args) { handler.SendSysMessage(CypherStrings.NoCmd); return true; } [Command("playerchoice", RBACPermissions.CommandDebugSendPlayerChoice)] - static bool HandleDebugSendPlayerChoiceCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendPlayerChoiceCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1369,7 +1369,7 @@ namespace Game.Chat } [Command("qpartymsg", RBACPermissions.CommandDebugSendQpartymsg)] - static bool HandleDebugSendQuestPartyMsgCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendQuestPartyMsgCommand(CommandHandler handler, StringArguments args) { uint msg = args.NextUInt32(); handler.GetSession().GetPlayer().SendPushToPartyResponse(handler.GetSession().GetPlayer(), (QuestPushReason)msg); @@ -1377,7 +1377,7 @@ namespace Game.Chat } [Command("qinvalidmsg", RBACPermissions.CommandDebugSendQinvalidmsg)] - static bool HandleDebugSendQuestInvalidMsgCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendQuestInvalidMsgCommand(CommandHandler handler, StringArguments args) { QuestFailedReasons msg = (QuestFailedReasons)args.NextUInt32(); handler.GetSession().GetPlayer().SendCanTakeQuestResponse(msg); @@ -1385,7 +1385,7 @@ namespace Game.Chat } [Command("sellerror", RBACPermissions.CommandDebugSendSellerror)] - static bool HandleDebugSendSellErrorCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendSellErrorCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1396,7 +1396,7 @@ namespace Game.Chat } [Command("setphaseshift", RBACPermissions.CommandDebugSendSetphaseshift)] - static bool HandleDebugSendSetPhaseShiftCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendSetPhaseShiftCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1417,7 +1417,7 @@ namespace Game.Chat } [Command("spellfail", RBACPermissions.CommandDebugSendSpellfail)] - static bool HandleDebugSendSpellFailCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSendSpellFailCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/DeserterCommands.cs b/Source/Game/Chat/Commands/DeserterCommands.cs index bfab7be78..8287edb8a 100644 --- a/Source/Game/Chat/Commands/DeserterCommands.cs +++ b/Source/Game/Chat/Commands/DeserterCommands.cs @@ -35,13 +35,13 @@ namespace Game.Chat.Commands class DeserterInstanceCommands { [Command("add", RBACPermissions.CommandDeserterInstanceAdd)] - static bool HandleDeserterInstanceAdd(StringArguments args, CommandHandler handler) + static bool HandleDeserterInstanceAdd(CommandHandler handler, StringArguments args) { return HandleDeserterAdd(args, handler, true); } [Command("remove", RBACPermissions.CommandDeserterInstanceRemove)] - static bool HandleDeserterInstanceRemove(StringArguments args, CommandHandler handler) + static bool HandleDeserterInstanceRemove(CommandHandler handler, StringArguments args) { return HandleDeserterRemove(args, handler, true); } @@ -51,13 +51,13 @@ namespace Game.Chat.Commands class DeserterBGCommands { [Command("add", RBACPermissions.CommandDeserterBgAdd)] - static bool HandleDeserterBGAdd(StringArguments args, CommandHandler handler) + static bool HandleDeserterBGAdd(CommandHandler handler, StringArguments args) { return HandleDeserterAdd(args, handler, false); } [Command("remove", RBACPermissions.CommandDeserterBgRemove)] - static bool HandleDeserterBGRemove(StringArguments args, CommandHandler handler) + static bool HandleDeserterBGRemove(CommandHandler handler, StringArguments args) { return HandleDeserterRemove(args, handler, false); } diff --git a/Source/Game/Chat/Commands/DisableCommands.cs b/Source/Game/Chat/Commands/DisableCommands.cs index d2422a154..cec17b4aa 100644 --- a/Source/Game/Chat/Commands/DisableCommands.cs +++ b/Source/Game/Chat/Commands/DisableCommands.cs @@ -149,7 +149,7 @@ namespace Game.Chat.Commands } [Command("spell", RBACPermissions.CommandDisableAddSpell, true)] - static bool HandleAddDisableSpellCommand(StringArguments args, CommandHandler handler) + static bool HandleAddDisableSpellCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -158,7 +158,7 @@ namespace Game.Chat.Commands } [Command("quest", RBACPermissions.CommandDisableAddQuest, true)] - static bool HandleAddDisableQuestCommand(StringArguments args, CommandHandler handler) + static bool HandleAddDisableQuestCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -167,7 +167,7 @@ namespace Game.Chat.Commands } [Command("map", RBACPermissions.CommandDisableAddMap, true)] - static bool HandleAddDisableMapCommand(StringArguments args, CommandHandler handler) + static bool HandleAddDisableMapCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -176,7 +176,7 @@ namespace Game.Chat.Commands } [Command("Battleground", RBACPermissions.CommandDisableAddBattleground, true)] - static bool HandleAddDisableBattlegroundCommand(StringArguments args, CommandHandler handler) + static bool HandleAddDisableBattlegroundCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -185,7 +185,7 @@ namespace Game.Chat.Commands } [Command("criteria", RBACPermissions.CommandDisableAddCriteria, true)] - static bool HandleAddDisableCriteriaCommand(StringArguments args, CommandHandler handler) + static bool HandleAddDisableCriteriaCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -194,7 +194,7 @@ namespace Game.Chat.Commands } [Command("outdoorpvp", RBACPermissions.CommandDisableAddOutdoorpvp, true)] - static bool HandleAddDisableOutdoorPvPCommand(StringArguments args, CommandHandler handler) + static bool HandleAddDisableOutdoorPvPCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -204,7 +204,7 @@ namespace Game.Chat.Commands } [Command("vmap", RBACPermissions.CommandDisableAddVmap, true)] - static bool HandleAddDisableVmapCommand(StringArguments args, CommandHandler handler) + static bool HandleAddDisableVmapCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -213,7 +213,7 @@ namespace Game.Chat.Commands } [Command("mmap", RBACPermissions.CommandDisableAddMmap, true)] - static bool HandleAddDisableMMapCommand(StringArguments args, CommandHandler handler) + static bool HandleAddDisableMMapCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -279,7 +279,7 @@ namespace Game.Chat.Commands } [Command("spell", RBACPermissions.CommandDisableRemoveSpell, true)] - static bool HandleRemoveDisableSpellCommand(StringArguments args, CommandHandler handler) + static bool HandleRemoveDisableSpellCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -288,7 +288,7 @@ namespace Game.Chat.Commands } [Command("quest", RBACPermissions.CommandDisableRemoveQuest, true)] - static bool HandleRemoveDisableQuestCommand(StringArguments args, CommandHandler handler) + static bool HandleRemoveDisableQuestCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -297,7 +297,7 @@ namespace Game.Chat.Commands } [Command("map", RBACPermissions.CommandDisableRemoveMap, true)] - static bool HandleRemoveDisableMapCommand(StringArguments args, CommandHandler handler) + static bool HandleRemoveDisableMapCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -306,7 +306,7 @@ namespace Game.Chat.Commands } [Command("Battleground", RBACPermissions.CommandDisableRemoveBattleground, true)] - static bool HandleRemoveDisableBattlegroundCommand(StringArguments args, CommandHandler handler) + static bool HandleRemoveDisableBattlegroundCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -315,7 +315,7 @@ namespace Game.Chat.Commands } [Command("criteria", RBACPermissions.CommandDisableRemoveCriteria, true)] - static bool HandleRemoveDisableCriteriaCommand(StringArguments args, CommandHandler handler) + static bool HandleRemoveDisableCriteriaCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -324,7 +324,7 @@ namespace Game.Chat.Commands } [Command("outdoorpvp", RBACPermissions.CommandDisableRemoveOutdoorpvp, true)] - static bool HandleRemoveDisableOutdoorPvPCommand(StringArguments args, CommandHandler handler) + static bool HandleRemoveDisableOutdoorPvPCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -333,7 +333,7 @@ namespace Game.Chat.Commands } [Command("vmap", RBACPermissions.CommandDisableRemoveVmap, true)] - static bool HandleRemoveDisableVmapCommand(StringArguments args, CommandHandler handler) + static bool HandleRemoveDisableVmapCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -342,7 +342,7 @@ namespace Game.Chat.Commands } [Command("mmap", RBACPermissions.CommandDisableRemoveMmap, true)] - static bool HandleRemoveDisableMMapCommand(StringArguments args, CommandHandler handler) + static bool HandleRemoveDisableMMapCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/EventCommands.cs b/Source/Game/Chat/Commands/EventCommands.cs index cce3f240e..f934d295e 100644 --- a/Source/Game/Chat/Commands/EventCommands.cs +++ b/Source/Game/Chat/Commands/EventCommands.cs @@ -24,7 +24,7 @@ namespace Game.Chat class EventCommands { [Command("info", RBACPermissions.CommandEvent, true)] - static bool HandleEventInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleEventInfoCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -71,7 +71,7 @@ namespace Game.Chat } [Command("activelist", RBACPermissions.CommandEventActivelist, true)] - static bool HandleEventActiveListCommand(StringArguments args, CommandHandler handler) + static bool HandleEventActiveListCommand(CommandHandler handler, StringArguments args) { uint counter = 0; @@ -99,7 +99,7 @@ namespace Game.Chat } [Command("start", RBACPermissions.CommandEventStart, true)] - static bool HandleEventStartCommand(StringArguments args, CommandHandler handler) + static bool HandleEventStartCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -138,7 +138,7 @@ namespace Game.Chat } [Command("stop", RBACPermissions.CommandEventStop, true)] - static bool HandleEventStopCommand(StringArguments args, CommandHandler handler) + static bool HandleEventStopCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/GMCommands.cs b/Source/Game/Chat/Commands/GMCommands.cs index ebf9880c5..76a04f009 100644 --- a/Source/Game/Chat/Commands/GMCommands.cs +++ b/Source/Game/Chat/Commands/GMCommands.cs @@ -26,7 +26,7 @@ namespace Game.Chat class GMCommands { [Command("", RBACPermissions.CommandGm)] - static bool HandleGMCommand(StringArguments args, CommandHandler handler) + static bool HandleGMCommand(CommandHandler handler, StringArguments args) { Player _player = handler.GetSession().GetPlayer(); @@ -57,7 +57,7 @@ namespace Game.Chat } [Command("chat", RBACPermissions.CommandGmChat)] - static bool HandleGMChatCommand(StringArguments args, CommandHandler handler) + static bool HandleGMChatCommand(CommandHandler handler, StringArguments args) { WorldSession session = handler.GetSession(); if (session != null) @@ -93,7 +93,7 @@ namespace Game.Chat } [Command("fly", RBACPermissions.CommandGmFly)] - static bool HandleGMFlyCommand(StringArguments args, CommandHandler handler) + static bool HandleGMFlyCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -124,7 +124,7 @@ namespace Game.Chat } [Command("ingame", RBACPermissions.CommandGmIngame, true)] - static bool HandleGMListIngameCommand(StringArguments args, CommandHandler handler) + static bool HandleGMListIngameCommand(CommandHandler handler, StringArguments args) { bool first = true; bool footer = false; @@ -165,7 +165,7 @@ namespace Game.Chat } [Command("list", RBACPermissions.CommandGmList, true)] - static bool HandleGMListFullCommand(StringArguments args, CommandHandler handler) + static bool HandleGMListFullCommand(CommandHandler handler, StringArguments args) { // Get the accounts with GM Level >0 PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_GM_ACCOUNTS); @@ -200,7 +200,7 @@ namespace Game.Chat } [Command("visible", RBACPermissions.CommandGmVisible)] - static bool HandleGMVisibleCommand(StringArguments args, CommandHandler handler) + static bool HandleGMVisibleCommand(CommandHandler handler, StringArguments args) { Player _player = handler.GetSession().GetPlayer(); diff --git a/Source/Game/Chat/Commands/GameObjectCommands.cs b/Source/Game/Chat/Commands/GameObjectCommands.cs index c384c451b..f587f726d 100644 --- a/Source/Game/Chat/Commands/GameObjectCommands.cs +++ b/Source/Game/Chat/Commands/GameObjectCommands.cs @@ -32,7 +32,7 @@ namespace Game.Chat class GameObjectCommands { [Command("activate", RBACPermissions.CommandGobjectActivate)] - static bool HandleGameObjectActivateCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectActivateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -62,7 +62,7 @@ namespace Game.Chat } [Command("delete", RBACPermissions.CommandGobjectDelete)] - static bool HandleGameObjectDeleteCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectDeleteCommand(CommandHandler handler, StringArguments args) { // number or [name] Shift-click form |color|Hgameobject:go_guid|h[name]|h|r string id = handler.ExtractKeyFromLink(args, "Hgameobject"); @@ -101,7 +101,7 @@ namespace Game.Chat } [Command("despawngroup", RBACPermissions.CommandGobjectDespawngroup)] - static bool HandleGameObjectDespawnGroup(StringArguments args, CommandHandler handler) + static bool HandleGameObjectDespawnGroup(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -136,7 +136,7 @@ namespace Game.Chat } [Command("info", RBACPermissions.CommandGobjectInfo)] - static bool HandleGameObjectInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectInfoCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -233,7 +233,7 @@ namespace Game.Chat } [Command("move", RBACPermissions.CommandGobjectMove)] - static bool HandleGameObjectMoveCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectMoveCommand(CommandHandler handler, StringArguments args) { // number or [name] Shift-click form |color|Hgameobject:go_guid|h[name]|h|r string id = handler.ExtractKeyFromLink(args, "Hgameobject"); @@ -302,7 +302,7 @@ namespace Game.Chat } [Command("near", RBACPermissions.CommandGobjectNear)] - static bool HandleGameObjectNearCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectNearCommand(CommandHandler handler, StringArguments args) { float distance = args.Empty() ? 10.0f : args.NextSingle(); uint count = 0; @@ -346,7 +346,7 @@ namespace Game.Chat } [Command("spawngroup", RBACPermissions.CommandGobjectSpawngroup)] - static bool HandleGameObjectSpawnGroup(StringArguments args, CommandHandler handler) + static bool HandleGameObjectSpawnGroup(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -389,7 +389,7 @@ namespace Game.Chat } [Command("target", RBACPermissions.CommandGobjectTarget)] - static bool HandleGameObjectTargetCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectTargetCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); SQLResult result; @@ -504,7 +504,7 @@ namespace Game.Chat } [Command("turn", RBACPermissions.CommandGobjectTurn)] - static bool HandleGameObjectTurnCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectTurnCommand(CommandHandler handler, StringArguments args) { // number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r string id = handler.ExtractKeyFromLink(args, "Hgameobject"); @@ -573,7 +573,7 @@ namespace Game.Chat class AddCommands { [Command("", RBACPermissions.CommandGobjectAdd)] - static bool HandleGameObjectAddCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectAddCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -633,7 +633,7 @@ namespace Game.Chat } [Command("temp", RBACPermissions.CommandGobjectAddTemp)] - static bool HandleGameObjectAddTempCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectAddTempCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -667,7 +667,7 @@ namespace Game.Chat class SetCommands { [Command("phase", RBACPermissions.CommandGobjectSetPhase)] - static bool HandleGameObjectSetPhaseCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectSetPhaseCommand(CommandHandler handler, StringArguments args) { /*// number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r string id = handler.extractKeyFromLink(args, "Hgameobject"); @@ -704,7 +704,7 @@ namespace Game.Chat } [Command("state", RBACPermissions.CommandGobjectSetState)] - static bool HandleGameObjectSetStateCommand(StringArguments args, CommandHandler handler) + static bool HandleGameObjectSetStateCommand(CommandHandler handler, StringArguments args) { // number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r string id = handler.ExtractKeyFromLink(args, "Hgameobject"); diff --git a/Source/Game/Chat/Commands/GoCommands.cs b/Source/Game/Chat/Commands/GoCommands.cs index 40c368531..2765a7f53 100644 --- a/Source/Game/Chat/Commands/GoCommands.cs +++ b/Source/Game/Chat/Commands/GoCommands.cs @@ -16,7 +16,6 @@ */ using Framework.Constants; -using Framework.Database; using Framework.IO; using Game.DataStorage; using Game.Entities; @@ -24,36 +23,40 @@ using Game.Maps; using Game.SupportSystem; using System; using System.Collections.Generic; +using System.Linq; namespace Game.Chat.Commands { [CommandGroup("go", RBACPermissions.CommandGo)] class GoCommands { - [Command("bugticket", RBACPermissions.CommandGo)] - static bool HandleGoBugTicketCommand(StringArguments args, CommandHandler handler) + [Command("areatrigger", RBACPermissions.CommandGo)] + static bool HandleGoAreaTriggerCommand(CommandHandler handler, uint areaTriggerId) { - return HandleGoTicketCommand(args, handler); + var at = CliDB.AreaTriggerStorage.LookupByKey(areaTriggerId); + if (at == null) + { + handler.SendSysMessage(CypherStrings.CommandGoareatrnotfound, areaTriggerId); + return false; + } + return DoTeleport(handler, new Position(at.Pos.X, at.Pos.Y, at.Pos.Z), at.ContinentID); + } + + [Command("bugticket", RBACPermissions.CommandGo)] + static bool HandleGoBugTicketCommand(CommandHandler handler, uint ticketId) + { + return HandleGoTicketCommand(handler, ticketId); } [Command("complaintticket", RBACPermissions.CommandGo)] - static bool HandleGoComplaintTicketCommand(StringArguments args, CommandHandler handler) + static bool HandleGoComplaintTicketCommand(CommandHandler handler, uint ticketId) { - return HandleGoTicketCommand(args, handler); + return HandleGoTicketCommand(handler, ticketId); } [Command("graveyard", RBACPermissions.CommandGo)] - static bool HandleGoGraveyardCommand(StringArguments args, CommandHandler handler) + static bool HandleGoGraveyardCommand(CommandHandler handler, uint graveyardId) { - Player player = handler.GetSession().GetPlayer(); - - if (args.Empty()) - return false; - - uint graveyardId = args.NextUInt32(); - if (graveyardId == 0) - return false; - WorldSafeLocsEntry gy = Global.ObjectMgr.GetWorldSafeLoc(graveyardId); if (gy == null) { @@ -67,9 +70,10 @@ namespace Game.Chat.Commands return false; } + Player player = handler.GetSession().GetPlayer(); // stop flight if need if (player.IsInFlight()) - player.FinishTaxiFlight(); + player.FinishTaxiFlight(); else player.SaveRecallPosition(); // save only in non-flight case @@ -78,22 +82,10 @@ namespace Game.Chat.Commands } [Command("grid", RBACPermissions.CommandGo)] - static bool HandleGoGridCommand(StringArguments args, CommandHandler handler) + static bool HandleGoGridCommand(CommandHandler handler, float gridX, float gridY, uint mapId) { - if (args.Empty()) - return false; - Player player = handler.GetSession().GetPlayer(); - if (!float.TryParse(args.NextString(), out float gridX)) - return false; - - if (!float.TryParse(args.NextString(), out float gridY)) - return false; - - if (!uint.TryParse(args.NextString(), out uint mapId)) - mapId = player.GetMapId(); - // center of grid float x = (gridX - MapConst.CenterGridId + 0.5f) * MapConst.SizeofGrids; float y = (gridY - MapConst.CenterGridId + 0.5f) * MapConst.SizeofGrids; @@ -118,51 +110,34 @@ namespace Game.Chat.Commands } [Command("instance", RBACPermissions.CommandGo)] - static bool HandleGoInstanceCommand(StringArguments args, CommandHandler handler) + static bool HandleGoInstanceCommand(CommandHandler handler, string[] labels) { - if (args.Empty()) + if (labels.Empty()) return false; - uint mapId = 0; - string mapIdOrScriptNameStr = args.NextString(); - if (mapIdOrScriptNameStr.IsNumber()) - mapId = uint.Parse(mapIdOrScriptNameStr); - - if (mapId == 0) + MultiMap> matches = new(); + foreach (var pair in Global.ObjectMgr.GetInstanceTemplates()) { - List> matches = new(); - foreach (var pair in Global.ObjectMgr.GetInstanceTemplates()) - { - string scriptName = Global.ObjectMgr.GetScriptName(pair.Value.ScriptId); - if (scriptName.Contains(mapIdOrScriptNameStr)) - matches.Add(Tuple.Create(pair.Key, scriptName)); - } + uint count = 0; + string scriptName = Global.ObjectMgr.GetScriptName(pair.Value.ScriptId); + string mapName1 = CliDB.MapStorage.LookupByKey(pair.Key).MapName[handler.GetSessionDbcLocale()]; + foreach (var label in labels) + if (scriptName.Contains(label)) + ++count; - if (matches.Empty()) - { - handler.SendSysMessage(CypherStrings.CommandNoInstancesMatch); - return false; - } - - if (matches.Count > 1) - { - handler.SendSysMessage(CypherStrings.CommandMultipleInstancesMatch); - return false; - } - - mapId = matches[0].Item1; + if (count != 0) + matches.Add(count, Tuple.Create(pair.Key, mapName1, scriptName)); } - if (mapId == 0) - return false; - - InstanceTemplate temp = Global.ObjectMgr.GetInstanceTemplate(mapId); - if (temp == null) + if (matches.Empty()) { - //handler.SendSysMessage(CypherStrings.CommandMapNotInstance, mapId); + handler.SendSysMessage(CypherStrings.CommandNoInstancesMatch); return false; } - string scriptname = Global.ObjectMgr.GetScriptName(temp.ScriptId); + + var it = matches.Last(); + uint mapId = it.Value.Item1; + string mapName = it.Value.Item2; Player player = handler.GetSession().GetPlayer(); if (player.IsInFlight()) @@ -176,14 +151,18 @@ namespace Game.Chat.Commands { if (player.TeleportTo(exit.target_mapId, exit.target_X, exit.target_Y, exit.target_Z, exit.target_Orientation + MathF.PI)) { - handler.SendSysMessage(CypherStrings.CommandWentToInstanceGate, mapId, scriptname); + handler.SendSysMessage(CypherStrings.CommandWentToInstanceGate, mapName, mapId); return true; } else - handler.SendSysMessage(CypherStrings.CommandGoInstanceGateFailed, mapId, scriptname, exit.target_mapId); + { + uint parentMapId = exit.target_mapId; + string parentMapName = CliDB.MapStorage.LookupByKey(parentMapId).MapName[handler.GetSessionDbcLocale()]; + handler.SendSysMessage(CypherStrings.CommandGoInstanceGateFailed, mapName, mapId, parentMapName, parentMapId); + } } else - handler.SendSysMessage(CypherStrings.CommandInstanceNoExit, mapId, scriptname); + handler.SendSysMessage(CypherStrings.CommandInstanceNoExit, mapName, mapId); // try going to start AreaTriggerStruct entrance = Global.ObjectMgr.GetMapEntranceTrigger(mapId); @@ -191,60 +170,29 @@ namespace Game.Chat.Commands { if (player.TeleportTo(entrance.target_mapId, entrance.target_X, entrance.target_Y, entrance.target_Z, entrance.target_Orientation)) { - handler.SendSysMessage(CypherStrings.CommandWentToInstanceStart, mapId, scriptname); + handler.SendSysMessage(CypherStrings.CommandWentToInstanceStart, mapName, mapId); return true; } else - handler.SendSysMessage(CypherStrings.CommandGoInstanceStartFailed, mapId, scriptname); + handler.SendSysMessage(CypherStrings.CommandGoInstanceStartFailed, mapName, mapId); } else - handler.SendSysMessage(CypherStrings.CommandInstanceNoEntrance, mapId, scriptname); + handler.SendSysMessage(CypherStrings.CommandInstanceNoEntrance, mapName, mapId); return false; } [Command("offset", RBACPermissions.CommandGo)] - static bool HandleGoOffsetCommand(StringArguments args, CommandHandler handler) + static bool HandleGoOffsetCommand(CommandHandler handler, float dX, float dY, float dZ, float dO) { - if (args.Empty()) - return false; + Position loc = handler.GetSession().GetPlayer().GetPosition(); + loc.RelocateOffset(new Position(dX, dY, dZ, dO)); - Player player = handler.GetSession().GetPlayer(); - - string goX = args.NextString(); - string goY = args.NextString(); - string goZ = args.NextString(); - string port = args.NextString(); - - float x, y, z, o; - player.GetPosition(out x, out y, out z, out o); - if (!goX.IsEmpty()) - x += float.Parse(goX); - if (!goY.IsEmpty()) - y += float.Parse(goY); - if (!goZ.IsEmpty()) - z += float.Parse(goZ); - if (!port.IsEmpty()) - o += float.Parse(port); - - if (!GridDefines.IsValidMapCoord(x, y, z, o)) - { - handler.SendSysMessage(CypherStrings.InvalidTargetCoord, x, y, player.GetMapId()); - return false; - } - - // stop flight if need - if (player.IsInFlight()) - player.FinishTaxiFlight(); - else - player.SaveRecallPosition(); // save only in non-flight case - - player.TeleportTo(player.GetMapId(), x, y, z, o); - return true; + return DoTeleport(handler, loc); } [Command("quest", RBACPermissions.CommandGo)] - static bool HandleGoQuestCommand(StringArguments args, CommandHandler handler) + static bool HandleGoQuestCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -303,115 +251,32 @@ namespace Game.Chat.Commands } [Command("suggestionticket", RBACPermissions.CommandGo)] - static bool HandleGoSuggestionTicketCommand(StringArguments args, CommandHandler handler) + static bool HandleGoSuggestionTicketCommand(CommandHandler handler, uint ticketId) { - return HandleGoTicketCommand(args, handler); + return HandleGoTicketCommand(handler, ticketId); } [Command("taxinode", RBACPermissions.CommandGo)] - static bool HandleGoTaxinodeCommand(StringArguments args, CommandHandler handler) + static bool HandleGoTaxinodeCommand(CommandHandler handler, uint nodeId) { - Player player = handler.GetSession().GetPlayer(); - - if (args.Empty()) - return false; - - string id = handler.ExtractKeyFromLink(args, "Htaxinode"); - if (string.IsNullOrEmpty(id)) - return false; - - if (!uint.TryParse(id, out uint nodeId) || nodeId == 0) - return false; - - TaxiNodesRecord node = CliDB.TaxiNodesStorage.LookupByKey(nodeId); + var node = CliDB.TaxiNodesStorage.LookupByKey(nodeId); if (node == null) { handler.SendSysMessage(CypherStrings.CommandGotaxinodenotfound, nodeId); return false; } - - if ((node.Pos.X == 0.0f && node.Pos.Y == 0.0f && node.Pos.Z == 0.0f) || - !GridDefines.IsValidMapCoord(node.ContinentID, node.Pos.X, node.Pos.Y, node.Pos.Z)) - { - handler.SendSysMessage(CypherStrings.InvalidTargetCoord, node.Pos.X, node.Pos.Y, node.ContinentID); - return false; - } - - // stop flight if need - if (player.IsInFlight()) - player.FinishTaxiFlight(); - else - player.SaveRecallPosition(); // save only in non-flight case - - player.TeleportTo(node.ContinentID, node.Pos.X, node.Pos.Y, node.Pos.Z, player.GetOrientation()); - return true; - } - - [Command("areatrigger", RBACPermissions.CommandGo)] - static bool HandleGoAreaTriggerCommand(StringArguments args, CommandHandler handler) - { - Player player = handler.GetSession().GetPlayer(); - - if (args.Empty()) - return false; - - uint areaTriggerId = args.NextUInt32(); - if (areaTriggerId == 0) - return false; - - AreaTriggerRecord at = CliDB.AreaTriggerStorage.LookupByKey(areaTriggerId); - if (at == null) - { - handler.SendSysMessage(CypherStrings.CommandGoareatrnotfound, areaTriggerId); - return false; - } - - if (!GridDefines.IsValidMapCoord(at.ContinentID, at.Pos.X, at.Pos.Y, at.Pos.Z)) - { - handler.SendSysMessage(CypherStrings.InvalidTargetCoord, at.Pos.X, at.Pos.Y, at.ContinentID); - return false; - } - - // stop flight if need - if (player.IsInFlight()) - player.FinishTaxiFlight(); - else - player.SaveRecallPosition(); // save only in non-flight case - - player.TeleportTo(at.ContinentID, at.Pos.X, at.Pos.Y, at.Pos.Z, player.GetOrientation()); - return true; + return DoTeleport(handler, new Position(node.Pos.X, node.Pos.Y, node.Pos.Z), node.ContinentID); } //teleport at coordinates, including Z and orientation [Command("xyz", RBACPermissions.CommandGo)] - static bool HandleGoXYZCommand(StringArguments args, CommandHandler handler) + static bool HandleGoXYZCommand(CommandHandler handler, float x, float y, float? z, uint? id, float? o) { - if (args.Empty()) - return false; - Player player = handler.GetSession().GetPlayer(); - - if (!float.TryParse(args.NextString(), out float x)) - return false; - - if (!float.TryParse(args.NextString(), out float y)) - return false; - - string goZ = args.NextString(); - - if (!uint.TryParse(args.NextString(), out uint mapId)) - mapId = player.GetMapId(); - - if (!float.TryParse(args.NextString(), out float ort)) - ort = player.GetOrientation(); - - float z; - if (!goZ.IsEmpty()) + uint mapId = id.HasValue ? id.Value : player.GetMapId(); + if (z.HasValue) { - if (!float.TryParse(goZ, out z)) - return false; - - if (!GridDefines.IsValidMapCoord(mapId, x, y, z)) + if (!GridDefines.IsValidMapCoord(mapId, x, y, z.Value)) { handler.SendSysMessage(CypherStrings.InvalidTargetCoord, x, y, mapId); return false; @@ -428,19 +293,12 @@ namespace Game.Chat.Commands z = Math.Max(map.GetStaticHeight(PhasingHandler.EmptyPhaseShift, x, y, MapConst.MaxHeight), map.GetWaterLevel(PhasingHandler.EmptyPhaseShift, x, y)); } - // stop flight if need - if (player.IsInFlight()) - player.FinishTaxiFlight(); - else - player.SaveRecallPosition(); // save only in non-flight case - - player.TeleportTo(mapId, x, y, z, ort); - return true; + return DoTeleport(handler, new Position(x, y, z.Value, o.Value), mapId); } //teleport at coordinates [Command("zonexy", RBACPermissions.CommandGo)] - static bool HandleGoZoneXYCommand(StringArguments args, CommandHandler handler) + static bool HandleGoZoneXYCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -503,15 +361,8 @@ namespace Game.Chat.Commands return true; } - static bool HandleGoTicketCommand(StringArguments args, CommandHandler handler)where T : Ticket + static bool HandleGoTicketCommand(CommandHandler handler, uint ticketId) where T : Ticket { - if (args.Empty()) - return false; - - uint ticketId = args.NextUInt32(); - if (ticketId == 0) - return false; - T ticket = Global.SupportMgr.GetTicket(ticketId); if (ticket == null) { @@ -531,90 +382,70 @@ namespace Game.Chat.Commands return true; } + static bool DoTeleport(CommandHandler handler, Position pos, uint mapId = 0xFFFFFFFF) + { + Player player = handler.GetSession().GetPlayer(); + + if (mapId == 0xFFFFFFFF) + mapId = player.GetMapId(); + + if (!GridDefines.IsValidMapCoord(mapId, pos) || Global.ObjectMgr.IsTransportMap(mapId)) + { + handler.SendSysMessage(CypherStrings.InvalidTargetCoord, pos.GetPositionX(), pos.GetPositionY(), mapId); + return false; + } + + // stop flight if need + if (player.IsInFlight()) + player.FinishTaxiFlight(); + else + player.SaveRecallPosition(); // save only in non-flight case + + player.TeleportTo(new WorldLocation(mapId, pos)); + return true; + } + [CommandGroup("creature", RBACPermissions.CommandGo)] class GoCommandCreature { [Command("", RBACPermissions.CommandGo)] - static bool HandleGoCreatureSpawnIdCommand(StringArguments args, CommandHandler handler) + static bool HandleGoCreatureSpawnIdCommand(CommandHandler handler, ulong spawnId) { - if (args.Empty()) - return false; - - Player player = handler.GetSession().GetPlayer(); - - // "id" or number or [name] Shift-click form |color|Hcreature_entry:creature_id|h[name]|h|r - string param1 = handler.ExtractKeyFromLink(args, "Hcreature"); - if (param1.IsEmpty()) - return false; - - string whereClause = ""; - - // User wants to teleport to the NPC's template entry - if (param1.Equals("id")) - { - // Get the "creature_template.entry" - // number or [name] Shift-click form |color|Hcreature_entry:creature_id|h[name]|h|r - string id = handler.ExtractKeyFromLink(args, "Hcreature_entry"); - if (id.IsEmpty()) - return false; - - if (!uint.TryParse(id, out uint entry)) - return false; - - whereClause += "WHERE id = '" + entry + '\''; - } - else - { - ulong.TryParse(param1, out ulong guidLow); - if (guidLow != 0) - { - whereClause += "WHERE guid = '" + guidLow + '\''; - } - else - { - // param1 is not a number, must be mob's name - whereClause += ", creature_template WHERE creature.id = creature_template.entry AND creature_template.name LIKE '" + args.GetString() + '\''; - } - } - - SQLResult result = DB.World.Query("SELECT position_x, position_y, position_z, orientation, map FROM creature {0}", whereClause); - if (result.IsEmpty()) + CreatureData spawnpoint = Global.ObjectMgr.GetCreatureData(spawnId); + if (spawnpoint == null) { handler.SendSysMessage(CypherStrings.CommandGocreatnotfound); return false; } - float x = result.Read(0); - float y = result.Read(1); - float z = result.Read(2); - float o = result.Read(3); - uint mapId = result.Read(4); - - if (result.NextRow()) - handler.SendSysMessage(CypherStrings.CommandGocreatmultiple); - - if (!GridDefines.IsValidMapCoord(mapId, x, y, z, o) || Global.ObjectMgr.IsTransportMap(mapId)) - { - handler.SendSysMessage(CypherStrings.InvalidTargetCoord, x, y, mapId); - return false; - } - - // stop flight if need - if (player.IsInFlight()) - player.FinishTaxiFlight(); - else - player.SaveRecallPosition(); // save only in non-flight case - - player.TeleportTo(mapId, x, y, z, o); - - return true; + return DoTeleport(handler, spawnpoint.SpawnPoint, spawnpoint.MapId); } [Command("id", RBACPermissions.CommandGo)] - static bool HandleGoCreatureCIdCommand(StringArguments args, CommandHandler handler) + static bool HandleGoCreatureCIdCommand(CommandHandler handler, uint id) { - //temp fix till rework command system. - return HandleGoCreatureSpawnIdCommand(args, handler); + CreatureData spawnpoint = null; + foreach (var pair in Global.ObjectMgr.GetAllCreatureData()) + { + if (pair.Value.Id != id) + continue; + + if (spawnpoint == null) + spawnpoint = pair.Value; + else + { + handler.SendSysMessage(CypherStrings.CommandGocreatmultiple); + break; + } + } + + if (spawnpoint == null) + { + handler.SendSysMessage(CypherStrings.CommandGocreatnotfound); + return false; + } + + return DoTeleport(handler, spawnpoint.SpawnPoint, spawnpoint.MapId); } } @@ -622,50 +453,43 @@ namespace Game.Chat.Commands class GoCommandGameobject { [Command("", RBACPermissions.CommandGo)] - static bool HandleGoGameObjectSpawnIdCommand(StringArguments args, CommandHandler handler) + static bool HandleGoGameObjectSpawnIdCommand(CommandHandler handler, uint spawnId) { - if (args.Empty()) - return false; - - Player player = handler.GetSession().GetPlayer(); - - // number or [name] Shift-click form |color|Hgameobject:go_guid|h[name]|h|r - string id = handler.ExtractKeyFromLink(args, "Hgameobject"); - if (string.IsNullOrEmpty(id)) - return false; - - if (!ulong.TryParse(id, out ulong guidLow) || guidLow == 0) - return false; - - // by DB guid - GameObjectData goData = Global.ObjectMgr.GetGameObjectData(guidLow); - if (goData == null) + GameObjectData spawnpoint = Global.ObjectMgr.GetGameObjectData(spawnId); + if (spawnpoint == null) { handler.SendSysMessage(CypherStrings.CommandGoobjnotfound); return false; } - if (!GridDefines.IsValidMapCoord(goData.MapId, goData.SpawnPoint) || Global.ObjectMgr.IsTransportMap(goData.MapId)) - { - handler.SendSysMessage(CypherStrings.InvalidTargetCoord, goData.SpawnPoint.GetPositionX(), goData.SpawnPoint.GetPositionY(), goData.MapId); - return false; - } - - // stop flight if need - if (player.IsInFlight()) - player.FinishTaxiFlight(); - else - player.SaveRecallPosition(); // save only in non-flight case - - player.TeleportTo(new WorldLocation(goData.MapId, goData.SpawnPoint)); - return true; + return DoTeleport(handler, spawnpoint.SpawnPoint, spawnpoint.MapId); } [Command("id", RBACPermissions.CommandGo)] - static bool HandleGoGameObjectGOIdCommand(StringArguments args, CommandHandler handler) + static bool HandleGoGameObjectGOIdCommand(CommandHandler handler, uint goId) { - //temp fix till rework command system. - return HandleGoGameObjectSpawnIdCommand(args, handler); + GameObjectData spawnpoint = null; + foreach (var pair in Global.ObjectMgr.GetAllGameObjectData()) + { + if (pair.Value.Id != goId) + continue; + + if (spawnpoint == null) + spawnpoint = pair.Value; + else + { + handler.SendSysMessage(CypherStrings.CommandGocreatmultiple); + break; + } + } + + if (spawnpoint == null) + { + handler.SendSysMessage(CypherStrings.CommandGoobjnotfound); + return false; + } + + return DoTeleport(handler, spawnpoint.SpawnPoint, spawnpoint.MapId); } } } diff --git a/Source/Game/Chat/Commands/GroupCommands.cs b/Source/Game/Chat/Commands/GroupCommands.cs index 61acf8e0b..247f26854 100644 --- a/Source/Game/Chat/Commands/GroupCommands.cs +++ b/Source/Game/Chat/Commands/GroupCommands.cs @@ -33,7 +33,7 @@ namespace Game.Chat { // Summon group of player [Command("summon", RBACPermissions.CommandGroupSummon)] - static bool HandleGroupSummonCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupSummonCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -123,7 +123,7 @@ namespace Game.Chat } [Command("leader", RBACPermissions.CommandGroupLeader)] - static bool HandleGroupLeaderCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupLeaderCommand(CommandHandler handler, StringArguments args) { Player player; Group group; @@ -148,7 +148,7 @@ namespace Game.Chat } [Command("disband", RBACPermissions.CommandGroupDisband)] - static bool HandleGroupDisbandCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupDisbandCommand(CommandHandler handler, StringArguments args) { Player player; Group group; @@ -168,7 +168,7 @@ namespace Game.Chat } [Command("remove", RBACPermissions.CommandGroupRemove)] - static bool HandleGroupRemoveCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupRemoveCommand(CommandHandler handler, StringArguments args) { Player player; Group group; @@ -189,7 +189,7 @@ namespace Game.Chat } [Command("join", RBACPermissions.CommandGroupJoin)] - static bool HandleGroupJoinCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupJoinCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -232,7 +232,7 @@ namespace Game.Chat } [Command("list", RBACPermissions.CommandGroupList)] - static bool HandleGroupListCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupListCommand(CommandHandler handler, StringArguments args) { // Get ALL the variables! Player playerTarget; @@ -347,25 +347,25 @@ namespace Game.Chat class GroupSetCommands { [Command("assistant", RBACPermissions.CommandGroupAssistant)] - static bool HandleGroupSetAssistantCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupSetAssistantCommand(CommandHandler handler, StringArguments args) { return GroupFlagCommand(args, handler, GroupMemberFlags.Assistant, "Assistant"); } [Command("leader", RBACPermissions.CommandGroupLeader)] - static bool HandleGroupSetLeaderCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupSetLeaderCommand(CommandHandler handler, StringArguments args) { - return HandleGroupLeaderCommand(args, handler); + return HandleGroupLeaderCommand(handler, args); } [Command("mainassist", RBACPermissions.CommandGroupMainassist)] - static bool HandleGroupSetMainAssistCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupSetMainAssistCommand(CommandHandler handler, StringArguments args) { return GroupFlagCommand(args, handler, GroupMemberFlags.MainAssist, "Main Assist"); } [Command("maintank", RBACPermissions.CommandGroupMaintank)] - static bool HandleGroupSetMainTankCommand(StringArguments args, CommandHandler handler) + static bool HandleGroupSetMainTankCommand(CommandHandler handler, StringArguments args) { return GroupFlagCommand(args, handler, GroupMemberFlags.MainTank, "Main Tank"); } diff --git a/Source/Game/Chat/Commands/GuildCommands.cs b/Source/Game/Chat/Commands/GuildCommands.cs index 9451b4826..3068c366f 100644 --- a/Source/Game/Chat/Commands/GuildCommands.cs +++ b/Source/Game/Chat/Commands/GuildCommands.cs @@ -26,7 +26,7 @@ namespace Game.Chat class GuildCommands { [Command("create", RBACPermissions.CommandGuildCreate, true)] - static bool HandleGuildCreateCommand(StringArguments args, CommandHandler handler) + static bool HandleGuildCreateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -70,7 +70,7 @@ namespace Game.Chat } [Command("delete", RBACPermissions.CommandGuildDelete, true)] - static bool HandleGuildDeleteCommand(StringArguments args, CommandHandler handler) + static bool HandleGuildDeleteCommand(CommandHandler handler, StringArguments args) { string guildName = handler.ExtractQuotedArg(args.NextString()); if (string.IsNullOrEmpty(guildName)) @@ -85,7 +85,7 @@ namespace Game.Chat } [Command("invite", RBACPermissions.CommandGuildInvite, true)] - static bool HandleGuildInviteCommand(StringArguments args, CommandHandler handler) + static bool HandleGuildInviteCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -108,7 +108,7 @@ namespace Game.Chat } [Command("uninvite", RBACPermissions.CommandGuildUninvite, true)] - static bool HandleGuildUninviteCommand(StringArguments args, CommandHandler handler) + static bool HandleGuildUninviteCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -128,7 +128,7 @@ namespace Game.Chat } [Command("rank", RBACPermissions.CommandGuildRank, true)] - static bool HandleGuildRankCommand(StringArguments args, CommandHandler handler) + static bool HandleGuildRankCommand(CommandHandler handler, StringArguments args) { string nameStr; string rankStr; @@ -156,7 +156,7 @@ namespace Game.Chat } [Command("rename", RBACPermissions.CommandGuildRename, true)] - static bool HandleGuildRenameCommand(StringArguments args, CommandHandler handler) + static bool HandleGuildRenameCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -199,7 +199,7 @@ namespace Game.Chat } [Command("info", RBACPermissions.CommandGuildInfo, true)] - static bool HandleGuildInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleGuildInfoCommand(CommandHandler handler, StringArguments args) { Guild guild = null; Player target = handler.GetSelectedPlayerOrSelf(); diff --git a/Source/Game/Chat/Commands/HonorCommands.cs b/Source/Game/Chat/Commands/HonorCommands.cs index 88e7c2012..a9ee89a8a 100644 --- a/Source/Game/Chat/Commands/HonorCommands.cs +++ b/Source/Game/Chat/Commands/HonorCommands.cs @@ -25,7 +25,7 @@ namespace Game.Chat.Commands class HonorCommands { [Command("update", RBACPermissions.CommandHonorUpdate)] - static bool HandleHonorUpdateCommand(StringArguments args, CommandHandler handler) + static bool HandleHonorUpdateCommand(CommandHandler handler, StringArguments args) { Player target = handler.GetSelectedPlayer(); if (!target) @@ -46,7 +46,7 @@ namespace Game.Chat.Commands class HonorAddCommands { [Command("", RBACPermissions.CommandHonorAdd)] - static bool HandleHonorAddCommand(StringArguments args, CommandHandler handler) + static bool HandleHonorAddCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -68,7 +68,7 @@ namespace Game.Chat.Commands } [Command("kill", RBACPermissions.CommandHonorAddKill)] - static bool HandleHonorAddKillCommand(StringArguments args, CommandHandler handler) + static bool HandleHonorAddKillCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target) diff --git a/Source/Game/Chat/Commands/InstanceCommands.cs b/Source/Game/Chat/Commands/InstanceCommands.cs index c5f895a0f..405afba92 100644 --- a/Source/Game/Chat/Commands/InstanceCommands.cs +++ b/Source/Game/Chat/Commands/InstanceCommands.cs @@ -28,7 +28,7 @@ namespace Game.Chat class InstanceCommands { [Command("listbinds", RBACPermissions.CommandInstanceListbinds)] - static bool HandleInstanceListBinds(StringArguments args, CommandHandler handler) + static bool HandleInstanceListBinds(CommandHandler handler, StringArguments args) { Player player = handler.GetSelectedPlayer(); if (!player) @@ -72,7 +72,7 @@ namespace Game.Chat } [Command("unbind", RBACPermissions.CommandInstanceUnbind)] - static bool HandleInstanceUnbind(StringArguments args, CommandHandler handler) + static bool HandleInstanceUnbind(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -116,7 +116,7 @@ namespace Game.Chat } [Command("stats", RBACPermissions.CommandInstanceStats, true)] - static bool HandleInstanceStats(StringArguments args, CommandHandler handler) + static bool HandleInstanceStats(CommandHandler handler, StringArguments args) { handler.SendSysMessage("instances loaded: {0}", Global.MapMgr.GetNumInstances()); handler.SendSysMessage("players in instances: {0}", Global.MapMgr.GetNumPlayersInInstances()); @@ -128,7 +128,7 @@ namespace Game.Chat } [Command("savedata", RBACPermissions.CommandInstanceSavedata)] - static bool HandleInstanceSaveData(StringArguments args, CommandHandler handler) + static bool HandleInstanceSaveData(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); InstanceMap map = player.GetMap().ToInstanceMap(); @@ -150,7 +150,7 @@ namespace Game.Chat } [Command("setbossstate", RBACPermissions.CommandInstanceSetBossState)] - static bool HandleInstanceSetBossState(StringArguments args, CommandHandler handler) + static bool HandleInstanceSetBossState(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -214,7 +214,7 @@ namespace Game.Chat } [Command("getbossstate", RBACPermissions.CommandInstanceGetBossState)] - static bool HandleInstanceGetBossState(StringArguments args, CommandHandler handler) + static bool HandleInstanceGetBossState(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/LFGCommands.cs b/Source/Game/Chat/Commands/LFGCommands.cs index f109d5e4f..493a3e0a6 100644 --- a/Source/Game/Chat/Commands/LFGCommands.cs +++ b/Source/Game/Chat/Commands/LFGCommands.cs @@ -28,7 +28,7 @@ namespace Game.Chat class LFGCommands { [Command("player", RBACPermissions.CommandLfgPlayer, true)] - static bool HandleLfgPlayerInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleLfgPlayerInfoCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -39,7 +39,7 @@ namespace Game.Chat } [Command("group", RBACPermissions.CommandLfgGroup, true)] - static bool HandleLfgGroupInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleLfgGroupInfoCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -91,7 +91,7 @@ namespace Game.Chat } [Command("options", RBACPermissions.CommandLfgOptions, true)] - static bool HandleLfgOptionsCommand(StringArguments args, CommandHandler handler) + static bool HandleLfgOptionsCommand(CommandHandler handler, StringArguments args) { string str = args.NextString(); int options = -1; @@ -111,14 +111,14 @@ namespace Game.Chat } [Command("queue", RBACPermissions.CommandLfgQueue, true)] - static bool HandleLfgQueueInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleLfgQueueInfoCommand(CommandHandler handler, StringArguments args) { handler.SendSysMessage(Global.LFGMgr.DumpQueueInfo(args.NextBoolean())); return true; } [Command("clean", RBACPermissions.CommandLfgClean, true)] - static bool HandleLfgCleanCommand(StringArguments args, CommandHandler handler) + static bool HandleLfgCleanCommand(CommandHandler handler, StringArguments args) { handler.SendSysMessage(CypherStrings.LfgClean); Global.LFGMgr.Clean(); diff --git a/Source/Game/Chat/Commands/LearnCommands.cs b/Source/Game/Chat/Commands/LearnCommands.cs index d3f9ce785..a2992d682 100644 --- a/Source/Game/Chat/Commands/LearnCommands.cs +++ b/Source/Game/Chat/Commands/LearnCommands.cs @@ -29,7 +29,7 @@ namespace Game.Chat.Commands class LearnCommands { [Command("", RBACPermissions.CommandLearn)] - static bool HandleLearnCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnCommand(CommandHandler handler, StringArguments args) { Player targetPlayer = handler.GetSelectedPlayerOrSelf(); @@ -76,7 +76,7 @@ namespace Game.Chat.Commands class LearnAllCommands { [Command("gm", RBACPermissions.CommandLearnAllGm)] - static bool HandleLearnAllGMCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnAllGMCommand(CommandHandler handler, StringArguments args) { foreach (var skillSpell in Global.SpellMgr.GetSkillLineAbilityMapBounds((uint)SkillType.Internal)) { @@ -92,7 +92,7 @@ namespace Game.Chat.Commands } [Command("lang", RBACPermissions.CommandLearnAllLang)] - static bool HandleLearnAllLangCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnAllLangCommand(CommandHandler handler, StringArguments args) { // skipping UNIVERSAL language (0) Global.LanguageMgr.ForEachLanguage((lang, languageDesc) => @@ -108,7 +108,7 @@ namespace Game.Chat.Commands } [Command("default", RBACPermissions.CommandLearnAllDefault)] - static bool HandleLearnAllDefaultCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnAllDefaultCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -123,7 +123,7 @@ namespace Game.Chat.Commands } [Command("crafts", RBACPermissions.CommandLearnAllCrafts)] - static bool HandleLearnAllCraftsCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnAllCraftsCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -142,7 +142,7 @@ namespace Game.Chat.Commands } [Command("recipes", RBACPermissions.CommandLearnAllRecipes)] - static bool HandleLearnAllRecipesCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnAllRecipesCommand(CommandHandler handler, StringArguments args) { // Learns all recipes of specified profession and sets skill to max // Example: .learn all_recipes enchanting @@ -243,15 +243,15 @@ namespace Game.Chat.Commands class LearnAllMyCommands { [Command("class", RBACPermissions.CommandLearnAllMyClass)] - static bool HandleLearnAllMyClassCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnAllMyClassCommand(CommandHandler handler, StringArguments args) { - HandleLearnAllMySpellsCommand(args, handler); - HandleLearnAllMyTalentsCommand(args, handler); + HandleLearnAllMySpellsCommand(handler, args); + HandleLearnAllMyTalentsCommand(handler, args); return true; } [Command("spells", RBACPermissions.CommandLearnAllMySpells)] - static bool HandleLearnAllMySpellsCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnAllMySpellsCommand(CommandHandler handler, StringArguments args) { ChrClassesRecord classEntry = CliDB.ChrClassesStorage.LookupByKey(handler.GetSession().GetPlayer().GetClass()); if (classEntry == null) @@ -288,7 +288,7 @@ namespace Game.Chat.Commands } [Command("talents", RBACPermissions.CommandLearnAllMyTalents)] - static bool HandleLearnAllMyTalentsCommand(StringArguments args, CommandHandler handler) + static bool HandleLearnAllMyTalentsCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); uint playerClass = (uint)player.GetClass(); @@ -312,12 +312,12 @@ namespace Game.Chat.Commands } [Command("pettalents", RBACPermissions.CommandLearnAllMyPettalents)] - static bool HandleLearnAllMyPetTalentsCommand(StringArguments args, CommandHandler handler) { return true; } + static bool HandleLearnAllMyPetTalentsCommand(CommandHandler handler, StringArguments args) { return true; } } } [CommandNonGroup("unlearn", RBACPermissions.CommandUnlearn)] - static bool HandleUnLearnCommand(StringArguments args, CommandHandler handler) + static bool HandleUnLearnCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/ListCommands.cs b/Source/Game/Chat/Commands/ListCommands.cs index be481203f..64963bf0e 100644 --- a/Source/Game/Chat/Commands/ListCommands.cs +++ b/Source/Game/Chat/Commands/ListCommands.cs @@ -30,7 +30,7 @@ namespace Game.Chat.Commands class ListCommands { [Command("auras", RBACPermissions.CommandListAuras)] - static bool HandleListAurasCommand(StringArguments args, CommandHandler handler) + static bool HandleListAurasCommand(CommandHandler handler, StringArguments args) { Unit unit = handler.GetSelectedUnit(); if (!unit) @@ -77,7 +77,7 @@ namespace Game.Chat.Commands } [Command("creature", RBACPermissions.CommandListCreature, true)] - static bool HandleListCreatureCommand(StringArguments args, CommandHandler handler) + static bool HandleListCreatureCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -173,7 +173,7 @@ namespace Game.Chat.Commands } [Command("item", RBACPermissions.CommandListItem, true)] - static bool HandleListItemCommand(StringArguments args, CommandHandler handler) + static bool HandleListItemCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -364,7 +364,7 @@ namespace Game.Chat.Commands } [Command("mail", RBACPermissions.CommandListMail, true)] - static bool HandleListMailCommand(StringArguments args, CommandHandler handler) + static bool HandleListMailCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -469,7 +469,7 @@ namespace Game.Chat.Commands } [Command("object", RBACPermissions.CommandListObject, true)] - static bool HandleListObjectCommand(StringArguments args, CommandHandler handler) + static bool HandleListObjectCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -566,7 +566,7 @@ namespace Game.Chat.Commands } [Command("respawns", RBACPermissions.CommandListRespawns)] - static bool HandleListRespawnsCommand(StringArguments args, CommandHandler handler) + static bool HandleListRespawnsCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); Map map = player.GetMap(); @@ -624,7 +624,7 @@ namespace Game.Chat.Commands } [Command("scenes", RBACPermissions.CommandListScenes)] - static bool HandleListScenesCommand(StringArguments args, CommandHandler handler) + static bool HandleListScenesCommand(CommandHandler handler, StringArguments args) { Player target = handler.GetSelectedPlayer(); if (!target) @@ -647,7 +647,7 @@ namespace Game.Chat.Commands } [Command("spawnpoints", RBACPermissions.CommandListSpawnpoints)] - static bool HandleListSpawnPointsCommand(StringArguments args, CommandHandler handler) + static bool HandleListSpawnPointsCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); Map map = player.GetMap(); diff --git a/Source/Game/Chat/Commands/LookupCommands.cs b/Source/Game/Chat/Commands/LookupCommands.cs index a939af50f..8a25fc2c8 100644 --- a/Source/Game/Chat/Commands/LookupCommands.cs +++ b/Source/Game/Chat/Commands/LookupCommands.cs @@ -33,7 +33,7 @@ namespace Game.Chat static int maxResults = 50; [Command("area", RBACPermissions.CommandLookupArea, true)] - static bool Area(StringArguments args, CommandHandler handler) + static bool Area(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -97,7 +97,7 @@ namespace Game.Chat } [Command("creature", RBACPermissions.CommandLookupCreature, true)] - static bool Creature(StringArguments args, CommandHandler handler) + static bool Creature(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -169,7 +169,7 @@ namespace Game.Chat } [Command("event", RBACPermissions.CommandLookupEvent, true)] - static bool Event(StringArguments args, CommandHandler handler) + static bool Event(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -217,7 +217,7 @@ namespace Game.Chat } [Command("faction", RBACPermissions.CommandLookupFaction, true)] - static bool Faction(StringArguments args, CommandHandler handler) + static bool Faction(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -310,7 +310,7 @@ namespace Game.Chat } [Command("item", RBACPermissions.CommandLookupItem, true)] - static bool Item(StringArguments args, CommandHandler handler) + static bool Item(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -353,7 +353,7 @@ namespace Game.Chat } [Command("itemset", RBACPermissions.CommandLookupItemset, true)] - static bool ItemSet(StringArguments args, CommandHandler handler) + static bool ItemSet(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -413,7 +413,7 @@ namespace Game.Chat } [Command("object", RBACPermissions.CommandLookupObject, true)] - static bool Object(StringArguments args, CommandHandler handler) + static bool Object(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -485,7 +485,7 @@ namespace Game.Chat } [Command("quest", RBACPermissions.CommandLookupQuest, true)] - static bool Quest(StringArguments args, CommandHandler handler) + static bool Quest(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -633,7 +633,7 @@ namespace Game.Chat } [Command("skill", RBACPermissions.CommandLookupSkill, true)] - static bool Skill(StringArguments args, CommandHandler handler) + static bool Skill(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -710,7 +710,7 @@ namespace Game.Chat } [Command("taxinode", RBACPermissions.CommandLookupTaxinode, true)] - static bool TaxiNode(StringArguments args, CommandHandler handler) + static bool TaxiNode(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -756,7 +756,7 @@ namespace Game.Chat } [Command("tele", RBACPermissions.CommandLookupTele, true)] - static bool Tele(StringArguments args, CommandHandler handler) + static bool Tele(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -799,7 +799,7 @@ namespace Game.Chat } [Command("title", RBACPermissions.CommandLookupTitle, true)] - static bool Title(StringArguments args, CommandHandler handler) + static bool Title(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -876,7 +876,7 @@ namespace Game.Chat } [Command("map", RBACPermissions.CommandLookupMap, true)] - static bool Map(StringArguments args, CommandHandler handler) + static bool Map(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -956,7 +956,7 @@ namespace Game.Chat class PlayerCommandGroup { [Command("ip", RBACPermissions.CommandLookupPlayerIp)] - static bool IP(StringArguments args, CommandHandler handler) + static bool IP(CommandHandler handler, StringArguments args) { string ip; int limit; @@ -986,7 +986,7 @@ namespace Game.Chat } [Command("account", RBACPermissions.CommandLookupPlayerAccount)] - static bool Account(StringArguments args, CommandHandler handler) + static bool Account(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1002,7 +1002,7 @@ namespace Game.Chat } [Command("email", RBACPermissions.CommandLookupPlayerEmail)] - static bool Email(StringArguments args, CommandHandler handler) + static bool Email(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1072,7 +1072,7 @@ namespace Game.Chat class SpellCommandGroup { [Command("", RBACPermissions.CommandLookupSpell)] - static bool Default(StringArguments args, CommandHandler handler) + static bool Default(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1173,7 +1173,7 @@ namespace Game.Chat } [Command("id", RBACPermissions.CommandLookupSpellId)] - static bool SpellId(StringArguments args, CommandHandler handler) + static bool SpellId(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/MMapsCommands.cs b/Source/Game/Chat/Commands/MMapsCommands.cs index 295f82ef0..fad65b39d 100644 --- a/Source/Game/Chat/Commands/MMapsCommands.cs +++ b/Source/Game/Chat/Commands/MMapsCommands.cs @@ -28,7 +28,7 @@ namespace Game.Chat class MMapsCommands { [Command("path", RBACPermissions.CommandMmapPath)] - static bool PathCommand(StringArguments args, CommandHandler handler) + static bool PathCommand(CommandHandler handler, StringArguments args) { if (Global.MMapMgr.GetNavMesh(handler.GetPlayer().GetMapId()) == null) { @@ -89,7 +89,7 @@ namespace Game.Chat } [Command("loc", RBACPermissions.CommandMmapLoc)] - static bool LocCommand(StringArguments args, CommandHandler handler) + static bool LocCommand(CommandHandler handler, StringArguments args) { handler.SendSysMessage("mmap tileloc:"); @@ -155,7 +155,7 @@ namespace Game.Chat } [Command("loadedtiles", RBACPermissions.CommandMmapLoadedtiles)] - static bool LoadedTilesCommand(StringArguments args, CommandHandler handler) + static bool LoadedTilesCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); uint terrainMapId = PhasingHandler.GetTerrainMapId(player.GetPhaseShift(), player.GetMap(), player.GetPositionX(), player.GetPositionY()); @@ -181,7 +181,7 @@ namespace Game.Chat } [Command("stats", RBACPermissions.CommandMmapStats)] - static bool HandleMmapStatsCommand(StringArguments args, CommandHandler handler) + static bool HandleMmapStatsCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); uint terrainMapId = PhasingHandler.GetTerrainMapId(player.GetPhaseShift(), player.GetMap(), player.GetPositionX(), player.GetPositionY()); @@ -225,7 +225,7 @@ namespace Game.Chat } [Command("testarea", RBACPermissions.CommandMmapTestarea)] - static bool TestArea(StringArguments args, CommandHandler handler) + static bool TestArea(CommandHandler handler, StringArguments args) { float radius = 40.0f; WorldObject obj = handler.GetPlayer(); diff --git a/Source/Game/Chat/Commands/MessageCommands.cs b/Source/Game/Chat/Commands/MessageCommands.cs index 966aeb431..80623cb69 100644 --- a/Source/Game/Chat/Commands/MessageCommands.cs +++ b/Source/Game/Chat/Commands/MessageCommands.cs @@ -28,7 +28,7 @@ namespace Game.Chat class MessageCommands { [CommandNonGroup("nameannounce", RBACPermissions.CommandNameannounce, true)] - static bool HandleNameAnnounceCommand(StringArguments args, CommandHandler handler) + static bool HandleNameAnnounceCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -43,7 +43,7 @@ namespace Game.Chat } [CommandNonGroup("gmnameannounce", RBACPermissions.CommandGmnameannounce, true)] - static bool HandleGMNameAnnounceCommand(StringArguments args, CommandHandler handler) + static bool HandleGMNameAnnounceCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -58,7 +58,7 @@ namespace Game.Chat } [CommandNonGroup("announce", RBACPermissions.CommandAnnounce, true)] - static bool HandleAnnounceCommand(StringArguments args, CommandHandler handler) + static bool HandleAnnounceCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -69,7 +69,7 @@ namespace Game.Chat } [CommandNonGroup("gmannounce", RBACPermissions.CommandGmannounce, true)] - static bool HandleGMAnnounceCommand(StringArguments args, CommandHandler handler) + static bool HandleGMAnnounceCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -79,7 +79,7 @@ namespace Game.Chat } [CommandNonGroup("notify", RBACPermissions.CommandNotify, true)] - static bool HandleNotifyCommand(StringArguments args, CommandHandler handler) + static bool HandleNotifyCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -93,7 +93,7 @@ namespace Game.Chat } [CommandNonGroup("gmnotify", RBACPermissions.CommandGmnotify, true)] - static bool HandleGMNotifyCommand(StringArguments args, CommandHandler handler) + static bool HandleGMNotifyCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -107,7 +107,7 @@ namespace Game.Chat } [CommandNonGroup("whispers", RBACPermissions.CommandWhispers)] - static bool HandleWhispersCommand(StringArguments args, CommandHandler handler) + static bool HandleWhispersCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -165,7 +165,7 @@ namespace Game.Chat class ChannelSetCommands { [Command("ownership", RBACPermissions.CommandChannelSetOwnership)] - static bool HandleChannelSetOwnership(StringArguments args, CommandHandler handler) + static bool HandleChannelSetOwnership(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/MiscCommands.cs b/Source/Game/Chat/Commands/MiscCommands.cs index eeade0e51..52a0e120e 100644 --- a/Source/Game/Chat/Commands/MiscCommands.cs +++ b/Source/Game/Chat/Commands/MiscCommands.cs @@ -35,7 +35,7 @@ namespace Game.Chat class MiscCommands { [CommandNonGroup("additem", RBACPermissions.CommandAdditem)] - static bool HandleAddItemCommand(StringArguments args, CommandHandler handler) + static bool HandleAddItemCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -188,7 +188,7 @@ namespace Game.Chat } [CommandNonGroup("additemset", RBACPermissions.CommandAdditemset)] - static bool HandleAddItemSetCommand(StringArguments args, CommandHandler handler) + static bool HandleAddItemSetCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -276,7 +276,7 @@ namespace Game.Chat // Teleport to Player [CommandNonGroup("appear", RBACPermissions.CommandAppear)] - static bool HandleAppearCommand(StringArguments args, CommandHandler handler) + static bool HandleAppearCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -413,14 +413,14 @@ namespace Game.Chat } [CommandNonGroup("bank", RBACPermissions.CommandBank)] - static bool HandleBankCommand(StringArguments args, CommandHandler handler) + static bool HandleBankCommand(CommandHandler handler, StringArguments args) { handler.GetSession().SendShowBank(handler.GetSession().GetPlayer().GetGUID()); return true; } [CommandNonGroup("bindsight", RBACPermissions.CommandBindsight)] - static bool HandleBindSightCommand(StringArguments args, CommandHandler handler) + static bool HandleBindSightCommand(CommandHandler handler, StringArguments args) { Unit unit = handler.GetSelectedUnit(); if (!unit) @@ -431,7 +431,7 @@ namespace Game.Chat } [CommandNonGroup("combatstop", RBACPermissions.CommandCombatstop, true)] - static bool HandleCombatStopCommand(StringArguments args, CommandHandler handler) + static bool HandleCombatStopCommand(CommandHandler handler, StringArguments args) { Player target = null; @@ -460,7 +460,7 @@ namespace Game.Chat } [CommandNonGroup("cometome", RBACPermissions.CommandCometome)] - static bool HandleComeToMeCommand(StringArguments args, CommandHandler handler) + static bool HandleComeToMeCommand(CommandHandler handler, StringArguments args) { Creature caster = handler.GetSelectedCreature(); if (!caster) @@ -476,7 +476,7 @@ namespace Game.Chat } [CommandNonGroup("commands", RBACPermissions.CommandCommands, true)] - static bool HandleCommandsCommand(StringArguments args, CommandHandler handler) + static bool HandleCommandsCommand(CommandHandler handler, StringArguments args) { string list = ""; foreach (var command in CommandManager.GetCommands()) @@ -504,7 +504,7 @@ namespace Game.Chat } [CommandNonGroup("damage", RBACPermissions.CommandDamage)] - static bool HandleDamageCommand(StringArguments args, CommandHandler handler) + static bool HandleDamageCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -632,7 +632,7 @@ namespace Game.Chat } [CommandNonGroup("dev", RBACPermissions.CommandDev)] - static bool HandleDevCommand(StringArguments args, CommandHandler handler) + static bool HandleDevCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) { @@ -664,7 +664,7 @@ namespace Game.Chat } [CommandNonGroup("die", RBACPermissions.CommandDie)] - static bool HandleDieCommand(StringArguments args, CommandHandler handler) + static bool HandleDieCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); @@ -686,7 +686,7 @@ namespace Game.Chat } [CommandNonGroup("dismount", RBACPermissions.CommandDismount)] - static bool HandleDismountCommand(StringArguments args, CommandHandler handler) + static bool HandleDismountCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSelectedPlayerOrSelf(); @@ -709,7 +709,7 @@ namespace Game.Chat } [CommandNonGroup("distance", RBACPermissions.CommandDistance)] - static bool HandleGetDistanceCommand(StringArguments args, CommandHandler handler) + static bool HandleGetDistanceCommand(CommandHandler handler, StringArguments args) { WorldObject obj; @@ -770,7 +770,7 @@ namespace Game.Chat } [CommandNonGroup("freeze", RBACPermissions.CommandFreeze)] - static bool HandleFreezeCommand(StringArguments args, CommandHandler handler) + static bool HandleFreezeCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSelectedPlayer(); // Selected player, if any. Might be null. int freezeDuration = 0; // Freeze Duration (in seconds) @@ -862,7 +862,7 @@ namespace Game.Chat } [CommandNonGroup("gps", RBACPermissions.CommandGps)] - static bool HandleGPSCommand(StringArguments args, CommandHandler handler) + static bool HandleGPSCommand(CommandHandler handler, StringArguments args) { WorldObject obj; if (!args.Empty()) @@ -987,7 +987,7 @@ namespace Game.Chat } [CommandNonGroup("guid", RBACPermissions.CommandGuid)] - static bool HandleGUIDCommand(StringArguments args, CommandHandler handler) + static bool HandleGUIDCommand(CommandHandler handler, StringArguments args) { ObjectGuid guid = handler.GetSession().GetPlayer().GetTarget(); @@ -1002,7 +1002,7 @@ namespace Game.Chat } [CommandNonGroup("help", RBACPermissions.CommandHelp, true)] - static bool HandleHelpCommand(StringArguments args, CommandHandler handler) + static bool HandleHelpCommand(CommandHandler handler, StringArguments args) { string cmd = args.NextString(""); if (cmd.IsEmpty()) @@ -1020,7 +1020,7 @@ namespace Game.Chat } [CommandNonGroup("hidearea", RBACPermissions.CommandHidearea)] - static bool HandleHideAreaCommand(StringArguments args, CommandHandler handler) + static bool HandleHideAreaCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1061,7 +1061,7 @@ namespace Game.Chat // move item to other slot [CommandNonGroup("itemmove", RBACPermissions.CommandItemmove)] - static bool HandleItemMoveCommand(StringArguments args, CommandHandler handler) + static bool HandleItemMoveCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1088,7 +1088,7 @@ namespace Game.Chat // kick player [CommandNonGroup("kick", RBACPermissions.CommandKick, true)] - static bool HandleKickPlayerCommand(StringArguments args, CommandHandler handler) + static bool HandleKickPlayerCommand(CommandHandler handler, StringArguments args) { Player target; string playerName; @@ -1121,7 +1121,7 @@ namespace Game.Chat } [CommandNonGroup("linkgrave", RBACPermissions.CommandLinkgrave)] - static bool HandleLinkGraveCommand(StringArguments args, CommandHandler handler) + static bool HandleLinkGraveCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1168,7 +1168,7 @@ namespace Game.Chat } [CommandNonGroup("listfreeze", RBACPermissions.CommandListfreeze)] - static bool HandleListFreezeCommand(StringArguments args, CommandHandler handler) + static bool HandleListFreezeCommand(CommandHandler handler, StringArguments args) { // Get names from DB PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_CHARACTER_AURA_FROZEN); @@ -1205,7 +1205,7 @@ namespace Game.Chat } [CommandNonGroup("mailbox", RBACPermissions.CommandMailbox)] - static bool HandleMailBoxCommand(StringArguments args, CommandHandler handler) + static bool HandleMailBoxCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); @@ -1214,7 +1214,7 @@ namespace Game.Chat } [CommandNonGroup("movegens", RBACPermissions.CommandMovegens)] - static bool HandleMovegensCommand(StringArguments args, CommandHandler handler) + static bool HandleMovegensCommand(CommandHandler handler, StringArguments args) { Unit unit = handler.GetSelectedUnit(); if (!unit) @@ -1299,7 +1299,7 @@ namespace Game.Chat // mute player for some times [CommandNonGroup("mute", RBACPermissions.CommandMute, true)] - static bool HandleMuteCommand(StringArguments args, CommandHandler handler) + static bool HandleMuteCommand(CommandHandler handler, StringArguments args) { string nameStr; string delayStr; @@ -1382,7 +1382,7 @@ namespace Game.Chat // mutehistory command [CommandNonGroup("mutehistory", RBACPermissions.CommandMutehistory, true)] - static bool HandleMuteInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleMuteInfoCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1424,7 +1424,7 @@ namespace Game.Chat } [CommandNonGroup("neargrave", RBACPermissions.CommandNeargrave)] - static bool HandleNearGraveCommand(StringArguments args, CommandHandler handler) + static bool HandleNearGraveCommand(CommandHandler handler, StringArguments args) { string px2 = args.NextString(); Team team; @@ -1484,7 +1484,7 @@ namespace Game.Chat } [CommandNonGroup("pinfo", RBACPermissions.CommandPinfo, true)] - static bool HandlePInfoCommand(StringArguments args, CommandHandler handler) + static bool HandlePInfoCommand(CommandHandler handler, StringArguments args) { // Define ALL the player variables! Player target; @@ -1838,7 +1838,7 @@ namespace Game.Chat } [CommandNonGroup("playall", RBACPermissions.CommandPlayall)] - static bool HandlePlayAllCommand(StringArguments args, CommandHandler handler) + static bool HandlePlayAllCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1860,7 +1860,7 @@ namespace Game.Chat } [CommandNonGroup("possess", RBACPermissions.CommandPossess)] - static bool HandlePossessCommand(StringArguments args, CommandHandler handler) + static bool HandlePossessCommand(CommandHandler handler, StringArguments args) { Unit unit = handler.GetSelectedUnit(); if (!unit) @@ -1871,7 +1871,7 @@ namespace Game.Chat } [CommandNonGroup("pvpstats", RBACPermissions.CommandPvpstats, true)] - static bool HandlePvPstatsCommand(StringArguments args, CommandHandler handler) + static bool HandlePvPstatsCommand(CommandHandler handler, StringArguments args) { if (WorldConfig.GetBoolValue(WorldCfg.BattlegroundStoreStatisticsEnable)) { @@ -1900,7 +1900,7 @@ namespace Game.Chat // Teleport player to last position [CommandNonGroup("recall", RBACPermissions.CommandRecall)] - static bool HandleRecallCommand(StringArguments args, CommandHandler handler) + static bool HandleRecallCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -1925,7 +1925,7 @@ namespace Game.Chat } [CommandNonGroup("repairitems", RBACPermissions.CommandRepairitems, true)] - static bool HandleRepairitemsCommand(StringArguments args, CommandHandler handler) + static bool HandleRepairitemsCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -1946,7 +1946,7 @@ namespace Game.Chat } [CommandNonGroup("respawn", RBACPermissions.CommandRespawn)] - static bool HandleRespawnCommand(StringArguments args, CommandHandler handler) + static bool HandleRespawnCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); @@ -1984,7 +1984,7 @@ namespace Game.Chat } [CommandNonGroup("revive", RBACPermissions.CommandRevive, true)] - static bool HandleReviveCommand(StringArguments args, CommandHandler handler) + static bool HandleReviveCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -2005,7 +2005,7 @@ namespace Game.Chat // Save all players in the world [CommandNonGroup("saveall", RBACPermissions.CommandSaveall, true)] - static bool HandleSaveAllCommand(StringArguments args, CommandHandler handler) + static bool HandleSaveAllCommand(CommandHandler handler, StringArguments args) { Global.ObjAccessor.SaveAllPlayers(); handler.SendSysMessage(CypherStrings.PlayersSaved); @@ -2013,7 +2013,7 @@ namespace Game.Chat } [CommandNonGroup("save", RBACPermissions.CommandSave)] - static bool HandleSaveCommand(StringArguments args, CommandHandler handler) + static bool HandleSaveCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); @@ -2038,7 +2038,7 @@ namespace Game.Chat } [CommandNonGroup("showarea", RBACPermissions.CommandShowarea)] - static bool HandleShowAreaCommand(StringArguments args, CommandHandler handler) + static bool HandleShowAreaCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -2079,7 +2079,7 @@ namespace Game.Chat // Summon Player [CommandNonGroup("summon", RBACPermissions.CommandSummon)] - static bool HandleSummonCommand(StringArguments args, CommandHandler handler) + static bool HandleSummonCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -2191,7 +2191,7 @@ namespace Game.Chat } [CommandNonGroup("unbindsight", RBACPermissions.CommandUnbindsight)] - static bool HandleUnbindSightCommand(StringArguments args, CommandHandler handler) + static bool HandleUnbindSightCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); @@ -2203,7 +2203,7 @@ namespace Game.Chat } [CommandNonGroup("unfreeze", RBACPermissions.CommandUnfreeze)] - static bool HandleUnFreezeCommand(StringArguments args, CommandHandler handler) + static bool HandleUnFreezeCommand(CommandHandler handler, StringArguments args) { string name = ""; Player player; @@ -2263,7 +2263,7 @@ namespace Game.Chat // unmute player [CommandNonGroup("unmute", RBACPermissions.CommandUnmute, true)] - static bool HandleUnmuteCommand(StringArguments args, CommandHandler handler) + static bool HandleUnmuteCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -2314,7 +2314,7 @@ namespace Game.Chat } [CommandNonGroup("unpossess", RBACPermissions.CommandUnpossess)] - static bool HandleUnPossessCommand(StringArguments args, CommandHandler handler) + static bool HandleUnPossessCommand(CommandHandler handler, StringArguments args) { Unit unit = handler.GetSelectedUnit(); if (!unit) @@ -2326,7 +2326,7 @@ namespace Game.Chat } [CommandNonGroup("unstuck", RBACPermissions.CommandUnstuck, true)] - static bool HandleUnstuckCommand(StringArguments args, CommandHandler handler) + static bool HandleUnstuckCommand(CommandHandler handler, StringArguments args) { uint SPELL_UNSTUCK_ID = 7355; uint SPELL_UNSTUCK_VISUAL = 2683; @@ -2401,7 +2401,7 @@ namespace Game.Chat } [CommandNonGroup("wchange", RBACPermissions.CommandWchange)] - static bool HandleChangeWeather(StringArguments args, CommandHandler handler) + static bool HandleChangeWeather(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -2436,34 +2436,4 @@ namespace Game.Chat return true; } } - - [CommandGroup("achievement", RBACPermissions.CommandAchievement)] - class AchievementCommand - { - [Command("add", RBACPermissions.CommandAchievementAdd)] - static bool Add(StringArguments args, CommandHandler handler) - { - if (args.Empty()) - return false; - - string idStr = handler.ExtractKeyFromLink(args, "Hachievement"); - if (string.IsNullOrEmpty(idStr)) - return false; - - if (!uint.TryParse(idStr, out uint achievementId) || achievementId == 0) - return false; - - Player target = handler.GetSelectedPlayer(); - if (!target) - { - handler.SendSysMessage(CypherStrings.NoCharSelected); - return false; - } - AchievementRecord achievementEntry = CliDB.AchievementStorage.LookupByKey(achievementId); - if (achievementEntry != null) - target.CompletedAchievement(achievementEntry); - - return true; - } - } } \ No newline at end of file diff --git a/Source/Game/Chat/Commands/ModifyCommands.cs b/Source/Game/Chat/Commands/ModifyCommands.cs index d9f0055fc..d09cd8e94 100644 --- a/Source/Game/Chat/Commands/ModifyCommands.cs +++ b/Source/Game/Chat/Commands/ModifyCommands.cs @@ -29,7 +29,7 @@ namespace Game.Chat class ModifyCommand { [Command("hp", RBACPermissions.CommandModifyHp)] - static bool HandleModifyHPCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyHPCommand(CommandHandler handler, StringArguments args) { Player target = handler.GetSelectedPlayerOrSelf(); if (CheckModifyResources(args, handler, target, out int hp, out int hpmax)) @@ -43,7 +43,7 @@ namespace Game.Chat } [Command("mana", RBACPermissions.CommandModifyMana)] - static bool HandleModifyManaCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyManaCommand(CommandHandler handler, StringArguments args) { int mana, manamax; Player target = handler.GetSelectedPlayerOrSelf(); @@ -60,7 +60,7 @@ namespace Game.Chat } [Command("energy", RBACPermissions.CommandModifyEnergy)] - static bool HandleModifyEnergyCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyEnergyCommand(CommandHandler handler, StringArguments args) { int energy, energymax; Player target = handler.GetSelectedPlayerOrSelf(); @@ -76,7 +76,7 @@ namespace Game.Chat } [Command("rage", RBACPermissions.CommandModifyRage)] - static bool HandleModifyRageCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyRageCommand(CommandHandler handler, StringArguments args) { int rage, ragemax; Player target = handler.GetSelectedPlayerOrSelf(); @@ -92,7 +92,7 @@ namespace Game.Chat } [Command("runicpower", RBACPermissions.CommandModifyRunicpower)] - static bool HandleModifyRunicPowerCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyRunicPowerCommand(CommandHandler handler, StringArguments args) { int rune, runemax; Player target = handler.GetSelectedPlayerOrSelf(); @@ -108,7 +108,7 @@ namespace Game.Chat } [Command("faction", RBACPermissions.CommandModifyFaction)] - static bool HandleModifyFactionCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyFactionCommand(CommandHandler handler, StringArguments args) { string pfactionid = handler.ExtractKeyFromLink(args, "Hfaction"); @@ -156,7 +156,7 @@ namespace Game.Chat } [Command("spell", RBACPermissions.CommandModifySpell)] - static bool HandleModifySpellCommand(StringArguments args, CommandHandler handler) + static bool HandleModifySpellCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -205,10 +205,10 @@ namespace Game.Chat } [Command("talentpoints", RBACPermissions.CommandModifyTalentpoints)] - static bool HandleModifyTalentCommand(StringArguments args, CommandHandler handler) { return false; } + static bool HandleModifyTalentCommand(CommandHandler handler, StringArguments args) { return false; } [Command("scale", RBACPermissions.CommandModifyScale)] - static bool HandleModifyScaleCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyScaleCommand(CommandHandler handler, StringArguments args) { float Scale; Unit target = handler.GetSelectedUnit(); @@ -226,7 +226,7 @@ namespace Game.Chat } [Command("mount", RBACPermissions.CommandModifyMount)] - static bool HandleModifyMountCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyMountCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -263,7 +263,7 @@ namespace Game.Chat } [Command("money", RBACPermissions.CommandModifyMoney)] - static bool HandleModifyMoneyCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyMoneyCommand(CommandHandler handler, StringArguments args) { Player target = handler.GetSelectedPlayerOrSelf(); if (!target) @@ -323,7 +323,7 @@ namespace Game.Chat } [Command("honor", RBACPermissions.CommandModifyHonor)] - static bool HandleModifyHonorCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyHonorCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -349,7 +349,7 @@ namespace Game.Chat } [Command("drunk", RBACPermissions.CommandModifyDrunk)] - static bool HandleModifyDrunkCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyDrunkCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -366,7 +366,7 @@ namespace Game.Chat } [Command("reputation", RBACPermissions.CommandModifyReputation)] - static bool HandleModifyRepCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyRepCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -458,7 +458,7 @@ namespace Game.Chat } [Command("phase", RBACPermissions.CommandModifyPhase)] - static bool HandleModifyPhaseCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyPhaseCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -501,7 +501,7 @@ namespace Game.Chat } [Command("power", RBACPermissions.CommandModifyPower)] - static bool HandleModifyPowerCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyPowerCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -548,7 +548,7 @@ namespace Game.Chat } [Command("standstate", RBACPermissions.CommandModifyStandstate)] - static bool HandleModifyStandStateCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyStandStateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -560,7 +560,7 @@ namespace Game.Chat } [Command("gender", RBACPermissions.CommandModifyGender)] - static bool HandleModifyGenderCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyGenderCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -648,7 +648,7 @@ namespace Game.Chat } [Command("currency", RBACPermissions.CommandModifyCurrency)] - static bool HandleModifyCurrencyCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyCurrencyCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -675,7 +675,7 @@ namespace Game.Chat } [CommandNonGroup("morph", RBACPermissions.CommandMorph)] - static bool HandleModifyMorphCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyMorphCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -696,7 +696,7 @@ namespace Game.Chat } [CommandNonGroup("demorph", RBACPermissions.CommandDemorph)] - static bool HandleDeMorphCommand(StringArguments args, CommandHandler handler) + static bool HandleDeMorphCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target) @@ -712,7 +712,7 @@ namespace Game.Chat } [Command("xp", RBACPermissions.CommandModifyXp)] - static bool HandleModifyXPCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyXPCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -744,13 +744,13 @@ namespace Game.Chat class ModifySpeed { [Command("", RBACPermissions.CommandModifySpeed)] - static bool HandleModifySpeedCommand(StringArguments args, CommandHandler handler) + static bool HandleModifySpeedCommand(CommandHandler handler, StringArguments args) { - return HandleModifyASpeedCommand(args, handler); + return HandleModifyASpeedCommand(handler, args); } [Command("all", RBACPermissions.CommandModifySpeedAll)] - static bool HandleModifyASpeedCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyASpeedCommand(CommandHandler handler, StringArguments args) { float allSpeed; Player target = handler.GetSelectedPlayerOrSelf(); @@ -767,7 +767,7 @@ namespace Game.Chat } [Command("swim", RBACPermissions.CommandModifySpeedSwim)] - static bool HandleModifySwimCommand(StringArguments args, CommandHandler handler) + static bool HandleModifySwimCommand(CommandHandler handler, StringArguments args) { float swimSpeed; Player target = handler.GetSelectedPlayerOrSelf(); @@ -781,7 +781,7 @@ namespace Game.Chat } [Command("backwalk", RBACPermissions.CommandModifySpeedBackwalk)] - static bool HandleModifyBWalkCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyBWalkCommand(CommandHandler handler, StringArguments args) { float backSpeed; Player target = handler.GetSelectedPlayerOrSelf(); @@ -795,7 +795,7 @@ namespace Game.Chat } [Command("fly", RBACPermissions.CommandModifySpeedFly)] - static bool HandleModifyFlyCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyFlyCommand(CommandHandler handler, StringArguments args) { float flySpeed; Player target = handler.GetSelectedPlayerOrSelf(); @@ -809,7 +809,7 @@ namespace Game.Chat } [Command("walk", RBACPermissions.CommandModifySpeedWalk)] - static bool HandleModifyWalkSpeedCommand(StringArguments args, CommandHandler handler) + static bool HandleModifyWalkSpeedCommand(CommandHandler handler, StringArguments args) { float Speed; Player target = handler.GetSelectedPlayerOrSelf(); diff --git a/Source/Game/Chat/Commands/NPCCommands.cs b/Source/Game/Chat/Commands/NPCCommands.cs index 10617370d..f9b0904c7 100644 --- a/Source/Game/Chat/Commands/NPCCommands.cs +++ b/Source/Game/Chat/Commands/NPCCommands.cs @@ -34,7 +34,7 @@ namespace Game.Chat class NPCCommands { [Command("despawngroup", RBACPermissions.CommandNpcDespawngroup)] - static bool HandleNpcDespawnGroup(StringArguments args, CommandHandler handler) + static bool HandleNpcDespawnGroup(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -69,7 +69,7 @@ namespace Game.Chat } [Command("evade", RBACPermissions.CommandNpcEvade)] - static bool HandleNpcEvadeCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcEvadeCommand(CommandHandler handler, StringArguments args) { Creature creatureTarget = handler.GetSelectedCreature(); if (!creatureTarget || creatureTarget.IsPet()) @@ -113,7 +113,7 @@ namespace Game.Chat } [Command("info", RBACPermissions.CommandNpcInfo)] - static bool HandleNpcInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcInfoCommand(CommandHandler handler, StringArguments args) { Creature target = handler.GetSelectedCreature(); if (!target) @@ -202,7 +202,7 @@ namespace Game.Chat } [Command("move", RBACPermissions.CommandNpcMove)] - static bool HandleNpcMoveCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcMoveCommand(CommandHandler handler, StringArguments args) { ulong lowguid; @@ -268,7 +268,7 @@ namespace Game.Chat } [Command("near", RBACPermissions.CommandNpcNear)] - static bool HandleNpcNearCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcNearCommand(CommandHandler handler, StringArguments args) { float distance = args.Empty() ? 10.0f : args.NextSingle(); uint count = 0; @@ -314,7 +314,7 @@ namespace Game.Chat } [Command("playemote", RBACPermissions.CommandNpcPlayemote)] - static bool HandleNpcPlayEmoteCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcPlayEmoteCommand(CommandHandler handler, StringArguments args) { uint emote = args.NextUInt32(); @@ -331,7 +331,7 @@ namespace Game.Chat } [Command("say", RBACPermissions.CommandNpcSay)] - static bool HandleNpcSayCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSayCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -363,7 +363,7 @@ namespace Game.Chat } [Command("showloot", RBACPermissions.CommandNpcShowloot)] - static bool HandleNpcShowLootCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcShowLootCommand(CommandHandler handler, StringArguments args) { Creature creatureTarget = handler.GetSelectedCreature(); if (creatureTarget == null || creatureTarget.IsPet()) @@ -424,7 +424,7 @@ namespace Game.Chat } [Command("spawngroup", RBACPermissions.CommandNpcSpawngroup)] - static bool HandleNpcSpawnGroup(StringArguments args, CommandHandler handler) + static bool HandleNpcSpawnGroup(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -465,7 +465,7 @@ namespace Game.Chat } [Command("tame", RBACPermissions.CommandNpcTame)] - static bool HandleNpcTameCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcTameCommand(CommandHandler handler, StringArguments args) { Creature creatureTarget = handler.GetSelectedCreature(); if (!creatureTarget || creatureTarget.IsPet()) @@ -528,7 +528,7 @@ namespace Game.Chat } [Command("textemote", RBACPermissions.CommandNpcTextemote)] - static bool HandleNpcTextEmoteCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcTextEmoteCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -547,7 +547,7 @@ namespace Game.Chat } [Command("whisper", RBACPermissions.CommandNpcWhisper)] - static bool HandleNpcWhisperCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcWhisperCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -583,7 +583,7 @@ namespace Game.Chat } [Command("yell", RBACPermissions.CommandNpcYell)] - static bool HandleNpcYellCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcYellCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -639,7 +639,7 @@ namespace Game.Chat class AddCommands { [Command("", RBACPermissions.CommandNpcAdd)] - static bool HandleNpcAddCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcAddCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -694,7 +694,7 @@ namespace Game.Chat } [Command("item", RBACPermissions.CommandNpcAddItem)] - static bool HandleNpcAddVendorItemCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcAddVendorItemCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -757,7 +757,7 @@ namespace Game.Chat } [Command("move", RBACPermissions.CommandNpcAddMove)] - static bool HandleNpcAddMoveCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcAddMoveCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -788,7 +788,7 @@ namespace Game.Chat } [Command("formation", RBACPermissions.CommandNpcAddFormation)] - static bool HandleNpcAddFormationCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcAddFormationCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -834,7 +834,7 @@ namespace Game.Chat } [Command("temp", RBACPermissions.CommandNpcAddTemp)] - static bool HandleNpcAddTempSpawnCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcAddTempSpawnCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -867,7 +867,7 @@ namespace Game.Chat class DeleteCommands { [Command("", RBACPermissions.CommandNpcDelete)] - static bool HandleNpcDeleteCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcDeleteCommand(CommandHandler handler, StringArguments args) { ulong spawnId; @@ -914,7 +914,7 @@ namespace Game.Chat } [Command("item", RBACPermissions.CommandNpcDeleteItem)] - static bool HandleNpcDeleteVendorItemCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcDeleteVendorItemCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -954,7 +954,7 @@ namespace Game.Chat class FollowCommands { [Command("", RBACPermissions.CommandNpcFollow)] - static bool HandleNpcFollowCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcFollowCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); Creature creature = handler.GetSelectedCreature(); @@ -973,7 +973,7 @@ namespace Game.Chat } [Command("stop", RBACPermissions.CommandNpcFollowStop)] - static bool HandleNpcUnFollowCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcUnFollowCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetPlayer(); Creature creature = handler.GetSelectedCreature(); @@ -1010,7 +1010,7 @@ namespace Game.Chat class SetCommands { [Command("allowmove", RBACPermissions.CommandNpcSetAllowmove)] - static bool HandleNpcSetAllowMovementCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetAllowMovementCommand(CommandHandler handler, StringArguments args) { /* if (Global.WorldMgr.getAllowMovement()) @@ -1028,7 +1028,7 @@ namespace Game.Chat } [Command("data", RBACPermissions.CommandNpcSetData)] - static bool HandleNpcSetDataCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetDataCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1053,7 +1053,7 @@ namespace Game.Chat } [Command("entry", RBACPermissions.CommandNpcSetEntry)] - static bool HandleNpcSetEntryCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetEntryCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1078,7 +1078,7 @@ namespace Game.Chat } [Command("factionid", RBACPermissions.CommandNpcSetFactionid)] - static bool HandleNpcSetFactionIdCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetFactionIdCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1121,7 +1121,7 @@ namespace Game.Chat } [Command("flag", RBACPermissions.CommandNpcSetFlag)] - static bool HandleNpcSetFlagCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetFlagCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1149,7 +1149,7 @@ namespace Game.Chat } [Command("level", RBACPermissions.CommandNpcSetLevel)] - static bool HandleNpcSetLevelCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetLevelCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1177,7 +1177,7 @@ namespace Game.Chat } [Command("link", RBACPermissions.CommandNpcSetLink)] - static bool HandleNpcSetLinkCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetLinkCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1208,7 +1208,7 @@ namespace Game.Chat } [Command("model", RBACPermissions.CommandNpcSetModel)] - static bool HandleNpcSetModelCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetModelCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1238,7 +1238,7 @@ namespace Game.Chat } [Command("movetype", RBACPermissions.CommandNpcSetMovetype)] - static bool HandleNpcSetMoveTypeCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetMoveTypeCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1352,7 +1352,7 @@ namespace Game.Chat } [Command("phase", RBACPermissions.CommandNpcSetPhase)] - static bool HandleNpcSetPhaseCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetPhaseCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1380,7 +1380,7 @@ namespace Game.Chat } [Command("phasegroup", RBACPermissions.CommandNpcSetPhase)] - static bool HandleNpcSetPhaseGroup(StringArguments args, CommandHandler handler) + static bool HandleNpcSetPhaseGroup(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1404,7 +1404,7 @@ namespace Game.Chat } [Command("wanderdistance", RBACPermissions.CommandNpcSetSpawndist)] - static bool HandleNpcSetWanderDistanceCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetWanderDistanceCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -1449,7 +1449,7 @@ namespace Game.Chat } [Command("spawntime", RBACPermissions.CommandNpcSetSpawntime)] - static bool HandleNpcSetSpawnTimeCommand(StringArguments args, CommandHandler handler) + static bool HandleNpcSetSpawnTimeCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/PetCommands.cs b/Source/Game/Chat/Commands/PetCommands.cs index d20a5b6aa..098c1d739 100644 --- a/Source/Game/Chat/Commands/PetCommands.cs +++ b/Source/Game/Chat/Commands/PetCommands.cs @@ -26,7 +26,7 @@ namespace Game.Chat class PetCommands { [Command("create", RBACPermissions.CommandPetCreate)] - static bool HandlePetCreateCommand(StringArguments args, CommandHandler handler) + static bool HandlePetCreateCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); Creature creatureTarget = handler.GetSelectedCreature(); @@ -94,7 +94,7 @@ namespace Game.Chat } [Command("learn", RBACPermissions.CommandPetLearn)] - static bool HandlePetLearnCommand(StringArguments args, CommandHandler handler) + static bool HandlePetLearnCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -132,7 +132,7 @@ namespace Game.Chat } [Command("unlearn", RBACPermissions.CommandPetUnlearn)] - static bool HandlePetUnlearnCommand(StringArguments args, CommandHandler handler) + static bool HandlePetUnlearnCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -155,7 +155,7 @@ namespace Game.Chat } [Command("level", RBACPermissions.CommandPetLevel)] - static bool HandlePetLevelCommand(StringArguments args, CommandHandler handler) + static bool HandlePetLevelCommand(CommandHandler handler, StringArguments args) { Pet pet = GetSelectedPlayerPetOrOwn(handler); Player owner = pet ? pet.GetOwner() : null; diff --git a/Source/Game/Chat/Commands/QuestCommands.cs b/Source/Game/Chat/Commands/QuestCommands.cs index 74655b6ce..497e08a7b 100644 --- a/Source/Game/Chat/Commands/QuestCommands.cs +++ b/Source/Game/Chat/Commands/QuestCommands.cs @@ -28,7 +28,7 @@ namespace Game.Chat class QuestCommands { [Command("add", RBACPermissions.CommandQuestAdd)] - static bool Add(StringArguments args, CommandHandler handler) + static bool Add(CommandHandler handler, StringArguments args) { Player player = handler.GetSelectedPlayer(); if (!player) @@ -71,7 +71,7 @@ namespace Game.Chat } [Command("complete", RBACPermissions.CommandQuestComplete)] - static bool Complete(StringArguments args, CommandHandler handler) + static bool Complete(CommandHandler handler, StringArguments args) { Player player = handler.GetSelectedPlayer(); if (!player) @@ -169,7 +169,7 @@ namespace Game.Chat } [Command("remove", RBACPermissions.CommandQuestRemove)] - static bool Remove(StringArguments args, CommandHandler handler) + static bool Remove(CommandHandler handler, StringArguments args) { Player player = handler.GetSelectedPlayer(); if (!player) @@ -231,7 +231,7 @@ namespace Game.Chat } [Command("reward", RBACPermissions.CommandQuestReward)] - static bool Reward(StringArguments args, CommandHandler handler) + static bool Reward(CommandHandler handler, StringArguments args) { Player player = handler.GetSelectedPlayer(); if (!player) diff --git a/Source/Game/Chat/Commands/RbacCommands.cs b/Source/Game/Chat/Commands/RbacCommands.cs index 1c9c8f719..009aed3b3 100644 --- a/Source/Game/Chat/Commands/RbacCommands.cs +++ b/Source/Game/Chat/Commands/RbacCommands.cs @@ -27,7 +27,7 @@ namespace Game.Chat.Commands class RbacComands { [Command("list", RBACPermissions.CommandRbacList, true)] - static bool HandleRBACListPermissionsCommand(StringArguments args, CommandHandler handler) + static bool HandleRBACListPermissionsCommand(CommandHandler handler, StringArguments args) { uint id = args.NextUInt32(); @@ -66,7 +66,7 @@ namespace Game.Chat.Commands class RbacAccountCommands { [Command("grant", RBACPermissions.CommandRbacAccPermGrant, true)] - static bool HandleRBACPermGrantCommand(StringArguments args, CommandHandler handler) + static bool HandleRBACPermGrantCommand(CommandHandler handler, StringArguments args) { RBACCommandData command = ReadParams(args, handler); if (command == null) @@ -100,7 +100,7 @@ namespace Game.Chat.Commands } [Command("deny", RBACPermissions.CommandRbacAccPermDeny, true)] - static bool HandleRBACPermDenyCommand(StringArguments args, CommandHandler handler) + static bool HandleRBACPermDenyCommand(CommandHandler handler, StringArguments args) { RBACCommandData command = ReadParams(args, handler); @@ -135,7 +135,7 @@ namespace Game.Chat.Commands } [Command("revoke", RBACPermissions.CommandRbacAccPermRevoke, true)] - static bool HandleRBACPermRevokeCommand(StringArguments args, CommandHandler handler) + static bool HandleRBACPermRevokeCommand(CommandHandler handler, StringArguments args) { RBACCommandData command = ReadParams(args, handler); @@ -166,7 +166,7 @@ namespace Game.Chat.Commands } [Command("list", RBACPermissions.CommandRbacAccPermList, true)] - static bool HandleRBACPermListCommand(StringArguments args, CommandHandler handler) + static bool HandleRBACPermListCommand(CommandHandler handler, StringArguments args) { RBACCommandData command = ReadParams(args, handler, false); diff --git a/Source/Game/Chat/Commands/ReloadCommand.cs b/Source/Game/Chat/Commands/ReloadCommand.cs index 74325cc48..ccc860035 100644 --- a/Source/Game/Chat/Commands/ReloadCommand.cs +++ b/Source/Game/Chat/Commands/ReloadCommand.cs @@ -28,7 +28,7 @@ namespace Game.Chat class ReloadCommand { [Command("access_requirement", RBACPermissions.CommandReloadAccessRequirement, true)] - static bool HandleReloadAccessRequirementCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAccessRequirementCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Access Requirement definitions..."); Global.ObjectMgr.LoadAccessRequirements(); @@ -37,7 +37,7 @@ namespace Game.Chat } [Command("achievement_reward", RBACPermissions.CommandReloadAchievementReward, true)] - static bool HandleReloadAchievementRewardCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAchievementRewardCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Achievement Reward Data..."); Global.AchievementMgr.LoadRewards(); @@ -46,7 +46,7 @@ namespace Game.Chat } [Command("areatrigger_involvedrelation", RBACPermissions.CommandReloadAreatriggerInvolvedrelation, true)] - static bool HandleReloadQuestAreaTriggersCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadQuestAreaTriggersCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Quest Area Triggers..."); Global.ObjectMgr.LoadQuestAreaTriggers(); @@ -55,7 +55,7 @@ namespace Game.Chat } [Command("areatrigger_tavern", RBACPermissions.CommandReloadAreatriggerTavern, true)] - static bool HandleReloadAreaTriggerTavernCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAreaTriggerTavernCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Tavern Area Triggers..."); Global.ObjectMgr.LoadTavernAreaTriggers(); @@ -64,7 +64,7 @@ namespace Game.Chat } [Command("areatrigger_teleport", RBACPermissions.CommandReloadAreatriggerTeleport, true)] - static bool HandleReloadAreaTriggerTeleportCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAreaTriggerTeleportCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading AreaTrigger teleport definitions..."); Global.ObjectMgr.LoadAreaTriggerTeleports(); @@ -73,7 +73,7 @@ namespace Game.Chat } [Command("areatrigger_template", RBACPermissions.CommandReloadSceneTemplate, true)] - static bool HandleReloadAreaTriggerTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAreaTriggerTemplateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Reloading areatrigger_template table..."); Global.AreaTriggerDataStorage.LoadAreaTriggerTemplates(); @@ -82,7 +82,7 @@ namespace Game.Chat } [Command("auctions", RBACPermissions.CommandReloadAuctions, true)] - static bool HandleReloadAuctionsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAuctionsCommand(CommandHandler handler, StringArguments args) { // Reload dynamic data tables from the database Log.outInfo(LogFilter.Server, "Re-Loading Auctions..."); @@ -92,7 +92,7 @@ namespace Game.Chat } [Command("autobroadcast", RBACPermissions.CommandReloadAutobroadcast, true)] - static bool HandleReloadAutobroadcastCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAutobroadcastCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Autobroadcasts..."); Global.WorldMgr.LoadAutobroadcasts(); @@ -101,7 +101,7 @@ namespace Game.Chat } [Command("battleground_template", RBACPermissions.CommandReloadBattlegroundTemplate, true)] - static bool HandleReloadBattlegroundTemplate(StringArguments args, CommandHandler handler) + static bool HandleReloadBattlegroundTemplate(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Misc, "Re-Loading Battleground Templates..."); Global.BattlegroundMgr.LoadBattlegroundTemplates(); @@ -110,7 +110,7 @@ namespace Game.Chat } [Command("character_template", RBACPermissions.CommandReloadCharacterTemplate, true)] - static bool HandleReloadCharacterTemplate(StringArguments args, CommandHandler handler) + static bool HandleReloadCharacterTemplate(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Character Templates..."); Global.CharacterTemplateDataStorage.LoadCharacterTemplates(); @@ -119,10 +119,10 @@ namespace Game.Chat } [Command("command", RBACPermissions.CommandReloadCommand, true)] - static bool HandleReloadCommandCommand(StringArguments args, CommandHandler handler) { return true; } + static bool HandleReloadCommandCommand(CommandHandler handler, StringArguments args) { return true; } [Command("conditions", RBACPermissions.CommandReloadConditions, true)] - static bool HandleReloadConditions(StringArguments args, CommandHandler handler) + static bool HandleReloadConditions(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Conditions..."); Global.ConditionMgr.LoadConditions(true); @@ -131,7 +131,7 @@ namespace Game.Chat } [Command("config", RBACPermissions.CommandReloadConfig, true)] - static bool HandleReloadConfigCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadConfigCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading config settings..."); Global.WorldMgr.LoadConfigSettings(true); @@ -141,7 +141,7 @@ namespace Game.Chat } [Command("conversation_template", RBACPermissions.CommandReloadConversationTemplate, true)] - static bool HandleReloadConversationTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadConversationTemplateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Reloading conversation_* tables..."); Global.ConversationDataStorage.LoadConversationTemplates(); @@ -150,7 +150,7 @@ namespace Game.Chat } [Command("creature_linked_respawn", RBACPermissions.CommandReloadCreatureLinkedRespawn, true)] - static bool HandleReloadLinkedRespawnCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLinkedRespawnCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Loading Linked Respawns... (`creature_linked_respawn`)"); Global.ObjectMgr.LoadLinkedRespawn(); @@ -159,7 +159,7 @@ namespace Game.Chat } [Command("creature_loot_template", RBACPermissions.CommandReloadCreatureLootTemplate, true)] - static bool HandleReloadLootTemplatesCreatureCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesCreatureCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`creature_loot_template`)"); LootManager.LoadLootTemplates_Creature(); @@ -170,7 +170,7 @@ namespace Game.Chat } [Command("creature_movement_override", RBACPermissions.CommandReloadCreatureMovementOverride, true)] - static bool HandleReloadCreatureMovementOverrideCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCreatureMovementOverrideCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Creature movement overrides..."); Global.ObjectMgr.LoadCreatureMovementOverrides(); @@ -179,7 +179,7 @@ namespace Game.Chat } [Command("creature_onkill_reputation", RBACPermissions.CommandReloadCreatureOnkillReputation, true)] - static bool HandleReloadOnKillReputationCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadOnKillReputationCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading creature award reputation definitions..."); Global.ObjectMgr.LoadReputationOnKill(); @@ -188,7 +188,7 @@ namespace Game.Chat } [Command("creature_questender", RBACPermissions.CommandReloadCreatureQuestender, true)] - static bool HandleReloadCreatureQuestEnderCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCreatureQuestEnderCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Loading Quests Relations... (`creature_questender`)"); Global.ObjectMgr.LoadCreatureQuestEnders(); @@ -197,7 +197,7 @@ namespace Game.Chat } [Command("creature_queststarter", RBACPermissions.CommandReloadCreatureQueststarter, true)] - static bool HandleReloadCreatureQuestStarterCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCreatureQuestStarterCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Loading Quests Relations... (`creature_queststarter`)"); Global.ObjectMgr.LoadCreatureQuestStarters(); @@ -206,7 +206,7 @@ namespace Game.Chat } [Command("creature_summon_groups", RBACPermissions.CommandReloadCreatureSummonGroups, true)] - static bool HandleReloadCreatureSummonGroupsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCreatureSummonGroupsCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Reloading creature summon groups..."); Global.ObjectMgr.LoadTempSummons(); @@ -215,7 +215,7 @@ namespace Game.Chat } [Command("creature_template", RBACPermissions.CommandReloadCreatureTemplate, true)] - static bool HandleReloadCreatureTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCreatureTemplateCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -253,7 +253,7 @@ namespace Game.Chat } [Command("creature_text", RBACPermissions.CommandReloadCreatureText, true)] - static bool HandleReloadCreatureText(StringArguments args, CommandHandler handler) + static bool HandleReloadCreatureText(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Creature Texts..."); Global.CreatureTextMgr.LoadCreatureTexts(); @@ -262,7 +262,7 @@ namespace Game.Chat } [Command("trinity_string", RBACPermissions.CommandReloadCypherString, true)] - static bool HandleReloadCypherStringCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCypherStringCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading trinity_string Table!"); Global.ObjectMgr.LoadCypherStrings(); @@ -271,7 +271,7 @@ namespace Game.Chat } [Command("criteria_data", RBACPermissions.CommandReloadCriteriaData, true)] - static bool HandleReloadCriteriaDataCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCriteriaDataCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Additional Criteria Data..."); Global.CriteriaMgr.LoadCriteriaData(); @@ -280,7 +280,7 @@ namespace Game.Chat } [Command("disables", RBACPermissions.CommandReloadDisables, true)] - static bool HandleReloadDisablesCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadDisablesCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading disables table..."); Global.DisableMgr.LoadDisables(); @@ -291,7 +291,7 @@ namespace Game.Chat } [Command("disenchant_loot_template", RBACPermissions.CommandReloadDisenchantLootTemplate, true)] - static bool HandleReloadLootTemplatesDisenchantCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesDisenchantCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`disenchant_loot_template`)"); LootManager.LoadLootTemplates_Disenchant(); @@ -302,7 +302,7 @@ namespace Game.Chat } [Command("event_scripts", RBACPermissions.CommandReloadEventScripts, true)] - static bool HandleReloadEventScriptsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadEventScriptsCommand(CommandHandler handler, StringArguments args) { if (Global.MapMgr.IsScriptScheduled()) { @@ -322,7 +322,7 @@ namespace Game.Chat } [Command("fishing_loot_template", RBACPermissions.CommandReloadFishingLootTemplate, true)] - static bool HandleReloadLootTemplatesFishingCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesFishingCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`fishing_loot_template`)"); LootManager.LoadLootTemplates_Fishing(); @@ -333,7 +333,7 @@ namespace Game.Chat } [Command("graveyard_zone", RBACPermissions.CommandReloadGraveyardZone, true)] - static bool HandleReloadGameGraveyardZoneCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadGameGraveyardZoneCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Graveyard-zone links..."); @@ -345,7 +345,7 @@ namespace Game.Chat } [Command("game_tele", RBACPermissions.CommandReloadGameTele, true)] - static bool HandleReloadGameTeleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadGameTeleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Game Tele coordinates..."); @@ -357,7 +357,7 @@ namespace Game.Chat } [Command("gameobject_loot_template", RBACPermissions.CommandReloadGameobjectQuestLootTemplate, true)] - static bool HandleReloadLootTemplatesGameobjectCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesGameobjectCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`gameobject_loot_template`)"); LootManager.LoadLootTemplates_Gameobject(); @@ -368,7 +368,7 @@ namespace Game.Chat } [Command("gameobject_questender", RBACPermissions.CommandReloadGameobjectQuestender, true)] - static bool HandleReloadGOQuestEnderCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadGOQuestEnderCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Loading Quests Relations... (`gameobject_questender`)"); Global.ObjectMgr.LoadGameobjectQuestEnders(); @@ -377,7 +377,7 @@ namespace Game.Chat } [Command("gameobject_queststarter", RBACPermissions.CommandReloadGameobjectQueststarter, true)] - static bool HandleReloadGOQuestStarterCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadGOQuestStarterCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Loading Quests Relations... (`gameobject_queststarter`)"); Global.ObjectMgr.LoadGameobjectQuestStarters(); @@ -386,7 +386,7 @@ namespace Game.Chat } [Command("gossip_menu", RBACPermissions.CommandReloadGossipMenu, true)] - static bool HandleReloadGossipMenuCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadGossipMenuCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading `gossip_menu` Table!"); Global.ObjectMgr.LoadGossipMenu(); @@ -396,7 +396,7 @@ namespace Game.Chat } [Command("gossip_menu_option", RBACPermissions.CommandReloadGossipMenuOption, true)] - static bool HandleReloadGossipMenuOptionCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadGossipMenuOptionCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading `gossip_menu_option` Table!"); Global.ObjectMgr.LoadGossipMenuItems(); @@ -406,7 +406,7 @@ namespace Game.Chat } [Command("item_random_bonus_list_template", RBACPermissions.CommandReloadItemRandomBonusListTemplate, true)] - static bool HandleReloadItemRandomBonusListTemplatesCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadItemRandomBonusListTemplatesCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Random item bonus list definitions..."); ItemEnchantmentManager.LoadItemRandomBonusListTemplates(); @@ -415,7 +415,7 @@ namespace Game.Chat } [Command("item_loot_template", RBACPermissions.CommandReloadItemLootTemplate, true)] - static bool HandleReloadLootTemplatesItemCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesItemCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`item_loot_template`)"); LootManager.LoadLootTemplates_Item(); @@ -426,7 +426,7 @@ namespace Game.Chat } [Command("lfg_dungeon_rewards", RBACPermissions.CommandReloadLfgDungeonRewards, true)] - static bool HandleReloadLfgRewardsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLfgRewardsCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading lfg dungeon rewards..."); Global.LFGMgr.LoadRewards(); @@ -435,7 +435,7 @@ namespace Game.Chat } [Command("achievement_reward_locale", RBACPermissions.CommandReloadAchievementRewardLocale, true)] - static bool HandleReloadAchievementRewardLocaleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAchievementRewardLocaleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Achievement Reward Data Locale..."); Global.AchievementMgr.LoadRewardLocales(); @@ -444,7 +444,7 @@ namespace Game.Chat } [Command("creature_template_locale", RBACPermissions.CommandReloadCreatureTemplateLocale, true)] - static bool HandleReloadCreatureTemplateLocaleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCreatureTemplateLocaleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Creature Template Locale..."); Global.ObjectMgr.LoadCreatureLocales(); @@ -453,7 +453,7 @@ namespace Game.Chat } [Command("creature_text_locale", RBACPermissions.CommandReloadCreatureTextLocale, true)] - static bool HandleReloadCreatureTextLocaleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadCreatureTextLocaleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Creature Texts Locale..."); Global.CreatureTextMgr.LoadCreatureTextLocales(); @@ -462,7 +462,7 @@ namespace Game.Chat } [Command("gameobject_template_locale", RBACPermissions.CommandReloadGameobjectTemplateLocale, true)] - static bool HandleReloadGameobjectTemplateLocaleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadGameobjectTemplateLocaleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Gameobject Template Locale... "); Global.ObjectMgr.LoadGameObjectLocales(); @@ -471,7 +471,7 @@ namespace Game.Chat } [Command("gossip_menu_option_locale", RBACPermissions.CommandReloadGossipMenuOptionLocale, true)] - static bool HandleReloadGossipMenuOptionLocaleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadGossipMenuOptionLocaleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Gossip Menu Option Locale... "); Global.ObjectMgr.LoadGossipMenuItemsLocales(); @@ -480,7 +480,7 @@ namespace Game.Chat } [Command("page_text_locale", RBACPermissions.CommandReloadPageTextLocale, true)] - static bool HandleReloadPageTextLocaleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadPageTextLocaleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Page Text Locale... "); Global.ObjectMgr.LoadPageTextLocales(); @@ -489,7 +489,7 @@ namespace Game.Chat } [Command("points_of_interest_locale", RBACPermissions.CommandReloadPointsOfInterestLocale, true)] - static bool HandleReloadPointsOfInterestLocaleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadPointsOfInterestLocaleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Points Of Interest Locale... "); Global.ObjectMgr.LoadPointOfInterestLocales(); @@ -498,7 +498,7 @@ namespace Game.Chat } [Command("mail_level_reward", RBACPermissions.CommandReloadMailLevelReward, true)] - static bool HandleReloadMailLevelRewardCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadMailLevelRewardCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Player level dependent mail rewards..."); Global.ObjectMgr.LoadMailLevelRewards(); @@ -507,7 +507,7 @@ namespace Game.Chat } [Command("mail_loot_template", RBACPermissions.CommandReloadMailLootTemplate, true)] - static bool HandleReloadLootTemplatesMailCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesMailCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`mail_loot_template`)"); LootManager.LoadLootTemplates_Mail(); @@ -518,7 +518,7 @@ namespace Game.Chat } [Command("milling_loot_template", RBACPermissions.CommandReloadMillingLootTemplate, true)] - static bool HandleReloadLootTemplatesMillingCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesMillingCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`milling_loot_template`)"); LootManager.LoadLootTemplates_Milling(); @@ -529,7 +529,7 @@ namespace Game.Chat } [Command("npc_spellclick_spells", RBACPermissions.CommandReloadNpcSpellclickSpells, true)] - static bool HandleReloadSpellClickSpellsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellClickSpellsCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading `npc_spellclick_spells` Table!"); Global.ObjectMgr.LoadNPCSpellClickSpells(); @@ -538,7 +538,7 @@ namespace Game.Chat } [Command("npc_vendor", RBACPermissions.CommandReloadNpcVendor, true)] - static bool HandleReloadNpcVendorCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadNpcVendorCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading `npc_vendor` Table!"); Global.ObjectMgr.LoadVendors(); @@ -547,7 +547,7 @@ namespace Game.Chat } [Command("page_text", RBACPermissions.CommandReloadPageText, true)] - static bool HandleReloadPageTextsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadPageTextsCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Page Text..."); Global.ObjectMgr.LoadPageTexts(); @@ -556,7 +556,7 @@ namespace Game.Chat } [Command("pickpocketing_loot_template", RBACPermissions.CommandReloadPickpocketingLootTemplate, true)] - static bool HandleReloadLootTemplatesPickpocketingCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesPickpocketingCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`pickpocketing_loot_template`)"); LootManager.LoadLootTemplates_Pickpocketing(); @@ -567,7 +567,7 @@ namespace Game.Chat } [Command("points_of_interest", RBACPermissions.CommandReloadPointsOfInterest, true)] - static bool HandleReloadPointsOfInterestCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadPointsOfInterestCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading `points_of_interest` Table!"); Global.ObjectMgr.LoadPointsOfInterest(); @@ -576,7 +576,7 @@ namespace Game.Chat } [Command("prospecting_loot_template", RBACPermissions.CommandReloadProspectingLootTemplate, true)] - static bool HandleReloadLootTemplatesProspectingCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesProspectingCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`prospecting_loot_template`)"); LootManager.LoadLootTemplates_Prospecting(); @@ -587,7 +587,7 @@ namespace Game.Chat } [Command("quest_greeting", RBACPermissions.CommandReloadQuestGreeting, true)] - static bool HandleReloadQuestGreetingCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadQuestGreetingCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Quest Greeting ... "); Global.ObjectMgr.LoadQuestGreetings(); @@ -596,7 +596,7 @@ namespace Game.Chat } [Command("quest_locale", RBACPermissions.CommandReloadQuestTemplateLocale, true)] - static bool HandleReloadQuestTemplateLocaleCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadQuestTemplateLocaleCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Quest Locale... "); Global.ObjectMgr.LoadQuestTemplateLocale(); @@ -613,7 +613,7 @@ namespace Game.Chat } [Command("quest_poi", RBACPermissions.CommandReloadQuestPoi, true)] - static bool HandleReloadQuestPOICommand(StringArguments args, CommandHandler handler) + static bool HandleReloadQuestPOICommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Quest POI ..."); Global.ObjectMgr.LoadQuestPOI(); @@ -623,7 +623,7 @@ namespace Game.Chat } [Command("quest_template", RBACPermissions.CommandReloadQuestTemplate, true)] - static bool HandleReloadQuestTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadQuestTemplateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Quest Templates..."); Global.ObjectMgr.LoadQuests(); @@ -638,7 +638,7 @@ namespace Game.Chat } [Command("rbac", RBACPermissions.CommandReloadRbac, true)] - static bool HandleReloadRBACCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadRBACCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Reloading RBAC tables..."); Global.AccountMgr.LoadRBAC(); @@ -648,7 +648,7 @@ namespace Game.Chat } [Command("reference_loot_template", RBACPermissions.CommandReloadReferenceLootTemplate, true)] - static bool HandleReloadLootTemplatesReferenceCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesReferenceCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`reference_loot_template`)"); LootManager.LoadLootTemplates_Reference(); @@ -658,7 +658,7 @@ namespace Game.Chat } [Command("reputation_reward_rate", RBACPermissions.CommandReloadReputationRewardRate, true)] - static bool HandleReloadReputationRewardRateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadReputationRewardRateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading `reputation_reward_rate` Table!"); Global.ObjectMgr.LoadReputationRewardRate(); @@ -667,7 +667,7 @@ namespace Game.Chat } [Command("reputation_spillover_template", RBACPermissions.CommandReloadSpilloverTemplate, true)] - static bool HandleReloadReputationSpilloverTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadReputationSpilloverTemplateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading `reputation_spillover_template` Table!"); Global.ObjectMgr.LoadReputationSpilloverTemplate(); @@ -676,7 +676,7 @@ namespace Game.Chat } [Command("reserved_name", RBACPermissions.CommandReloadReservedName, true)] - static bool HandleReloadReservedNameCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadReservedNameCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Loading ReservedNames... (`reserved_name`)"); Global.ObjectMgr.LoadReservedPlayersNames(); @@ -685,7 +685,7 @@ namespace Game.Chat } [Command("scene_template", RBACPermissions.CommandReloadSceneTemplate, true)] - static bool HandleReloadSceneTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSceneTemplateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Misc, "Reloading scene_template table..."); Global.ObjectMgr.LoadSceneTemplates(); @@ -694,7 +694,7 @@ namespace Game.Chat } [Command("skill_discovery_template", RBACPermissions.CommandReloadSkillDiscoveryTemplate, true)] - static bool HandleReloadSkillDiscoveryTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSkillDiscoveryTemplateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Skill Discovery Table..."); SkillDiscovery.LoadSkillDiscoveryTable(); @@ -702,7 +702,7 @@ namespace Game.Chat return true; } - static bool HandleReloadSkillPerfectItemTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSkillPerfectItemTemplateCommand(CommandHandler handler, StringArguments args) { // latched onto HandleReloadSkillExtraItemTemplateCommand as it's part of that table group (and i don't want to chance all the command IDs) Log.outInfo(LogFilter.Misc, "Re-Loading Skill Perfection Data Table..."); SkillPerfectItems.LoadSkillPerfectItemTable(); @@ -711,17 +711,17 @@ namespace Game.Chat } [Command("skill_extra_item_template", RBACPermissions.CommandReloadSkillExtraItemTemplate, true)] - static bool HandleReloadSkillExtraItemTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSkillExtraItemTemplateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Skill Extra Item Table..."); SkillExtraItems.LoadSkillExtraItemTable(); handler.SendGlobalGMSysMessage("DB table `skill_extra_item_template` (extra item creation when crafting) reloaded."); - return HandleReloadSkillPerfectItemTemplateCommand(args, handler); + return HandleReloadSkillPerfectItemTemplateCommand(handler, args); } [Command("skill_fishing_base_level", RBACPermissions.CommandReloadSkillFishingBaseLevel, true)] - static bool HandleReloadSkillFishingBaseLevelCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSkillFishingBaseLevelCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Skill Fishing base level requirements..."); Global.ObjectMgr.LoadFishingBaseSkillLevel(); @@ -730,7 +730,7 @@ namespace Game.Chat } [Command("skinning_loot_template", RBACPermissions.CommandReloadSkinningLootTemplate, true)] - static bool HandleReloadLootTemplatesSkinningCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesSkinningCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`skinning_loot_template`)"); LootManager.LoadLootTemplates_Skinning(); @@ -741,7 +741,7 @@ namespace Game.Chat } [Command("smart_scripts", RBACPermissions.CommandReloadSmartScripts, true)] - static bool HandleReloadSmartScripts(StringArguments args, CommandHandler handler) + static bool HandleReloadSmartScripts(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Smart Scripts..."); Global.SmartAIMgr.LoadFromDB(); @@ -750,7 +750,7 @@ namespace Game.Chat } [Command("spell_area", RBACPermissions.CommandReloadSpellArea, true)] - static bool HandleReloadSpellAreaCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellAreaCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading SpellArea Data..."); Global.SpellMgr.LoadSpellAreas(); @@ -759,7 +759,7 @@ namespace Game.Chat } [Command("spell_group", RBACPermissions.CommandReloadSpellGroup, true)] - static bool HandleReloadSpellGroupsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellGroupsCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Spell Groups..."); Global.SpellMgr.LoadSpellGroups(); @@ -768,7 +768,7 @@ namespace Game.Chat } [Command("spell_group_stack_rules", RBACPermissions.CommandReloadSpellGroupStackRules, true)] - static bool HandleReloadSpellGroupStackRulesCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellGroupStackRulesCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Spell Group Stack Rules..."); Global.SpellMgr.LoadSpellGroupStackRules(); @@ -777,7 +777,7 @@ namespace Game.Chat } [Command("spell_learn_spell", RBACPermissions.CommandReloadSpellLearnSpell, true)] - static bool HandleReloadSpellLearnSpellCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellLearnSpellCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Spell Learn Spells..."); Global.SpellMgr.LoadSpellLearnSpells(); @@ -786,7 +786,7 @@ namespace Game.Chat } [Command("spell_linked_spell", RBACPermissions.CommandReloadSpellLinkedSpell, true)] - static bool HandleReloadSpellLinkedSpellCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellLinkedSpellCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Spell Linked Spells..."); Global.SpellMgr.LoadSpellLinked(); @@ -795,7 +795,7 @@ namespace Game.Chat } [Command("spell_loot_template", RBACPermissions.CommandReloadSpellLootTemplate, true)] - static bool HandleReloadLootTemplatesSpellCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadLootTemplatesSpellCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables... (`spell_loot_template`)"); LootManager.LoadLootTemplates_Spell(); @@ -806,7 +806,7 @@ namespace Game.Chat } [Command("spell_pet_auras", RBACPermissions.CommandReloadSpellPetAuras, true)] - static bool HandleReloadSpellPetAurasCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellPetAurasCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Spell pet auras..."); Global.SpellMgr.LoadSpellPetAuras(); @@ -815,7 +815,7 @@ namespace Game.Chat } [Command("spell_proc", RBACPermissions.CommandReloadSpellProc, true)] - static bool HandleReloadSpellProcsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellProcsCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Spell Proc conditions and data..."); Global.SpellMgr.LoadSpellProcs(); @@ -824,7 +824,7 @@ namespace Game.Chat } [Command("spell_required", RBACPermissions.CommandReloadSpellRequired, true)] - static bool HandleReloadSpellRequiredCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellRequiredCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Spell Required Data... "); Global.SpellMgr.LoadSpellRequired(); @@ -833,7 +833,7 @@ namespace Game.Chat } [Command("spell_scripts", RBACPermissions.CommandReloadSpellScripts, true)] - static bool HandleReloadSpellScriptsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellScriptsCommand(CommandHandler handler, StringArguments args) { if (Global.MapMgr.IsScriptScheduled()) { @@ -853,7 +853,7 @@ namespace Game.Chat } [Command("spell_target_position", RBACPermissions.CommandReloadSpellTargetPosition, true)] - static bool HandleReloadSpellTargetPositionCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellTargetPositionCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Spell target coordinates..."); Global.SpellMgr.LoadSpellTargetPositions(); @@ -862,7 +862,7 @@ namespace Game.Chat } [Command("spell_threats", RBACPermissions.CommandReloadSpellThreats, true)] - static bool HandleReloadSpellThreatsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSpellThreatsCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Aggro Spells Definitions..."); Global.SpellMgr.LoadSpellThreats(); @@ -871,7 +871,7 @@ namespace Game.Chat } [Command("support", RBACPermissions.CommandReloadSupportSystem, true)] - static bool HandleReloadSupportSystemCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadSupportSystemCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Support System Tables..."); Global.SupportMgr.LoadBugTickets(); @@ -882,7 +882,7 @@ namespace Game.Chat } [Command("trainer", RBACPermissions.CommandReloadTrainer, true)] - static bool HandleReloadTrainerCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadTrainerCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Misc, "Re-Loading `trainer` Table!"); Global.ObjectMgr.LoadTrainers(); @@ -895,7 +895,7 @@ namespace Game.Chat } [Command("vehicle_accessory", RBACPermissions.CommandReloadVehicleAccesory, true)] - static bool HandleReloadVehicleAccessoryCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadVehicleAccessoryCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Reloading vehicle_accessory table..."); Global.ObjectMgr.LoadVehicleAccessories(); @@ -904,7 +904,7 @@ namespace Game.Chat } [Command("vehicle_template", RBACPermissions.CommandReloadVehicleTemplate, true)] - static bool HandleReloadVehicleTemplateCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadVehicleTemplateCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Reloading vehicle_template table..."); Global.ObjectMgr.LoadVehicleTemplate(); @@ -913,7 +913,7 @@ namespace Game.Chat } [Command("vehicle_template_accessory", RBACPermissions.CommandReloadVehicleTemplateAccessory, true)] - static bool HandleReloadVehicleTemplateAccessoryCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadVehicleTemplateAccessoryCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Reloading vehicle_template_accessory table..."); Global.ObjectMgr.LoadVehicleTemplateAccessories(); @@ -922,7 +922,7 @@ namespace Game.Chat } [Command("warden_action", RBACPermissions.CommandReloadWardenAction, true)] - static bool HandleReloadWardenactionCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadWardenactionCommand(CommandHandler handler, StringArguments args) { if (!WorldConfig.GetBoolValue(WorldCfg.WardenEnabled)) { @@ -937,7 +937,7 @@ namespace Game.Chat } [Command("waypoint_data", RBACPermissions.CommandReloadWaypointData, true)] - static bool HandleReloadWpCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadWpCommand(CommandHandler handler, StringArguments args) { if (args != null) Log.outInfo(LogFilter.Server, "Re-Loading Waypoints data from 'waypoints_data'"); @@ -951,7 +951,7 @@ namespace Game.Chat } [Command("waypoint_scripts", RBACPermissions.CommandReloadWaypointScripts, true)] - static bool HandleReloadWpScriptsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadWpScriptsCommand(CommandHandler handler, StringArguments args) { if (Global.MapMgr.IsScriptScheduled()) { @@ -974,89 +974,89 @@ namespace Game.Chat class AllCommand { [Command("", RBACPermissions.CommandReloadAll, true)] - static bool HandleReloadAllCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllCommand(CommandHandler handler, StringArguments args) { - HandleReloadSkillFishingBaseLevelCommand(args, handler); + HandleReloadSkillFishingBaseLevelCommand(handler, args); - HandleReloadAllAchievementCommand(args, handler); - HandleReloadAllAreaCommand(args, handler); - HandleReloadAllLootCommand(args, handler); - HandleReloadAllNpcCommand(args, handler); - HandleReloadAllQuestCommand(args, handler); - HandleReloadAllSpellCommand(args, handler); - HandleReloadAllItemCommand(args, handler); - HandleReloadAllGossipsCommand(args, handler); - HandleReloadAllLocalesCommand(args, handler); + HandleReloadAllAchievementCommand(handler, args); + HandleReloadAllAreaCommand(handler, args); + HandleReloadAllLootCommand(handler, args); + HandleReloadAllNpcCommand(handler, args); + HandleReloadAllQuestCommand(handler, args); + HandleReloadAllSpellCommand(handler, args); + HandleReloadAllItemCommand(handler, args); + HandleReloadAllGossipsCommand(handler, args); + HandleReloadAllLocalesCommand(handler, args); - HandleReloadAccessRequirementCommand(args, handler); - HandleReloadMailLevelRewardCommand(args, handler); - HandleReloadReservedNameCommand(args, handler); - HandleReloadCypherStringCommand(args, handler); - HandleReloadGameTeleCommand(args, handler); + HandleReloadAccessRequirementCommand(handler, args); + HandleReloadMailLevelRewardCommand(handler, args); + HandleReloadReservedNameCommand(handler, args); + HandleReloadCypherStringCommand(handler, args); + HandleReloadGameTeleCommand(handler, args); - HandleReloadCreatureMovementOverrideCommand(args, handler); - HandleReloadCreatureSummonGroupsCommand(args, handler); + HandleReloadCreatureMovementOverrideCommand(handler, args); + HandleReloadCreatureSummonGroupsCommand(handler, args); - HandleReloadVehicleAccessoryCommand(args, handler); - HandleReloadVehicleTemplateAccessoryCommand(args, handler); + HandleReloadVehicleAccessoryCommand(handler, args); + HandleReloadVehicleTemplateAccessoryCommand(handler, args); - HandleReloadAutobroadcastCommand(args, handler); - HandleReloadBattlegroundTemplate(args, handler); - HandleReloadCharacterTemplate(args, handler); + HandleReloadAutobroadcastCommand(handler, args); + HandleReloadBattlegroundTemplate(handler, args); + HandleReloadCharacterTemplate(handler, args); return true; } [Command("achievement", RBACPermissions.CommandReloadAllAchievement, true)] - static bool HandleReloadAllAchievementCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllAchievementCommand(CommandHandler handler, StringArguments args) { - HandleReloadCriteriaDataCommand(args, handler); - HandleReloadAchievementRewardCommand(args, handler); + HandleReloadCriteriaDataCommand(handler, args); + HandleReloadAchievementRewardCommand(handler, args); return true; } [Command("area", RBACPermissions.CommandReloadAllArea, true)] - static bool HandleReloadAllAreaCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllAreaCommand(CommandHandler handler, StringArguments args) { - HandleReloadAreaTriggerTeleportCommand(args, handler); - HandleReloadAreaTriggerTavernCommand(args, handler); - HandleReloadGameGraveyardZoneCommand(args, handler); + HandleReloadAreaTriggerTeleportCommand(handler, args); + HandleReloadAreaTriggerTavernCommand(handler, args); + HandleReloadGameGraveyardZoneCommand(handler, args); return true; } [Command("gossips", RBACPermissions.CommandReloadAllGossip, true)] - static bool HandleReloadAllGossipsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllGossipsCommand(CommandHandler handler, StringArguments args) { - HandleReloadGossipMenuCommand(null, handler); - HandleReloadGossipMenuOptionCommand(null, handler); + HandleReloadGossipMenuCommand(handler, null); + HandleReloadGossipMenuOptionCommand(handler, null); if (args == null) // already reload from all_scripts - HandleReloadPointsOfInterestCommand(null, handler); + HandleReloadPointsOfInterestCommand(handler, null); return true; } [Command("item", RBACPermissions.CommandReloadAllItem, true)] - static bool HandleReloadAllItemCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllItemCommand(CommandHandler handler, StringArguments args) { - HandleReloadPageTextsCommand(null, handler); - HandleReloadItemRandomBonusListTemplatesCommand(null, handler); + HandleReloadPageTextsCommand(handler, null); + HandleReloadItemRandomBonusListTemplatesCommand(handler, null); return true; } [Command("locales", RBACPermissions.CommandReloadAllLocales, true)] - static bool HandleReloadAllLocalesCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllLocalesCommand(CommandHandler handler, StringArguments args) { - HandleReloadAchievementRewardLocaleCommand(null, handler); - HandleReloadCreatureTemplateLocaleCommand(null, handler); - HandleReloadCreatureTextLocaleCommand(null, handler); - HandleReloadGameobjectTemplateLocaleCommand(null, handler); - HandleReloadGossipMenuOptionLocaleCommand(null, handler); - HandleReloadPageTextLocaleCommand(null, handler); - HandleReloadPointsOfInterestCommand(null, handler); - HandleReloadQuestTemplateLocaleCommand(null, handler); + HandleReloadAchievementRewardLocaleCommand(handler, null); + HandleReloadCreatureTemplateLocaleCommand(handler, null); + HandleReloadCreatureTextLocaleCommand(handler, null); + HandleReloadGameobjectTemplateLocaleCommand(handler, null); + HandleReloadGossipMenuOptionLocaleCommand(handler, null); + HandleReloadPageTextLocaleCommand(handler, null); + HandleReloadPointsOfInterestCommand(handler, null); + HandleReloadQuestTemplateLocaleCommand(handler, null); return true; } [Command("loot", RBACPermissions.CommandReloadAllLoot, true)] - static bool HandleReloadAllLootCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllLootCommand(CommandHandler handler, StringArguments args) { Log.outInfo(LogFilter.Server, "Re-Loading Loot Tables..."); LootManager.LoadLootTables(); @@ -1066,25 +1066,25 @@ namespace Game.Chat } [Command("npc", RBACPermissions.CommandReloadAllNpc, true)] - static bool HandleReloadAllNpcCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllNpcCommand(CommandHandler handler, StringArguments args) { if (args != null) // will be reloaded from all_gossips { - HandleReloadTrainerCommand(null, handler); - HandleReloadNpcVendorCommand(null, handler); - HandleReloadPointsOfInterestCommand(null, handler); - HandleReloadSpellClickSpellsCommand(null, handler); + HandleReloadTrainerCommand(handler, null); + HandleReloadNpcVendorCommand(handler, null); + HandleReloadPointsOfInterestCommand(handler, null); + HandleReloadSpellClickSpellsCommand(handler, null); } return true; } [Command("quest", RBACPermissions.CommandReloadAllQuest, true)] - static bool HandleReloadAllQuestCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllQuestCommand(CommandHandler handler, StringArguments args) { - HandleReloadQuestAreaTriggersCommand(null, handler); - HandleReloadQuestGreetingCommand(null, handler); - HandleReloadQuestPOICommand(null, handler); - HandleReloadQuestTemplateCommand(null, handler); + HandleReloadQuestAreaTriggersCommand(handler, null); + HandleReloadQuestGreetingCommand(handler, null); + HandleReloadQuestPOICommand(handler, null); + HandleReloadQuestTemplateCommand(handler, null); Log.outInfo(LogFilter.Server, "Re-Loading Quests Relations..."); Global.ObjectMgr.LoadQuestStartersAndEnders(); @@ -1093,7 +1093,7 @@ namespace Game.Chat } [Command("scripts", RBACPermissions.CommandReloadAllScripts, true)] - static bool HandleReloadAllScriptsCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllScriptsCommand(CommandHandler handler, StringArguments args) { if (Global.MapMgr.IsScriptScheduled()) { @@ -1102,29 +1102,29 @@ namespace Game.Chat } Log.outInfo(LogFilter.Server, "Re-Loading Scripts..."); - HandleReloadEventScriptsCommand(null, handler); - HandleReloadSpellScriptsCommand(null, handler); + HandleReloadEventScriptsCommand(handler, null); + HandleReloadSpellScriptsCommand(handler, null); handler.SendGlobalGMSysMessage("DB tables `*_scripts` reloaded."); - HandleReloadWpScriptsCommand(null, handler); - HandleReloadWpCommand(null, handler); + HandleReloadWpScriptsCommand(handler, null); + HandleReloadWpCommand(handler, null); return true; } [Command("spell", RBACPermissions.CommandReloadAllSpell, true)] - static bool HandleReloadAllSpellCommand(StringArguments args, CommandHandler handler) + static bool HandleReloadAllSpellCommand(CommandHandler handler, StringArguments args) { - HandleReloadSkillDiscoveryTemplateCommand(null, handler); - HandleReloadSkillExtraItemTemplateCommand(null, handler); - HandleReloadSpellRequiredCommand(null, handler); - HandleReloadSpellAreaCommand(null, handler); - HandleReloadSpellGroupsCommand(null, handler); - HandleReloadSpellLearnSpellCommand(null, handler); - HandleReloadSpellLinkedSpellCommand(null, handler); - HandleReloadSpellProcsCommand(null, handler); - HandleReloadSpellTargetPositionCommand(null, handler); - HandleReloadSpellThreatsCommand(null, handler); - HandleReloadSpellGroupStackRulesCommand(null, handler); - HandleReloadSpellPetAurasCommand(null, handler); + HandleReloadSkillDiscoveryTemplateCommand(handler, null); + HandleReloadSkillExtraItemTemplateCommand(handler, null); + HandleReloadSpellRequiredCommand(handler, null); + HandleReloadSpellAreaCommand(handler, null); + HandleReloadSpellGroupsCommand(handler, null); + HandleReloadSpellLearnSpellCommand(handler, null); + HandleReloadSpellLinkedSpellCommand(handler, null); + HandleReloadSpellProcsCommand(handler, null); + HandleReloadSpellTargetPositionCommand(handler, null); + HandleReloadSpellThreatsCommand(handler, null); + HandleReloadSpellGroupStackRulesCommand(handler, null); + HandleReloadSpellPetAurasCommand(handler, null); return true; } } diff --git a/Source/Game/Chat/Commands/ResetCommands.cs b/Source/Game/Chat/Commands/ResetCommands.cs index f373b3db2..d5525e537 100644 --- a/Source/Game/Chat/Commands/ResetCommands.cs +++ b/Source/Game/Chat/Commands/ResetCommands.cs @@ -29,7 +29,7 @@ namespace Game.Chat class ResetCommands { [Command("achievements", RBACPermissions.CommandResetAchievements, true)] - static bool HandleResetAchievementsCommand(StringArguments args, CommandHandler handler) + static bool HandleResetAchievementsCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -45,7 +45,7 @@ namespace Game.Chat } [Command("honor", RBACPermissions.CommandResetHonor, true)] - static bool HandleResetHonorCommand(StringArguments args, CommandHandler handler) + static bool HandleResetHonorCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -89,7 +89,7 @@ namespace Game.Chat } [Command("level", RBACPermissions.CommandResetLevel, true)] - static bool HandleResetLevelCommand(StringArguments args, CommandHandler handler) + static bool HandleResetLevelCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -124,7 +124,7 @@ namespace Game.Chat } [Command("spells", RBACPermissions.CommandResetSpells, true)] - static bool HandleResetSpellsCommand(StringArguments args, CommandHandler handler) + static bool HandleResetSpellsCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -154,7 +154,7 @@ namespace Game.Chat } [Command("stats", RBACPermissions.CommandResetStats, true)] - static bool HandleResetStatsCommand(StringArguments args, CommandHandler handler) + static bool HandleResetStatsCommand(CommandHandler handler, StringArguments args) { Player target; if (!handler.ExtractPlayerTarget(args, out target)) @@ -172,7 +172,7 @@ namespace Game.Chat } [Command("talents", RBACPermissions.CommandResetTalents, true)] - static bool HandleResetTalentsCommand(StringArguments args, CommandHandler handler) + static bool HandleResetTalentsCommand(CommandHandler handler, StringArguments args) { Player target; ObjectGuid targetGuid; @@ -237,7 +237,7 @@ namespace Game.Chat } [Command("all", RBACPermissions.CommandResetAll, true)] - static bool HandleResetAllCommand(StringArguments args, CommandHandler handler) + static bool HandleResetAllCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/SceneCommands.cs b/Source/Game/Chat/Commands/SceneCommands.cs index b3961bb79..441cf890d 100644 --- a/Source/Game/Chat/Commands/SceneCommands.cs +++ b/Source/Game/Chat/Commands/SceneCommands.cs @@ -26,7 +26,7 @@ namespace Game.Chat class SceneCommands { [Command("cancel", RBACPermissions.CommandSceneCancel)] - static bool HandleCancelSceneCommand(StringArguments args, CommandHandler handler) + static bool HandleCancelSceneCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -48,7 +48,7 @@ namespace Game.Chat } [Command("debug", RBACPermissions.CommandSceneDebug)] - static bool HandleDebugSceneCommand(StringArguments args, CommandHandler handler) + static bool HandleDebugSceneCommand(CommandHandler handler, StringArguments args) { Player player = handler.GetSession().GetPlayer(); if (player) @@ -61,7 +61,7 @@ namespace Game.Chat } [Command("play", RBACPermissions.CommandScenePlay)] - static bool HandlePlaySceneCommand(StringArguments args, CommandHandler handler) + static bool HandlePlaySceneCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -82,7 +82,7 @@ namespace Game.Chat } [Command("playpackage", RBACPermissions.CommandScenePlayPackage)] - static bool HandlePlayScenePackageCommand(StringArguments args, CommandHandler handler) + static bool HandlePlayScenePackageCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/SendCommands.cs b/Source/Game/Chat/Commands/SendCommands.cs index 2ac36744a..3c9a901ea 100644 --- a/Source/Game/Chat/Commands/SendCommands.cs +++ b/Source/Game/Chat/Commands/SendCommands.cs @@ -28,7 +28,7 @@ namespace Game.Chat.Commands class SendCommands { [Command("mail", RBACPermissions.CommandSendMail, true)] - static bool HandleSendMailCommand(StringArguments args, CommandHandler handler) + static bool HandleSendMailCommand(CommandHandler handler, StringArguments args) { // format: name "subject text" "mail text" Player target; @@ -69,7 +69,7 @@ namespace Game.Chat.Commands } [Command("items", RBACPermissions.CommandSendItems, true)] - static bool HandleSendItemsCommand(StringArguments args, CommandHandler handler) + static bool HandleSendItemsCommand(CommandHandler handler, StringArguments args) { // format: name "subject text" "mail text" item1[:count1] item2[:count2] ... item12[:count12] Player receiver; @@ -169,7 +169,7 @@ namespace Game.Chat.Commands } [Command("money", RBACPermissions.CommandSendMoney, true)] - static bool HandleSendMoneyCommand(StringArguments args, CommandHandler handler) + static bool HandleSendMoneyCommand(CommandHandler handler, StringArguments args) { // format: name "subject text" "mail text" money @@ -218,7 +218,7 @@ namespace Game.Chat.Commands } [Command("message", RBACPermissions.CommandSendMessage, true)] - static bool HandleSendMessageCommand(StringArguments args, CommandHandler handler) + static bool HandleSendMessageCommand(CommandHandler handler, StringArguments args) { // - Find the player Player player; diff --git a/Source/Game/Chat/Commands/ServerCommands.cs b/Source/Game/Chat/Commands/ServerCommands.cs index 328469dd1..9b64df59f 100644 --- a/Source/Game/Chat/Commands/ServerCommands.cs +++ b/Source/Game/Chat/Commands/ServerCommands.cs @@ -26,20 +26,20 @@ namespace Game.Chat class ServerCommands { [Command("corpses", RBACPermissions.CommandServerCorpses, true)] - static bool HandleServerCorpsesCommand(StringArguments args, CommandHandler handler) + static bool HandleServerCorpsesCommand(CommandHandler handler, StringArguments args) { Global.WorldMgr.RemoveOldCorpses(); return true; } [Command("debug", RBACPermissions.CommandServerCorpses, true)] - static bool HandleServerDebugCommand(StringArguments args, CommandHandler handler) + static bool HandleServerDebugCommand(CommandHandler handler, StringArguments args) { return false;//todo fix me } [Command("exit", RBACPermissions.CommandServerExit, true)] - static bool HandleServerExitCommand(StringArguments args, CommandHandler handler) + static bool HandleServerExitCommand(CommandHandler handler, StringArguments args) { handler.SendSysMessage(CypherStrings.CommandExit); Global.WorldMgr.StopNow(ShutdownExitCode.Shutdown); @@ -47,7 +47,7 @@ namespace Game.Chat } [Command("info", RBACPermissions.CommandServerInfo, true)] - static bool HandleServerInfoCommand(StringArguments args, CommandHandler handler) + static bool HandleServerInfoCommand(CommandHandler handler, StringArguments args) { uint playersNum = Global.WorldMgr.GetPlayerCount(); uint maxPlayersNum = Global.WorldMgr.GetMaxPlayerCount(); @@ -70,7 +70,7 @@ namespace Game.Chat } [Command("motd", RBACPermissions.CommandServerMotd, true)] - static bool HandleServerMotdCommand(StringArguments args, CommandHandler handler) + static bool HandleServerMotdCommand(CommandHandler handler, StringArguments args) { string motd = ""; foreach (var line in Global.WorldMgr.GetMotd()) @@ -81,7 +81,7 @@ namespace Game.Chat } [Command("plimit", RBACPermissions.CommandServerPlimit, true)] - static bool HandleServerPLimitCommand(StringArguments args, CommandHandler handler) + static bool HandleServerPLimitCommand(CommandHandler handler, StringArguments args) { if (!args.Empty()) { @@ -234,13 +234,13 @@ namespace Game.Chat class IdleRestartCommands { [Command("", RBACPermissions.CommandServerIdlerestart, true)] - static bool HandleServerIdleRestartCommand(StringArguments args, CommandHandler handler) + static bool HandleServerIdleRestartCommand(CommandHandler handler, StringArguments args) { return ShutdownServer(args, handler, ShutdownMask.Restart | ShutdownMask.Idle, ShutdownExitCode.Restart); } [Command("cancel", RBACPermissions.CommandServerIdlerestartCancel, true)] - static bool HandleServerShutDownCancelCommand(StringArguments args, CommandHandler handler) + static bool HandleServerShutDownCancelCommand(CommandHandler handler, StringArguments args) { uint timer = Global.WorldMgr.ShutdownCancel(); if (timer != 0) @@ -253,13 +253,13 @@ namespace Game.Chat class IdleshutdownCommands { [Command("", RBACPermissions.CommandServerIdleshutdown, true)] - static bool HandleServerIdleShutDownCommand(StringArguments args, CommandHandler handler) + static bool HandleServerIdleShutDownCommand(CommandHandler handler, StringArguments args) { return ShutdownServer(args, handler, ShutdownMask.Idle, ShutdownExitCode.Shutdown); } [Command("cancel", RBACPermissions.CommandServerIdleshutdownCancel, true)] - static bool HandleServerShutDownCancelCommand(StringArguments args, CommandHandler handler) + static bool HandleServerShutDownCancelCommand(CommandHandler handler, StringArguments args) { uint timer = Global.WorldMgr.ShutdownCancel(); if (timer != 0) @@ -273,13 +273,13 @@ namespace Game.Chat class RestartCommands { [Command("", RBACPermissions.CommandServerRestart, true)] - static bool HandleServerRestartCommand(StringArguments args, CommandHandler handler) + static bool HandleServerRestartCommand(CommandHandler handler, StringArguments args) { return ShutdownServer(args, handler, ShutdownMask.Restart, ShutdownExitCode.Restart); } [Command("cancel", RBACPermissions.CommandServerRestartCancel, true)] - static bool HandleServerShutDownCancelCommand(StringArguments args, CommandHandler handler) + static bool HandleServerShutDownCancelCommand(CommandHandler handler, StringArguments args) { uint timer = Global.WorldMgr.ShutdownCancel(); if (timer != 0) @@ -289,7 +289,7 @@ namespace Game.Chat } [Command("force", RBACPermissions.CommandServerRestartCancel, true)] - static bool HandleServerForceRestartCommand(StringArguments args, CommandHandler handler) + static bool HandleServerForceRestartCommand(CommandHandler handler, StringArguments args) { return ShutdownServer(args, handler, ShutdownMask.Force | ShutdownMask.Restart, ShutdownExitCode.Restart); } @@ -299,13 +299,13 @@ namespace Game.Chat class ShutdownCommands { [Command("", RBACPermissions.CommandServerShutdown, true)] - static bool HandleServerShutDownCommand(StringArguments args, CommandHandler handler) + static bool HandleServerShutDownCommand(CommandHandler handler, StringArguments args) { return ShutdownServer(args, handler, 0, ShutdownExitCode.Shutdown); } [Command("cancel", RBACPermissions.CommandServerShutdownCancel, true)] - static bool HandleServerShutDownCancelCommand(StringArguments args, CommandHandler handler) + static bool HandleServerShutDownCancelCommand(CommandHandler handler, StringArguments args) { uint timer = Global.WorldMgr.ShutdownCancel(); if (timer != 0) @@ -315,7 +315,7 @@ namespace Game.Chat } [Command("force", RBACPermissions.CommandServerShutdownCancel, true)] - static bool HandleServerForceShutDownCommand(StringArguments args, CommandHandler handler) + static bool HandleServerForceShutDownCommand(CommandHandler handler, StringArguments args) { return ShutdownServer(args, handler, ShutdownMask.Force, ShutdownExitCode.Shutdown); } @@ -325,7 +325,7 @@ namespace Game.Chat class SetCommands { [Command("difftime", RBACPermissions.CommandServerSetDifftime, true)] - static bool HandleServerSetDiffTimeCommand(StringArguments args, CommandHandler handler) + static bool HandleServerSetDiffTimeCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -344,7 +344,7 @@ namespace Game.Chat } [Command("loglevel", RBACPermissions.CommandServerSetLoglevel, true)] - static bool HandleServerSetLogLevelCommand(StringArguments args, CommandHandler handler) + static bool HandleServerSetLogLevelCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -360,7 +360,7 @@ namespace Game.Chat } [Command("motd", RBACPermissions.CommandServerSetMotd, true)] - static bool SetMotd(StringArguments args, CommandHandler handler) + static bool SetMotd(CommandHandler handler, StringArguments args) { Global.WorldMgr.SetMotd(args.NextString("")); handler.SendSysMessage(CypherStrings.MotdNew, args.GetString()); @@ -368,7 +368,7 @@ namespace Game.Chat } [Command("closed", RBACPermissions.CommandServerSetClosed, true)] - static bool SetClosed(StringArguments args, CommandHandler handler) + static bool SetClosed(CommandHandler handler, StringArguments args) { string arg1 = args.NextString(); if (arg1.Equals("on")) diff --git a/Source/Game/Chat/Commands/SpellCommands.cs b/Source/Game/Chat/Commands/SpellCommands.cs index e2f8fa3c0..971626b43 100644 --- a/Source/Game/Chat/Commands/SpellCommands.cs +++ b/Source/Game/Chat/Commands/SpellCommands.cs @@ -27,7 +27,7 @@ namespace Game.Chat class SpellCommands { [CommandNonGroup("cooldown", RBACPermissions.CommandCooldown)] - static bool HandleCooldownCommand(StringArguments args, CommandHandler handler) + static bool HandleCooldownCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target) @@ -72,7 +72,7 @@ namespace Game.Chat } [CommandNonGroup("aura", RBACPermissions.CommandAura)] - static bool HandleAuraCommand(StringArguments args, CommandHandler handler) + static bool HandleAuraCommand(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target) @@ -99,7 +99,7 @@ namespace Game.Chat } [CommandNonGroup("unaura", RBACPermissions.CommandUnaura)] - static bool UnAura(StringArguments args, CommandHandler handler) + static bool UnAura(CommandHandler handler, StringArguments args) { Unit target = handler.GetSelectedUnit(); if (!target) @@ -128,7 +128,7 @@ namespace Game.Chat } [CommandNonGroup("setskill", RBACPermissions.CommandSetskill)] - static bool SetSkill(StringArguments args, CommandHandler handler) + static bool SetSkill(CommandHandler handler, StringArguments args) { // number or [name] Shift-click form |color|Hskill:skill_id|h[name]|h|r string skillStr = handler.ExtractKeyFromLink(args, "Hskill"); diff --git a/Source/Game/Chat/Commands/TeleCommands.cs b/Source/Game/Chat/Commands/TeleCommands.cs index 9f8789900..53c609380 100644 --- a/Source/Game/Chat/Commands/TeleCommands.cs +++ b/Source/Game/Chat/Commands/TeleCommands.cs @@ -30,20 +30,15 @@ namespace Game.Chat class TeleCommands { [Command("", RBACPermissions.CommandTele)] - static bool HandleTeleCommand(StringArguments args, CommandHandler handler) + static bool HandleTeleCommand(CommandHandler handler, GameTele tele) { - if (args.Empty()) - return false; - - Player player = handler.GetPlayer(); - - GameTele tele = handler.ExtractGameTeleFromLink(args); if (tele == null) { handler.SendSysMessage(CypherStrings.CommandTeleNotfound); return false; } + Player player = handler.GetSession().GetPlayer(); if (player.IsInCombat() && !handler.GetSession().HasPermission(RBACPermissions.CommandTeleName)) { handler.SendSysMessage(CypherStrings.YouInCombat); @@ -68,17 +63,12 @@ namespace Game.Chat } [Command("add", RBACPermissions.CommandTeleAdd)] - static bool HandleTeleAddCommand(StringArguments args, CommandHandler handler) + static bool HandleTeleAddCommand(CommandHandler handler, string name) { - if (args.Empty()) - return false; - Player player = handler.GetSession().GetPlayer(); if (player == null) return false; - string name = args.NextString(); - if (Global.ObjectMgr.GetGameTele(name) != null) { handler.SendSysMessage(CypherStrings.CommandTpAlreadyexist); @@ -108,13 +98,8 @@ namespace Game.Chat } [Command("del", RBACPermissions.CommandTeleDel, true)] - static bool HandleTeleDelCommand(StringArguments args, CommandHandler handler) + static bool HandleTeleDelCommand(CommandHandler handler, GameTele tele) { - if (args.Empty()) - return false; - - // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r - GameTele tele = handler.ExtractGameTeleFromLink(args); if (tele == null) { handler.SendSysMessage(CypherStrings.CommandTeleNotfound); @@ -127,10 +112,13 @@ namespace Game.Chat } [Command("group", RBACPermissions.CommandTeleGroup)] - static bool HandleTeleGroupCommand(StringArguments args, CommandHandler handler) + static bool HandleTeleGroupCommand(CommandHandler handler, GameTele tele) { - if (args.Empty()) + if (tele == null) + { + handler.SendSysMessage(CypherStrings.CommandTeleNotfound); return false; + } Player target = handler.GetSelectedPlayer(); if (!target) @@ -143,14 +131,6 @@ namespace Game.Chat if (handler.HasLowerSecurity(target, ObjectGuid.Empty)) return false; - // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r - GameTele tele = handler.ExtractGameTeleFromLink(args); - if (tele == null) - { - handler.SendSysMessage(CypherStrings.CommandTeleNotfound); - return false; - } - MapRecord map = CliDB.MapStorage.LookupByKey(tele.mapId); if (map == null || map.IsBattlegroundOrArena()) { @@ -202,7 +182,7 @@ namespace Game.Chat } [Command("name", RBACPermissions.CommandTeleName, true)] - static bool HandleTeleNameCommand(StringArguments args, CommandHandler handler) + static bool HandleTeleNameCommand(CommandHandler handler, StringArguments args) { handler.ExtractOptFirstArg(args, out string nameStr, out string teleStr); if (teleStr.IsEmpty()) diff --git a/Source/Game/Chat/Commands/TicketCommands.cs b/Source/Game/Chat/Commands/TicketCommands.cs index 69b62740a..49b0d33fe 100644 --- a/Source/Game/Chat/Commands/TicketCommands.cs +++ b/Source/Game/Chat/Commands/TicketCommands.cs @@ -26,7 +26,7 @@ namespace Game.Chat.Commands class TicketCommands { [Command("togglesystem", RBACPermissions.CommandTicketTogglesystem, true)] - static bool HandleTicketToggleSystem(StringArguments args, CommandHandler handler) + static bool HandleTicketToggleSystem(CommandHandler handler, StringArguments args) { if (!WorldConfig.GetBoolValue(WorldCfg.SupportTicketsEnabled)) { @@ -44,51 +44,51 @@ namespace Game.Chat.Commands class TicketBugCommands { [Command("assign", RBACPermissions.CommandTicketBugAssign, true)] - static bool HandleTicketBugAssignCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketBugAssignCommand(CommandHandler handler, StringArguments args) { - return HandleTicketAssignToCommand(args, handler); + return HandleTicketAssignToCommand(handler, args); } [Command("close", RBACPermissions.CommandTicketBugClose, true)] - static bool HandleTicketBugCloseCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketBugCloseCommand(CommandHandler handler, StringArguments args) { - return HandleCloseByIdCommand(args, handler); + return HandleCloseByIdCommand(handler, args); } [Command("closedlist", RBACPermissions.CommandTicketBugClosedlist, true)] - static bool HandleTicketBugClosedListCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketBugClosedListCommand(CommandHandler handler, StringArguments args) { - return HandleClosedListCommand(args, handler); + return HandleClosedListCommand(handler, args); } [Command("comment", RBACPermissions.CommandTicketBugComment, true)] - static bool HandleTicketBugCommentCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketBugCommentCommand(CommandHandler handler, StringArguments args) { - return HandleCommentCommand(args, handler); + return HandleCommentCommand(handler, args); } [Command("delete", RBACPermissions.CommandTicketBugDelete, true)] - static bool HandleTicketBugDeleteCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketBugDeleteCommand(CommandHandler handler, StringArguments args) { - return HandleDeleteByIdCommand(args, handler); + return HandleDeleteByIdCommand(handler, args); } [Command("list", RBACPermissions.CommandTicketBugList, true)] - static bool HandleTicketBugListCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketBugListCommand(CommandHandler handler, StringArguments args) { - return HandleListCommand(args, handler); + return HandleListCommand(handler, args); } [Command("unassign", RBACPermissions.CommandTicketBugUnassign, true)] - static bool HandleTicketBugUnAssignCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketBugUnAssignCommand(CommandHandler handler, StringArguments args) { - return HandleUnAssignCommand(args, handler); + return HandleUnAssignCommand(handler, args); } [Command("view", RBACPermissions.CommandTicketBugView, true)] - static bool HandleTicketBugViewCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketBugViewCommand(CommandHandler handler, StringArguments args) { - return HandleGetByIdCommand(args, handler); + return HandleGetByIdCommand(handler, args); } } @@ -96,51 +96,51 @@ namespace Game.Chat.Commands class TicketComplaintCommands { [Command("assign", RBACPermissions.CommandTicketComplaintAssign, true)] - static bool HandleTicketComplaintAssignCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketComplaintAssignCommand(CommandHandler handler, StringArguments args) { - return HandleTicketAssignToCommand(args, handler); + return HandleTicketAssignToCommand(handler, args); } [Command("close", RBACPermissions.CommandTicketComplaintClose, true)] - static bool HandleTicketComplaintCloseCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketComplaintCloseCommand(CommandHandler handler, StringArguments args) { - return HandleCloseByIdCommand(args, handler); + return HandleCloseByIdCommand(handler, args); } [Command("closedlist", RBACPermissions.CommandTicketComplaintClosedlist, true)] - static bool HandleTicketComplaintClosedListCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketComplaintClosedListCommand(CommandHandler handler, StringArguments args) { - return HandleClosedListCommand(args, handler); + return HandleClosedListCommand(handler, args); } [Command("comment", RBACPermissions.CommandTicketComplaintComment, true)] - static bool HandleTicketComplaintCommentCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketComplaintCommentCommand(CommandHandler handler, StringArguments args) { - return HandleCommentCommand(args, handler); + return HandleCommentCommand(handler, args); } [Command("delete", RBACPermissions.CommandTicketComplaintDelete, true)] - static bool HandleTicketComplaintDeleteCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketComplaintDeleteCommand(CommandHandler handler, StringArguments args) { - return HandleDeleteByIdCommand(args, handler); + return HandleDeleteByIdCommand(handler, args); } [Command("list", RBACPermissions.CommandTicketComplaintList, true)] - static bool HandleTicketComplaintListCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketComplaintListCommand(CommandHandler handler, StringArguments args) { - return HandleListCommand(args, handler); + return HandleListCommand(handler, args); } [Command("unassign", RBACPermissions.CommandTicketComplaintUnassign, true)] - static bool HandleTicketComplaintUnAssignCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketComplaintUnAssignCommand(CommandHandler handler, StringArguments args) { - return HandleUnAssignCommand(args, handler); + return HandleUnAssignCommand(handler, args); } [Command("view", RBACPermissions.CommandTicketComplaintView, true)] - static bool HandleTicketComplaintViewCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketComplaintViewCommand(CommandHandler handler, StringArguments args) { - return HandleGetByIdCommand(args, handler); + return HandleGetByIdCommand(handler, args); } } @@ -148,51 +148,51 @@ namespace Game.Chat.Commands class TicketSuggestionCommands { [Command("assign", RBACPermissions.CommandTicketSuggestionAssign, true)] - static bool HandleTicketSuggestionAssignCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketSuggestionAssignCommand(CommandHandler handler, StringArguments args) { - return HandleTicketAssignToCommand(args, handler); + return HandleTicketAssignToCommand(handler, args); } [Command("close", RBACPermissions.CommandTicketSuggestionClose, true)] - static bool HandleTicketSuggestionCloseCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketSuggestionCloseCommand(CommandHandler handler, StringArguments args) { - return HandleCloseByIdCommand(args, handler); + return HandleCloseByIdCommand(handler, args); } [Command("closedlist", RBACPermissions.CommandTicketSuggestionClosedlist, true)] - static bool HandleTicketSuggestionClosedListCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketSuggestionClosedListCommand(CommandHandler handler, StringArguments args) { - return HandleClosedListCommand(args, handler); + return HandleClosedListCommand(handler, args); } [Command("comment", RBACPermissions.CommandTicketSuggestionComment, true)] - static bool HandleTicketSuggestionCommentCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketSuggestionCommentCommand(CommandHandler handler, StringArguments args) { - return HandleCommentCommand(args, handler); + return HandleCommentCommand(handler, args); } [Command("delete", RBACPermissions.CommandTicketSuggestionDelete, true)] - static bool HandleTicketSuggestionDeleteCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketSuggestionDeleteCommand(CommandHandler handler, StringArguments args) { - return HandleDeleteByIdCommand(args, handler); + return HandleDeleteByIdCommand(handler, args); } [Command("list", RBACPermissions.CommandTicketSuggestionList, true)] - static bool HandleTicketSuggestionListCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketSuggestionListCommand(CommandHandler handler, StringArguments args) { - return HandleListCommand(args, handler); + return HandleListCommand(handler, args); } [Command("unassign", RBACPermissions.CommandTicketSuggestionUnassign, true)] - static bool HandleTicketSuggestionUnAssignCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketSuggestionUnAssignCommand(CommandHandler handler, StringArguments args) { - return HandleUnAssignCommand(args, handler); + return HandleUnAssignCommand(handler, args); } [Command("view", RBACPermissions.CommandTicketSuggestionView, true)] - static bool HandleTicketSuggestionViewCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketSuggestionViewCommand(CommandHandler handler, StringArguments args) { - return HandleGetByIdCommand(args, handler); + return HandleGetByIdCommand(handler, args); } } @@ -200,7 +200,7 @@ namespace Game.Chat.Commands class TicketResetCommands { [Command("all", RBACPermissions.CommandTicketResetAll, true)] - static bool HandleTicketResetAllCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketResetAllCommand(CommandHandler handler, StringArguments args) { if (Global.SupportMgr.GetOpenTicketCount() != 0 || Global.SupportMgr.GetOpenTicketCount() != 0 || Global.SupportMgr.GetOpenTicketCount() != 0) { @@ -218,25 +218,25 @@ namespace Game.Chat.Commands } [Command("bug", RBACPermissions.CommandTicketResetBug, true)] - static bool HandleTicketResetBugCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketResetBugCommand(CommandHandler handler, StringArguments args) { - return HandleResetCommand(args, handler); + return HandleResetCommand(handler, args); } [Command("complaint", RBACPermissions.CommandTicketResetComplaint, true)] - static bool HandleTicketResetComplaintCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketResetComplaintCommand(CommandHandler handler, StringArguments args) { - return HandleResetCommand(args, handler); + return HandleResetCommand(handler, args); } [Command("suggestion", RBACPermissions.CommandTicketResetSuggestion, true)] - static bool HandleTicketResetSuggestionCommand(StringArguments args, CommandHandler handler) + static bool HandleTicketResetSuggestionCommand(CommandHandler handler, StringArguments args) { - return HandleResetCommand(args, handler); + return HandleResetCommand(handler, args); } } - static bool HandleTicketAssignToCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleTicketAssignToCommand(CommandHandler handler, StringArguments args) where T : Ticket { if (args.Empty()) return false; @@ -291,7 +291,7 @@ namespace Game.Chat.Commands return true; } - static bool HandleCloseByIdCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleCloseByIdCommand(CommandHandler handler, StringArguments args) where T : Ticket { if (args.Empty()) return false; @@ -327,13 +327,13 @@ namespace Game.Chat.Commands return true; } - static bool HandleClosedListCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleClosedListCommand(CommandHandler handler, StringArguments args) where T : Ticket { Global.SupportMgr.ShowClosedList(handler); return true; } - static bool HandleCommentCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleCommentCommand(CommandHandler handler, StringArguments args) where T : Ticket { if (args.Empty()) return false; @@ -371,7 +371,7 @@ namespace Game.Chat.Commands return true; } - static bool HandleDeleteByIdCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleDeleteByIdCommand(CommandHandler handler, StringArguments args) where T : Ticket { if (args.Empty()) return false; @@ -398,13 +398,13 @@ namespace Game.Chat.Commands return true; } - static bool HandleListCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleListCommand(CommandHandler handler, StringArguments args) where T : Ticket { Global.SupportMgr.ShowList(handler); return true; } - static bool HandleResetCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleResetCommand(CommandHandler handler, StringArguments args) where T : Ticket { if (Global.SupportMgr.GetOpenTicketCount() != 0) { @@ -420,7 +420,7 @@ namespace Game.Chat.Commands return true; } - static bool HandleUnAssignCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleUnAssignCommand(CommandHandler handler, StringArguments args) where T : Ticket { if (args.Empty()) return false; @@ -470,7 +470,7 @@ namespace Game.Chat.Commands return true; } - static bool HandleGetByIdCommand(StringArguments args, CommandHandler handler) where T : Ticket + static bool HandleGetByIdCommand(CommandHandler handler, StringArguments args) where T : Ticket { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/TitleCommands.cs b/Source/Game/Chat/Commands/TitleCommands.cs index ad125c866..e98de81d6 100644 --- a/Source/Game/Chat/Commands/TitleCommands.cs +++ b/Source/Game/Chat/Commands/TitleCommands.cs @@ -28,7 +28,7 @@ namespace Game.Chat.Commands class TitleCommands { [Command("current", RBACPermissions.CommandTitlesCurrent)] - static bool HandleTitlesCurrentCommand(StringArguments args, CommandHandler handler) + static bool HandleTitlesCurrentCommand(CommandHandler handler, StringArguments args) { // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r string id_p = handler.ExtractKeyFromLink(args, "Htitle"); @@ -69,7 +69,7 @@ namespace Game.Chat.Commands } [Command("add", RBACPermissions.CommandTitlesAdd)] - static bool HandleTitlesAddCommand(StringArguments args, CommandHandler handler) + static bool HandleTitlesAddCommand(CommandHandler handler, StringArguments args) { // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r string id_p = handler.ExtractKeyFromLink(args, "Htitle"); @@ -111,7 +111,7 @@ namespace Game.Chat.Commands } [Command("remove", RBACPermissions.CommandTitlesRemove)] - static bool HandleTitlesRemoveCommand(StringArguments args, CommandHandler handler) + static bool HandleTitlesRemoveCommand(CommandHandler handler, StringArguments args) { // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r string id_p = handler.ExtractKeyFromLink(args, "Htitle"); @@ -164,7 +164,7 @@ namespace Game.Chat.Commands { //Edit Player KnownTitles [Command("mask", RBACPermissions.CommandTitlesSetMask)] - static bool HandleTitlesSetMaskCommand(StringArguments args, CommandHandler handler) + static bool HandleTitlesSetMaskCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; diff --git a/Source/Game/Chat/Commands/WPCommands.cs b/Source/Game/Chat/Commands/WPCommands.cs index c0722dd5c..2b6be4dfe 100644 --- a/Source/Game/Chat/Commands/WPCommands.cs +++ b/Source/Game/Chat/Commands/WPCommands.cs @@ -29,7 +29,7 @@ namespace Game.Chat.Commands class WPCommands { [Command("add", RBACPermissions.CommandWpAdd)] - static bool HandleWpAddCommand(StringArguments args, CommandHandler handler) + static bool HandleWpAddCommand(CommandHandler handler, StringArguments args) { // optional string path_number = null; @@ -96,7 +96,7 @@ namespace Game.Chat.Commands } [Command("event", RBACPermissions.CommandWpEvent)] - static bool HandleWpEventCommand(StringArguments args, CommandHandler handler) + static bool HandleWpEventCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -357,7 +357,7 @@ namespace Game.Chat.Commands } [Command("load", RBACPermissions.CommandWpLoad)] - static bool HandleWpLoadCommand(StringArguments args, CommandHandler handler) + static bool HandleWpLoadCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -426,7 +426,7 @@ namespace Game.Chat.Commands } [Command("modify", RBACPermissions.CommandWpModify)] - static bool HandleWpModifyCommand(StringArguments args, CommandHandler handler) + static bool HandleWpModifyCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -606,7 +606,7 @@ namespace Game.Chat.Commands } [Command("reload", RBACPermissions.CommandWpReload)] - static bool HandleWpReloadCommand(StringArguments args, CommandHandler handler) + static bool HandleWpReloadCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -622,7 +622,7 @@ namespace Game.Chat.Commands } [Command("show", RBACPermissions.CommandWpShow)] - static bool HandleWpShowCommand(StringArguments args, CommandHandler handler) + static bool HandleWpShowCommand(CommandHandler handler, StringArguments args) { if (args.Empty()) return false; @@ -960,7 +960,7 @@ namespace Game.Chat.Commands } [Command("unload", RBACPermissions.CommandWpUnload)] - static bool HandleWpUnLoadCommand(StringArguments args, CommandHandler handler) + static bool HandleWpUnLoadCommand(CommandHandler handler, StringArguments args) { Creature target = handler.GetSelectedCreature(); if (!target) diff --git a/Source/Game/Chat/Hyperlink.cs b/Source/Game/Chat/Hyperlink.cs new file mode 100644 index 000000000..102521b5b --- /dev/null +++ b/Source/Game/Chat/Hyperlink.cs @@ -0,0 +1,221 @@ +/* + * Copyright (C) 2012-2020 CypherCore + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using Framework.Constants; +using Framework.IO; +using Game.DataStorage; +using Game.Spells; +using System; +using System.Collections.Generic; + +namespace Game.Chat +{ + class Hyperlink + { + public static bool TryConsume(out dynamic value, Type type, StringArguments args) + { + value = default; + + HyperlinkInfo info = ParseHyperlink(args.GetString()); + // invalid hyperlinks cannot be consumed + if (info == null) + return false; + + // store value + switch (Type.GetTypeCode(type)) + { + case TypeCode.UInt32: + { + if (!uint.TryParse(info.Data, out uint tempValue)) + return false; + + value = tempValue; + return true; + } + case TypeCode.UInt64: + { + if (!ulong.TryParse(info.Data, out ulong tempValue)) + return false; + + value = tempValue; + return true; + } + case TypeCode.String: + { + value = info.Data; + return true; + } + case TypeCode.Object: + return TryConsumeObject(out value, type, info); + } + + return false; + } + + public static bool TryConsumeObject(out dynamic value, Type type, HyperlinkInfo info) + { + value = default; + + switch (type.Name) + { + case nameof(AchievementRecord): + { + HyperlinkDataTokenizer t = new(info.Data); + if (!t.TryConsumeTo(out uint achievementId)) + return false; + + value = CliDB.AchievementStorage.LookupByKey(achievementId); + return true; + } + case nameof(CurrencyTypesRecord): + { + HyperlinkDataTokenizer t = new(info.Data); + if (!t.TryConsumeTo(out uint currencyId)) + return false; + + value = CliDB.CurrencyTypesStorage.LookupByKey(currencyId); + return true; + } + case nameof(GameTele): + { + HyperlinkDataTokenizer t = new(info.Data); + if (!t.TryConsumeTo(out uint teleId)) + return false; + + value = Global.ObjectMgr.GetGameTele(teleId); + return true; + } + case nameof(SpellInfo): + { + HyperlinkDataTokenizer t = new(info.Data); + if (!t.TryConsumeTo(out uint spellId)) + return false; + + value = Global.SpellMgr.GetSpellInfo(spellId, Difficulty.None); + + return true; + } + } + + return false; + } + + static byte toHex(char c) { return (byte)((c >= '0' && c <= '9') ? c - '0' + 0x10 : (c >= 'a' && c <= 'f') ? c - 'a' + 0x1a : 0x00); } + + //|color|Henchant:recipe_spell_id|h[prof_name: recipe_name]|h|r + public static HyperlinkInfo ParseHyperlink(string currentString) + { + if (currentString.IsEmpty()) + return null; + + int pos = 0; + + //color tag + if (currentString[pos++] != '|' || currentString[pos++] != 'c') + return null; + + uint color = 0; + for (byte i = 0; i < 8; ++i) + { + byte hex = toHex(currentString[pos++]); + if (hex != 0) + color = (uint)((int)(color << 4) | (hex & 0xf)); + else + return null; + } + + // link data start tag + if (currentString[pos++] != '|' || currentString[pos++] != 'H') + return null; + + // link tag, find next : or | + int tagStart = pos; + int tagLength = 0; + while (pos < currentString.Length && currentString[pos] != '|' && currentString[pos++] != ':') // we only advance pointer to one past if the last thing is : (not for |), this is intentional! + ++tagLength; + + // ok, link data, skip to next | + int dataStart = pos; + int dataLength = 0; + while (pos < currentString.Length && currentString[pos++] != '|') + ++dataLength; + + // ok, next should be link data end tag... + if (currentString[pos++] != 'h') + return null; + + // then visible link text, starts with [ + if (currentString[pos++] != '[') + return null; + + // skip until we hit the next ], abort on unexpected | + int textStart = pos; + int textLength = 0; + while (pos < currentString.Length) + { + if (currentString[pos] == '|') + return null; + + if (currentString[pos++] == ']') + break; + + ++textLength; + } + + // link end tag + if (currentString[pos++] != '|' || currentString[pos++] != 'h' || currentString[pos++] != '|' || currentString[pos++] != 'r') + return null; + + // ok, valid hyperlink, return info + return new HyperlinkInfo(currentString.Substring(pos), color, currentString.Substring(tagStart, tagLength), currentString.Substring(dataStart, dataLength), currentString.Substring(textStart, textLength)); + } + } + + class HyperlinkInfo + { + public HyperlinkInfo(string n = null, uint c = 0, string tag = null, string data = null, string text = null) + { + next = n; + color = new(c); + Tag = tag; + Data = data; + Text = text; + } + + public string next; + public HyperlinkColor color; + public string Tag; + public string Data; + public string Text; + } + + struct HyperlinkColor + { + public byte r; + public byte g; + public byte b; + public byte a; + + public HyperlinkColor(uint c) + { + r = (byte)(c >> 16); + g = (byte)(c >> 8); + b = (byte)c; + a = (byte)(c >> 24); + } + } +} diff --git a/Source/Game/Chat/HyperlinkData.cs b/Source/Game/Chat/HyperlinkData.cs new file mode 100644 index 000000000..9f91f1955 --- /dev/null +++ b/Source/Game/Chat/HyperlinkData.cs @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2012-2020 CypherCore + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using Game.DataStorage; +using Game.Entities; +using Game.Spells; +using System.Collections.Generic; + +namespace Game.Chat +{ + struct AchievementLinkData + { + public AchievementRecord Achievement; + public ObjectGuid CharacterId; + public bool IsFinished; + public ushort Year; + public byte Month; + public byte Day; + public uint[] Criteria = new uint[4]; + } + + struct ArtifactPowerLinkData + { + public ArtifactPowerRankRecord ArtifactPower; + public byte PurchasedRank; + public byte CurrentRankWithBonus; + } + + struct AzeriteEssenceLinkData + { + public AzeriteEssenceRecord Essence; + public byte Rank; + } + + struct BattlePetLinkData + { + public BattlePetSpeciesRecord Species; + public byte Level; + public byte Quality; + public uint MaxHealth; + public uint Power; + public uint Speed; + public ObjectGuid PetGuid; + public uint DisplayId; + } + + struct CurrencyLinkData + { + public CurrencyTypesRecord Currency; + public int Quantity; + + public CurrencyContainerRecord Container; + } + + struct GarrisonFollowerLinkData + { + public GarrFollowerRecord Follower; + public uint Quality; + public uint Level; + public uint ItemLevel; + public uint[] Abilities = new uint[4]; + public uint[] Traits = new uint[4]; + public uint Specialization; + } + + struct GarrisonMissionLinkData + { + public GarrMissionRecord Mission; + public ulong DbID; + } + + struct InstanceLockLinkData + { + public ObjectGuid Owner; + public MapRecord Map; + public uint Difficulty; + public uint CompletedEncountersMask; + } + + struct ItemLinkData + { + public ItemTemplate Item; + public uint EnchantId; + public uint[] GemItemId = new uint[3]; + public byte RenderLevel; + public uint RenderSpecialization; + public byte Context; + public List ItemBonusListIDs; + + public struct Modifier + { + public uint Type; + public int Value; + } + + public List Modifiers; + public List[] GemItemBonusListIDs = new List[3]; + public ObjectGuid Creator; + public uint UseEnchantId; + + public uint Quality; + public ItemNameDescriptionRecord Suffix; + } + + struct JournalLinkData + { + public enum Types : byte + { + Instance = 0, + Encounter = 1, + EncounterSection = 2, + Tier = 3 + } + + public byte Type; + public LocalizedString ExpectedText; + public uint Difficulty; + } + + struct KeystoneLinkData + { + public uint ItemId; + public MapChallengeModeRecord Map; + public uint Level; + public uint[] Affix = new uint[4]; + } + + struct QuestLinkData + { + public Quest Quest; + public uint ContentTuningId; + } + + struct SpellLinkData + { + public SpellInfo Spell; + public GlyphPropertiesRecord Glyph; + } + + struct TradeskillLinkData + { + public ObjectGuid Owner; + public SpellInfo Spell; + public SkillLineRecord Skill; + } + + struct WorldMapLinkData + { + public UiMapRecord UiMap; + public uint X; + public uint Y; + public uint? Z; + } +} diff --git a/Source/Game/Chat/HyperlinkTags.cs b/Source/Game/Chat/HyperlinkTags.cs new file mode 100644 index 000000000..fd637fd81 --- /dev/null +++ b/Source/Game/Chat/HyperlinkTags.cs @@ -0,0 +1,189 @@ +/* + * Copyright (C) 2012-2020 CypherCore + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using Framework.IO; +using Game.Entities; + +namespace Game.Chat +{ + abstract class HyperLinks + { + public abstract string GetTag(); + public abstract bool StoreTo(out T val, string arg); + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + interface IHyperLink + { + string GetTag(); + bool StoreTo(out T val, string arg); + } + + + class HyperlinkDataTokenizer + { + public HyperlinkDataTokenizer(string arg, bool allowEmptyTokens = false) + { + _arg = new(arg); + _allowEmptyTokens = allowEmptyTokens; + } + + public bool TryConsumeTo(out byte val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextByte(":"); + return true; + } + public bool TryConsumeTo(out ushort val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + val = _arg.NextUInt16(":"); + return true; + } + public bool TryConsumeTo(out uint val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextUInt32(":"); + return true; + } + public bool TryConsumeTo(out ulong val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextUInt64(":"); + return true; + } + public bool TryConsumeTo(out sbyte val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextSByte(":"); + return true; + } + public bool TryConsumeTo(out short val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextInt16(":"); + return true; + } + public bool TryConsumeTo(out int val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextInt32(":"); + return true; + } + public bool TryConsumeTo(out long val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextInt64(":"); + return true; + } + public bool TryConsumeTo(out float val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextSingle(":"); + return true; + } + public bool TryConsumeTo(out ObjectGuid val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = ObjectGuid.FromString(_arg.NextString(":")); + return true; + } + public bool TryConsumeTo(out string val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextString(":"); + return true; + } + public bool TryConsumeTo(out bool val) + { + if (IsEmpty()) + { + val = default; + return _allowEmptyTokens; + } + + val = _arg.NextBoolean(":"); + return true; + } + + public bool IsEmpty() { return _arg.Empty(); } + + StringArguments _arg; + bool _allowEmptyTokens; + } +} diff --git a/Source/Game/Chat/Hyperlinks.cs b/Source/Game/Chat/Hyperlinks.cs new file mode 100644 index 000000000..e4666fec0 --- /dev/null +++ b/Source/Game/Chat/Hyperlinks.cs @@ -0,0 +1,764 @@ +/* + * Copyright (C) 2012-2020 CypherCore + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using Framework.Constants; +using Game.DataStorage; +using Game.Entities; +using Game.Spells; +using System; +using System.Collections.Generic; + +namespace Game.Chat +{ + class achievement : HyperLinks + { + public override string GetTag() { return nameof(achievement); } + + public override bool StoreTo(out AchievementLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint achievementId)) + return false; + + val.Achievement = CliDB.AchievementStorage.LookupByKey(achievementId); + + return val.Achievement != null && t.TryConsumeTo(out val.CharacterId) && t.TryConsumeTo(out val.IsFinished) && + t.TryConsumeTo(out val.Month) && t.TryConsumeTo(out val.Day) && t.TryConsumeTo(out val.Year) && t.TryConsumeTo(out val.Criteria[0]) && + t.TryConsumeTo(out val.Criteria[1]) && t.TryConsumeTo(out val.Criteria[2]) && t.TryConsumeTo(out val.Criteria[3]) && t.IsEmpty(); + } + } + + struct apower + { + public string GetTag() { return nameof(apower); } + + public bool StoreTo(out ArtifactPowerLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!(t.TryConsumeTo(out uint artifactPowerId) && t.TryConsumeTo(out val.PurchasedRank) && t.TryConsumeTo(out val.CurrentRankWithBonus) && t.IsEmpty())) + return false; + + if (!CliDB.ArtifactPowerStorage.ContainsKey(artifactPowerId)) + return false; + + val.ArtifactPower = Global.DB2Mgr.GetArtifactPowerRank(artifactPowerId, Math.Max(val.CurrentRankWithBonus, (byte)1)); + if (val.ArtifactPower == null) + return false; + + return true; + } + } + + struct area + { + public string GetTag() { return nameof(area); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct areatrigger + { + public string GetTag() { return nameof(areatrigger); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct azessence + { + public string GetTag() { return nameof(azessence); } + + public bool StoreTo(out AzeriteEssenceLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint azeriteEssenceId)) + return false; + + val.Essence = CliDB.AzeriteEssenceStorage.LookupByKey(azeriteEssenceId); + return val.Essence != null && t.TryConsumeTo(out val.Rank) + && Global.DB2Mgr.GetAzeriteEssencePower(azeriteEssenceId, val.Rank) != null && t.IsEmpty(); + } + } + + struct battlepet + { + public string GetTag() { return nameof(battlepet); } + + public bool StoreTo(out BattlePetLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint battlePetSpeciesId)) + return false; + + val.Species = CliDB.BattlePetSpeciesStorage.LookupByKey(battlePetSpeciesId); + + return val.Species != null && t.TryConsumeTo(out val.Level) + && t.TryConsumeTo(out val.Quality) && val.Quality < (int)ItemQuality.Max + && t.TryConsumeTo(out val.MaxHealth) && t.TryConsumeTo(out val.Power) && t.TryConsumeTo(out val.Speed) + && t.TryConsumeTo(out val.PetGuid) && val.PetGuid.GetHigh() == HighGuid.BattlePet && t.TryConsumeTo(out val.DisplayId); + } + } + + struct conduit + { + public string GetTag() { return nameof(conduit); } + + public bool StoreTo(out SoulbindConduitRankRecord val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + uint soulbindConduitId, rank; + if (!(t.TryConsumeTo(out soulbindConduitId) && t.TryConsumeTo(out rank) && t.IsEmpty())) + return false; + + val = Global.DB2Mgr.GetSoulbindConduitRank((int)soulbindConduitId, (int)rank); + return val != null; + } + } + + struct creature + { + public string GetTag() { return nameof(creature); } + + public bool StoreTo(out ulong val, string arg) + { + if (!ulong.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct creature_entry + { + public string GetTag() { return nameof(creature_entry); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct currency + { + public string GetTag() { return nameof(currency); } + + public bool StoreTo(out CurrencyLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint currencyId)) + return false; + + val.Currency = CliDB.CurrencyTypesStorage.LookupByKey(currencyId); + if (val.Currency == null || !t.TryConsumeTo(out val.Quantity) || !t.IsEmpty()) + return false; + val.Container = Global.DB2Mgr.GetCurrencyContainerForCurrencyQuantity(currencyId, val.Quantity); + return true; + } + } + + struct enchant + { + public string GetTag() { return nameof(enchant); } + + public bool StoreTo(out SpellInfo val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!(t.TryConsumeTo(out uint spellId) && t.IsEmpty())) + return false; + + val = Global.SpellMgr.GetSpellInfo(spellId, Difficulty.None); + return val != null && val.HasAttribute(SpellAttr0.Tradespell); + } + } + + struct gameevent + { + public string GetTag() { return nameof(gameevent); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct gameobject + { + public string GetTag() { return nameof(gameobject); } + + public bool StoreTo(out ulong val, string arg) + { + if (!ulong.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct gameobject_entry + { + public string GetTag() { return nameof(gameobject_entry); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct garrfollower + { + public string GetTag() { return nameof(garrfollower); } + + public bool StoreTo(out GarrisonFollowerLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint garrFollowerId)) + return false; + + val.Follower = CliDB.GarrFollowerStorage.LookupByKey(garrFollowerId); + if (val.Follower == null || !t.TryConsumeTo(out val.Quality) || val.Quality >= (int)ItemQuality.Max || !t.TryConsumeTo(out val.Level) || !t.TryConsumeTo(out val.ItemLevel) + || !t.TryConsumeTo(out val.Abilities[0]) || !t.TryConsumeTo(out val.Abilities[1]) || !t.TryConsumeTo(out val.Abilities[2]) || !t.TryConsumeTo(out val.Abilities[3]) + || !t.TryConsumeTo(out val.Traits[0]) || !t.TryConsumeTo(out val.Traits[1]) || !t.TryConsumeTo(out val.Traits[2]) || !t.TryConsumeTo(out val.Traits[3]) + || !t.TryConsumeTo(out val.Specialization)) + return false; + + foreach (uint ability in val.Abilities) + if (ability != 0 && !CliDB.GarrAbilityStorage.ContainsKey(ability)) + return false; + + foreach (uint trait in val.Traits) + if (trait != 0 && !CliDB.GarrAbilityStorage.ContainsKey(trait)) + return false; + + if (val.Specialization != 0 && !CliDB.GarrAbilityStorage.ContainsKey(val.Specialization)) + return false; + + return true; + } + } + + struct garrfollowerability + { + public string GetTag() { return nameof(garrfollowerability); } + + public bool StoreTo(out GarrAbilityRecord val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint garrAbilityId)) + return false; + + val = CliDB.GarrAbilityStorage.LookupByKey(garrAbilityId); + return val != null && t.IsEmpty(); + } + } + + struct garrmission + { + public string GetTag() { return nameof(garrmission); } + + public bool StoreTo(out GarrisonMissionLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint garrMissionId)) + return false; + + val.Mission = CliDB.GarrMissionStorage.LookupByKey(garrMissionId); + return val.Mission != null && t.TryConsumeTo(out val.DbID) && t.IsEmpty(); + } + } + + struct instancelock + { + public string GetTag() { return nameof(instancelock); } + + public bool StoreTo(out InstanceLockLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out val.Owner)) + return false; + uint mapId; + if (!t.TryConsumeTo(out mapId)) + return false; + + val.Map = CliDB.MapStorage.LookupByKey(mapId); + return val.Map != null + && t.TryConsumeTo(out val.Difficulty) && Global.DB2Mgr.GetMapDifficultyData(mapId, (Difficulty)val.Difficulty) != null + && t.TryConsumeTo(out val.CompletedEncountersMask) && t.IsEmpty(); + } + } + + struct item + { + public string GetTag() { return nameof(item); } + + public bool StoreTo(out ItemLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg, true); + if (!t.TryConsumeTo(out uint itemId)) + return false; + + val.Item = Global.ObjectMgr.GetItemTemplate(itemId); + if (!(val.Item != null && t.TryConsumeTo(out val.EnchantId) && t.TryConsumeTo(out val.GemItemId[0]) && t.TryConsumeTo(out val.GemItemId[1]) && + t.TryConsumeTo(out val.GemItemId[2]) && t.TryConsumeTo(out uint dummy) && dummy == 0 && t.TryConsumeTo(out dummy) && dummy == 0 && t.TryConsumeTo(out dummy) && dummy == 0 && + t.TryConsumeTo(out val.RenderLevel) && t.TryConsumeTo(out val.RenderSpecialization) && t.TryConsumeTo(out dummy) && dummy == 0 && + t.TryConsumeTo(out val.Context) && t.TryConsumeTo(out uint numBonusListIDs))) + return false; + + uint maxBonusListIDs = 16; + if (numBonusListIDs > maxBonusListIDs) + return false; + + BonusData evaluatedBonus = new(val.Item); + + for (var i = 0; i < numBonusListIDs; ++i) + { + if (!t.TryConsumeTo(out uint itemBonusListID) || Global.DB2Mgr.GetItemBonusList(itemBonusListID) == null) + return false; + + val.ItemBonusListIDs.Add((int)itemBonusListID); + evaluatedBonus.AddBonusList(itemBonusListID); + } + + val.Quality = (uint)evaluatedBonus.Quality; + val.Suffix = CliDB.ItemNameDescriptionStorage.LookupByKey(evaluatedBonus.Suffix); + if (evaluatedBonus.Suffix != 0 && val.Suffix == null) + return false; + + uint numModifiers; + if (!t.TryConsumeTo(out numModifiers)) + return false; + + if (numModifiers > (int)ItemModifier.Max) + return false; + + val.Modifiers.Resize(numModifiers); + for (var i = 0; i < numModifiers; ++i) + { + ItemLinkData.Modifier modifier; + if (!(t.TryConsumeTo(out modifier.Type) && modifier.Type < (int)ItemModifier.Max && t.TryConsumeTo(out modifier.Value))) + return false; + + val.Modifiers.Add(modifier); + } + + for (uint i = 0; i < ItemConst.MaxGemSockets; ++i) + { + if (!t.TryConsumeTo(out numBonusListIDs) || numBonusListIDs > maxBonusListIDs) + return false; + + for (var c = 0; c < numBonusListIDs; ++c) + { + if (!t.TryConsumeTo(out int itemBonusListID) || Global.DB2Mgr.GetItemBonusList((uint)itemBonusListID) == null) + return false; + + val.GemItemBonusListIDs[i].Add(itemBonusListID); + } + } + + return t.TryConsumeTo(out val.Creator) && t.TryConsumeTo(out val.UseEnchantId) && t.IsEmpty(); + } + } + + struct itemset + { + public string GetTag() { return nameof(itemset); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct journal + { + public string GetTag() { return nameof(journal); } + + public bool StoreTo(out JournalLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out val.Type) || !t.TryConsumeTo(out uint id) || !t.TryConsumeTo(out val.Difficulty) || !t.IsEmpty()) + return false; + + switch ((JournalLinkData.Types)val.Type) + { + case JournalLinkData.Types.Instance: + { + JournalInstanceRecord instance = CliDB.JournalInstanceStorage.LookupByKey(id); + if (instance == null) + return false; + val.ExpectedText = instance.Name; + break; + } + case JournalLinkData.Types.Encounter: + { + JournalEncounterRecord encounter = CliDB.JournalEncounterStorage.LookupByKey(id); + if (encounter == null) + return false; + val.ExpectedText = encounter.Name; + break; + } + case JournalLinkData.Types.EncounterSection: + { + JournalEncounterSectionRecord encounterSection = CliDB.JournalEncounterSectionStorage.LookupByKey(id); + if (encounterSection == null) + return false; + val.ExpectedText = encounterSection.Title; + break; + } + case JournalLinkData.Types.Tier: + { + JournalTierRecord tier = Global.DB2Mgr.GetJournalTier(id); + if (tier == null) + return false; + val.ExpectedText = tier.Name; + break; + } + default: + return false; + } + return true; + } + } + + struct keystone + { + public string GetTag() { return nameof(keystone); } + + public bool StoreTo(out KeystoneLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out val.ItemId) || !t.TryConsumeTo(out uint mapChallengeModeId) || !t.TryConsumeTo(out val.Level) + || !t.TryConsumeTo(out val.Affix[0]) || !t.TryConsumeTo(out val.Affix[1]) || !t.TryConsumeTo(out val.Affix[2]) || !t.TryConsumeTo(out val.Affix[3]) + || !t.IsEmpty()) + return false; + + val.Map = CliDB.MapChallengeModeStorage.LookupByKey(mapChallengeModeId); + if (val.Map == null) + return false; + + ItemTemplate item = Global.ObjectMgr.GetItemTemplate(val.ItemId); + if (item == null || item.GetClass() != ItemClass.Reagent || item.GetSubClass() != (uint)ItemSubClassReagent.Keystone) + return false; + + foreach (uint keystoneAffix in val.Affix) + if (keystoneAffix != 0 && !CliDB.KeystoneAffixStorage.ContainsKey(keystoneAffix)) + return false; + return true; + } + } + + struct mawpower + { + public string GetTag() { return nameof(mawpower); } + + public bool StoreTo(out MawPowerRecord val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint mawPowerId)) + return false; + + val = CliDB.MawPowerStorage.LookupByKey(mawPowerId); + return val != null && t.IsEmpty(); + } + } + + struct player + { + public string GetTag() { return nameof(player); } + + public bool StoreTo(out string val, string arg) + { + val = arg; + return true; + } + } + + struct pvptal + { + public string GetTag() { return nameof(pvptal); } + + public bool StoreTo(out PvpTalentRecord val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!(t.TryConsumeTo(out uint pvpTalentId) && t.IsEmpty())) + return false; + + val = CliDB.PvpTalentStorage.LookupByKey(pvpTalentId); + return val != null; + } + } + + struct quest + { + public string GetTag() { return nameof(quest); } + + public bool StoreTo(out QuestLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint questId)) + return false; + + val.Quest = Global.ObjectMgr.GetQuestTemplate(questId); + return val.Quest != null && t.TryConsumeTo(out val.ContentTuningId) && t.IsEmpty(); + } + } + + struct skill + { + public string GetTag() { return nameof(skill); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct spell + { + public string GetTag() { return nameof(spell); } + + public bool StoreTo(out SpellLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!(t.TryConsumeTo(out uint spellId) && t.TryConsumeTo(out uint glyphPropertiesId) && t.IsEmpty())) + return false; + + val.Spell = Global.SpellMgr.GetSpellInfo(spellId, Difficulty.None); + val.Glyph = CliDB.GlyphPropertiesStorage.LookupByKey(glyphPropertiesId); + + return val.Spell != null && (glyphPropertiesId == 0 || val.Glyph != null); + } + } + + struct talent + { + public string GetTag() { return nameof(talent); } + + public bool StoreTo(out TalentRecord val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!(t.TryConsumeTo(out uint talentId) && t.IsEmpty())) + return false; + + val = CliDB.TalentStorage.LookupByKey(talentId); + return val != null; + } + } + + struct taxinode + { + public string GetTag() { return nameof(taxinode); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct tele + { + public string GetTag() { return nameof(tele); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct title + { + public string GetTag() { return nameof(title); } + + public bool StoreTo(out uint val, string arg) + { + if (!uint.TryParse(arg, out val)) + return false; + + return true; + } + } + + struct trade + { + public string GetTag() { return nameof(trade); } + + public bool StoreTo(out TradeskillLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out val.Owner) || !t.TryConsumeTo(out uint spellId) || !t.TryConsumeTo(out uint skillId) || !t.IsEmpty()) + return false; + + val.Spell = Global.SpellMgr.GetSpellInfo(spellId, Difficulty.None); + val.Skill = CliDB.SkillLineStorage.LookupByKey(skillId); + if (val.Spell == null || !val.Spell.HasEffect(SpellEffectName.TradeSkill) || val.Skill == null) + return false; + + return true; + } + } + + struct transmogappearance + { + public string GetTag() { return nameof(transmogappearance); } + + public bool StoreTo(out ItemModifiedAppearanceRecord val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint itemModifiedAppearanceId)) + return false; + + val = CliDB.ItemModifiedAppearanceStorage.LookupByKey(itemModifiedAppearanceId); + return val != null && t.IsEmpty(); + } + } + + struct transmogillusion + { + public string GetTag() { return nameof(transmogillusion); } + + public bool StoreTo(out SpellItemEnchantmentRecord val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint spellItemEnchantmentId)) + return false; + + val = CliDB.SpellItemEnchantmentStorage.LookupByKey(spellItemEnchantmentId); + return val != null + && Global.DB2Mgr.GetTransmogIllusionForEnchantment(spellItemEnchantmentId) != null && t.IsEmpty(); + } + } + + struct transmogset + { + public string GetTag() { return nameof(transmogset); } + + public bool StoreTo(out TransmogSetRecord val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint transmogSetId)) + return false; + + val = CliDB.TransmogSetStorage.LookupByKey(transmogSetId); + return val != null && t.IsEmpty(); + } + } + + struct worldmap + { + public string GetTag() { return nameof(worldmap); } + + public bool StoreTo(out WorldMapLinkData val, string arg) + { + val = default; + + HyperlinkDataTokenizer t = new(arg); + if (!t.TryConsumeTo(out uint uiMapId)) + return false; + + val.UiMap = CliDB.UiMapStorage.LookupByKey(uiMapId); + if (val.UiMap == null || !t.TryConsumeTo(out val.X) || !t.TryConsumeTo(out val.Y)) + return false; + + if (t.IsEmpty()) + return true; + + if (!t.TryConsumeTo(out uint z)) + return false; + + val.Z = z; + + return t.IsEmpty(); + } + } +} \ No newline at end of file