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

FREE WipeDates : 1.0.3 1.0.3

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Linq;
using System.Collections.Generic;
namespace Oxide.Plugins {
    [Info("Wipe Dates", "Freakyy", "1.0.3")]
    [Description("Shows the last and next wipe dates on command.")]
    class WipeDates : RustPlugin {
#region variables
        public DateTime Last_Config_Call;
        public string Last_Wipe;
        public string Next_Wipe;
        public List<string> All_Wipe_Dates = new List<string>();
        private Settings _Settings;
        protected override void LoadDefaultMessages() {
            lang.RegisterMessages(new Dictionary<string, string> {
                ["WipeCommandMessage"]
                = "{Last_Wipe_Message} {Last_Wipe_Date} {Server_Timezone}\n{Next_Wipe_Message} {Next_Wipe_Date} {Server_Timezone}",
            }
            , this);
        }
#endregion
#region hooks
        void Init() {
            Last_Config_Call = DateTime.Now;
            save_config_settings();
            calculate_wipe_dates();
        }
        void OnPlayerSleepEnded(BasePlayer player) {
            if(_Settings.Send_Message_On_User_Wake_Up) send_player_wipe_message(player);
        }
#endregion
#region commands
        [ChatCommand("wipe")]
        void wipe(BasePlayer player) {
            send_player_wipe_message(player);
        }
#endregion
#region functions
        private void send_player_wipe_message(BasePlayer player) {
            //prevents load Config spamming
            if (DateTime.Now > Last_Config_Call.AddMinutes(5)) {
                save_config_settings();
                calculate_wipe_dates();
            }
            SendReply(player, lang.GetMessage("WipeCommandMessage", this, player.UserIDString).Replace("{Last_Wipe_Date}", Last_Wipe).Replace("{Next_Wipe_Date}", Next_Wipe).Replace("{Last_Wipe_Message}", _Settings.Last_Wipe_Message).Replace("{Next_Wipe_Message}", _Settings.Next_Wipe_Message).Replace("{Server_Timezone}", _Settings.Server_Timezone) );
        }
        private void calculate_wipe_dates() {
            if(All_Wipe_Dates.Count == 0) {
                PrintError("Missing entries in config file.(All_Wipe_Dates)");
                return;
            }
            List<string> Past_Dates = All_Wipe_Dates.Where(x => Convert.ToDateTime(x) < DateTime.Now).OrderByDescending(x => x).ToList();
            List<string> Future_Dates = All_Wipe_Dates.Where(x => Convert.ToDateTime(x) > DateTime.Now).ToList();
            if(Past_Dates != null) {
                Last_Wipe = Convert.ToDateTime(Past_Dates.First()).ToString(_Settings.Date_Format);
            }
            if (Future_Dates != null) {
                Future_Dates.Sort();
                Next_Wipe = Convert.ToDateTime(Future_Dates.First()).ToString(_Settings.Date_Format);
            }
        }
        private void save_config_settings() {
            _Settings = Config.ReadObject<Settings>();
            Last_Config_Call = DateTime.Now;
            All_Wipe_Dates = _Settings.All_Wipe_Dates;
        }
#endregion
#region config
        private class Settings {
            public string Last_Wipe_Message {
                get;
                set;
            }
            public string Next_Wipe_Message {
                get;
                set;
            }
            public string Date_Format {
                get;
                set;
            }
            public List<string> All_Wipe_Dates;
            public bool Send_Message_On_User_Wake_Up {
                get;
                set;
            }
            public string Server_Timezone {
                get;
                set;
            }
        }
        private Settings GetDefaultSettings() {
            return new Settings {
                Last_Wipe_Message = "Last wipe was:", Next_Wipe_Message = "Next wipe will happen:", Date_Format = "MM/dd/yyyy HH:mm", All_Wipe_Dates = new List<string>() {
                    "02/09/2015 15:00:00", "02/09/2099 15:00:00"
                }
                , Send_Message_On_User_Wake_Up = false, Server_Timezone = "CET"
            }
            ;
        }
        protected override void LoadDefaultConfig() {
            PrintWarning("Attempting to create default config...");
            Config.WriteObject(GetDefaultSettings(), true);
            Config.Save();
        }
#endregion
    }
}

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