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

FREE FreeRT : 0.1.5 0.1.5

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

namespace Oxide.Plugins
{
    [Info("Free RT", "Menevt", "0.1.5")]
    [Description("Allows players to open card locked doors inside Rad Towns by knocking.")]
    class FreeRT : CovalencePlugin
    {
		#region Variables
        private const string PERMISSION_ALL = "freert.all";
        private const string PERMISSION_GREEN = "freert.green";
        private const string PERMISSION_BLUE = "freert.blue";
        private const string PERMISSION_RED = "freert.red";

        public string GreenDoor = "door.hinged.security.green";
        public string BlueDoor = "door.hinged.security.blue";
        public string RedDoor = "door.hinged.security.red";
		#endregion
		
        private void Init()
        {
            permission.RegisterPermission(PERMISSION_ALL, this);
            permission.RegisterPermission(PERMISSION_GREEN, this);
            permission.RegisterPermission(PERMISSION_BLUE, this);
            permission.RegisterPermission(PERMISSION_RED, this);
		}
		
		
		#region Configuration
		private static Configuration _config;

		private class Configuration
		{
			[JsonProperty(PropertyName = "Close Time")]
			public float CloseTime = 2;

			[JsonProperty(PropertyName = "Show NotAllowed Message")]
			public bool ShowNotAllowedMessage = true;
		}

		protected override void LoadConfig()
		{
			base.LoadConfig();
			try
			{
				_config = Config.ReadObject<Configuration>();
				if (_config == null) throw new Exception();
				SaveConfig();
			}
			catch
			{
				PrintError("Your configuration file contains an error.Using default configuration values.");
				LoadDefaultConfig();
			}
		}

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

		protected override void LoadDefaultConfig() => _config = new Configuration();
		#endregion
		
		#region Language
		protected override void LoadDefaultMessages()
		{
			lang.RegisterMessages(new Dictionary<string, string>
			{
			["NotAllowed"] = "You do not have permission to open this door without the card!"
			}, this);
			lang.RegisterMessages(new Dictionary<string, string>
			{
				["NotAllowed"] = "У вас недостаточно прав для открытия этой двери без карточки!"
			}, this, "ru");
		}
		#endregion
		
		#region Methods
		private void OpenDoor(Door door)
        {
	        door.SetFlag(BaseEntity.Flags.Open, true);
	        timer.Once(_config.CloseTime, () =>
	        {
		        door.SetFlag(BaseEntity.Flags.Open, false);
	        });
        }
		#endregion
		
		#region OpenDoors
		void OnDoorKnocked(Door door, BasePlayer player)
		{
			if(!(door.ShortPrefabName == GreenDoor || door.ShortPrefabName == BlueDoor || door.ShortPrefabName == RedDoor))
				return;
			if(permission.UserHasPermission(player.UserIDString, PERMISSION_ALL))
			{
				OpenDoor(door);
				return;
			}

			if (door.ShortPrefabName == GreenDoor && permission.UserHasPermission(player.UserIDString, PERMISSION_GREEN))
			{
				OpenDoor(door);
				return;
			}

			if (door.ShortPrefabName == BlueDoor && permission.UserHasPermission(player.UserIDString, PERMISSION_BLUE))
			{
				OpenDoor(door);
				return;
			}

			if (door.ShortPrefabName == RedDoor && permission.UserHasPermission(player.UserIDString, PERMISSION_RED))
			{
				OpenDoor(door);
				return;
			}
			
			if(_config.ShowNotAllowedMessage)
				player.ChatMessage(lang.GetMessage("NotAllowed", this, player.UserIDString));
		}
		#endregion

		#region Unload

		void Unload()
		{
			_config = null;
		}

		#endregion
	}
}

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