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

FREE SkinsOptimization : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("SkinsOptimization", "bazuka5801", "1.0.0")]
    class SkinsOptimization : RustPlugin
    {
        #region FIELDS

        private List<ulong> PlayersActivated = new List<ulong>();
        
        #endregion

        #region OXIDE HOOKS

        void OnServerInitialized()
        {
            LoadDefaultConfig();
            lang.RegisterMessages(Messages, this, "en");
            Messages = lang.GetMessages("en", this);
            LoadData();
            foreach (var player in BasePlayer.activePlayerList) OnPlayerInit(player);
        }

        void Unload()
        {
            SaveData();
        }

        void OnPlayerConnected(Network.Message packet)
        {
            var player = packet.Player();
            if (player)
                OnPlayerInit(player);
        }

        void OnPlayerInit(BasePlayer player)
        {
            ItemSkinsCommand(player, PlayersActivated.Contains(player.userID));
        }

        [ChatCommand("skinon")]
        void cmdChatSkinOn(BasePlayer player, string command, string[] args)
        {
            if (!PlayersActivated.Contains(player.userID))
            {
                PlayersActivated.Add(player.userID);
                ItemSkinsCommand(player, true);
                SendReply(player, Messages["skinsOn"]);
            }
            else
            {
                SendReply(player, Messages["alreadyOn"]);
            }
        }

        [ChatCommand("skinoff")]
        void cmdChatSkinOff(BasePlayer player, string command, string[] args)
        {
            if (PlayersActivated.Contains(player.userID))
            {
                PlayersActivated.Remove(player.userID);
                ItemSkinsCommand(player, false);
                SendReply(player, Messages["skinsOff"]);
            }
            else
            {
                SendReply(player, Messages["alreadyOff"]);
            }
        }

        #endregion

        #region CORE

        void ItemSkinsCommand(BasePlayer player, bool value)
        {
            player.SendConsoleCommand($"itemskins {(value ? 1 : 0)}");
        }
        
        #endregion

        #region DATA

        private readonly DynamicConfigFile PlayersActivatedFile = Interface.Oxide.DataFileSystem.GetFile("Skins.PlayersActivated");

        void OnServerSave() => SaveData();

        void LoadData()
        {
            PlayersActivated = PlayersActivatedFile.ReadObject<List<ulong>>();
        }

        void SaveData()
        {
            PlayersActivatedFile.WriteObject(PlayersActivated);
        }

        #endregion

        #region LOCALIZATION

        Dictionary<string, string> Messages = new Dictionary<string, string>()
        {
            { "skinsCurrentlyDisabled", "У вас выключены скины!\nЧтобы включить используйте /skin on\nЧтобы выключить используйте /skin off" },
            { "skinsOff", "Скины отключены!\nЧтобы включить используйте /skin on\nЧтобы выключить используйте /skin off" },
            { "skinsOn", "Скины включены!\nЧтобы включить используйте /skin on\nЧтобы выключить используйте /skin off" },
            { "alreadyOn", "У вас уже включены скины!" },
            { "alreadyOff", "У вас уже выключены скины!" }
        };

        #endregion
    }
}

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