ascnet/AscNet/Program.cs

45 lines
1.5 KiB
C#
Raw Normal View History

2023-11-13 12:10:02 +00:00
using AscNet.GameServer;
using AscNet.GameServer.Handlers;
2023-11-13 12:10:02 +00:00
using AscNet.GameServer.Commands;
using AscNet.Logging;
using AscNet.Common.Util;
2023-11-24 13:01:26 +00:00
using AscNet.Table.V2.share.reward;
using Newtonsoft.Json;
2023-10-06 13:29:27 +00:00
namespace AscNet
{
internal class Program
{
static void Main(string[] args)
{
2023-11-13 12:10:02 +00:00
// TODO: Add LogLevel parsing from appsettings file
LoggerFactory.InitializeLogger(new Logger(typeof(Program), LogLevel.DEBUG, LogLevel.DEBUG));
LoggerFactory.Logger.Info("Starting...");
2023-11-11 07:28:21 +00:00
2023-10-14 15:01:49 +00:00
#if DEBUG
if (Common.Common.config.VerboseLevel < Common.VerboseLevel.Debug)
Common.Common.config.VerboseLevel = Common.VerboseLevel.Debug;
2023-11-24 13:01:26 +00:00
// LoggerFactory.Logger.Debug(JsonConvert.SerializeObject(TableReaderV2.Parse<RewardTable>().Where(x => x.Id == null).SelectMany(x => x.SubIds)));
2023-10-14 15:01:49 +00:00
#endif
2023-10-10 09:56:08 +00:00
PacketFactory.LoadPacketHandlers();
2023-11-13 12:10:02 +00:00
CommandFactory.LoadCommands();
Task.Run(Server.Instance.Start);
2023-10-06 13:29:27 +00:00
SDKServer.SDKServer.Main(args);
AppDomain.CurrentDomain.ProcessExit += new EventHandler(KillProtocol);
}
static void KillProtocol(object? sender, EventArgs e)
{
2023-11-15 01:01:16 +00:00
LoggerFactory.Logger.Info("Shutting down...");
foreach (var session in Server.Instance.Sessions)
{
session.Value.SendPush(new ShutdownNotify());
session.Value.DisconnectProtocol();
}
2023-10-06 13:29:27 +00:00
}
}
}