diff options
author | silinoron <none@none> | 2010-09-04 12:49:39 -0700 |
---|---|---|
committer | silinoron <none@none> | 2010-09-04 12:49:39 -0700 |
commit | 0f997162ee5652fd2ff5d6916f461dabc5050f9c (patch) | |
tree | 288f4f87fdfef3c9ca17854cd008a2289a495ca6 /src/server/scripts | |
parent | 0f9fe8dbeb3990175cfac07a3b7349c9d8e668b7 (diff) |
Core/ScriptSystem: Refactor ScriptMgr::OnPlayerChat to no longer accept a C-style parameter of type void*.
Instead, use overloaded methods for the different types.
--HG--
branch : trunk
Diffstat (limited to 'src/server/scripts')
-rw-r--r-- | src/server/scripts/World/chat_log.cpp | 146 |
1 files changed, 75 insertions, 71 deletions
diff --git a/src/server/scripts/World/chat_log.cpp b/src/server/scripts/World/chat_log.cpp index 54ce034e282..3b1d3af38bb 100644 --- a/src/server/scripts/World/chat_log.cpp +++ b/src/server/scripts/World/chat_log.cpp @@ -25,7 +25,7 @@ class ChatLogScript : public PlayerScript public: ChatLogScript() : PlayerScript("ChatLogScript") { } - void OnChat(Player* player, uint32 type, uint32 lang, std::string msg, void* param) + void OnChat(Player* player, uint32 type, uint32 lang, std::string msg) { switch (type) { @@ -52,113 +52,117 @@ public: sLog.outChat("[YELL] Player %s yells (language %u): %s", player->GetName(), lang, msg.c_str()); break; + } + } + + void OnChat(Player *player, uint32 type, uint32 lang, std::string msg, Player *receiver) + { + if (sWorld.getBoolConfig(CONFIG_CHATLOG_WHISPER)) + { + sLog.outChat("[WHISPER] Player %s tells %s: %s", + player->GetName(), receiver ? receiver->GetName() : "<unknown>", msg.c_str()); + } + } - case CHAT_MSG_WHISPER: - if (sWorld.getBoolConfig(CONFIG_CHATLOG_WHISPER)) - { - Player* pReceiver = reinterpret_cast <Player*> (param); - sLog.outChat("[WHISPER] Player %s tells %s: %s", - player->GetName(), pReceiver ? pReceiver->GetName() : "<unknown>", msg.c_str()); - } - break; - + void OnChat(Player *player, uint32 type, uint32 lang, std::string msg, Group *group) + { + switch (type) + { case CHAT_MSG_PARTY: if (sWorld.getBoolConfig(CONFIG_CHATLOG_PARTY)) { - Group* pGroup = reinterpret_cast <Group*> (param); sLog.outChat("[PARTY] Player %s tells group with leader %s: %s", - player->GetName(), pGroup ? pGroup->GetLeaderName() : "<unknown>", msg.c_str()); + player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str()); } break; + case CHAT_MSG_RAID_LEADER: + if (sWorld.getBoolConfig(CONFIG_CHATLOG_RAID)) + sLog.outChat("[RAID] Leader player %s tells raid: %s", + player->GetName(), msg.c_str()); + break; + + case CHAT_MSG_RAID_WARNING: + if (sWorld.getBoolConfig(CONFIG_CHATLOG_RAID)) + sLog.outChat("[RAID] Leader player %s warns raid with: %s", + player->GetName(), msg.c_str()); + break; + case CHAT_MSG_PARTY_LEADER: if (sWorld.getBoolConfig(CONFIG_CHATLOG_PARTY)) sLog.outChat("[PARTY] Leader %s tells group: %s", player->GetName(), msg.c_str()); break; - case CHAT_MSG_GUILD: - { - Guild* pGuild = reinterpret_cast <Guild*> (param); - if (lang != LANG_ADDON && sWorld.getBoolConfig(CONFIG_CHATLOG_GUILD)) - { - sLog.outChat("[GUILD] Player %s tells guild %s: %s", - player->GetName(), pGuild ? pGuild->GetName().c_str() : "<unknown>", msg.c_str()); - } - else if (lang == LANG_ADDON && sWorld.getBoolConfig(CONFIG_CHATLOG_ADDON)) - { - sLog.outChat("[ADDON] Player %s sends to guild %s: %s", - player->GetName(), pGuild ? pGuild->GetName().c_str() : "<unknown>", msg.c_str()); - } - break; - } - - case CHAT_MSG_OFFICER: - if (sWorld.getBoolConfig(CONFIG_CHATLOG_GUILD)) - { - Guild* pGuild = reinterpret_cast <Guild*> (param); - sLog.outChat("[OFFICER] Player %s tells guild %s officers: %s", - player->GetName(), pGuild ? pGuild->GetName().c_str() : "<unknown>", msg.c_str()); - } + case CHAT_MSG_BATTLEGROUND_LEADER: + if (sWorld.getBoolConfig(CONFIG_CHATLOG_BGROUND)) + sLog.outChat("[RAID] Leader player %s tells battleground: %s", + player->GetName(), msg.c_str()); break; case CHAT_MSG_RAID: if (sWorld.getBoolConfig(CONFIG_CHATLOG_RAID)) { - Group* pGroup = reinterpret_cast <Group*> (param); sLog.outChat("[RAID] Player %s tells raid with leader %s: %s", - player->GetName(), pGroup ? pGroup->GetLeaderName() : "<unknown>", msg.c_str()); + player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str()); } break; - case CHAT_MSG_RAID_LEADER: - if (sWorld.getBoolConfig(CONFIG_CHATLOG_RAID)) - sLog.outChat("[RAID] Leader player %s tells raid: %s", - player->GetName(), msg.c_str()); - break; - - case CHAT_MSG_RAID_WARNING: - if (sWorld.getBoolConfig(CONFIG_CHATLOG_RAID)) - sLog.outChat("[RAID] Leader player %s warns raid with: %s", - player->GetName(), msg.c_str()); - break; - case CHAT_MSG_BATTLEGROUND: if (sWorld.getBoolConfig(CONFIG_CHATLOG_BGROUND)) { - Group* pGroup = reinterpret_cast <Group*> (param); sLog.outChat("[BATTLEGROUND] Player %s tells battleground with leader %s: %s", - player->GetName(), pGroup ? pGroup->GetLeaderName() : "<unknown>", msg.c_str()); + player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str()); } break; + } + } - case CHAT_MSG_BATTLEGROUND_LEADER: - if (sWorld.getBoolConfig(CONFIG_CHATLOG_BGROUND)) - sLog.outChat("[RAID] Leader player %s tells battleground: %s", - player->GetName(), msg.c_str()); + void OnChat(Player *player, uint32 type, uint32 lang, std::string msg, Guild *guild) + { + switch(type) + { + case CHAT_MSG_GUILD: + if (lang != LANG_ADDON && sWorld.getBoolConfig(CONFIG_CHATLOG_GUILD)) + { + sLog.outChat("[GUILD] Player %s tells guild %s: %s", + player->GetName(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str()); + } + else if (lang == LANG_ADDON && sWorld.getBoolConfig(CONFIG_CHATLOG_ADDON)) + { + sLog.outChat("[ADDON] Player %s sends to guild %s: %s", + player->GetName(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str()); + } break; - case CHAT_MSG_CHANNEL: - { - Channel* pChannel = reinterpret_cast <Channel*> (param); - bool isSystem = pChannel && - (pChannel->HasFlag(CHANNEL_FLAG_TRADE) || - pChannel->HasFlag(CHANNEL_FLAG_GENERAL) || - pChannel->HasFlag(CHANNEL_FLAG_CITY) || - pChannel->HasFlag(CHANNEL_FLAG_LFG)); - if (sWorld.getBoolConfig(CONFIG_CHATLOG_SYSCHAN) && isSystem) - sLog.outChat("[SYSCHAN] Player %s tells channel %s: %s", - player->GetName(), pChannel->GetName().c_str(), msg.c_str()); - else if (sWorld.getBoolConfig(CONFIG_CHATLOG_CHANNEL)) - sLog.outChat("[CHANNEL] Player %s tells channel %s: %s", - player->GetName(), pChannel ? pChannel->GetName().c_str() : "<unknown>", msg.c_str()); + case CHAT_MSG_OFFICER: + if (sWorld.getBoolConfig(CONFIG_CHATLOG_GUILD)) + { + sLog.outChat("[OFFICER] Player %s tells guild %s officers: %s", + player->GetName(), guild ? guild->GetName().c_str() : "<unknown>", msg.c_str()); + } break; - } } } + + void OnChat(Player *player, uint32 type, uint32 lang, std::string msg, Channel *channel) + { + bool isSystem = channel && + (channel->HasFlag(CHANNEL_FLAG_TRADE) || + channel->HasFlag(CHANNEL_FLAG_GENERAL) || + channel->HasFlag(CHANNEL_FLAG_CITY) || + channel->HasFlag(CHANNEL_FLAG_LFG)); + + if (sWorld.getBoolConfig(CONFIG_CHATLOG_SYSCHAN) && isSystem) + sLog.outChat("[SYSCHAN] Player %s tells channel %s: %s", + player->GetName(), channel->GetName().c_str(), msg.c_str()); + else if (sWorld.getBoolConfig(CONFIG_CHATLOG_CHANNEL)) + sLog.outChat("[CHANNEL] Player %s tells channel %s: %s", + player->GetName(), channel ? channel->GetName().c_str() : "<unknown>", msg.c_str()); + } }; void AddSC_chat_log() { - new ChatLogScript(); + new ChatLogScript; } |