Ban loglama eklentisi hakkında

Konu

#1
Kod:
public Action OnBanClient(int client, int time, int flags, const char[] reason, const char[] kick_message, const char[] command, any source)
{
char mesaj[256];
Format(mesaj, sizeof(mesaj), "%t", "BANNED", source, client, time, reason);
SendToDiscord(mesaj);
}

Bu kod sayesinde ban atıldığı an kaydı alıp discord'a kütüphaneler yardımı ile gönderebiliyorum. Ama SourceBans olan sunucularda atılan banı;

Kod:
public int SBPP_OnBanPlayer(int iAdmin, int iTarget, int iTime, const char[] sReason)
{
    PrePareMsg(iAdmin, iTarget, iTime, sReason);
}

public int OnSBBanPlayer(int client, int target, int time, char[] reason)
{
    PrePareMsg(client, target, time, reason);
}

 Bu şekilde algılatmak gerekiyor. Sunucuda sbpp_main.smx dosyası yüklü ise mantığını;

Kod:
public void OnAllPluginsLoaded()
{
    if (!LibraryExists("sbpp_main"))
    {
        SetFailState("SourceBans not found. Plugin won't work.");
    }
}

Nasıl kullanabilirim? SourceBans yok ise 1. attığım koda göre Discord'a mesajı gönderecek. SourceBans yüklü ise 2. attığıma göre. Eklentiyi yapar mısınız?

Kaynaklar:

SourceBans olmaz ise discorda mesaj gönderen eklentinin kütüphaneleri
SourceBans yüklü ise discorda mesaj gönderen eklentinin tamamının kodları içindedir (discord_sourcebans.sp)
#2
bir bool değişkeni tanımla

PHP Kod:
public void OnAllPluginsLoaded()
{
    if (!LibraryExists("sbpp_main"))
    {
        sban false;
        SetFailState("SourceBans not found. Plugin won't work.");
    }
    else
    {
        sban =true
       
}

Şeklinde bir yapı kur sonra OnBanClient publicinde eğer bu değer false ise komutu çalıştır
Son Düzenleme: 13-02-2020, 17:43, Düzenleyen: Anıl Can.
#3
Kod:
#pragma semicolon 1
#define DEBUG
#define PLUGIN_AUTHOR "northeaster"
#define PLUGIN_VERSION "1.0"
#include <sourcemod>
#include <steamworks>
#include <basecomm>
#include <discord_steamworks>
//#include <sourcebanspp>
#pragma newdecls required
bool sban;
ConVar g_cSourcebans = null;

public Plugin myinfo =
{
    name = "Discord Ban Log",
    author = PLUGIN_AUTHOR,
    description = "",
    version = PLUGIN_VERSION,
    url = "https://forum.sourceturk.net/"
};

public void OnPluginStart()
{
    webhook = CreateConVar("dc_ban_log", "https://discordapp.com/api/webhooks/...", "Discord webhook");
    g_cSourcebans = CreateConVar("dc_sourcebans_url", "https://alanadiniz.com/index.php?p=banlist&searchText={STEAMID}", "Link to sourcebans.");
    AutoExecConfig(true, "dc_ban_log");
    LoadTranslations("dc_ban.phrases");
}

public void OnAllPluginsLoaded()
{
    if (!LibraryExists("sbpp_main"))
    {
        sban = false;
    }
    else
    {
        sban = true;
    }
}

public Action OnBanClient(int client, int time, int flags, const char[] reason, const char[] kick_message, const char[] command, any source)
{
    if(sban == false)
    {
        char SteamIDClient[32], SteamIDSource[32], mesaj[256];
        GetClientAuthId(client, AuthId_Steam2, SteamIDClient, sizeof(SteamIDClient));
        GetClientAuthId(source, AuthId_Steam2, SteamIDSource, sizeof(SteamIDSource));
        Format(mesaj, sizeof(mesaj), "%t", "BANNED", source, client, time, reason, SteamIDClient, SteamIDSource);
        SendToDiscord(mesaj);
    }
}

public int SBPP_OnBanPlayer(int iAdmin, int iTarget, int iTime, const char[] sReason)
{
    if(sban == true)
    {
        PrePareMsg(iAdmin, iTarget, iTime, sReason);
    }
}

public int OnSBBanPlayer(int client, int target, int time, char[] reason)
{
    if(sban == true)
    {
        PrePareMsg(client, target, time, reason);
    }
}

void PrePareMsg(int client, int target, int time, const char[] reason)
{
    char sAuth[32], sName[32],  sAdminName[32], sSourcebans[512], mesaj[256];
    GetClientAuthId(target, AuthId_Steam2, sAuth, sizeof(sAuth));
    GetClientName(target, sName, sizeof(sName));
    if(client && IsClientInGame(client))
    {
        GetClientName(client, sAdminName, sizeof(sAdminName));
    }
    else
    {
        sAdminName = "CONSOLE";
    }
    g_cSourcebans.GetString(sSourcebans, sizeof(sSourcebans));
    Format(mesaj, sizeof(mesaj), "%t", "SOURCEBANS BAN", sSourcebans, sAuth, reason, time, sAdminName, sName);
    SendToDiscord(mesaj);
}

Kod:
"Phrases"
{
    "BANNED"
    {
        "#format"        "{1:N},{2:N},{3:d},{4:s},{5:s},{6:s}"
        "en"            "```BAN \n Yetkili: {1} - SteamID: {6} \n Oyuncu: {2} - SteamID: {5} \n Dakika: {3} \n Neden: {4}```"
    }
    "SOURCEBANS BAN"
    {
        "#format"        "{1:s},{2:s},{3:s},{4:d},{5:s},{6:s}"
        "en"            "```BAN \n SB Link: {1} \n Yetkili: {5} \n Oyuncu: {6} - SteamID: {2} \n Dakika: {4} \n Neden: {3} ```"
    }
}

Kodlar düzgün çalışır diye düşünüyorum deneme fırsatı bulamadım. Ama çeviri dosyasında i s d tanımlamalarını yanlış yapmış olabilirim. Onları da kontrol eder misiniz?
Son Düzenleme: 13-02-2020, 23:18, Düzenleyen: northeaster. (Sebep: ceviri dosyası düzenleme)
#4
Sıkıntı yok.Doğru yapmışssın
#5
(14-02-2020, 09:18)Anıl Can Adlı Kullanıcıdan Alıntı: Sıkıntı yok.Doğru yapmışssın
Konuyu çözüldü olarak güncelleyebilirsin
#6
Konunuz "Çözülmüş İsteklere" taşınmıştır.

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task
Kayıt Ol
Discord Adresimize Katılın