-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
56 lines (46 loc) · 1.34 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using Minecraft;
using Serilog;
using System;
using System.Linq;
internal class Program
{
static int Main(string[] args)
{
var server = new MinecraftServer();
// Control-C Handler
Console.CancelKeyPress += (sender, e) =>
{
e.Cancel = true;
server.Stop();
};
server.Files.ArchiveLatestLog();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console()
.WriteTo.File(server.Files.LatestLog)
.CreateLogger();
server.Start(ArgsToSettings(args));
Log.CloseAndFlush();
return 0;
}
/// <summary>
/// Converts launch args to <see cref="ServerSettings"/>
/// </summary>
/// <param name="args">Launch arguments</param>
/// <returns>Parsed settings</returns>
static ServerSettings ArgsToSettings(string[] args)
{
static bool Contains(string[] args, params string[] searchArgs)
{
foreach (string arg in searchArgs)
if (args.Contains(arg))
return true;
return false;
}
return new ServerSettings()
{
ShowIncoming = Contains(args, "-I", "--in", "--incoming"),
ShowOutgoing = Contains(args, "-O", "--out", "--outgoing")
};
}
}