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

FREE NoFlykick : 1.3.3 1.3.3

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

namespace Oxide.Plugins
{
    [Info("No Flykick", "August", "1.3.3")]
    [Description("Allows players with permission to bypass flyhack kicks.")]
    class NoFlykick : RustPlugin
    {
        #region Fields/Initialization
        private const string permUse = "noflykick.use";
        private const string permManage = "noflykick.manage";
        private bool IsEnabled;

        private void Init()
        {
            IsEnabled = true;

            permission.RegisterPermission(permUse, this);
            permission.RegisterPermission(permManage, this);
        }
        #endregion

        #region Localization
        protected override void LoadDefaultMessages()
        {
            // English
            lang.RegisterMessages(new Dictionary<string, string> {
                ["NoPerm"] = "Error: No Permission",
                ["Syntax"] = "Error: Syntax",
                ["Unknown Argument"] = " Error: Unknown Argument",

                ["Enabled"] = "Flyhack kick overrides are currently enabled for admins.",
                ["Disabled"] = "Flyhack kick overrides are currently disabled for admins.",

                ["NowEnabled"] = "Flyhack kick overrides are now enabled for admins",
                ["NowDisabled"] = "Flyhack kick overrides are now disabled for admins",

                ["Help Text"] = "Commands: \n" +
                                "/nokick stat/status - Prints whether or not flyhack kick override is enabled.\n" +
                                "/nokick toggle - Toggles flyhack kick override on or off."
        }, this);
        }
        #endregion

        #region Functions
        private void GetStatus(BasePlayer player)
        {
            if (IsEnabled)
            {
                player.ChatMessage(Lang("Enabled", player.UserIDString));
            }
            else
            {
                player.ChatMessage(Lang("Disabled", player.UserIDString));
            }
        }
        private void Toggle(BasePlayer player)
        {
            if (IsEnabled)
            {
                Unsubscribe(nameof(OnPlayerViolation));
                player.ChatMessage(Lang("NowDisabled", player.UserIDString));
            }
            else
            {
                Subscribe(nameof(OnPlayerViolation));
                player.ChatMessage(Lang("NowEnabled", player.UserIDString));
            }
            IsEnabled = !IsEnabled;
        }
        
        private string Lang(string key, string id = null, params object[] args) => string.Format(lang.GetMessage(key, this, id), args);
        #endregion

        #region Commands
        [ChatCommand("nokick")]
        private void NoKickChatCommand(BasePlayer player, string cmd, string[] args)
        {
            if (!permission.UserHasPermission(player.UserIDString, permManage))
            {
                player.ChatMessage(Lang("NoPerm", player.UserIDString));
                return;
            }
            if (args.Length != 1)
            {
                player.ChatMessage(Lang("Syntax", player.UserIDString));
                return;
            }

            switch (args[0].ToLower())
            {
                case "stat":
                case "status":
                    GetStatus(player);                 
                    break;

                case "toggle":
                    Toggle(player);            
                    break;

                case "help":
                    player.ChatMessage(Lang("Help Text", player.UserIDString));
                    break;

                default:
                    player.ChatMessage(Lang("Unknown Argument", player.UserIDString));
                    break;
            }
        }
        #endregion

        #region Hooks
        object OnPlayerViolation(BasePlayer player, AntiHackType type, float amount)
        {
            if (type != AntiHackType.FlyHack)
            {
                return null;
            }
            if (permission.UserHasPermission(player.UserIDString, permUse))
            {
                return false;
            }
            return null;
        }
        #endregion
    }
}

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