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

FREE QueueHolder : 1.0.1 1.0.1

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

namespace Oxide.Plugins
{
    [Info("Queue Holder", "Tryhard", "1.0.1")]
    [Description("Saves your position in queue if you disconnect")]
    public class QueueHolder : RustPlugin
    {
        private Dictionary<ulong, DateTime> _queueHolder = new Dictionary<ulong, DateTime>();

        #region Hooks
        private void Init()
        {
            permission.RegisterPermission("QueueHolder.skip", this);
            permission.RegisterPermission("QueueHolder.grace", this);
        }

        private object CanBypassQueue(Network.Connection connection)
        {
            if (connection == null) return null;

            if (permission.UserHasPermission(connection.userid.ToString(), "QueueHolder.skip") || (_queueHolder.ContainsKey(connection.userid) && DateTime.Now.Subtract(_queueHolder[connection.userid]).TotalSeconds < config.queueTime))
            {
                _queueHolder.Remove(connection.userid);
                return true;
            }
            return null;
        }
        private void OnPlayerConnected(BasePlayer player)
        {
            if (player == null || !config.eQueue) return;

            if (_queueHolder.ContainsKey(player.userID))
            {
                _queueHolder.Remove(player.userID);
            }
        }

        private void OnPlayerDisconnected(BasePlayer player)
        {
            if (player == null || !config.eQueue) return;

            if (permission.UserHasPermission(player.UserIDString, "QueueHolder.grace"))
            {
                _queueHolder.Add(player.userID, DateTime.Now);
            }
        }

        #endregion


        #region Config
        static Configuration config;
        public class Configuration
        {
            [JsonProperty("Enable queue holding")]
            public bool eQueue = true;

            [JsonProperty("Queue holding timer")]
            public int queueTime = 300;
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();
            try
            {
                config = Config.ReadObject<Configuration>();
                if (config == null) LoadDefaultConfig();
                SaveConfig();
            }
            catch (Exception e)
            {
                Debug.LogException(e);
                PrintWarning("Creating new config file.");
                LoadDefaultConfig();
            }
        }

        protected override void LoadDefaultConfig() => config = new Configuration();
        protected override void SaveConfig() => Config.WriteObject(config);
        #endregion
    }
}

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