diff options
Diffstat (limited to 'src/game/Chat.cpp')
-rw-r--r-- | src/game/Chat.cpp | 46 |
1 files changed, 41 insertions, 5 deletions
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 3ec5d92bd6a..1d45afef5ea 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -33,6 +33,7 @@ #include "MapManager.h" #include "GridNotifiersImpl.h" #include "CellImpl.h" +#include "AccountMgr.h" #include "TicketMgr.h" bool ChatHandler::load_command_table = true; @@ -112,6 +113,7 @@ ChatCommand * ChatHandler::getCommandTable() { "hp", SEC_MODERATOR, false, &ChatHandler::HandleModifyHPCommand, "", NULL }, { "mana", SEC_MODERATOR, false, &ChatHandler::HandleModifyManaCommand, "", NULL }, { "rage", SEC_MODERATOR, false, &ChatHandler::HandleModifyRageCommand, "", NULL }, + { "runicpower", SEC_MODERATOR, false, &ChatHandler::HandleModifyRunicPowerCommand, "", NULL }, { "energy", SEC_MODERATOR, false, &ChatHandler::HandleModifyEnergyCommand, "", NULL }, { "money", SEC_MODERATOR, false, &ChatHandler::HandleModifyMoneyCommand, "", NULL }, { "speed", SEC_MODERATOR, false, &ChatHandler::HandleModifySpeedCommand, "", NULL }, @@ -192,6 +194,7 @@ ChatCommand * ChatHandler::getCommandTable() { "sellerr", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSellErrorCommand, "", NULL }, { "buyerr", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBuyErrorCommand, "", NULL }, { "sendopcode", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendOpcodeCommand, "", NULL }, + { "spawnvehicle", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSpawnVehicle, "", NULL }, { "uws", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUpdateWorldStateCommand, "", NULL }, { "ps", SEC_ADMINISTRATOR, false, &ChatHandler::HandlePlaySound2Command, "", NULL }, { "scn", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendChannelNotifyCommand, "", NULL }, @@ -265,6 +268,7 @@ ChatCommand * ChatHandler::getCommandTable() { "item_enchantment_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadItemEnchantementsCommand, "", NULL }, { "item_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesItemCommand, "", NULL }, { "trinity_string", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadTrinityStringCommand, "", NULL }, + { "milling_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesMillingCommand, "", NULL }, { "npc_gossip", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadNpcGossipCommand, "", NULL }, { "npc_option", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadNpcOptionCommand, "", NULL }, { "npc_trainer", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadNpcTrainerCommand, "", NULL }, @@ -302,7 +306,6 @@ ChatCommand * ChatHandler::getCommandTable() { "waypoint_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadWpScriptsCommand, "", NULL }, { "tickets", SEC_ADMINISTRATOR, true, &ChatHandler::HandleGMTicketReloadCommand, "", NULL }, - { "", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; @@ -605,6 +608,7 @@ ChatCommand * ChatHandler::getCommandTable() { "sendmail", SEC_MODERATOR, true, &ChatHandler::HandleSendMailCommand, "", NULL }, { "sendmoney", SEC_ADMINISTRATOR, true, &ChatHandler::HandleSendMoneyCommand, "", NULL }, { "rename", SEC_GAMEMASTER, true, &ChatHandler::HandleRenameCommand, "", NULL }, + { "customize", SEC_GAMEMASTER, true, &ChatHandler::HandleCustomizeCommand, "", NULL }, { "loadscripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleLoadScriptsCommand, "", NULL }, { "mute", SEC_GAMEMASTER, true, &ChatHandler::HandleMuteCommand, "", NULL }, { "unmute", SEC_GAMEMASTER, true, &ChatHandler::HandleUnmuteCommand, "", NULL }, @@ -681,6 +685,38 @@ bool ChatHandler::isAvailable(ChatCommand const& cmd) const return m_session->GetSecurity() >= cmd.SecurityLevel; } +bool ChatHandler::HasLowerSecurity(Player* target, uint64 guid) +{ + uint32 target_sec; + + if (!sWorld.getConfig(CONFIG_GM_LOWER_SECURITY)) + return false; + + // allow everything from RA console + if (!m_session) + return false; + + if (target) + target_sec = target->GetSession()->GetSecurity(); + else if (guid) + target_sec = accmgr.GetSecurity(objmgr.GetPlayerAccountIdByGUID(guid)); + else + { + SendSysMessage(LANG_PLAYER_NOT_FOUND); + SetSentErrorMessage(true); + return true; + } + + if (m_session->GetSecurity() < target_sec) + { + SendSysMessage(LANG_YOURS_SECURITY_IS_LOW); + SetSentErrorMessage(true); + return true; + } + + return false; +} + bool ChatHandler::hasStringAbbr(const char* name, const char* part) { // non "" command @@ -766,9 +802,9 @@ void ChatHandler::PSendSysMessage(int32 entry, ...) { const char *format = GetTrinityString(entry); va_list ap; - char str [1024]; + char str [2048]; va_start(ap, entry); - vsnprintf(str,1024,format, ap ); + vsnprintf(str,2048,format, ap ); va_end(ap); SendSysMessage(str); } @@ -776,9 +812,9 @@ void ChatHandler::PSendSysMessage(int32 entry, ...) void ChatHandler::PSendSysMessage(const char *format, ...) { va_list ap; - char str [1024]; + char str [2048]; va_start(ap, format); - vsnprintf(str,1024,format, ap ); + vsnprintf(str,2048,format, ap ); va_end(ap); SendSysMessage(str); } |