Remove log channels if they don't exist
This commit is contained in:
parent
7e43b75f97
commit
e133bd657d
@ -2,6 +2,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
using DSharpPlus;
|
using DSharpPlus;
|
||||||
using DSharpPlus.Entities;
|
using DSharpPlus.Entities;
|
||||||
|
using DSharpPlus.Exceptions;
|
||||||
|
|
||||||
using PluralKit.Core;
|
using PluralKit.Core;
|
||||||
|
|
||||||
@ -30,8 +31,20 @@ namespace PluralKit.Bot {
|
|||||||
if (guildCfg.Value.LogBlacklist.Contains(originalChannel.Id)) return;
|
if (guildCfg.Value.LogBlacklist.Contains(originalChannel.Id)) return;
|
||||||
|
|
||||||
// Bail if we can't find the channel
|
// Bail if we can't find the channel
|
||||||
var channel = await client.GetChannelAsync(guildCfg.Value.LogChannel.Value);
|
DiscordChannel channel;
|
||||||
if (channel == null || channel.Type != ChannelType.Text) return;
|
try
|
||||||
|
{
|
||||||
|
channel = await client.GetChannelAsync(guildCfg.Value.LogChannel.Value);
|
||||||
|
}
|
||||||
|
catch (NotFoundException)
|
||||||
|
{
|
||||||
|
// If it doesn't exist, remove it from the DB
|
||||||
|
await RemoveLogChannel(guildCfg.Value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bail if it's not a text channel
|
||||||
|
if (channel.Type != ChannelType.Text) return;
|
||||||
|
|
||||||
// Bail if we don't have permission to send stuff here
|
// Bail if we don't have permission to send stuff here
|
||||||
var neededPermissions = Permissions.SendMessages | Permissions.EmbedLinks;
|
var neededPermissions = Permissions.SendMessages | Permissions.EmbedLinks;
|
||||||
@ -44,5 +57,11 @@ namespace PluralKit.Bot {
|
|||||||
|
|
||||||
await channel.SendMessageAsync(content: url, embed: embed);
|
await channel.SendMessageAsync(content: url, embed: embed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task RemoveLogChannel(GuildConfig cfg)
|
||||||
|
{
|
||||||
|
cfg.LogChannel = null;
|
||||||
|
await _data.SaveGuildConfig(cfg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user