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

FREE FirstJoinReward : 0.0.2 0.0.2

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

namespace Oxide.Plugins
{
    [Info("FirstJoinReward", "MaltrzD", "0.0.2")]
    [Description("Плагин сделал [olol321 Aka MaltrzD] // Discord: 36.66")]
    class FirstJoinReward : RustPlugin
    {
        private List<ulong> rewardedUsers;
        private ConfigData configuration;

        #region OXIDE HOOKS
        private void Loaded()
        {
            ReadConfig();
            LoadRewardedUsers();
        }
        private void OnPlayerConnected(BasePlayer player)
        {
            GiveReward(player);
        }
        #endregion

        #region EXT
        private bool CheckPlayerHaveReward(ulong userID)
        {
            if (rewardedUsers.Contains(userID)) return true;
            else return false;
        }
        #endregion
        #region METHODS
        private void GiveReward(BasePlayer player)
        {
            if (player == null) return;
            if (CheckPlayerHaveReward(player.userID)) return;

            foreach (var commandToExecute in configuration.rewardCommand)
                Server.Command(string.Format(commandToExecute, player.userID));

            player.ChatMessage(string.Format(configuration.rewardMessage, player.displayName));

            rewardedUsers.Add(player.userID); SaveRewardedUsers();
        }
        #endregion

        #region CONSOLE COMMANDS
        [ConsoleCommand("fjrclear")]
        private void ClearRewardedUsers()
        {
            rewardedUsers = new List<ulong>();
            SaveRewardedUsers();
            Puts("Успешно очистили список игроков котором уже выдали награды!");
        }
        #endregion

        #region USERS DATA
        private DynamicConfigFile RewardedUsers_File = Interface.Oxide.DataFileSystem.GetFile("FirstJoinReward/RewardedUsers");

        private void LoadRewardedUsers()
        {
            if (RewardedUsers_File.Exists() == false) { rewardedUsers = new List<ulong>(); SaveRewardedUsers(); }

            rewardedUsers = RewardedUsers_File.ReadObject<List<ulong>>();

            if (configuration == null)
            {
                rewardedUsers = new List<ulong>();
                SaveRewardedUsers();
            }
        }
        private void SaveRewardedUsers() => RewardedUsers_File.WriteObject(rewardedUsers);
        #endregion
        #region CONFIGURATION
        class ConfigData
        {
            [JsonProperty("Команда после первого входа")] public List<string> rewardCommand = new List<string>() 
            {
                "o.usergroup add {0} titan"
            };
            [JsonProperty("Сообщение игроку после выполнения команды")] public string rewardMessage = "{0}, вы впервые зашли на наш сервер, и получили привелегию <color=yellow>TITAN!</color>";
        }
        protected override void LoadDefaultConfig()
        {
            var config = new ConfigData();
            SaveConfig(config);
        }
        void SaveConfig(object config)
        {
            Config.WriteObject(config, true);
        }
        void ReadConfig()
        {
            base.Config.Settings.ObjectCreationHandling = ObjectCreationHandling.Replace;
            configuration = Config.ReadObject<ConfigData>();
            SaveConfig(configuration);
        }
        #endregion
    }
}

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