bool Chat::handleMsg(User* user, std::string msg) { // Timestamp time_t rawTime = time(NULL); struct tm* Tm = localtime(&rawTime); std::string timeStamp (asctime(Tm)); timeStamp = timeStamp.substr(11, 5); bool blockMessage = false; Plugin::get()->hookChat.doUntilFalse(user, timeStamp, msg, &blockMessage); if (blockMessage) { return false; } char prefix = msg[0]; switch(prefix) { // Servermsg (Admin-only) case SERVERMSGPREFIX: if(IS_ADMIN(user->permissions)) { handleServerMsg(user, msg, timeStamp); } break; // Admin message case ADMINCHATPREFIX: if(IS_ADMIN(user->permissions)) { handleAdminChatMsg(user, msg, timeStamp); } break; // Command case CHATCMDPREFIX: handleCommandMsg(user, msg, timeStamp); break; // Normal chat message default: handleChatMsg(user, msg, timeStamp); break; } return true; }
bool Chat::handleMsg(User* user, std::string msg) { // Timestamp time_t rawTime = time(NULL); struct tm* Tm = localtime(&rawTime); std::string timeStamp (asctime(Tm)); timeStamp = timeStamp.substr(11, 5); if ((static_cast<Hook3<bool,User*,time_t,std::string>*>(Mineserver::get()->plugin()->getHook("ChatPre")))->doUntilFalse(user, rawTime, msg)) { return false; } (static_cast<Hook3<void,User*,time_t,std::string>*>(Mineserver::get()->plugin()->getHook("ChatPre")))->doAll(user, rawTime, msg); char prefix = msg[0]; switch(prefix) { // Servermsg (Admin-only) case SERVERMSGPREFIX: if(IS_ADMIN(user->permissions)) { handleServerMsg(user, msg, timeStamp); } break; // Admin message case ADMINCHATPREFIX: if(IS_ADMIN(user->permissions)) { handleAdminChatMsg(user, msg, timeStamp); } break; // Command case CHATCMDPREFIX: handleCommandMsg(user, msg, timeStamp); break; // Normal chat message default: handleChatMsg(user, msg, timeStamp); break; } return true; }