diff --git a/src/GmRelay.DiscordBot/Infrastructure/Discord/DiscordPlatformMessenger.cs b/src/GmRelay.DiscordBot/Infrastructure/Discord/DiscordPlatformMessenger.cs index 3d68f36..e4ab108 100644 --- a/src/GmRelay.DiscordBot/Infrastructure/Discord/DiscordPlatformMessenger.cs +++ b/src/GmRelay.DiscordBot/Infrastructure/Discord/DiscordPlatformMessenger.cs @@ -51,9 +51,15 @@ public sealed class DiscordPlatformMessenger( }); } - public Task SendGroupMessageAsync(PlatformGroup group, string htmlText, CancellationToken ct) + public async Task SendGroupMessageAsync(PlatformGroup group, string htmlText, CancellationToken ct) { - return Task.CompletedTask; + var channelIdStr = group.ExternalChannelId ?? group.ExternalGroupId + ?? throw new InvalidOperationException("Group has no ExternalChannelId or ExternalGroupId."); + + if (!ulong.TryParse(channelIdStr, out var channelId)) + throw new InvalidOperationException($"Invalid Discord channel/group ID: '{channelIdStr}'."); + + await restClient.SendMessageAsync(channelId, htmlText); } public Task SendPrivateMessageAsync(PlatformPrivateMessage message, CancellationToken ct)