32 lines
1.4 KiB
C#
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); };
|
|
|
|
}
|
|
}
|
|
} |