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

FREE GameProtection : 1.0 1.0

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

namespace Oxide.Plugins
{
    [Info("GameProtection", "<3", "1.0")]
    public class GameProtection : RustPlugin
    {
        #region Variables

        Dictionary<BasePlayer, Timer> tmrList = new Dictionary<BasePlayer, Timer>();

        private Configuration _config;

        #endregion

        #region Configuration

        public class Configuration
        {
            [JsonProperty("Причина кика, если не запущен античит")]
            public string ReasonNoConnect = "Не обнаружено соединение с античитом!";

            [JsonProperty("Причина кика, если человек был забанен в античите")]
            public string ReasonBanned = "Вы забанены! Для разблокировки обращайтесь в тех.поддержку!";

            [JsonProperty("Причина кика, если человек выключил античит")]
            public string ReasonOFF = "Античит неожиданно закрыл подключение!";
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();
            try
            {
                this._config = Config.ReadObject<Configuration>();
            }
            catch
            {
                PrintError("Произошла ошибка в чтении конфига!");
            }
        }

        protected override void LoadDefaultConfig()
        {
            Config.WriteObject(new Configuration(), true);
        }

        #endregion

        #region Join

        void OnPlayerInit(BasePlayer player)
        {
                webrequest.Enqueue($"http://a0576975.xsph.ru/admin/connections/{player.userID}.txt", null, (code, response) =>
                {
                if (code != 200 || response == null)
                {
                    player.Kick(_config.ReasonNoConnect);
                }
                if (response.StartsWith("Banned"))
                {
                    player.Kick(_config.ReasonBanned);
                }
                if (!response.StartsWith("Connected"))
                {
                    player.Kick(_config.ReasonNoConnect);
                }
            }, this, RequestMethod.GET);
            tmrList.Add(player, timer.Every(10f, () =>
            {
                webrequest.Enqueue($"http://a0576975.xsph.ru/admin/connections/{player.userID}.txt", null, (code, response) =>
                {
                    if (code != 200 || response == null)
                    {
                        player.Kick(_config.ReasonOFF);
                    }               
                    if (response.StartsWith("Banned"))
                    {
                        player.Kick(_config.ReasonBanned);
                    }
                    if (!response.StartsWith("Connected"))
                    {
                        player.Kick(_config.ReasonOFF);
                    }
                }, this, RequestMethod.GET);
            }));
        }

        #endregion

        #region Timer

        void OnPlayerDisconnected(BasePlayer player, string reason)
        {
            if(tmrList.ContainsKey(player))
            {
                Timer t;
                tmrList.TryGetValue(player, out t);
                t.Destroy();
                tmrList.Remove(player);
            }
        }

        #endregion
    }
}

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