Make chat bot really kick players.

This commit is contained in:
lotodore
2010-07-14 16:13:18 +00:00
parent dad7c694ce
commit 9248f5a15e
3 changed files with 19 additions and 1 deletions
+2
View File
@@ -30,6 +30,8 @@ public:
virtual ~ChatCleanerCallback(); virtual ~ChatCleanerCallback();
virtual void SignalChatBotMessage(const std::string &msg) = 0; virtual void SignalChatBotMessage(const std::string &msg) = 0;
virtual void SignalKickPlayer(unsigned playerId) = 0;
virtual void SignalBanPlayer(unsigned playerId) = 0;
}; };
#endif #endif
+5
View File
@@ -250,7 +250,12 @@ ChatCleanerManager::HandleMessage(InternalChatCleanerPacket &msg)
else if (msg.GetMsg()->present == ChatCleanerMessage_PR_cleanerChatReplyMessage) else if (msg.GetMsg()->present == ChatCleanerMessage_PR_cleanerChatReplyMessage)
{ {
CleanerChatReplyMessage_t *netReply = &msg.GetMsg()->choice.cleanerChatReplyMessage; CleanerChatReplyMessage_t *netReply = &msg.GetMsg()->choice.cleanerChatReplyMessage;
if (netReply->cleanerText)
m_callback.SignalChatBotMessage(string((const char *)netReply->cleanerText->buf, netReply->cleanerText->size)); m_callback.SignalChatBotMessage(string((const char *)netReply->cleanerText->buf, netReply->cleanerText->size));
if (netReply->cleanerActionType == cleanerActionType_cleanerActionKick)
m_callback.SignalKickPlayer(netReply->playerId);
else if (netReply->cleanerActionType == cleanerActionType_cleanerActionBan)
m_callback.SignalBanPlayer(netReply->playerId);
error = false; error = false;
} }
return error; return error;
+11
View File
@@ -93,11 +93,22 @@ public:
{ {
m_server.GetSender().SignalSessionTerminated(session); m_server.GetSender().SignalSessionTerminated(session);
} }
virtual void SignalChatBotMessage(const string &msg) virtual void SignalChatBotMessage(const string &msg)
{ {
m_server.SendChatBotMsg(msg); m_server.SendChatBotMsg(msg);
} }
virtual void SignalKickPlayer(unsigned playerId)
{
m_server.RemovePlayer(playerId, ERR_NET_PLAYER_KICKED);
}
virtual void SignalBanPlayer(unsigned playerId)
{
// TODO
}
virtual void ConnectSuccess() virtual void ConnectSuccess()
{ {
LOG_MSG("Successfully connected to database."); LOG_MSG("Successfully connected to database.");