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

FREE NoTwig : 1.0.4 1.0.4

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

namespace Oxide.Plugins
{
    [Info("NoTwig", "wGw", "1.0.4")]
    [Description("Building-blocked players cannot place building blocks. TC auth uses the server as-is.")]
    public class NoTwig : RustPlugin
    {
        private ConfigData _config;

        private class ConfigData
        {
            [JsonProperty("Block twig")]
            public bool BlockTwig = true;

            [JsonProperty("Block ladders")]
            public bool BlockLadders = false;
        }

        protected override void LoadDefaultConfig() => _config = new ConfigData();

        protected override void LoadConfig()
        {
            base.LoadConfig();
            try
            {
                _config = Config.ReadObject<ConfigData>();
                if (_config == null) throw new Exception();
            }
            catch
            {
                PrintError("Config corrupt - loading defaults.");
                LoadDefaultConfig();
            }

            SaveConfig();
        }

        protected override void SaveConfig() => Config.WriteObject(_config, true);

        protected override void LoadDefaultMessages()
        {
            lang.RegisterMessages(new System.Collections.Generic.Dictionary<string, string>
            {
                ["NoBuild"] = "Hard no."
            }, this);
        }

        private object CanBuild(Planner planner, Construction construction, Construction.Target target)
        {
            if (planner == null || construction == null)
                return null;

            if (!_config.BlockTwig && !_config.BlockLadders)
                return null;

            BasePlayer player = planner.GetOwnerPlayer();
            if (player == null || player.IsBuildingAuthed())
                return null;

            if (!player.IsBuildingBlocked())
                return null;

            bool deny = false;
            if (_config.BlockTwig && IsBuildingCore(construction))
                deny = true;
            else if (_config.BlockLadders && IsWoodenLadder(construction))
                deny = true;

            if (!deny)
                return null;

            player.ChatMessage(lang.GetMessage("NoBuild", this, player.UserIDString));
            return false;
        }

        private static bool IsBuildingCore(Construction construction)
        {
            string name = construction.fullName;
            return name != null && name.IndexOf("building core", StringComparison.OrdinalIgnoreCase) >= 0;
        }

        private static bool IsWoodenLadder(Construction construction)
        {
            string name = construction.fullName;
            return name != null && name.IndexOf("ladder.wooden", StringComparison.OrdinalIgnoreCase) >= 0;
        }
    }
}

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