Esempio n. 1
0
void observerChat::Event ( bz_EventData *eventData )
{
  switch (eventData->eventType)
  {
  case bz_eRawChatMessageEvent:
    {
      bz_ChatEventData_V1 *data = (bz_ChatEventData_V1*)eventData;
      int from = data->from;
      bool isObserver = bz_getPlayerTeam(from) == eObservers;
      bool canSpawn = bz_hasPerm(from,bz_perm_spawn);
      const char* duringTheGame = "";

      if (!isObserver && canSpawn) return;
      if (data->to != BZ_ALLUSERS && (isObserver || data->team == eNoTeam)) return;
      if (bz_hasPerm(from,permName) || bz_getAdmin(from)) return;

      std::string variableValue = makelower(bz_getBZDBString(variableName).c_str());
      if (variableValue == "off" || variableValue == "disable" || variableValue == "disabled" || variableValue == "no") return;
      else if (!(variableValue == "on" || variableValue == "always" || variableValue == "alwayson" || variableValue == "enable" || variableValue == "enabled" || variableValue == "yes")) {
        if (!bz_isCountDownActive()) return;
        duringTheGame = " during the game";
      }

      bz_sendTextMessagef(BZ_SERVER,from,"You are not allowed to send global messages%s.",duringTheGame);
      bz_sendTextMessagef(BZ_SERVER,from,"Please use observer chat only.");
      data->message = "";
    }
    break;
  default:
    break;
  }
}
Esempio n. 2
0
	virtual void Init ( const char* /* config */)
	{
		Register(bz_eListServerUpdateEvent);
		Register(bz_ePlayerPartEvent);
		Register(bz_eGetWorldEvent);

		if (bz_BZDBItemExists("_statURL"))
			url = bz_getBZDBString("_statURL").c_str();
		if (!url.size())
			url = "http://stattrack.bzflag.org/track/";
	}
Esempio n. 3
0
void observerChat::Init ( const char* commandLine )
{
  variableName = "_observerChat";
  defaultValue = "game";
  permName = "OBSERVERCHAT";

  int mode = (int)atoi(commandLine);
  const char* variableValue = "game";

  if (mode == 0 && commandLine != NULL && strlen(commandLine) != 0) variableValue = "off";
  else if (mode == 1) variableValue = "game";
  else if (mode == 2) variableValue = "alwaysOn";
  else if (bz_BZDBItemExists(variableName))
    variableValue = bz_getBZDBString(variableName).c_str();
  
  bz_setBZDBString(variableName, variableValue);

  bz_debugMessage(4,"observerChat plugin loaded");

  Register(bz_eRawChatMessageEvent);
}