Снощи нямаше какво да правя и направих проста версия на calladmin работеща с Discord (праща известия в дискорд сървъра ви). Работи с CURL и URL WEB HOOK (който се генерира от дискорд сървър настройките ви за 1 мин)
Целта на плъгина е да е прост, за да видите как дискорд съобщението се праща до сървъра. Логиката може да се изолира в stock и да логвате и друга информация. Пример: Някой влиза в сървъра и излиза и пращате пак съобщение до дискорд сървър руум-а ви.
Уеб куката се генерира лесно и представлява дълъг линк. Може да избирате за коя стая да работи и какво да е нейното име.
Пляс:
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <curl>
new g_cvar_webhook
new Handle:curl;
new Handle:header;
public plugin_init()
{
g_cvar_webhook = register_cvar("discord_webhook", "https://discord.com/api/webhooks/1165281615640023074/a3pwGrQP0uvWu5j27WF7sghuH8HwrFnKI-p2KmuT7POvqQ1C8yvraYl1nc_RtfKwgfAw");
register_clcmd("say /calladmin", "Cmd_CallAdmin")
register_clcmd("say_team /calladmin", "Cmd_CallAdmin")
register_clcmd("calladmin_reason", "Cmd_EnterReason")
header = curl_create_slist();
curl_slist_append(header, "Content-Type: application/json");
}
public Cmd_EnterReason(id)
{
new szArgs[128], szName[32], szTime[32]
read_args(szArgs, charsmax(szArgs))
get_user_name(id, szName, charsmax(szName))
get_time("%X", szTime, charsmax(szTime))
replace_all(szArgs,127,"^"","")
new pass[256];
static szURL[256];
get_pcvar_string(g_cvar_webhook, szURL, charsmax(szURL));
formatex(pass, charsmax(pass), "{^"content^":^"REASON: %s, FROM: %s ON: %s^"}", szArgs, szName,szTime);
curl = curl_init();
curl_setopt_string(curl, CURLOPT_URL, szURL);
curl_setopt_handle(curl, CURLOPT_HTTPHEADER, header);
curl_setopt_cell(curl, CURLOPT_POST, 1);
curl_setopt_string(curl, CURLOPT_POSTFIELDS, pass);
curl_thread_exec(curl, "OnExecComplete");
return PLUGIN_HANDLED
}
public Cmd_CallAdmin(id)
{
client_cmd(id, "messagemode calladmin_reason")
return PLUGIN_HANDLED
}
public OnExecComplete(Handle:curl, CURLcode:code, const response[], any:eventType)
{
curl_close(curl);
//curl_destroy_slist(header);
}
CVAR: discord_webhook
На този cvar задавате webhook url-то
Без модула curl и без тази библиотека не може да компилирате!
Няма как да работи без тях!
Също така мога да предложа и втора версия на плъгина, която работи с https://github.com/Next21Team/AmxxEasyHttp
Как работи тя ? Тя пък работи обратно, от сървъра пращате рекуест към php файл с php $_POST опции (просто докосва файла).
Може да си създадете няколко файла server1.php server2.php и т.н. и вътре да вкарате curl заявките.
И 2-та варианта изискват модули и библиотеки! Не съм ги тествал обстойно!
Също така, не се пробвайте да логвате целия чат на играчите и да го прехвърляте в дискорд, защото това може да доведе до overload, keep it simple!
Demo: