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

FREE Agriblock : 1.0.9 1.0.9

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

namespace Oxide.Plugins
{
    [Info("Agriblock", "Death", "1.0.9")]
    [Description("Forces configured plant types to only be planted in planters")]
    class Agriblock : RustPlugin
    {
        #region Hooks
        private void OnEntityBuilt(Planner plan, GameObject entity)
        {
            var player = plan.GetOwnerPlayer();
            var seed = entity.GetComponent<GrowableEntity>();

            if (player == null || seed == null)
            {
                return;
            }

            var held = player.GetActiveItem();

            if (held == null)
            {
                return;
            }

            NextTick(() =>
            {
                var parentEntity = seed.GetParentEntity();

                if (parentEntity != null && parentEntity is not PlanterBox)
                {
                    switch (held.info.shortname)
                    {
                        case "seed.corn":
                            if (!configData.Types.CornEnabled)
                                return;
                            break;

                        case "clone.corn":
                            if (!configData.Types.CornCloneEnabled)
                                return;
                            break;

                        case "seed.pumpkin":
                            if (!configData.Types.PumpkinEnabled)
                                return;
                            break;

                        case "clone.pumpkin":
                            if (!configData.Types.PumpkinCloneEnabled)
                                return;
                            break;

                        case "seed.hemp":
                            if (!configData.Types.HempEnabled)
                                return;
                            break;

                        case "clone.hemp":
                            if (!configData.Types.HempCloneEnabled)
                                return;
                            break;

                        case "seed.black.berry":
                            if (!configData.Types.BlackBerryEnabled)
                                return;
                            break;

                        case "seed.blue.berry":
                            if (!configData.Types.BlueBerryEnabled)
                                return;
                            break;

                        case "seed.green.berry":
                            if (!configData.Types.GreenBerryEnabled)
                                return;
                            break;

                        case "seed.orchid":
                            if (!configData.Types.OrchidEnabled)
                                return;
                            break;

                        case "seed.yellow.berry":
                            if (!configData.Types.YellowBerryEnabled)
                                return;
                            break;

                        case "seed.sunflower":
                            if (!configData.Types.SunflowerEnabled)
                                return;
                            break;

                        case "seed.wheat":
                            if (!configData.Types.WheatEnabled)
                                return;
                            break;

                        case "seed.potato":
                            if (!configData.Types.PotatoEnabled)
                                return;
                            break;

                        case "seed.red.berry":
                            if (!configData.Types.RedBerryEnabled)
                                return;
                            break;

                        case "seed.rose":
                            if (!configData.Types.RoseEnabled)
                                return;
                            break;

                        default:
                            return;
                    }

                    SendReply(player, lang.GetMessage("errmsg", this, player.UserIDString).Replace("{seed}", held.info.displayName.english));
                    seed.Kill(BaseNetworkable.DestroyMode.None);

                    if (configData.Options.Refund)
                    {
                        var refund = ItemManager.CreateByName(held.info.shortname, 1);

                        if (refund != null)
                        {
                            player.inventory.GiveItem(refund);
                        }
                    }
                }
            });
        }
        #endregion

        #region Config
        void Init()
        {
            LoadConfigVariables();
        }

        private ConfigData configData;

        class ConfigData
        {
            public Options Options = new Options();
            public Types Types = new Types();
        }

        class Options
        {
            public bool Refund = true;
        }

        class Types
        {
            public bool CornEnabled = true;
            public bool CornCloneEnabled = true;
            public bool PumpkinEnabled = true;
            public bool PumpkinCloneEnabled = true;
            public bool HempEnabled = true;
            public bool HempCloneEnabled = true;
            public bool BlackBerryEnabled = true;
            public bool BlueBerryEnabled = true;
            public bool GreenBerryEnabled = true;
            public bool YellowBerryEnabled = true;
            public bool RedBerryEnabled = true;
            public bool OrchidEnabled = true;
            public bool SunflowerEnabled = true;
            public bool WheatEnabled = true;
            public bool PotatoEnabled = true;
            public bool RoseEnabled = true;
        }

        private void LoadConfigVariables()
        {
            configData = Config.ReadObject<ConfigData>();
            SaveConfig(configData);
        }

        protected override void LoadDefaultConfig()
        {
            var config = new ConfigData();

            SaveConfig(config);
        }

        void SaveConfig(ConfigData config)
        {
            Config.WriteObject(config, true);
        }
        #endregion

        #region Localization
        protected override void LoadDefaultMessages()
        {
            lang.RegisterMessages(new Dictionary<string, string>()
            {
                {"errmsg", "You may not plant {seed} outside of a planter!" }
            }, this, "en");
        }

        private string msg(string key, string id = null)
        {
            return lang.GetMessage(key, this, id);
        }
        #endregion
    }
}

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