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

FREE TeamChat : 1.0.2 1.0.2

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using UnityEngine;
using System.Text;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace Oxide.Plugins {
    [Info("Team Chat", "Waggy", "1.0.2" )]
    [Description("Allows you to send messages to only those in your team" )]
    class TeamChat : RustPlugin {
#region Commands
        [ChatCommand("team" )]
        void SendMessageToTeam(BasePlayer player, string command, string[] args ) {
            var currentTeam = player.currentTeam;
            if (currentTeam == 0 ) {
                player.ChatMessage($"<color=#{config.ErrorMessageColor}>" + lang.GetMessage("NotPartOfTeam", this, player.UserIDString + "</color>" ) );
                return;
            }
            var teamMessage = string.Join(" ", args );
            if (teamMessage.Length == 0 ) {
                player.ChatMessage($"<color=#{config.ErrorMessageColor}>" + lang.GetMessage("NoMessage", this, player.UserIDString + "</color>" ) );
                return;
            }
            RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(currentTeam );
            if (team == null ) {
                player.ChatMessage($"<color=#{config.ErrorMessageColor}>" + lang.GetMessage("NotPartOfTeam", this, player.UserIDString + "</color>" ) );
                return;
            }
            var players = team.members;
            if (team.members.Count <= 1 ) {
                player.ChatMessage($"<color=#{config.ErrorMessageColor}>" + lang.GetMessage("noteammembers", this, player.UserIDString + "</color>" ) );
                return;
            }
            var nameColor = config.PlayerNameColor;
            if (player.IsAdmin ) {
                nameColor = config.AdminNameColor;
            }
            var message = string.Format($"<color=#{config.TeamHeaderColor}>" + lang.GetMessage("TeamHeader", this, player.UserIDString ), "</color>" + $"<color=#{nameColor}>" + player.displayName + "</color>", teamMessage );
            foreach (var teamMember in players ) {
                SendChatMessage(player, teamMember, message );
            }
            Puts(message.ToString() );
        }
        void MessageToTeam(BasePlayer player, string command, string[] args ) {
            SendMessageToTeam(player, command, args );
        }
        public void SendChatMessage(BasePlayer speaker, ulong target, string message ) {
            RelationshipManager.FindByID(target )?.SendConsoleCommand("chat.add", speaker.userID, message );
        }
#endregion
#region Config and Lang
        private ConfigData config;
        protected override void LoadDefaultConfig() {
            Config.WriteObject(new ConfigData(), true );
        }
        private void Init() {
            config = Config.ReadObject<ConfigData>();
            if (config.TeamShorthandCommand ) {
                cmd.AddChatCommand("t", this, MessageToTeam );
            }
        }
        private new void SaveConfig() {
            Config.WriteObject(config, true );
        }
        public class ConfigData {
            [JsonProperty("Team Header Color ( the (TEAM) part of the message )" )]
            public string TeamHeaderColor = "00FF00";
            [JsonProperty("Error Message Color" )]
            public string ErrorMessageColor = "FF0000";
            [JsonProperty("Player Name Color (non-admin)" )]
            public string PlayerNameColor = "54A8FF";
            [JsonProperty("Admin Name Color" )]
            public string AdminNameColor = "A8FF54";
            [JsonProperty("Enable /t ( works the same as /team )" )]
            public bool TeamShorthandCommand = true;
        }
        protected override void LoadDefaultMessages() {
            lang.RegisterMessages(new Dictionary<string, string> {
                {
                    "NotPartOfTeam", "ERROR: You are not part of a team!"
                }
                , {
                    "NoMessage", "ERROR: Please include a message!"
                }
                , {
                    "NoTeamMembers", "ERROR: There's nobody else in your team!"
                }
                , {
                    "TeamHeader", "(TEAM) {0}: {1}"
                }
                ,
            }
            , this );
        }
#endregion
    }
    namespace TeamChatEx {
        public static class TeamChatEx {
            private static StringBuilder coloredTextBuilder = new StringBuilder();
            public static string ChangeColor(this string text, Color color ) {
                coloredTextBuilder.Clear();
                coloredTextBuilder.Append("<color=#" ).Append(((byte)(color.r * 255 ) ).ToString("X2" ) ).Append(((byte)(color.g * 255 ) ).ToString("X2" ) ).Append(((byte)(color.b * 255 ) ).ToString("X2" ) ).Append('>' ).Append(text ).Append("</color>" );
                return coloredTextBuilder.ToString();
            }
        }
    }
}

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