C# Discord bot made using NetCord for keeping a TikTok-style streak
at main 36 lines 1.1 kB view raw
1using Microsoft.Extensions.DependencyInjection; 2using NetCord.Gateway; 3using NetCord.Hosting.Gateway; 4using StreakBot.Services; 5 6namespace StreakBot.Handlers; 7 8public class MessageCreateHandler : IMessageCreateGatewayHandler 9{ 10 private readonly IServiceScopeFactory _scopeFactory; 11 12 public MessageCreateHandler(IServiceScopeFactory scopeFactory) 13 { 14 _scopeFactory = scopeFactory; 15 } 16 17 public async ValueTask HandleAsync(Message message) 18 { 19 if (message.Author.IsBot) 20 return; 21 22 using var scope = _scopeFactory.CreateScope(); 23 var streakService = scope.ServiceProvider.GetRequiredService<StreakService>(); 24 25 if (message.GuildId is null) 26 { 27 // DM message - process for DM streaks 28 await streakService.ProcessDmMessageAsync(message.Author.Id, message.ChannelId); 29 } 30 else 31 { 32 // Server message - process for server streaks 33 await streakService.ProcessMessageAsync(message.Author.Id, message.GuildId.Value); 34 } 35 } 36}