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

FREE ClanTags : 0.8 0.8

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using Oxide.Core;
using System;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Collections;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Oxide.Plugins
{
    [Info("Clan Tags", "GreenArrow", "0.8", ResourceId = 2450)]
    [Description("Adding support for Clan tags in Better Chat.")]

    class ClanTags : CovalencePlugin
    {
        [PluginReference]
        private Plugin BetterChat,Clans,HWClans;
		
		object defaultClanCol,before,after;
		Dictionary<string,string> perClanColor;
		
        protected override void LoadDefaultConfig() {
			Config.Clear();
            Config["defaultClanCol"] = "FFA500";
            Config["BeforeTag"] = "[";
            Config["AfterTag"] = "]";
			Config["PerClanColor"] = new Dictionary<string, string> {{"ThisIsClanTag > That is color (dont use #) >", "808000"}, {"example", "00FF00"}};
		    SaveConfig();
		}
	    
	
        private string GetUsersClan(IPlayer player) {
			
    		string clan = (string)Clans?.Call("GetClanOf",player.Object);
			
		if (clan == null)
		    return null;
		
		return clan;
		}
		
	
        private string GetClanOwner(string lol) {

    		JObject claninfo = (JObject)Clans?.Call("GetClan",lol);	
		    
			string clanowner = (string)claninfo["owner"];

    			return clanowner;
		 
		    return null;
		}
		
        private string GetClanTagFormatted(IPlayer player)
        {	

			string clantag = GetUsersClan(player);
            string togetherstring = covalence.FormatText($"[#{defaultClanCol}]{before}{clantag}{after}[/#]");

   		
            if (clantag != null && !string.IsNullOrEmpty(clantag))
			{

	            foreach (KeyValuePair<string,string> pair in perClanColor)
                {
			    	string custcol = pair.Value;
			            if (clantag == pair.Key)
			    		togetherstring = covalence.FormatText($"[#{custcol}]{before}{clantag}{after}[/#]");
			    }	
			    
			    return togetherstring;
			}
			return null;

        }
		
		private void OnPluginLoaded(Plugin plugin)
		{
			if (plugin.Title != "Better Chat")
				return;

    		Interface.CallHook("API_RegisterThirdPartyTitle", this, new Func<IPlayer, string>(GetClanTagFormatted));

		}
		
        [Command("clancolor")]
        void ChangeClanCol(IPlayer player, string command, string[] args)
        {
		    
			if (permission.UserHasPermission(player.Id, "clantags.admin") && args.Length == 2)
            {
			
			if (perClanColor.ContainsKey(args[0]))
			perClanColor.Remove(args[0]);
			
			perClanColor.Add(args[0],args[1]);
			Config.Set("PerClanColor", perClanColor);
			SaveConfig();
			player.Reply($"<size=15><color=#31e231>[ClanTags]</color></size> <color=#{args[1]}> {args[0]}</color> was added to clan tags colors.");		    

			
			} else
			if (!permission.UserHasPermission(player.Id, "clantags.admin"))
			player.Reply($"<size=15><color=#31e231>[ClanTags]</color></size> You don't have permission!");
            
            else if (args.Length <= 1)
		    player.Reply($"<size=15><color=#31e231>[ClanTags]</color></size> Not enough infomation given! <color=#c4c103>Example: /clancol test 800000</color>");


        }
	
        [Command("clantag")]
        void ChangeClanTagOwner(IPlayer player, string command, string[] args)
        {
		    string clantag = GetUsersClan(player);
				
			if (permission.UserHasPermission(player.Id, "clantags.default") && args.Length == 1 && (clantag != null) && (GetClanOwner(clantag) == (string)player.Id))
            {
			if (perClanColor.ContainsKey(clantag))
			perClanColor.Remove(clantag);
			
			perClanColor.Add(clantag,args[0].Substring(1,6));
			Config.Set("PerClanColor", perClanColor);
			SaveConfig();
			player.Reply($"<size=15><color=#31e231>[ClanTags]</color></size> <color=#{args[0].Substring(1,6)}> {clantag}</color> your clan tag has been updated.");		    

			} else

			if (!permission.UserHasPermission(player.Id, "clantags.default"))
			player.Reply($"<size=15><color=#31e231>[ClanTags]</color></size> You don't have permission!");
            
            if (args.Length <= 0)
		    player.Reply($"<size=15><color=#31e231>[ClanTags]</color></size> Not enough infomation given! <color=#c4c103>Example: /clantag 800000</color>");
				
			if ((clantag != null) && (GetClanOwner(clantag) != (string)player.Id) )
		    player.Reply($"<size=15><color=#31e231>[ClanTags]</color></size> Only the clan owner is allowed to change the clans tag color.");		    
				
			if (clantag == null)
			player.Reply($"<size=15><color=#31e231>[ClanTags]</color></size> You're not in a clan.");		    

        }

		
        void OnServerInitialized()
		{

    		defaultClanCol = Config["defaultClanCol"];
            before = Config["BeforeTag"];
		    after = Config["AfterTag"];
			perClanColor = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(Config["PerClanColor"]));
            permission.RegisterPermission("clantags.admin", this);
			permission.RegisterPermission("clantags.default", this);
						
    		BetterChat?.CallHook("API_RegisterThirdPartyTitle", this, new Func<IPlayer, string>(GetClanTagFormatted));

		}
		
	}
}

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