Fixes missing commands

This commit is contained in:
hondacrx
2020-08-25 13:11:02 -04:00
parent 83bb7aaf28
commit 6fcb0b4e72
3 changed files with 129 additions and 62 deletions
+59 -54
View File
@@ -395,60 +395,6 @@ namespace Game.Chat
[CommandGroup("set", RBACPermissions.CommandAccountSet, true)]
class SetCommands
{
[Command("password", RBACPermissions.CommandAccountSetPassword, true)]
static bool HandleAccountSetPasswordCommand(StringArguments args, CommandHandler handler)
{
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)
{
handler.SendSysMessage(CypherStrings.AccountNotExist, accountName);
return false;
}
// can set password only for target with less security
// This also restricts setting handler's own password
if (handler.HasLowerSecurityAccount(null, targetAccountId, true))
return false;
if (!password.Equals(passwordConfirmation))
{
handler.SendSysMessage(CypherStrings.NewPasswordsNotMatch);
return false;
}
AccountOpResult result = Global.AccountMgr.ChangePassword(targetAccountId, password);
switch (result)
{
case AccountOpResult.Ok:
handler.SendSysMessage(CypherStrings.CommandPassword);
break;
case AccountOpResult.NameNotExist:
handler.SendSysMessage(CypherStrings.AccountNotExist, accountName);
return false;
case AccountOpResult.PassTooLong:
handler.SendSysMessage(CypherStrings.PasswordTooLong);
return false;
default:
handler.SendSysMessage(CypherStrings.CommandNotchangepassword);
return false;
}
return true;
}
[Command("addon", RBACPermissions.CommandAccountSetAddon, true)]
static bool HandleAccountSetAddonCommand(StringArguments args, CommandHandler handler)
{
@@ -512,6 +458,65 @@ namespace Game.Chat
}
[Command("gmlevel", RBACPermissions.CommandAccountSetSecLevel, true)]
static bool HandleAccountSetGmLevelCommand(StringArguments args, CommandHandler handler)
{
return HandleAccountSetSecLevelCommand(args, handler);
}
[Command("password", RBACPermissions.CommandAccountSetPassword, true)]
static bool HandleAccountSetPasswordCommand(StringArguments args, CommandHandler handler)
{
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)
{
handler.SendSysMessage(CypherStrings.AccountNotExist, accountName);
return false;
}
// can set password only for target with less security
// This also restricts setting handler's own password
if (handler.HasLowerSecurityAccount(null, targetAccountId, true))
return false;
if (!password.Equals(passwordConfirmation))
{
handler.SendSysMessage(CypherStrings.NewPasswordsNotMatch);
return false;
}
AccountOpResult result = Global.AccountMgr.ChangePassword(targetAccountId, password);
switch (result)
{
case AccountOpResult.Ok:
handler.SendSysMessage(CypherStrings.CommandPassword);
break;
case AccountOpResult.NameNotExist:
handler.SendSysMessage(CypherStrings.AccountNotExist, accountName);
return false;
case AccountOpResult.PassTooLong:
handler.SendSysMessage(CypherStrings.PasswordTooLong);
return false;
default:
handler.SendSysMessage(CypherStrings.CommandNotchangepassword);
return false;
}
return true;
}
[Command("seclevel", RBACPermissions.CommandAccountSetSecLevel, true)]
static bool HandleAccountSetSecLevelCommand(StringArguments args, CommandHandler handler)
{
@@ -107,7 +107,36 @@ namespace Game.Chat
[Command("despawngroup", RBACPermissions.CommandGobjectDespawngroup)]
static bool HandleGameObjectDespawnGroup(StringArguments args, CommandHandler handler)
{
return NPCCommands.HandleNpcDespawnGroup(args, handler);
if (args.Empty())
return false;
bool deleteRespawnTimes = false;
uint groupId = 0;
// Decode arguments
string arg = args.NextString();
while (!arg.IsEmpty())
{
string thisArg = arg.ToLower();
if (thisArg == "removerespawntime")
deleteRespawnTimes = true;
else if (thisArg.IsEmpty() || !thisArg.IsNumber())
return false;
else
groupId = uint.Parse(thisArg);
arg = args.NextString();
}
Player player = handler.GetSession().GetPlayer();
if (!player.GetMap().SpawnGroupDespawn(groupId, deleteRespawnTimes))
{
handler.SendSysMessage(CypherStrings.SpawngroupBadgroup, groupId);
return false;
}
return true;
}
[Command("info", RBACPermissions.CommandGobjectInfo)]
@@ -311,7 +340,44 @@ namespace Game.Chat
[Command("spawngroup", RBACPermissions.CommandGobjectSpawngroup)]
static bool HandleGameObjectSpawnGroup(StringArguments args, CommandHandler handler)
{
return NPCCommands.HandleNpcSpawnGroup(args, handler);
if (args.Empty())
return false;
bool ignoreRespawn = false;
bool force = false;
uint groupId = 0;
// Decode arguments
string arg = args.NextString();
while (!arg.IsEmpty())
{
string thisArg = arg.ToLower();
if (thisArg == "ignorerespawn")
ignoreRespawn = true;
else if (thisArg == "force")
force = true;
else if (thisArg.IsEmpty() || !thisArg.IsNumber())
return false;
else
groupId = uint.Parse(thisArg);
arg = args.NextString();
}
Player player = handler.GetSession().GetPlayer();
List<WorldObject> creatureList = new List<WorldObject>();
if (!player.GetMap().SpawnGroupSpawn(groupId, ignoreRespawn, force, creatureList))
{
handler.SendSysMessage(CypherStrings.SpawngroupBadgroup, groupId);
return false;
}
handler.SendSysMessage(CypherStrings.SpawngroupSpawncount, creatureList.Count);
foreach (WorldObject obj in creatureList)
handler.SendSysMessage($"{obj.GetName()} ({obj.GetGUID()})");
return true;
}
[Command("target", RBACPermissions.CommandGobjectTarget)]
@@ -495,8 +561,6 @@ namespace Game.Chat
return true;
}
[CommandGroup("add", RBACPermissions.CommandGobjectAdd)]
class AddCommands
{
+2 -4
View File
@@ -34,7 +34,7 @@ namespace Game.Chat
class NPCCommands
{
[Command("despawngroup", RBACPermissions.CommandNpcDespawngroup)]
public static bool HandleNpcDespawnGroup(StringArguments args, CommandHandler handler)
static bool HandleNpcDespawnGroup(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
@@ -418,7 +418,7 @@ namespace Game.Chat
}
[Command("spawngroup", RBACPermissions.CommandNpcSpawngroup)]
public static bool HandleNpcSpawnGroup(StringArguments args, CommandHandler handler)
static bool HandleNpcSpawnGroup(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
@@ -1468,8 +1468,6 @@ namespace Game.Chat
return true;
}
}
}
}