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

FREE CupboardNoDecay : 1.0.5 1.0.5

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

namespace Oxide.Plugins
{
    [Info("CupboardNoDecay", "Dubz", "1.0.5", ResourceId = 2341)]
    [Description("Decay items without build priv")]
    public class CupboardNoDecay : RustPlugin
    {
		ConfigData configData;
		
		void OnServerInitialized()
        {
            LoadVariables();
			permission.RegisterPermission("CupboardNoDecay.Enabled", this);
		}
		
		void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo hitInfo)
		{
			
			if (!hitInfo.damageTypes.Has(Rust.DamageType.Decay)) return;
			ulong hitEntityOwnerID = entity.OwnerID != 0 ? entity.OwnerID: hitInfo.HitEntity.OwnerID;
			
			var multiplier = 1.0f;

			
			if (CupboardPrivlidge(entity.transform.position, hitEntityOwnerID))
			{
				multiplier = 0.0f;
				//var block = entity as BuildingBlock;
				//if (block != null){
				//	switch (block.grade)
				//	{
				//		case BuildingGrade.Enum.Twigs:
				//			multiplier = 1.0f;
				//			break;
				//	};
				//}
			}
			
			hitInfo.damageTypes.Scale(Rust.DamageType.Decay, multiplier);
			
        }
		
					
		private bool CupboardPrivlidge(Vector3 position, ulong hitEntityOwnerID)
        {
		    float distance = 1f;
            List<BaseEntity> list = new List<BaseEntity>();
            Vis.Entities<BaseEntity>(position, distance, list);

            foreach (var ent in list)
            {
			    var buildingPrivlidge = ent.GetComponentInParent<BuildingPrivlidge>();
                if (buildingPrivlidge != null)
                {
					if (configData.CheckAuth)
					{
						foreach (var auth in buildingPrivlidge.authorizedPlayers.Select(x => x.userid).ToArray())
						{
							if (auth.ToString() == hitEntityOwnerID.ToString())
							{
								if (HasPerm(auth.ToString()))
								{

									return true;
								}
							}
						}

						return false;
					}
				
					return true;
                }
            }

		    return false;
        }
		
		class ConfigData
        {
            public bool CheckAuth { get; set; }
        }

        protected override void LoadDefaultConfig()
        {
            var config = new ConfigData
            {
                CheckAuth = true,
            };
            SaveConfig(config);
        }

        void LoadVariables()
        {
            LoadConfigVariables();
            SaveConfig();
        }

        void LoadConfigVariables() => configData = Config.ReadObject<ConfigData>();
        private bool HasPerm(string steamId) => permission.UserHasPermission(steamId, "CupboardNoDecay.Enabled");
        void SaveConfig(ConfigData config) => Config.WriteObject(config, true);
	}
}

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