Files
SkyBot/SkyBot/Services/BotService.cs
2026-04-18 02:25:11 +01:00

32 lines
1.4 KiB
C#

using System.Collections.Concurrent;
using DotNetEnv;
using Valour.Sdk.Client;
using Valour.Sdk.Models;
namespace SkyBot.Services
{
public static class BotService
{
public static async Task InitialiseBotAsync(
ValourClient client,
ConcurrentDictionary<long, Channel> channelCache,
ConcurrentDictionary<long, bool> initialisedPlanets
)
{
Env.Load();
var token = Environment.GetEnvironmentVariable("TOKEN");
if (string.IsNullOrWhiteSpace(token)) {Console.WriteLine($"TOKEN not set in .env"); return;}
var loginResult = await client.InitializeUser(token);
if (!loginResult.Success) {Console.WriteLine($"Login Failed: {loginResult.Message}"); return;}
Console.WriteLine($"Logged in as {client.Me.NameAndTag} (ID: {client.Me.Id})");
await PlanetService.InitialisePlanetsAsync(client, channelCache, initialisedPlanets);
client.PlanetService.JoinedPlanetsUpdated += async () => { await PlanetService.InitialisePlanetsAsync(client, channelCache, initialisedPlanets); };
client.MessageService.MessageReceived += async message => { await MessageService.Create(client, channelCache, message); };
client.MessageService.MessageDeleted += async message => { await MessageService.Delete(client, message); };
}
}
}