From 2a4720e790dc63c8aa9923ae629f35d40fa2efb0 Mon Sep 17 00:00:00 2001 From: exsersewo Date: Thu, 2 Apr 2020 20:35:30 +0100 Subject: [PATCH] Tweaks --- Kehyeedra3/Command handler.cs | 24 +++++++++++++++++++ Kehyeedra3/Kehyeedra3.csproj | 8 ++++--- .../PublishProfiles/FolderProfile.pubxml | 6 +++-- Kehyeedra3/Services/ReminderService.cs | 22 ++++++++++------- 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/Kehyeedra3/Command handler.cs b/Kehyeedra3/Command handler.cs index 024362d..9aa8f64 100644 --- a/Kehyeedra3/Command handler.cs +++ b/Kehyeedra3/Command handler.cs @@ -130,6 +130,30 @@ namespace Kehyeedra3 var jojoke = WeebClient.DownloadString("https://api.skuldbot.uk/fun/jojoke/?raw"); await context.Channel.SendMessageAsync($"{context.User.Mention} is that a fucksnifflerling {jojoke} reference?"); } + + if (message.Channel is IGuildChannel chan) + { + var perms = chan.GetPermissionOverwrite(_bot.CurrentUser); + if (perms.HasValue) + { + if (perms.Value.SendMessages == PermValue.Deny) return; + } + var botGuild = _bot.GetGuild(chan.GuildId).GetUser(_bot.CurrentUser.Id); + bool exit = false; + + botGuild.Roles.OrderByDescending(x => x.Position).ToList().ForEach(x => + { + perms = chan.GetPermissionOverwrite(x); + + if (perms.HasValue) + { + if (perms.Value.SendMessages == PermValue.Deny) { exit = true; return; } + } + }); + + if (exit) return; + } + if (!(message.HasStringPrefix(Configuration.Load().Prefix, ref argPos))) return; { var result = await _cmds.ExecuteAsync(context, argPos, _dmap); diff --git a/Kehyeedra3/Kehyeedra3.csproj b/Kehyeedra3/Kehyeedra3.csproj index 7be0c79..53e3abe 100644 --- a/Kehyeedra3/Kehyeedra3.csproj +++ b/Kehyeedra3/Kehyeedra3.csproj @@ -2,14 +2,16 @@ Exe - netcoreapp2.1 + netcoreapp3.1 + 2020.4.0.0 + 2020.4.0.0 - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Kehyeedra3/Properties/PublishProfiles/FolderProfile.pubxml b/Kehyeedra3/Properties/PublishProfiles/FolderProfile.pubxml index 43cdeac..81b49b2 100644 --- a/Kehyeedra3/Properties/PublishProfiles/FolderProfile.pubxml +++ b/Kehyeedra3/Properties/PublishProfiles/FolderProfile.pubxml @@ -7,9 +7,11 @@ https://go.microsoft.com/fwlink/?LinkID=208121. FileSystem Release Any CPU - netcoreapp2.1 - bin\Release\netcoreapp2.1\publish\ + netcoreapp3.1 + bin\Release\netcoreapp3.1\publish\ win-x64 false + True + False \ No newline at end of file diff --git a/Kehyeedra3/Services/ReminderService.cs b/Kehyeedra3/Services/ReminderService.cs index f15930b..f9a43ce 100644 --- a/Kehyeedra3/Services/ReminderService.cs +++ b/Kehyeedra3/Services/ReminderService.cs @@ -15,27 +15,31 @@ namespace Kehyeedra3.Services } public async Task Tick() { - using (var Database = new ApplicationDbContextFactory().CreateDbContext()) + while (true) { - List toRemove = new List(); - while (true) + using (var Database = new ApplicationDbContextFactory().CreateDbContext()) { + var reminders = Database.Reminders.ToList(); if(Database.Reminders.Any() && Bot._bot != null && Bot._bot.ConnectionState == Discord.ConnectionState.Connected) { - foreach(var x in Database.Reminders) + bool hasChanged = false; + foreach (var x in reminders) { if (x.Send <= DateTime.UtcNow.ToYeedraStamp()) { await SendReminderAsync(x).ConfigureAwait(false); - toRemove.Add(x); + Database.Reminders.Remove(x); + hasChanged = true; } } - Database.Reminders.RemoveRange(toRemove); - await Database.SaveChangesAsync().ConfigureAwait(false); - toRemove.Clear(); + + if (hasChanged) + { + await Database.SaveChangesAsync().ConfigureAwait(false); + } } - await Task.Delay(250); } + await Task.Delay(250); } } }