diff options
| author | Kitzunu <24550914+Kitzunu@users.noreply.github.com> | 2025-07-27 09:59:13 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-27 09:59:13 +0200 |
| commit | 60643ce5e735dee636b01acfa4e6eb141119a41a (patch) | |
| tree | 2122560bb52204c7f0767ea027f229b9a789457b /src/server/scripts | |
| parent | e66f763a9ca71c93b6dea885187d2d742ad792b3 (diff) | |
feat(Script/Command): Add AccountFlag pinfo output (#22548)
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Commands/cs_misc.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 5e83822c37..5ea7ce7060 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -22,6 +22,7 @@ #include "CharacterCache.h" #include "Chat.h" #include "CommandScript.h" +#include "Common.h" #include "GameGraveyard.h" #include "GameTime.h" #include "GridNotifiers.h" @@ -57,6 +58,49 @@ constexpr auto SPELL_STUCK = 7355; constexpr auto SPELL_FREEZE = 9454; +struct AccountFlagText +{ + AccountFlag flag; + std::string text; +}; + +AccountFlagText const accountFlagText[MAX_ACCOUNT_FLAG] = +{ + { ACCOUNT_FLAG_GM, "ACCOUNT_FLAG_GM" }, + { ACCOUNT_FLAG_NOKICK, "ACCOUNT_FLAG_NOKICK" }, + { ACCOUNT_FLAG_COLLECTOR, "ACCOUNT_FLAG_COLLECTOR" }, + { ACCOUNT_FLAG_TRIAL, "ACCOUNT_FLAG_TRIAL" }, + { ACCOUNT_FLAG_CANCELLED, "ACCOUNT_FLAG_CANCELLED" }, + { ACCOUNT_FLAG_IGR, "ACCOUNT_FLAG_IGR" }, + { ACCOUNT_FLAG_WHOLESALER, "ACCOUNT_FLAG_WHOLESALER" }, + { ACCOUNT_FLAG_PRIVILEGED, "ACCOUNT_FLAG_PRIVILEGED" }, + { ACCOUNT_FLAG_EU_FORBID_ELV, "ACCOUNT_FLAG_EU_FORBID_ELV" }, + { ACCOUNT_FLAG_EU_FORBID_BILLING, "ACCOUNT_FLAG_EU_FORBID_BILLING" }, + { ACCOUNT_FLAG_RESTRICTED, "ACCOUNT_FLAG_RESTRICTED" }, + { ACCOUNT_FLAG_REFERRAL, "ACCOUNT_FLAG_REFERRAL" }, + { ACCOUNT_FLAG_BLIZZARD, "ACCOUNT_FLAG_BLIZZARD" }, + { ACCOUNT_FLAG_RECURRING_BILLING, "ACCOUNT_FLAG_RECURRING_BILLING" }, + { ACCOUNT_FLAG_NOELECTUP, "ACCOUNT_FLAG_NOELECTUP" }, + { ACCOUNT_FLAG_KR_CERTIFICATE, "ACCOUNT_FLAG_KR_CERTIFICATE" }, + { ACCOUNT_FLAG_EXPANSION_COLLECTOR, "ACCOUNT_FLAG_EXPANSION_COLLECTOR" }, + { ACCOUNT_FLAG_DISABLE_VOICE, "ACCOUNT_FLAG_DISABLE_VOICE" }, + { ACCOUNT_FLAG_DISABLE_VOICE_SPEAK, "ACCOUNT_FLAG_DISABLE_VOICE_SPEAK" }, + { ACCOUNT_FLAG_REFERRAL_RESURRECT, "ACCOUNT_FLAG_REFERRAL_RESURRECT" }, + { ACCOUNT_FLAG_EU_FORBID_CC, "ACCOUNT_FLAG_EU_FORBID_CC" }, + { ACCOUNT_FLAG_OPENBETA_DELL, "ACCOUNT_FLAG_OPENBETA_DELL" }, + { ACCOUNT_FLAG_PROPASS, "ACCOUNT_FLAG_PROPASS" }, + { ACCOUNT_FLAG_PROPASS_LOCK, "ACCOUNT_FLAG_PROPASS_LOCK" }, + { ACCOUNT_FLAG_PENDING_UPGRADE, "ACCOUNT_FLAG_PENDING_UPGRADE" }, + { ACCOUNT_FLAG_RETAIL_FROM_TRIAL, "ACCOUNT_FLAG_RETAIL_FROM_TRIAL" }, + { ACCOUNT_FLAG_EXPANSION2_COLLECTOR, "ACCOUNT_FLAG_EXPANSION2_COLLECTOR" }, + { ACCOUNT_FLAG_OVERMIND_LINKED, "ACCOUNT_FLAG_OVERMIND_LINKED" }, + { ACCOUNT_FLAG_DEMOS, "ACCOUNT_FLAG_DEMOS" }, + { ACCOUNT_FLAG_DEATH_KNIGHT_OK, "ACCOUNT_FLAG_DEATH_KNIGHT_OK" }, + { ACCOUNT_FLAG_S2_REQUIRE_IGR, "ACCOUNT_FLAG_S2_REQUIRE_IGR" }, + { ACCOUNT_FLAG_S2_TRIAL, "ACCOUNT_FLAG_S2_TRIAL" }, + // { ACCOUNT_FLAG_S2_RESTRICTED, "ACCOUNT_FLAG_S2_RESTRICTED" } +}; + std::string const GetLocalizeCreatureName(Creature* creature, LocaleConstant locale) { auto creatureTemplate = sObjectMgr->GetCreatureTemplate(creature->GetEntry()); @@ -2193,6 +2237,15 @@ public: // Output V. LANG_PINFO_ACC_ACCOUNT handler->PSendSysMessage(LANG_PINFO_ACC_ACCOUNT, userName, accId, security); + if (playerTarget) + { + uint32 accountFlags = playerTarget->GetSession()->GetAccountFlags(); + handler->PSendSysMessage(LANG_ACCOUNT_FLAGS_PINFO); + for (uint8 i = 0; i < MAX_ACCOUNT_FLAG; i++) + if (accountFlags & static_cast<uint32>(accountFlagText[i].flag)) + handler->PSendSysMessage(LANG_SUBCMDS_LIST_ENTRY, accountFlagText[i].text); + } + // Output VI. LANG_PINFO_ACC_LASTLOGIN handler->PSendSysMessage(LANG_PINFO_ACC_LASTLOGIN, lastLogin, failedLogins); |
