Properly handle unauthorized log channel access

This commit is contained in:
Ske 2020-06-25 09:14:05 +02:00
parent 50b5a8fbee
commit bb75519f6b

View File

@ -1,3 +1,4 @@
using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Dapper; using Dapper;
@ -53,9 +54,9 @@ namespace PluralKit.Bot {
{ {
return await _rest.GetChannelAsync(channel); return await _rest.GetChannelAsync(channel);
} }
catch (NotFoundException) catch (Exception e) when (e is NotFoundException || e is UnauthorizedException)
{ {
// Channel doesn't exist, let's remove it from the database too // Channel doesn't exist or we don't have permission to access it, let's remove it from the database too
_logger.Warning("Attempted to fetch missing log channel {LogChannel}, removing from database", channel); _logger.Warning("Attempted to fetch missing log channel {LogChannel}, removing from database", channel);
await using var conn = await _db.Obtain(); await using var conn = await _db.Obtain();
await conn.ExecuteAsync("update servers set log_channel = null where server = @Guild", await conn.ExecuteAsync("update servers set log_channel = null where server = @Guild",