Skip to content

Examples

Kruzya edited this page Jan 2, 2018 · 6 revisions

Preamble

See our API here, if you need all function names. And don't remember include discord_extended before using!

Simple chat logger

#include <sourcemod>
#include <discord_extended>

#pragma semicolon 1
#pragma newdecls required

public void OnPluginStart() {
    AddCommandListener(OnClientUseChat, "say");
    AddCommandListener(OnClientUseChat, "say_team");
}

public Action OnClientUseChat(int iClient, const char[] szCommand, int iArgCount) {
    if (iClient == 0) {
        // ignore server messages
        return Plugin_Continue;
    }

    char szMessage[256];
    char szBuffer[32];
    GetCmdArgString(szMessage, sizeof(szMessage));

    Discord_StartMessage();
    Discord_SetUsername("Chat Logger");
    Discord_SetColor(0x424BFF);

    /**
     * @section Sender name.
     */
    GetClientName(iClient, szBuffer, sizeof(szBuffer));
    Discord_AddField("Sender", szBuffer, true);

    /**
     * @section Sender SteamID.
     */
    if (IsClientAuthorized(iClient)) {
        GetClientAuthId(iClient, AuthId_Steam2, szBuffer, sizeof(szBuffer));
        Discord_AddField("SteamID", szBuffer, true);
    }

    /**
     * @section Chat message.
     */
    Discord_AddField("Chat Type", (szCommand[3] == '_' ? "Team" : "Global"), false);
    Discord_AddField("Text", szMessage, false);
    Discord_EndMessage("chat_logger", true); // send message on webhook "chat_logger"

    return Plugin_Continue;
}

Clone this wiki locally