namespace Supercell.Laser.Server
{
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.PlayerMapUtils;
using Supercell.Laser.Server.Settings;
using Npgsql;
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);
// Fix: PlayerMapManager.Init нигде не вызывался, из-за чего его статический
// _cache оставался null и GetPlayerMap падал с NullReferenceException
// при первом же обращении (см. PlayerMapManager.cs:126).
var playerMapConnectionString = new NpgsqlConnectionStringBuilder
{
Host = "localhost",
Username = Configuration.Instance.DatabaseUsername,
Password = Configuration.Instance.DatabasePassword,
Database = Configuration.Instance.DatabaseName,
Pooling = true,
MaxPoolSize = 100,
MinPoolSize = 5
}.ToString();
PlayerMapManager.Init(playerMapConnectionString);
//Accounts.TruncateAll();
}
///
/// Initializes the logic part of server
///
public static void InitLogic()
{
// Fingerprint.Load();
DataTables.Load(false);
Events.Init();
Sessions.Init();
Leaderboards.Init();
Battles.Init();
Matchmaking.Init();
Teams.Init();
Promocodes.Init();
// _ = Supercell.Laser.Bot.Program.StartAsync();
}
///
/// Initializes the network part of server
///
public static void InitNetwork()
{
Processor.Init();
Connections.Init();
LogicServerListener.Instance = new ServerListener();
TCPGateway.Init("0.0.0.0", 9339);
UDPGateway.Init("0.0.0.0", Configuration.Instance.UdpPort);
}
}
}