namespace Supercell.Laser.Server
{
using System.Threading.Tasks;
using Supercell.Laser.Logic.Data;
using Supercell.Laser.Logic.Listener;
using Supercell.Laser.Server.Database;
using Supercell.Laser.Server.Logic;
using Supercell.Laser.Server.Logic.Game;
using Supercell.Laser.Server.Message;
using Supercell.Laser.Server.Networking;
using Supercell.Laser.Server.Networking.Session;
using Supercell.Laser.Server.Settings;
internal static class Resources
{
///
/// Initializes the databases
///
public static void InitDatabase()
{
Accounts.Init(Configuration.Instance.DatabaseUsername, Configuration.Instance.DatabasePassword);
Alliances.Init(Configuration.Instance.DatabaseUsername, Configuration.Instance.DatabasePassword);
}
///
/// Initializes the logic part of server
///
public static void InitLogic()
{
Fingerprint.Load();
DataTables.Load();
Events.Init();
Sessions.Init();
Leaderboards.Init();
// Battles.Init();
// Matchmaking.Init();
Teams.Init();
}
///
/// Initializes the network part of server
///
public static void InitNetwork()
{
Processor.Init();
Connections.Init();
LogicServerListener.Instance = new ServerListener();
//UDPGateway.Init("0.0.0.0", Configuration.Instance.UdpPort);
TCPGateway.Init("0.0.0.0", 9339);
}
///
/// Initializes the Discord bot
///
public static void InitDiscord()
{
try
{
if (Configuration.Instance.BotToken == "YOUR_BOT_TOKEN_HERE" ||
Configuration.Instance.ChannelId == 1234567890123456789)
{
Console.WriteLine("[DISCORD] To enable Discord integration, configure BotToken and ChannelId in config.json");
return;
}
if (!string.IsNullOrEmpty(Configuration.Instance.BotToken))
{
var discordBot = new Discord.DiscordBot();
Task.Run(discordBot.StartAsync).GetAwaiter().GetResult();
}
}
catch (Exception ex)
{
Console.WriteLine($"[DISCORD] Failed to initialize Discord bot: {ex.Message}");
Console.WriteLine("[DISCORD] Continuing without Discord integration...");
}
}
}
}