Initial upload

This commit is contained in:
myawired
2026-05-03 14:53:43 -04:00
commit 7a46a17131
819 changed files with 607914 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
using Discord;
using Discord.WebSocket;
using Discord.Interactions;
using System;
using System.Reflection;
using System.Threading.Tasks;
public class DiscordBot
{
private readonly DiscordSocketClient _client;
private readonly InteractionService _commands;
private readonly IServiceProvider _services;
private readonly IServiceProvider _serviceProvider;
private static string BOT_TOKEN = "REPLACEME";
public DiscordBot(IServiceProvider services)
{
_client = new DiscordSocketClient();
_commands = new InteractionService(_client.Rest);
_serviceProvider = services;
}
public async Task RunAsync()
{
_client.Log += Log;
_client.Ready += Ready;
_client.InteractionCreated += HandleInteraction;
await _client.LoginAsync(TokenType.Bot, BOT_TOKEN);
await _client.StartAsync();
await Task.Delay(-1); // Keeps the bot running
}
private async Task Ready()
{
Console.WriteLine("Bot is connected and ready!");
// Now that the bot is ready, register commands
await RegisterCommandsAsync();
}
private async Task RegisterCommandsAsync()
{
try
{
Console.WriteLine("Starting to register commands...");
await _commands.AddModulesAsync(Assembly.GetEntryAssembly(), _services);
Console.WriteLine("Modules loaded for command registration.");
// Register commands for a specific guild (faster propagation)
await _commands.RegisterCommandsToGuildAsync(1253525152503955497);
Console.WriteLine("Commands registered to guild successfully.");
// Optionally, register commands globally (can take time to propagate)
//await _commands.RegisterCommandsGloballyAsync();
//Console.WriteLine("Global commands registered successfully.");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
private Task Log(LogMessage log)
{
Console.WriteLine(log);
return Task.CompletedTask;
}
private async Task HandleInteraction(SocketInteraction interaction)
{
// Handle the interaction using the InteractionService
var context = new SocketInteractionContext(_client, interaction);
await _commands.ExecuteCommandAsync(context, _serviceProvider);
}
}