using Remora.Discord.API.Abstractions.Gateway.Events; using Remora.Discord.API.Abstractions.Rest; using Remora.Discord.Gateway.Responders; using Remora.Results; namespace Boyfriend; public class ReadyResponder : IResponder { private readonly IDiscordRestChannelAPI _channelApi; public ReadyResponder(IDiscordRestChannelAPI channelApi) { _channelApi = channelApi; } public async Task RespondAsync(IGuildCreate gatewayEvent, CancellationToken ct = default) { if (!gatewayEvent.Guild.IsT0) return Result.FromSuccess(); // is IAvailableGuild var guild = gatewayEvent.Guild.AsT0; if (guild.GetConfigBool("SendReadyMessages").IsDefined(out var enabled) && enabled && guild.GetChannel("PrivateFeedbackChannel").IsDefined(out var channel)) { Messages.Culture = guild.GetCulture(); var i = Random.Shared.Next(1, 4); return (Result)await _channelApi.CreateMessageAsync( channel.ID, string.Format(Messages.Ready, Boyfriend.GetLocalized($"Beep{i}")), ct: ct); } return Result.FromSuccess(); } }