diff --git a/src/chatcleaner/cleanerserver.cpp b/src/chatcleaner/cleanerserver.cpp index 4e73c031..fe1ac36f 100644 --- a/src/chatcleaner/cleanerserver.cpp +++ b/src/chatcleaner/cleanerserver.cpp @@ -122,7 +122,7 @@ bool CleanerServer::handleMessage(InternalChatCleanerPacket &msg) { netAck->serverVersion = CLEANER_PROTOCOL_VERSION; string tmpServerSecret(serverSecret.toStdString()); OCTET_STRING_fromBuf(&netAck->serverSecret, - tmpServerSecret.c_str(), + tmpServerSecret.c_str(), tmpServerSecret.length()); sendMessageToClient(tmpAck); } @@ -141,20 +141,25 @@ bool CleanerServer::handleMessage(InternalChatCleanerPacket &msg) { string((const char *)netRequest->playerName.buf, netRequest->playerName.size).c_str())); QString message(QString::fromUtf8( string((const char *)netRequest->chatMessage.buf, netRequest->chatMessage.size).c_str())); - QString checkMessage = myMessageFilter->check(playerId, nick, message); + QStringList checkreturn = myMessageFilter->check(playerId, nick, message); + QString checkAction = checkreturn.at(0); + QString checkMessage = checkreturn.at(1); - if (!checkMessage.isEmpty()) + if (!checkAction.isEmpty()) { InternalChatCleanerPacket tmpReply; tmpReply.GetMsg()->present = ChatCleanerMessage_PR_cleanerChatReplyMessage; CleanerChatReplyMessage_t *netReply = &tmpReply.GetMsg()->choice.cleanerChatReplyMessage; netReply->requestId = netRequest->requestId; netReply->playerId = netRequest->playerId; - netReply->cleanerActionType = cleanerActionType_cleanerActionNone; - /* cleanerActionType_cleanerActionNone - cleanerActionType_cleanerActionWarning - cleanerActionType_cleanerActionKick - cleanerActionType_cleanerActionBan */ + + if(checkAction == "warn") { + netReply->cleanerActionType = cleanerActionType_cleanerActionWarning; + } + else if(checkAction == "kick") { + netReply->cleanerActionType = cleanerActionType_cleanerActionKick; + } + /* cleanerActionType_cleanerActionBan */ string tmpCheck(checkMessage.toUtf8()); netReply->cleanerText = OCTET_STRING_new_fromBuf( diff --git a/src/chatcleaner/messagefilter.cpp b/src/chatcleaner/messagefilter.cpp index 1f7a460c..bd8576a4 100644 --- a/src/chatcleaner/messagefilter.cpp +++ b/src/chatcleaner/messagefilter.cpp @@ -1,3 +1,4 @@ + #include "messagefilter.h" #include @@ -40,9 +41,11 @@ MessageFilter::~MessageFilter() { delete myUrlCheck; } -QString MessageFilter::check(unsigned playerId, QString nick, QString msg) +QStringList MessageFilter::check(unsigned playerId, QString nick, QString msg) { + QStringList returnList; QString returnMessage; + QString returnAction; OffenceType offence = NONE; ActionType action = NOTHING; @@ -85,11 +88,12 @@ QString MessageFilter::check(unsigned playerId, QString nick, QString msg) if(action == KICK) { returnMessage = QString("Kick: %1\n").arg(nick); + returnAction = QString("kick"); } if(action == WARN) { switch(offence) { - case BAD_WORD: { + case BAD_WORD: { returnMessage = QString ("%1: Warning! No racial, religious, or sexually inflammatory language!\n").arg(nick); } break; @@ -111,12 +115,16 @@ QString MessageFilter::check(unsigned playerId, QString nick, QString msg) break; default:; } + returnAction = QString("warn"); } } else { + returnAction = QString(""); returnMessage = QString(""); } - return returnMessage; + + returnList << returnAction << returnMessage; + return returnList; } void MessageFilter::refreshConfig() { diff --git a/src/chatcleaner/messagefilter.h b/src/chatcleaner/messagefilter.h index 64badb62..545636c0 100644 --- a/src/chatcleaner/messagefilter.h +++ b/src/chatcleaner/messagefilter.h @@ -17,7 +17,7 @@ public: MessageFilter(CleanerConfig*); ~MessageFilter(); - QString check(unsigned, QString, QString); + QStringList check(unsigned, QString, QString); void refreshConfig(); private: