Иконка ресурса

FREE RustyBanLite : 1.0.2 1.0.2

Нет прав для скачивания
C#:
using Newtonsoft.Json;
using System;
using Oxide.Core.Plugins;

namespace Oxide.Plugins
{
    [Info("RustyBanLite", "MikeHawke", "1.0.2")]
    [Description("RustyBan.com Community Ban Project")]
    class RustyBanLite : RustPlugin
    {
         [PluginReference]
        private Plugin DiscordMessages;

        private ConfigData configData;
        class ConfigData
        {
            [JsonProperty(PropertyName = "Allow Players But Warn Admin")]
            public bool warn = false;
            [JsonProperty(PropertyName = "Warn To Discord")]
            public bool Discord = false;
            [JsonProperty(PropertyName = "Discord webhook")]
            public string webhook = "http://webhookURL.com";
        }
        void Init()
        {
            if (!LoadConfigVariables())
            {
                Puts("Config file issue detected. Please delete file, or check syntax and fix.");
                return;
            }
        }
         private bool LoadConfigVariables()
        {
            try
            {
                configData = Config.ReadObject<ConfigData>();
            }
            catch
            {
                return false;
            }
            SaveConfig(configData);
            return true;
        }
        protected override void LoadDefaultConfig()
        {
            Puts("Creating new config file.");
            configData = new ConfigData(); SaveConfig(configData);
        }
        void SaveConfig(ConfigData config)
        {
            Config.WriteObject(config, true);
        }
        private class BanData
        {
            [JsonProperty("SteamID")]
            public string SteamID { get; set; }
            [JsonProperty("Name")]
            public string Name { get; set; }
            [JsonProperty("Reason")]
            public string Reason { get; set; }
            public class Get : BanData
            { }
            public string ToJson()
            {  return JsonConvert.SerializeObject(this); }
        }
        void OnPlayerConnected(BasePlayer player)
        {
            var trial = player.userID.ToString();
            webrequest.Enqueue(GetUrl(trial), null, (code, response) =>
            {
                if (code == 200 && !string.IsNullOrEmpty(response))
                {
                    if (response != "{\"Name\":null}")
                    {
                        if (configData.warn == false)
                        {
                        Network.Net.sv.Kick(player.net.connection, rust.QuoteSafe("This Server Is Protected By RustyBan, Your Details Have Appeared On Our Database, You Cannot Access This Server. Appeal Your Ban At RustyBan.com"));
                        PrintWarning($"Player {player.displayName} is on the RustyBans Database and has been kicked");
                        string OutBound = $"Alert Player {player.displayName} is on the RustyBans Database and has been blocked from entering";
                        warn(player, OutBound);
                        return;
                        }
                        else
                        {
                        PrintWarning($"Warning The Player {player.displayName} is on the RustyBans Database");
                        string OutBound = $"Warning Player {player.displayName} is on the RustyBans Database";
                        warn(player, OutBound);
                        return;
                        }
                    }
                    return;
                }
                else
                {
                    PrintError($"API RESPONDED WITH CODE {0}\n{1}", code, response);
                }
            }, this, Core.Libraries.RequestMethod.GET);
        }
        private string GetUrl(string steamid)
        {
            string url = $"http://api.rustyban.com/plugcheck.php?SteamID={steamid}";
            return string.Format(url, steamid);
        }
        void warn(BasePlayer player, string Outbound)
        {
            if (configData.Discord == false) return;
            if (DiscordMessages == null)
            {
                PrintWarning("Discord Messages is required to use this feature");
                return;
            }
            else
            {
            DiscordMessages?.Call("API_SendTextMessage", configData.webhook, Outbound);
            }
        }
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху