ff_u_log_chat

Player chat logging.

Logs all chat message, apart from player tells because of expected privacy.

Variables

ENABLE__FF_U_LOG_CHAT: (string) (opt-out) Set to “N” on module to disable unit.

Source code

// @code

#include "ff_i_core"

const string ENABLE__FF_U_LOG_CHAT = "ENABLE__FF_U_LOG_CHAT";


// -----------------------------------------------------------------------------

void OnChat();
void OnChat()
{
  object oSpeaker = GetPCChatSpeaker();
  string sMessage = GetPCChatMessage();
  int    nVolume  = GetPCChatVolume();

  sMessage = GetStringTrim(GetStringLowerCase(sMessage));
  if (sMessage == "")
    return;

  string sLog = "chat: ";
  switch (nVolume)
  {
    case TALKVOLUME_SILENT_TALK: return;
    case TALKVOLUME_WHISPER:      sLog += "[WHISPER]"; break;
    case TALKVOLUME_TALK:         sLog += "[TALK]"; break;
    case TALKVOLUME_SHOUT:        sLog += "[SHOUT]"; break;
    case TALKVOLUME_SILENT_SHOUT: sLog += "[DM]"; break;
    case TALKVOLUME_PARTY:        sLog += "[PARTY]"; break;
  }

  sLog += " " + GetName(oSpeaker) + ": " + GetStringTrim(sMessage);
  WriteTimestampedLogEntry(sLog);
}


// =============================================================================
void main()
{
  if (!GetModuleFlag(ENABLE__FF_U_LOG_CHAT, TRUE))
    return;

  string sEvent = GetCurrentEvent();
  if (sEvent == ON_REGISTER)
    SubscribeToEvent(ON_DEFAULT_PLAYER_CHAT, __FILE__);
  else if (sEvent == ON_DEFAULT_PLAYER_CHAT)
    OnChat();
}