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

FREE ChangeName : 0.1.0 0.1.0

Нет прав для скачивания
C#:
using Newtonsoft.Json;
using Oxide.Core;
using System.Collections.Generic;
using System.Linq;
namespace Oxide.Plugins {
    [Info("ChangeName", "TopPlugin.ru", "0.1.0")]
    class ChangeName : RustPlugin {
        private PluginConfig config;
        protected override void LoadDefaultConfig() {
            PrintWarning("Благодарим за заказ плагина на сайте TopPlugin.ru.Если вы передадите этот плагин сторонним лицам знайте - это лишает вас гарантированных обновлений!");
            config = PluginConfig.DefaultConfig();
        }
        protected override void LoadConfig() {
            base.LoadConfig();
            config = Config.ReadObject<PluginConfig>();
            if (config.PluginVersion < Version) UpdateConfigValues();
            Config.WriteObject(config, true);
        }
        private void UpdateConfigValues() {
            PluginConfig baseConfig = PluginConfig.DefaultConfig();
            if (config.PluginVersion < new VersionNumber(1, 0, 1)) {
                PrintWarning("Config update detected! Updating config values...");
                PrintWarning("Config update completed!");
            }
            config.PluginVersion = Version;
        }
        protected override void SaveConfig() {
            Config.WriteObject(config);
        }
        private class PluginConfig {
            [JsonProperty("Версия конфигурации")]
            public VersionNumber PluginVersion = new VersionNumber();
            [JsonProperty("Привилегия")]
            public string Permission;
            [JsonProperty("Список имет какие мы удаляем")]
            public List<object> StringsToRemove = new List<object>();
            public static PluginConfig DefaultConfig() {
                return new PluginConfig() {
                    PluginVersion = new VersionNumber(), Permission = "ChangeName.allowed", StringsToRemove = new List<object>() {
                        "#magicrust", "magicrust", "grand-rust", "#MAGICRUST", "magicdrop.ru", "Grand-Rust", "rustlife", "tastydrop.ru", "ZTESLA.RU", "cs.money.ru", "BONEBLOOD.RU", "grand-rust.ru"
                    }
                }
                ;
            }
        }
        private string RemoveUnwantedNames(BasePlayer player) {
            string newName = player.displayName;
            foreach (string text in config.StringsToRemove) {
                newName = newName.Replace(text, "");
            }
            newName = string.IsNullOrEmpty(newName) ? player.UserIDString : newName;
            return newName;
        }
        void OnServerInitialized() {
            BasePlayer.activePlayerList.ToList().ForEach(OnPlayerConnected);
        }
        void OnPlayerConnected(BasePlayer player) {
            if (PlayersSettings.ContainsKey(player.userID) && string.IsNullOrEmpty(PlayersSettings[player.userID].OldName) && player.displayName != PlayersSettings[player.userID].OldName) PlayersSettings[player.userID].OldName = player.displayName;
            if (PlayersSettings.ContainsKey(player.userID) && !string.IsNullOrEmpty(PlayersSettings[player.userID].NewName) && player.displayName != PlayersSettings[player.userID].NewName && permission.UserHasPermission(player.UserIDString, config.Permission)) Rename(player, PlayersSettings[player.userID].NewName);
            ClearAdvertising(player, RemoveUnwantedNames(player));
        }
        void Loaded() {
            LoadData();
            permission.RegisterPermission(config.Permission, this);
        }
        void SaveData() {
            if (PlayersSettings != null) Interface.Oxide.DataFileSystem.WriteObject(Name, PlayersSettings);
        }
        void Unload() {
            SaveData();
        }
        public Dictionary<ulong, PlayerSettingName> PlayersSettings = new Dictionary<ulong, PlayerSettingName>();
        public class PlayerSettingName {
            public string OldName = "";
            public string NewName = "";
        }
        void LoadData() {
            try {
                PlayersSettings = Interface.GetMod().DataFileSystem.ReadObject<Dictionary<ulong, PlayerSettingName>>(Name);
            }
            catch {
                PlayersSettings = new Dictionary<ulong, PlayerSettingName>();
            }
        }
        public void ClearAdvertising(BasePlayer player, string name) {
            name = (string.IsNullOrEmpty(name.Trim()) ? player.displayName : name);
            player.net.connection.username = name;
            player.displayName = name;
            player._name = name;
            player.SendNetworkUpdateImmediate(false);
            player.IPlayer.Name = name;
            permission.UpdateNickname(player.UserIDString, name);
        }
        public void Rename(BasePlayer player, string name) {
            name = (string.IsNullOrEmpty(name.Trim()) ? player.displayName : name);
            var data = PlayersSettings[player.userID];
            if (string.IsNullOrEmpty(data.OldName)) data.OldName = player.displayName;
            data.NewName = name;
            player.net.connection.username = name;
            player.displayName = name;
            player._name = name;
            player.SendNetworkUpdateImmediate(false);
            player.IPlayer.Name = name;
            permission.UpdateNickname(player.UserIDString, name);
        }
        [ChatCommand("name")]
        void cmdChangeName(BasePlayer player, string command, string[] args) {
            if (!permission.UserHasPermission(player.UserIDString, config.Permission)) return;
            if (args == null || args.Length <= 0) return;
            if (!PlayersSettings.ContainsKey(player.userID)) PlayersSettings.Add(player.userID, new PlayerSettingName());
            var data = PlayersSettings[player.userID];
            if (args[0] == "back" && args.Length == 1) {
                if (string.IsNullOrEmpty(data.OldName)) {
                    SendReply(player, "У Вас <color=#00ff7f>не указано</color> старое имя, или оно пустое.ВЫ не можете вернуть его");
                    return;
                }
                Rename(player, data.OldName);
                SendReply(player, $"Ваше имя успешно установлено на <color=#00ff7f>{player.displayName}</color>");
                return;
            }
            var name = string.Join(" ", args);
            Rename(player, name);
            SendReply(player, $"Ваше имя успешно установлено на <color=#00ff7f>{player.displayName}</color>");
        }
    }
}

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

Другие ресурсы пользователя 15FPS

Сверху