diff options
author | p0wer <none@none> | 2010-02-24 21:30:00 -0600 |
---|---|---|
committer | p0wer <none@none> | 2010-02-24 21:30:00 -0600 |
commit | ba51f553fc3a677aa4d8ae846f86f8a560d9982c (patch) | |
tree | 38ce0a9b84459c9d1efdf17955fa57ddf69aab1e /src | |
parent | fc2264bf891b4059a64b680e828731e6f33edd07 (diff) |
Add command for administrators to change channel publicity ingame rather than having to manually manipulate the database.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Chat.cpp | 12 | ||||
-rw-r--r-- | src/game/Chat.h | 2 | ||||
-rw-r--r-- | src/game/Language.h | 3 | ||||
-rw-r--r-- | src/game/Level3.cpp | 24 |
4 files changed, 40 insertions, 1 deletions
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index bbedd5a71f4..c23ee76ee7d 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -130,6 +130,16 @@ ChatCommand * ChatHandler::getCommandTable() { NULL, 0, false, NULL, "", NULL } }; + static ChatCommand channelSetCommandTable[] = + { + { "public", SEC_ADMINISTRATOR, true, &ChatHandler::HandleChannelSetPublic, "", NULL }, + }; + + static ChatCommand channelCommandTable[] = + { + { "set", SEC_ADMINISTRATOR, true, NULL, "", channelSetCommandTable }, + }; + static ChatCommand debugPlayCommandTable[] = { { "cinematic", SEC_MODERATOR, false, &ChatHandler::HandleDebugPlayCinematicCommand, "", NULL }, @@ -670,6 +680,8 @@ ChatCommand * ChatHandler::getCommandTable() { "instance", SEC_ADMINISTRATOR, true, NULL, "", instanceCommandTable }, { "server", SEC_ADMINISTRATOR, true, NULL, "", serverCommandTable }, + { "channel", SEC_ADMINISTRATOR, true, NULL, "", channelCommandTable }, + { "pet", SEC_GAMEMASTER, false, NULL, "", petCommandTable }, { "loadpath", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllPaths, "", NULL }, { "ahbotoptions", SEC_GAMEMASTER, true, &ChatHandler::HandleAHBotOptionsCommand, "", NULL }, diff --git a/src/game/Chat.h b/src/game/Chat.h index 1f4b1490c58..9d2d89d09de 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -139,6 +139,8 @@ class ChatHandler bool HandleCharacterReputationCommand(const char* args); bool HandleCharacterTitlesCommand(const char* args); + bool HandleChannelSetPublic(const char *args); + bool HandleDebugAnimCommand(const char* args); bool HandleDebugArenaCommand(const char * args); bool HandleDebugBattlegroundCommand(const char * args); diff --git a/src/game/Language.h b/src/game/Language.h index 08ec029d5a3..3e954be14d1 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -878,7 +878,8 @@ enum TrinityStrings LANG_NPCINFO_PHASEMASK = 5020, LANG_NPCINFO_ARMOR = 5021, LANG_CHANNEL_NOT_PUBLIC = 5022, - // Room for more Trinity strings 5023-9999 + LANG_CHANNEL_PUBLIC_CHANGED = 5023, + // Room for more Trinity strings 5024-9999 // Used for GM Announcements LANG_GM_BROADCAST = 6613, LANG_GM_NOTIFY = 6614, diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 0d56d12a816..e1e67ce99ad 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -7234,6 +7234,30 @@ bool ChatHandler::HandleModifyGenderCommand(const char *args) return true; } +bool ChatHandler::HandleChannelSetPublic(const char *args) +{ + if(!*args) + return false; + std::string channel = strtok((char*)args, " "); + uint32 val = atoi((char*)args); + + if(val) + { + CharacterDatabase.PExecute("UPDATE channels SET m_public = 1 WHERE n_name LIKE '%s'", channel); + val = 1; + } + else + { + CharacterDatabase.PExecute("UPDATE channels SET m_public = 0 WHERE n_name LIKE '%s'", channel); + val = 0; + } + + PSendSysMessage(LANG_CHANNEL_PUBLIC_CHANGED, channel.c_str(), val); + + return true; +} + + /*------------------------------------------ *-------------TRINITY---------------------- *-------------------------------------*/ |