feat(Scripts/Commands): convert cs_disable to new system (#9021)

This commit is contained in:
IntelligentQuantum
2021-11-09 14:13:19 +03:30
committed by GitHub
parent c3552c2c46
commit e228b08316
+45 -111
View File
@@ -32,10 +32,6 @@ EndScriptData */
#include "ScriptMgr.h" #include "ScriptMgr.h"
#include "SpellMgr.h" #include "SpellMgr.h"
#if AC_COMPILER == AC_COMPILER_GNU
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
using namespace Acore::ChatCommands; using namespace Acore::ChatCommands;
class disable_commandscript : public CommandScript class disable_commandscript : public CommandScript
@@ -47,50 +43,36 @@ public:
{ {
static ChatCommandTable removeDisableCommandTable = static ChatCommandTable removeDisableCommandTable =
{ {
{ "spell", SEC_ADMINISTRATOR, true, &HandleRemoveDisableSpellCommand, "" }, { "spell", HandleRemoveDisableSpellCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "quest", SEC_ADMINISTRATOR, true, &HandleRemoveDisableQuestCommand, "" }, { "quest", HandleRemoveDisableQuestCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "map", SEC_ADMINISTRATOR, true, &HandleRemoveDisableMapCommand, "" }, { "map", HandleRemoveDisableMapCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "battleground", SEC_ADMINISTRATOR, true, &HandleRemoveDisableBattlegroundCommand, "" }, { "battleground", HandleRemoveDisableBattlegroundCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "outdoorpvp", SEC_ADMINISTRATOR, true, &HandleRemoveDisableOutdoorPvPCommand, "" }, { "outdoorpvp", HandleRemoveDisableOutdoorPvPCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "vmap", SEC_ADMINISTRATOR, true, &HandleRemoveDisableVmapCommand, "" }, { "vmap", HandleRemoveDisableVmapCommand, SEC_ADMINISTRATOR, Console::Yes }
}; };
static ChatCommandTable addDisableCommandTable = static ChatCommandTable addDisableCommandTable =
{ {
{ "spell", SEC_ADMINISTRATOR, true, &HandleAddDisableSpellCommand, "" }, { "spell", HandleAddDisableSpellCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "quest", SEC_ADMINISTRATOR, true, &HandleAddDisableQuestCommand, "" }, { "quest", HandleAddDisableQuestCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "map", SEC_ADMINISTRATOR, true, &HandleAddDisableMapCommand, "" }, { "map", HandleAddDisableMapCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "battleground", SEC_ADMINISTRATOR, true, &HandleAddDisableBattlegroundCommand, "" }, { "battleground", HandleAddDisableBattlegroundCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "outdoorpvp", SEC_ADMINISTRATOR, true, &HandleAddDisableOutdoorPvPCommand, "" }, { "outdoorpvp", HandleAddDisableOutdoorPvPCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "vmap", SEC_ADMINISTRATOR, true, &HandleAddDisableVmapCommand, "" }, { "vmap", HandleAddDisableVmapCommand, SEC_ADMINISTRATOR, Console::Yes }
}; };
static ChatCommandTable disableCommandTable = static ChatCommandTable disableCommandTable =
{ {
{ "add", SEC_ADMINISTRATOR, true, nullptr, "", addDisableCommandTable }, { "add", addDisableCommandTable },
{ "remove", SEC_ADMINISTRATOR, true, nullptr, "", removeDisableCommandTable }, { "remove", removeDisableCommandTable }
}; };
static ChatCommandTable commandTable = static ChatCommandTable commandTable =
{ {
{ "disable", SEC_ADMINISTRATOR, false, nullptr, "", disableCommandTable }, { "disable", disableCommandTable }
}; };
return commandTable; return commandTable;
} }
static bool HandleAddDisables(ChatHandler* handler, char const* args, uint8 disableType) static bool HandleAddDisables(ChatHandler* handler, uint32 entry, uint8 flags, std::string disableComment, uint8 disableType)
{ {
char* entryStr = strtok((char*)args, " ");
if (!entryStr || !atoi(entryStr))
return false;
char* flagsStr = strtok(nullptr, " ");
uint8 flags = flagsStr ? uint8(atoi(flagsStr)) : 0;
char* commentStr = strtok(nullptr, "");
if (!commentStr)
return false;
std::string disableComment = commentStr;
uint32 entry = uint32(atoi(entryStr));
std::string disableTypeStr = ""; std::string disableTypeStr = "";
switch (disableType) switch (disableType)
@@ -188,71 +170,44 @@ public:
return true; return true;
} }
static bool HandleAddDisableSpellCommand(ChatHandler* handler, char const* args) static bool HandleAddDisableSpellCommand(ChatHandler* handler, uint32 entry, uint8 flags, std::string disableComment)
{ {
if (!*args) return HandleAddDisables(handler, entry, flags, disableComment, DISABLE_TYPE_SPELL);
return false;
return HandleAddDisables(handler, args, DISABLE_TYPE_SPELL);
} }
static bool HandleAddDisableQuestCommand(ChatHandler* handler, char const* args) static bool HandleAddDisableQuestCommand(ChatHandler* handler, uint32 entry, uint8 flags, std::string disableComment)
{ {
if (!*args) return HandleAddDisables(handler, entry, flags, disableComment, DISABLE_TYPE_QUEST);
return false;
return HandleAddDisables(handler, args, DISABLE_TYPE_QUEST);
} }
static bool HandleAddDisableMapCommand(ChatHandler* handler, char const* args) static bool HandleAddDisableMapCommand(ChatHandler* handler, uint32 entry, uint8 flags, std::string disableComment)
{ {
if (!*args) return HandleAddDisables(handler, entry, flags, disableComment, DISABLE_TYPE_MAP);
return false;
return HandleAddDisables(handler, args, DISABLE_TYPE_MAP);
} }
static bool HandleAddDisableBattlegroundCommand(ChatHandler* handler, char const* args) static bool HandleAddDisableBattlegroundCommand(ChatHandler* handler, uint32 entry, uint8 flags, std::string disableComment)
{ {
if (!*args) return HandleAddDisables(handler, entry, flags, disableComment, DISABLE_TYPE_BATTLEGROUND);
return false;
return HandleAddDisables(handler, args, DISABLE_TYPE_BATTLEGROUND);
} }
static bool HandleAddDisableAchievementCriteriaCommand(ChatHandler* handler, char const* args) static bool HandleAddDisableAchievementCriteriaCommand(ChatHandler* handler, uint32 entry, uint8 flags, std::string disableComment)
{ {
if (!*args) return HandleAddDisables(handler, entry, flags, disableComment, DISABLE_TYPE_ACHIEVEMENT_CRITERIA);
return false;
return HandleAddDisables(handler, args, DISABLE_TYPE_ACHIEVEMENT_CRITERIA);
} }
static bool HandleAddDisableOutdoorPvPCommand(ChatHandler* handler, char const* args) static bool HandleAddDisableOutdoorPvPCommand(ChatHandler* handler, uint32 entry, uint8 flags, std::string disableComment)
{ {
if (!*args) HandleAddDisables(handler, entry, flags, disableComment, DISABLE_TYPE_OUTDOORPVP);
return false;
HandleAddDisables(handler, args, DISABLE_TYPE_OUTDOORPVP);
return true; return true;
} }
static bool HandleAddDisableVmapCommand(ChatHandler* handler, char const* args) static bool HandleAddDisableVmapCommand(ChatHandler* handler, uint32 entry, uint8 flags, std::string disableComment)
{ {
if (!*args) return HandleAddDisables(handler, entry, flags, disableComment, DISABLE_TYPE_VMAP);
return false;
return HandleAddDisables(handler, args, DISABLE_TYPE_VMAP);
} }
static bool HandleRemoveDisables(ChatHandler* handler, char const* args, uint8 disableType) static bool HandleRemoveDisables(ChatHandler* handler, uint32 entry, uint8 disableType)
{ {
char* entryStr = strtok((char*)args, " ");
if (!entryStr || !atoi(entryStr))
return false;
uint32 entry = uint32(atoi(entryStr));
std::string disableTypeStr = ""; std::string disableTypeStr = "";
switch (disableType) switch (disableType)
@@ -301,60 +256,39 @@ public:
return true; return true;
} }
static bool HandleRemoveDisableSpellCommand(ChatHandler* handler, char const* args) static bool HandleRemoveDisableSpellCommand(ChatHandler* handler, uint32 entry)
{ {
if (!*args) return HandleRemoveDisables(handler, entry, DISABLE_TYPE_SPELL);
return false;
return HandleRemoveDisables(handler, args, DISABLE_TYPE_SPELL);
} }
static bool HandleRemoveDisableQuestCommand(ChatHandler* handler, char const* args) static bool HandleRemoveDisableQuestCommand(ChatHandler* handler, uint32 entry)
{ {
if (!*args) return HandleRemoveDisables(handler, entry, DISABLE_TYPE_QUEST);
return false;
return HandleRemoveDisables(handler, args, DISABLE_TYPE_QUEST);
} }
static bool HandleRemoveDisableMapCommand(ChatHandler* handler, char const* args) static bool HandleRemoveDisableMapCommand(ChatHandler* handler, uint32 entry)
{ {
if (!*args) return HandleRemoveDisables(handler, entry, DISABLE_TYPE_MAP);
return false;
return HandleRemoveDisables(handler, args, DISABLE_TYPE_MAP);
} }
static bool HandleRemoveDisableBattlegroundCommand(ChatHandler* handler, char const* args) static bool HandleRemoveDisableBattlegroundCommand(ChatHandler* handler, uint32 entry)
{ {
if (!*args) return HandleRemoveDisables(handler, entry, DISABLE_TYPE_BATTLEGROUND);
return false;
return HandleRemoveDisables(handler, args, DISABLE_TYPE_BATTLEGROUND);
} }
static bool HandleRemoveDisableAchievementCriteriaCommand(ChatHandler* handler, char const* args) static bool HandleRemoveDisableAchievementCriteriaCommand(ChatHandler* handler, uint32 entry)
{ {
if (!*args) return HandleRemoveDisables(handler, entry, DISABLE_TYPE_ACHIEVEMENT_CRITERIA);
return false;
return HandleRemoveDisables(handler, args, DISABLE_TYPE_ACHIEVEMENT_CRITERIA);
} }
static bool HandleRemoveDisableOutdoorPvPCommand(ChatHandler* handler, char const* args) static bool HandleRemoveDisableOutdoorPvPCommand(ChatHandler* handler, uint32 entry)
{ {
if (!*args) return HandleRemoveDisables(handler, entry, DISABLE_TYPE_OUTDOORPVP);
return false;
return HandleRemoveDisables(handler, args, DISABLE_TYPE_OUTDOORPVP);
} }
static bool HandleRemoveDisableVmapCommand(ChatHandler* handler, char const* args) static bool HandleRemoveDisableVmapCommand(ChatHandler* handler, uint32 entry)
{ {
if (!*args) return HandleRemoveDisables(handler, entry, DISABLE_TYPE_VMAP);
return false;
return HandleRemoveDisables(handler, args, DISABLE_TYPE_VMAP);
} }
}; };