diff options
Diffstat (limited to 'src/game/ChatHandler.cpp')
-rw-r--r-- | src/game/ChatHandler.cpp | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/src/game/ChatHandler.cpp b/src/game/ChatHandler.cpp index bf1c1add8a6..f7375931c54 100644 --- a/src/game/ChatHandler.cpp +++ b/src/game/ChatHandler.cpp @@ -86,6 +86,21 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) if(lang == LANG_ADDON) { + if(sWorld.getConfig(CONFIG_CHATLOG_ADDON)) + { + std::string msg = ""; + recv_data >> msg; + + if(msg.empty()) + { + sLog.outDebug("Player %s send empty addon msg", GetPlayer()->GetName()); + return; + } + + sLog.outChat("[ADDON] Player %s sends: %s", + GetPlayer()->GetName(), msg.c_str()); + } + // Disabled addon channel? if(!sWorld.getConfig(CONFIG_ADDON_CHANNEL)) return; @@ -245,6 +260,10 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) WorldPacket data; ChatHandler::FillMessageData(&data, this, CHAT_MSG_PARTY, lang, NULL, 0, msg.c_str(),NULL); group->BroadcastPacket(&data, false, group->GetMemberGroup(GetPlayer()->GetGUID())); + + if(sWorld.getConfig(CONFIG_CHATLOG_PARTY)) + sLog.outChat("[PARTY] Player %s tells group with leader %s: %s", + GetPlayer()->GetName(), group->GetLeaderName(), msg.c_str()); } break; case CHAT_MSG_GUILD: @@ -270,6 +289,10 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) Guild *guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); if (guild) guild->BroadcastToGuild(this, msg, lang == LANG_ADDON ? LANG_ADDON : LANG_UNIVERSAL); + + if(sWorld.getConfig(CONFIG_CHATLOG_GUILD)) + sLog.outChat("[GUILD] Player %s tells guild %s: %s", + GetPlayer()->GetName(), guild->GetName(), msg.c_str()); } break; @@ -297,6 +320,10 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) Guild *guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); if (guild) guild->BroadcastToOfficers(this, msg, lang == LANG_ADDON ? LANG_ADDON : LANG_UNIVERSAL); + + if(sWorld.getConfig(CONFIG_CHATLOG_GUILD)) + sLog.outChat("[OFFICER] Player %s tells guild %s officers: %s", + GetPlayer()->GetName(), guild->GetName(), msg.c_str()); } break; } @@ -327,6 +354,10 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) WorldPacket data; ChatHandler::FillMessageData(&data, this, CHAT_MSG_RAID, lang, "", 0, msg.c_str(),NULL); group->BroadcastPacket(&data, false); + + if(sWorld.getConfig(CONFIG_CHATLOG_RAID)) + sLog.outChat("[RAID] Player %s tells raid with leader %s: %s", + GetPlayer()->GetName(), group->GetLeaderName(), msg.c_str()); } break; case CHAT_MSG_RAID_LEADER: { @@ -354,6 +385,10 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) WorldPacket data; ChatHandler::FillMessageData(&data, this, CHAT_MSG_RAID_LEADER, lang, "", 0, msg.c_str(),NULL); group->BroadcastPacket(&data, false); + + if(sWorld.getConfig(CONFIG_CHATLOG_RAID)) + sLog.outChat("[RAID] Leader player %s tells raid: %s", + GetPlayer()->GetName(), msg.c_str()); } break; case CHAT_MSG_RAID_WARNING: { @@ -375,6 +410,10 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) //in battleground, raid warning is sent only to players in battleground - code is ok ChatHandler::FillMessageData(&data, this, CHAT_MSG_RAID_WARNING, lang, "", 0, msg.c_str(),NULL); group->BroadcastPacket(&data, false); + + if(sWorld.getConfig(CONFIG_CHATLOG_RAID)) + sLog.outChat("[RAID] Leader player %s warns raid with: %s", + GetPlayer()->GetName(), msg.c_str()); } break; case CHAT_MSG_BATTLEGROUND: @@ -440,8 +479,21 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) if(ChannelMgr* cMgr = channelMgr(_player->GetTeam())) { - if(Channel *chn = cMgr->GetChannel(channel,_player)) + Channel *chn = cMgr->GetChannel(channel,_player); + if(chn) chn->Say(_player->GetGUID(),msg.c_str(),lang); + + if(chn->HasFlag(CHANNEL_FLAG_TRADE) || + chn->HasFlag(CHANNEL_FLAG_GENERAL) || + chn->HasFlag(CHANNEL_FLAG_CITY) || + chn->HasFlag(CHANNEL_FLAG_LFG)) + if(sWorld.getConfig(CONFIG_CHATLOG_SYSCHAN)) + sLog.outChat("[SYSCHAN] Player %s tells channel %s: %s", + GetPlayer()->GetName(), chn->GetName(), msg.c_str()); + else + if(sWorld.getConfig(CONFIG_CHATLOG_CHANNEL)) + sLog.outChat("[CHANNEL] Player %s tells channel %s: %s", + GetPlayer()->GetName(), chn->GetName(), msg.c_str()); } } break; |