using Discord.Commands; namespace Discord_Bot { public class ReminderModule : ModuleBase { private long dayPeriod = 24 * 60 * 60 * 1000; private Timer reminderTimer; [Command("remindertime")] public async Task ReminderTime([Remainder]string message = "") { SaveToConfig("reminderTime", message); var time = message.Split(":"); SetReminderTime(int.Parse(time[0]), int.Parse(time[1])); await ReplyAsync($"Заебись"); } [Command("calltime")] public async Task CallTime([Remainder]string message = "") { SaveToConfig("callTime", message); var time = message.Split(":"); SetReminderTime(int.Parse(time[0]), int.Parse(time[1])); await ReplyAsync($"Заебись"); } [Command("users")] public async Task Users([Remainder]string message = "") { SaveToConfig("users", message); var time = message.Split(":"); SetReminderTime(int.Parse(time[0]), int.Parse(time[1])); await ReplyAsync($"Заебись"); } public void SetReminderTime(int hours, int minutes) { var now = DateTime.Now; var nextReminder = new DateTime(now.Year, now.Month, now.Day, hours, minutes, 0); var span = (nextReminder - now).TotalMilliseconds; reminderTimer = new Timer(SendReminder, "sd", (long)span, dayPeriod); ReloadTimers(); } public void SetCallTime(int hours, int minutes) { var now = DateTime.Now; var nextReminder = new DateTime(now.Year, now.Month, now.Day, hours, minutes, 0); var span = (nextReminder - now).TotalMilliseconds; reminderTimer = new Timer(SendReminder, "sd", (long)span, dayPeriod); ReloadTimers(); } private async void SendReminder(object? state) { var users = Functions.GetConfig()["users"].ToString(); await ReplyAsync($"{users}\nБудет чо?"); } private async void SendCall(object? state) { await ReplyAsync($"?"); } private void SaveToConfig(string key, string data) { var config = Functions.GetConfig(); config[key] = data; Functions.SaveConfig(config); } private void ReloadTimers() { } } }