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

FREE kryNickReward : 1.0.1 1.0.1

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

namespace Oxide.Plugins
{
	[Info("kryNickReward", "xkrystalll", "1.0.1")]
	class kryNickReward : RustPlugin
	{
		private ConfigData cfg;
		public class ConfigData
		{
			[JsonProperty("Включить награду за ник?")]
			public bool IsEnabled;

			[JsonProperty("Включить выдачу прав?")]
			public bool EnablePermissionGrant;

			[JsonProperty("Включить выдачу групп?")]
			public bool EnableGroupGrant;

			[JsonProperty("Какие права выдавать, если в нике есть слова ниже? (может быть пустым)")]
			public List<string> PermissionsToGrant;

			[JsonProperty("Какие группы выдавать, если в нике есть слова ниже? (может быть пустым)")]
			public List<string> GroupsToGrant;

			[JsonProperty("Какие должны быть слова в нике?")]
			public List<string> Prefixes;

			[JsonProperty("Забирать права, если человек зашёл без приставки?")]
			public bool RevokePermWithoutPrefix;
		}

		protected override void LoadDefaultConfig()
		{
			var config = new ConfigData
			{
				IsEnabled = true,
				EnablePermissionGrant = true,
				EnableGroupGrant = true,
				PermissionsToGrant = new()
				{
					"permission.one",
					"permission.two"
				},
				GroupsToGrant = new()
				{
					"group1",
					"group2"
				},
				Prefixes = new()
				{
					"testplugin",
					"topserver"
				},
				RevokePermWithoutPrefix = true
			};
			SaveConfig(config);
		}

		protected override void LoadConfig()
		{
			base.LoadConfig();
			cfg = Config.ReadObject<ConfigData>();
			SaveConfig(cfg);
		}

		private void SaveConfig(object config)
		{
			Config.WriteObject(config, true);
		}


		private void OnServerInitialized()
		{
			PrintWarning($"Initialized {cfg.Prefixes.Count} prefixes!");
		}

		private void OnPlayerConnected(BasePlayer player)
		{
			if (!cfg.IsEnabled)
				return;

			var nickname = player.displayName.ToLower();

			foreach (var prefix in cfg.Prefixes)
			{
				if (nickname.Contains(prefix.ToLower()))
				{
					if (cfg.EnableGroupGrant)
						foreach (var x in cfg.GroupsToGrant)
							player.IPlayer.AddToGroup(x);

					if (cfg.EnablePermissionGrant)
						foreach (var x in cfg.PermissionsToGrant)
							player.IPlayer.GrantPermission(x);
					return;
				}
			}

			if (cfg.RevokePermWithoutPrefix)
			{
				foreach (var x in cfg.PermissionsToGrant)
					player.IPlayer.RevokePermission(x);

				foreach (var x in cfg.GroupsToGrant)
					player.IPlayer.RemoveFromGroup(x);
			}
		}
	}
}

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