Example #1
0
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;
}
Example #2
0
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;
}