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

FREE BackpackBlockList : 0.1.0 0.1.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections;
using System.Collections.Generic;

namespace Oxide.Plugins
{
    [Info("Backpack Block List", "st-little", "0.1.0")]
    [Description("Blocks items registered in the block list from moving to the backpack.")]
    public class BackpackBlockList : RustPlugin
    {
        #region Fields

        private const string PermissionUse = "backpackblocklist.use";
        private const string PermissionBypass = "backpackblocklist.bypass";

        #endregion

        #region Configuration

        private Configuration _configuration;

        private class Configuration
        {
            public List<string> BlockItemShortNames;
            public List<ulong> IgnoreSkins;
        }

        private Configuration GetDefaultConfig()
        {
            return new Configuration
            {
                BlockItemShortNames = new List<string>(),
                IgnoreSkins = new List<ulong>(),
            };
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();

            try
            {
                _configuration = Config.ReadObject<Configuration>();

                if (_configuration == null)
                    LoadDefaultConfig();
            }
            catch
            {
                PrintError("Configuration file is corrupt! Check your config file at https://jsonlint.com/");
                LoadDefaultConfig();
                return;
            }

            SaveConfig();
        }

        protected override void LoadDefaultConfig() => _configuration = GetDefaultConfig();
        protected override void SaveConfig() => Config.WriteObject(_configuration);

        #endregion

        #region Oxide hooks

        void Init()
        {
            permission.RegisterPermission(PermissionUse, this);
            permission.RegisterPermission(PermissionBypass, this);
        }

        object CanMoveItem(Item item, PlayerInventory playerLoot, ItemContainerId targetContainer, int targetSlot, int amount, ItemMoveModifier itemMoveModifier)
        {
            BasePlayer? player = playerLoot.GetBaseEntity() as BasePlayer;
            if (player == null) return null;

            if (!permission.UserHasPermission(player.UserIDString, PermissionUse) ||
                permission.UserHasPermission(player.UserIDString, PermissionBypass))
                return null;

            ItemContainer backpackContainer = playerLoot.GetContainer(PlayerInventory.Type.BackpackContents);
            if (backpackContainer == null) return null;

            if (!targetContainer.Equals(backpackContainer.uid)) return null;

            bool isBlockItem = _configuration.BlockItemShortNames.Contains(item.info.shortname);
            bool isIgnoreSkin = _configuration.IgnoreSkins.Contains(item.skin);
            if (!isBlockItem || isIgnoreSkin) return null;

            (playerLoot.GetBaseEntity() as BasePlayer)?.ChatMessage("You can't move this item to the backpack.");

            return false;
        }

        #endregion
    }
}

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