using JetBrains.Annotations; using Microsoft.Extensions.Logging; using Octobot.Data; using Octobot.Services; using Remora.Discord.API.Abstractions.Gateway.Events; using Remora.Discord.API.Gateway.Events; using Remora.Discord.Gateway.Responders; using Remora.Results; namespace Octobot.Responders; /// /// Handles sending a message to a guild that has just initialized if that guild /// has enabled /// [UsedImplicitly] public class GuildUnloadedResponder : IResponder { private readonly GuildDataService _guildData; private readonly ILogger _logger; public GuildUnloadedResponder( GuildDataService guildData, ILogger logger) { _guildData = guildData; _logger = logger; } public async Task RespondAsync(IGuildDelete gatewayEvent, CancellationToken ct = default) { var guildId = gatewayEvent.ID; await _guildData.RemoveGuildId(guildId); _logger.LogInformation("Left guild {guildId}", guildId); return Result.FromSuccess(); } }