support for admin chat from stoat

This commit is contained in:
jenz 2026-02-16 21:14:50 +01:00
parent 2e99fec5de
commit 3dc480d564
2 changed files with 39 additions and 2 deletions

View File

@ -669,6 +669,12 @@ public Action OnClientSayCommand(int client, const char[] sCommand, const char[]
else
Discord_POST(DISCORD_ADMINCHAT_WEBHOOKURL, sFinal, true, sUsername);
Call_StartForward(g_hForwardDiscord);
Call_PushString(sUsername);
Call_PushString(sFinal);
Call_PushCell(6);
Call_Finish();
if (!bAdmin)
{
//g_iReplyTargetSerial = GetClientSerial(client);

View File

@ -21,8 +21,9 @@ public Plugin myinfo =
public void OnPluginStart()
{
AddCommandListener(CommandListener_SmChat_stoat, "say");
AddCommandListener(CommandListener_SmChat_stoat, "say_team");
RegServerCmd("sm_printtoallchat_stoat", Command_PrintToAllChat_stoat, "Discord Integration");
RegServerCmd("sm_printtoallchat_stoat", Command_PrintToAllChat_stoat, "Stoat Integration");
RegServerCmd("sm_printtoadminchat_stoat", Command_PrintToAdminChat_stoat, "Stoat Integration");
}
public Action CommandListener_SmChat_stoat(int client, const char[] sCommand, int argc)
@ -95,6 +96,26 @@ public Action Command_PrintToAllChat_stoat(int args)
return Plugin_Handled;
}
public Action Command_PrintToAdminChat_stoat(int args)
{
char sArgs[1024];
char sArgs2[1024];
GetCmdArg(1, sArgs, sizeof(sArgs));
GetCmdArg(2, sArgs2, sizeof(sArgs2));
for(int i = 0; i < MAXPLAYERS; i++)
{
if (IsValidClient(i))
{
bool bAdmin = CheckCommandAccess(i, "", ADMFLAG_GENERIC, true);
if (bAdmin)
CPrintToChat(i, "{green}(Stoat ADMINS) %s: {yellow}%s", sArgs, sArgs2);
}
}
return Plugin_Handled;
}
public void GetDiscordToStoat(const char[] username, const char[] message, int type)
{
//type = 1. ADMINLOGS
@ -102,6 +123,7 @@ public void GetDiscordToStoat(const char[] username, const char[] message, int t
//type = 3. AMDIN LOGS entwatch
//type = 4. admin logs ze ban evasion
//type = 5. Calladmin
//type = 6. admin chat ze
if (type == 1)
{
SendToStoat(username, message, "");
@ -122,4 +144,13 @@ public void GetDiscordToStoat(const char[] username, const char[] message, int t
{
SendToStoat(username, message, "");
}
else if(type == 6)
{
SendToStoat(username, message, "");
}
}
stock bool IsValidClient(int client)
{
return (client > 0 && client <= MaxClients && IsClientInGame(client));
}