Scripts/Commands: Convert argument parsing of some misc commands to new system
Port From (https://github.com/TrinityCore/TrinityCore/commit/1a6564f42fbd941d98c19dc46e5afb853f713843)
This commit is contained in:
@@ -474,30 +474,9 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("commands", RBACPermissions.CommandCommands, true)]
|
[CommandNonGroup("commands", RBACPermissions.CommandCommands, true)]
|
||||||
static bool HandleCommandsCommand(CommandHandler handler, StringArguments args)
|
static bool HandleCommandsCommand(CommandHandler handler)
|
||||||
{
|
{
|
||||||
string list = "";
|
handler.ShowHelpForCommand(CommandManager.GetCommands(), "");
|
||||||
foreach (var command in CommandManager.GetCommands())
|
|
||||||
{
|
|
||||||
if (handler.IsAvailable(command))
|
|
||||||
{
|
|
||||||
if (handler.GetSession() != null)
|
|
||||||
list += "\n ";
|
|
||||||
else
|
|
||||||
list += "\n\r ";
|
|
||||||
|
|
||||||
list += command.Name;
|
|
||||||
|
|
||||||
if (!command.ChildCommands.Empty())
|
|
||||||
list += " ...";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (list.IsEmpty())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
handler.SendSysMessage(CypherStrings.AvailableCmd);
|
|
||||||
handler.SendSysMessage(list);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -630,38 +609,34 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("dev", RBACPermissions.CommandDev)]
|
[CommandNonGroup("dev", RBACPermissions.CommandDev)]
|
||||||
static bool HandleDevCommand(CommandHandler handler, string enable)
|
static bool HandleDevCommand(CommandHandler handler, bool? enableArg)
|
||||||
{
|
{
|
||||||
Player player = handler.GetSession().GetPlayer();
|
Player player = handler.GetSession().GetPlayer();
|
||||||
|
|
||||||
if (enable.IsEmpty())
|
if (!enableArg.HasValue)
|
||||||
{
|
{
|
||||||
handler.GetSession().SendNotification(player.IsDeveloper() ? CypherStrings.DevOn : CypherStrings.DevOff);
|
handler.GetSession().SendNotification(player.IsDeveloper() ? CypherStrings.DevOn : CypherStrings.DevOff);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enable == "on")
|
if (enableArg.Value)
|
||||||
{
|
{
|
||||||
player.SetDeveloper(true);
|
player.SetDeveloper(true);
|
||||||
handler.GetSession().SendNotification(CypherStrings.DevOn);
|
handler.GetSession().SendNotification(CypherStrings.DevOn);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
else if (enable == "off")
|
else
|
||||||
{
|
{
|
||||||
player.SetDeveloper(false);
|
player.SetDeveloper(false);
|
||||||
handler.GetSession().SendNotification(CypherStrings.DevOff);
|
handler.GetSession().SendNotification(CypherStrings.DevOff);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handler.SendSysMessage(CypherStrings.UseBol);
|
return true;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("die", RBACPermissions.CommandDie)]
|
[CommandNonGroup("die", RBACPermissions.CommandDie)]
|
||||||
static bool HandleDieCommand(CommandHandler handler, StringArguments args)
|
static bool HandleDieCommand(CommandHandler handler)
|
||||||
{
|
{
|
||||||
Unit target = handler.GetSelectedUnit();
|
Unit target = handler.GetSelectedUnit();
|
||||||
|
|
||||||
if (!target && handler.GetPlayer().GetTarget().IsEmpty())
|
if (!target && handler.GetPlayer().GetTarget().IsEmpty())
|
||||||
{
|
{
|
||||||
handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
|
handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
|
||||||
@@ -680,7 +655,7 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("dismount", RBACPermissions.CommandDismount)]
|
[CommandNonGroup("dismount", RBACPermissions.CommandDismount)]
|
||||||
static bool HandleDismountCommand(CommandHandler handler, StringArguments args)
|
static bool HandleDismountCommand(CommandHandler handler)
|
||||||
{
|
{
|
||||||
Player player = handler.GetSelectedPlayerOrSelf();
|
Player player = handler.GetSelectedPlayerOrSelf();
|
||||||
|
|
||||||
@@ -981,7 +956,7 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("guid", RBACPermissions.CommandGuid)]
|
[CommandNonGroup("guid", RBACPermissions.CommandGuid)]
|
||||||
static bool HandleGUIDCommand(CommandHandler handler, StringArguments args)
|
static bool HandleGUIDCommand(CommandHandler handler)
|
||||||
{
|
{
|
||||||
ObjectGuid guid = handler.GetSession().GetPlayer().GetTarget();
|
ObjectGuid guid = handler.GetSession().GetPlayer().GetTarget();
|
||||||
|
|
||||||
@@ -996,17 +971,16 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("help", RBACPermissions.CommandHelp, true)]
|
[CommandNonGroup("help", RBACPermissions.CommandHelp, true)]
|
||||||
static bool HandleHelpCommand(CommandHandler handler, StringArguments args)
|
static bool HandleHelpCommand(CommandHandler handler, string cmdArg)
|
||||||
{
|
{
|
||||||
string cmd = args.NextString("");
|
if (cmdArg.IsEmpty())
|
||||||
if (cmd.IsEmpty())
|
|
||||||
{
|
{
|
||||||
handler.ShowHelpForCommand(CommandManager.GetCommands(), "help");
|
handler.ShowHelpForCommand(CommandManager.GetCommands(), "help");
|
||||||
handler.ShowHelpForCommand(CommandManager.GetCommands(), "");
|
handler.ShowHelpForCommand(CommandManager.GetCommands(), "");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!handler.ShowHelpForCommand(CommandManager.GetCommands(), cmd))
|
if (!handler.ShowHelpForCommand(CommandManager.GetCommands(), cmdArg))
|
||||||
handler.SendSysMessage(CypherStrings.NoHelpCmd);
|
handler.SendSysMessage(CypherStrings.NoHelpCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1055,14 +1029,8 @@ namespace Game.Chat
|
|||||||
|
|
||||||
// move item to other slot
|
// move item to other slot
|
||||||
[CommandNonGroup("itemmove", RBACPermissions.CommandItemmove)]
|
[CommandNonGroup("itemmove", RBACPermissions.CommandItemmove)]
|
||||||
static bool HandleItemMoveCommand(CommandHandler handler, StringArguments args)
|
static bool HandleItemMoveCommand(CommandHandler handler, byte srcSlot, byte dstSlot)
|
||||||
{
|
{
|
||||||
if (args.Empty())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
byte srcSlot = args.NextByte();
|
|
||||||
byte dstSlot = args.NextByte();
|
|
||||||
|
|
||||||
if (srcSlot == dstSlot)
|
if (srcSlot == dstSlot)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -1115,22 +1083,14 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("linkgrave", RBACPermissions.CommandLinkgrave)]
|
[CommandNonGroup("linkgrave", RBACPermissions.CommandLinkgrave)]
|
||||||
static bool HandleLinkGraveCommand(CommandHandler handler, StringArguments args)
|
static bool HandleLinkGraveCommand(CommandHandler handler, uint graveyardId, string teamArg)
|
||||||
{
|
{
|
||||||
if (args.Empty())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
uint graveyardId = args.NextUInt32();
|
|
||||||
if (graveyardId == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
string px2 = args.NextString();
|
|
||||||
Team team;
|
Team team;
|
||||||
if (string.IsNullOrEmpty(px2))
|
if (teamArg.IsEmpty())
|
||||||
team = 0;
|
team = 0;
|
||||||
else if (px2 == "horde")
|
else if (teamArg.Equals("horde"))
|
||||||
team = Team.Horde;
|
team = Team.Horde;
|
||||||
else if (px2 == "alliance")
|
else if (teamArg.Equals("alliance"))
|
||||||
team = Team.Alliance;
|
team = Team.Alliance;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
@@ -1418,28 +1378,27 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("neargrave", RBACPermissions.CommandNeargrave)]
|
[CommandNonGroup("neargrave", RBACPermissions.CommandNeargrave)]
|
||||||
static bool HandleNearGraveCommand(CommandHandler handler, StringArguments args)
|
static bool HandleNearGraveCommand(CommandHandler handler, string teamArg)
|
||||||
{
|
{
|
||||||
string px2 = args.NextString();
|
|
||||||
Team team;
|
Team team;
|
||||||
if (string.IsNullOrEmpty(px2))
|
if (teamArg.IsEmpty())
|
||||||
team = 0;
|
team = 0;
|
||||||
else if (px2 == "horde")
|
else if (teamArg.Equals("horde"))
|
||||||
team = Team.Horde;
|
team = Team.Horde;
|
||||||
else if (px2 == "alliance")
|
else if (teamArg.Equals("alliance"))
|
||||||
team = Team.Alliance;
|
team = Team.Alliance;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Player player = handler.GetSession().GetPlayer();
|
Player player = handler.GetSession().GetPlayer();
|
||||||
uint zone_id = player.GetZoneId();
|
uint zoneId = player.GetZoneId();
|
||||||
|
|
||||||
WorldSafeLocsEntry graveyard = Global.ObjectMgr.GetClosestGraveYard(player, team, null);
|
WorldSafeLocsEntry graveyard = Global.ObjectMgr.GetClosestGraveYard(player, team, null);
|
||||||
if (graveyard != null)
|
if (graveyard != null)
|
||||||
{
|
{
|
||||||
uint graveyardId = graveyard.Id;
|
uint graveyardId = graveyard.Id;
|
||||||
|
|
||||||
GraveYardData data = Global.ObjectMgr.FindGraveYardData(graveyardId, zone_id);
|
GraveYardData data = Global.ObjectMgr.FindGraveYardData(graveyardId, zoneId);
|
||||||
if (data == null)
|
if (data == null)
|
||||||
{
|
{
|
||||||
handler.SendSysMessage(CypherStrings.CommandGraveyarderror, graveyardId);
|
handler.SendSysMessage(CypherStrings.CommandGraveyarderror, graveyardId);
|
||||||
@@ -1457,7 +1416,7 @@ namespace Game.Chat
|
|||||||
else if (team == Team.Alliance)
|
else if (team == Team.Alliance)
|
||||||
team_name = handler.GetCypherString(CypherStrings.CommandGraveyardAlliance);
|
team_name = handler.GetCypherString(CypherStrings.CommandGraveyardAlliance);
|
||||||
|
|
||||||
handler.SendSysMessage(CypherStrings.CommandGraveyardnearest, graveyardId, team_name, zone_id);
|
handler.SendSysMessage(CypherStrings.CommandGraveyardnearest, graveyardId, team_name, zoneId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1469,9 +1428,9 @@ namespace Game.Chat
|
|||||||
team_name = handler.GetCypherString(CypherStrings.CommandGraveyardAlliance);
|
team_name = handler.GetCypherString(CypherStrings.CommandGraveyardAlliance);
|
||||||
|
|
||||||
if (team == 0)
|
if (team == 0)
|
||||||
handler.SendSysMessage(CypherStrings.CommandZonenograveyards, zone_id);
|
handler.SendSysMessage(CypherStrings.CommandZonenograveyards, zoneId);
|
||||||
else
|
else
|
||||||
handler.SendSysMessage(CypherStrings.CommandZonenografaction, zone_id, team_name);
|
handler.SendSysMessage(CypherStrings.CommandZonenografaction, zoneId, team_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -1865,7 +1824,7 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("pvpstats", RBACPermissions.CommandPvpstats, true)]
|
[CommandNonGroup("pvpstats", RBACPermissions.CommandPvpstats, true)]
|
||||||
static bool HandlePvPstatsCommand(CommandHandler handler, StringArguments args)
|
static bool HandlePvPstatsCommand(CommandHandler handler)
|
||||||
{
|
{
|
||||||
if (WorldConfig.GetBoolValue(WorldCfg.BattlegroundStoreStatisticsEnable))
|
if (WorldConfig.GetBoolValue(WorldCfg.BattlegroundStoreStatisticsEnable))
|
||||||
{
|
{
|
||||||
@@ -1999,7 +1958,7 @@ namespace Game.Chat
|
|||||||
|
|
||||||
// Save all players in the world
|
// Save all players in the world
|
||||||
[CommandNonGroup("saveall", RBACPermissions.CommandSaveall, true)]
|
[CommandNonGroup("saveall", RBACPermissions.CommandSaveall, true)]
|
||||||
static bool HandleSaveAllCommand(CommandHandler handler, StringArguments args)
|
static bool HandleSaveAllCommand(CommandHandler handler)
|
||||||
{
|
{
|
||||||
Global.ObjAccessor.SaveAllPlayers();
|
Global.ObjAccessor.SaveAllPlayers();
|
||||||
handler.SendSysMessage(CypherStrings.PlayersSaved);
|
handler.SendSysMessage(CypherStrings.PlayersSaved);
|
||||||
@@ -2007,7 +1966,7 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("save", RBACPermissions.CommandSave)]
|
[CommandNonGroup("save", RBACPermissions.CommandSave)]
|
||||||
static bool HandleSaveCommand(CommandHandler handler, StringArguments args)
|
static bool HandleSaveCommand(CommandHandler handler)
|
||||||
{
|
{
|
||||||
Player player = handler.GetSession().GetPlayer();
|
Player player = handler.GetSession().GetPlayer();
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ namespace Game.Chat
|
|||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("aura", RBACPermissions.CommandAura)]
|
[CommandNonGroup("aura", RBACPermissions.CommandAura)]
|
||||||
static bool HandleAuraCommand(CommandHandler handler, StringArguments args)
|
static bool HandleAuraCommand(CommandHandler handler, uint spellId)
|
||||||
{
|
{
|
||||||
Unit target = handler.GetSelectedUnit();
|
Unit target = handler.GetSelectedUnit();
|
||||||
if (!target)
|
if (!target)
|
||||||
@@ -82,24 +82,21 @@ namespace Game.Chat
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
|
|
||||||
uint spellId = handler.ExtractSpellIdFromLink(args);
|
|
||||||
|
|
||||||
SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(spellId, target.GetMap().GetDifficultyID());
|
SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(spellId, target.GetMap().GetDifficultyID());
|
||||||
if (spellInfo != null)
|
if (spellInfo == null)
|
||||||
{
|
return false;
|
||||||
ObjectGuid castId = ObjectGuid.Create(HighGuid.Cast, SpellCastSource.Normal, target.GetMapId(), spellId, target.GetMap().GenerateLowGuid(HighGuid.Cast));
|
|
||||||
AuraCreateInfo createInfo = new(castId, spellInfo, target.GetMap().GetDifficultyID(), SpellConst.MaxEffectMask, target);
|
|
||||||
createInfo.SetCaster(target);
|
|
||||||
|
|
||||||
Aura.TryRefreshStackOrCreate(createInfo);
|
ObjectGuid castId = ObjectGuid.Create(HighGuid.Cast, SpellCastSource.Normal, target.GetMapId(), spellId, target.GetMap().GenerateLowGuid(HighGuid.Cast));
|
||||||
}
|
AuraCreateInfo createInfo = new(castId, spellInfo, target.GetMap().GetDifficultyID(), SpellConst.MaxEffectMask, target);
|
||||||
|
createInfo.SetCaster(target);
|
||||||
|
|
||||||
|
Aura.TryRefreshStackOrCreate(createInfo);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
[CommandNonGroup("unaura", RBACPermissions.CommandUnaura)]
|
[CommandNonGroup("unaura", RBACPermissions.CommandUnaura)]
|
||||||
static bool UnAura(CommandHandler handler, StringArguments args)
|
static bool HandleUnAuraCommand(CommandHandler handler, uint spellId = 0)
|
||||||
{
|
{
|
||||||
Unit target = handler.GetSelectedUnit();
|
Unit target = handler.GetSelectedUnit();
|
||||||
if (!target)
|
if (!target)
|
||||||
@@ -109,20 +106,18 @@ namespace Game.Chat
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
string argstr = args.NextString();
|
if (spellId == 0)
|
||||||
if (argstr == "all")
|
|
||||||
{
|
{
|
||||||
target.RemoveAllAuras();
|
target.RemoveAllAuras();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
args.Reset();
|
SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(spellId, Difficulty.None);
|
||||||
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
|
if (spellInfo != null)
|
||||||
uint spellId = handler.ExtractSpellIdFromLink(args);
|
{
|
||||||
if (spellId == 0)
|
target.RemoveAurasDueToSpell(spellInfo.Id);
|
||||||
return false;
|
return true;
|
||||||
|
}
|
||||||
target.RemoveAurasDueToSpell(spellId);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user