ascnet/AscNet/Program.cs

41 lines
1.2 KiB
C#

using AscNet.GameServer;
using AscNet.GameServer.Handlers;
using AscNet.GameServer.Commands;
using AscNet.Logging;
namespace AscNet
{
internal class Program
{
static void Main(string[] args)
{
// TODO: Add LogLevel parsing from appsettings file
LoggerFactory.InitializeLogger(new Logger(typeof(Program), LogLevel.DEBUG, LogLevel.DEBUG));
LoggerFactory.Logger.Info("Starting...");
#if DEBUG
if (Common.Common.config.VerboseLevel < Common.VerboseLevel.Debug)
Common.Common.config.VerboseLevel = Common.VerboseLevel.Debug;
#endif
PacketFactory.LoadPacketHandlers();
CommandFactory.LoadCommands();
Task.Run(Server.Instance.Start);
SDKServer.SDKServer.Main(args);
AppDomain.CurrentDomain.ProcessExit += new EventHandler(KillProtocol);
}
static void KillProtocol(object? sender, EventArgs e)
{
LoggerFactory.Logger.Info("Shutting down...");
foreach (var session in Server.Instance.Sessions)
{
session.Value.SendPush(new ShutdownNotify());
session.Value.DisconnectProtocol();
}
}
}
}