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

FREE CheckPermissions : 1.0.0 1.0.0

Нет прав для скачивания
C#:
using Newtonsoft.Json;
using System.Collections.Generic;
   namespace Oxide.Plugins
{
    [Info("CheckPermissions", "King", "1.0.0")]
    [Description("Данный плагин проверяет игроков на наличие недоброжелательных  пермишенсов")]
    public class CheckPermissions : RustPlugin
    {
        private void OnServerInitialized()
        {
            permission.RegisterPermission(config.BlockSettingsPidoras.PermissionToIgnore, this);
            foreach (var player in BasePlayer.activePlayerList)
            {
                OnPlayerConnected(player);
            }
        }
        private void OnPlayerConnected(BasePlayer player)
        {
            foreach(var perms in config.BlockSettingsPidoras.BanPermissions)
            {
                if(permission.UserHasPermission(player.UserIDString, perms))
                {
                    if (config.BlockSettingsPidoras.WhiteListPlayer.Contains(player.userID))
                    {
                        PrintWarning($"{player.displayName} имеет белый лист и он небыл забанен!");
                        return;
                    }
                    if(config.BlockSettingsPidoras.BanAdmin)
                    {
                        if (player.IsAdmin)
                        {
                            PrintWarning($"{player.displayName} имеет овнерку и он небыл забанен!");
                            if(player.IsAdmin) return;
                        }
                    }
                    if (permission.UserHasPermission(player.UserIDString, config.BlockSettingsPidoras.PermissionToIgnore))
                    {
                        PrintWarning($"{player.displayName} имеет пермишенс и он небыл забанен!");
                        return;
                    }
                    timer.Once(2f, () => {
                            {
                                Server.Command($"ban {player.userID} {config.BlockSettingsPidoras.ReasonBan}");
                            }
                    });
                }
            }
		}
        void OnUserPermissionGranted(string id, string permName)
        {
            var player = BasePlayer.Find(id);
            foreach(var perms in config.BlockSettingsPidoras.BanPermissions)
            {
                if(permission.UserHasPermission(player.UserIDString, perms))
                {
                    if (config.BlockSettingsPidoras.WhiteListPlayer.Contains(player.userID))
                    {
                        PrintWarning($"{player.displayName} имеет белый лист и он небыл забанен!");
                        return;
                    }
                    if(config.BlockSettingsPidoras.BanAdmin)
                    {
                        if (player.IsAdmin)
                        {
                            PrintWarning($"{player.displayName} имеет овнерку и он небыл забанен!");
                            if(player.IsAdmin) return;
                        }
                    }
                    if (permission.UserHasPermission(player.UserIDString, config.BlockSettingsPidoras.PermissionToIgnore))
                    {
                        PrintWarning($"{player.displayName} имеет пермишенс и он небыл забанен!");
                        return;
                    }
                    timer.Once(2f, () => {
                            {
                                Server.Command($"ban {player.userID} {config.BlockSettingsPidoras.ReasonBan}");
                            }
                    });
                }
            }
        }
        static PluginConfig config;
        protected override void LoadDefaultConfig()
        {
            config = PluginConfig.DefaultConfig();
            PrintWarning("По вопросам пишите в дискорде - King.#3906");
        }
        protected override void LoadConfig()
        {
            base.LoadConfig();
            config = Config.ReadObject<PluginConfig>();

            Config.WriteObject(config, true);
        }
        protected override void SaveConfig()
        {
            Config.WriteObject(config);
        }
        public class BlockSettingsPidoras
        {
            [JsonProperty("Не банить игрока который имеет права администратора?")]
            public bool BanAdmin = false;

            [JsonProperty("Пермишенс который игнорирует игроков")]
            public string PermissionToIgnore = "CheckPermissions.ignore";

            [JsonProperty("Причина для бана")]
            public string ReasonBan = "DETECT";

            [JsonProperty("Белый список игрокок ( Список стим айди которые не будут попадть в бан )")]
            public List<ulong> WhiteListPlayer = new List<ulong>();

            [JsonProperty("Список пермишенсов по которым банить игрока")]
            public List<string> BanPermissions = new List<string>();
        }
        private class PluginConfig
        {
            [JsonProperty("Общая настройка плагина")]
            public BlockSettingsPidoras BlockSettingsPidoras = new BlockSettingsPidoras();

            public static PluginConfig DefaultConfig()
            {
                return new PluginConfig
                {
                    BlockSettingsPidoras = new BlockSettingsPidoras()
                    {
                        BanAdmin = false,
                        PermissionToIgnore = "CheckPermissions.ignor",
                        ReasonBan = "DETECT",
                        WhiteListPlayer = new List<ulong>()
                        {
                            76561198415422196,
                            76561198415422198
                        },
                        BanPermissions = new List<string>()
                        {
                            "oxide.grant",
                            "oxide.reload"
                        }
                    },
                };
            }
        }
    }
}

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