mirror of
https://github.com/sbrl/Nibriboard.git
synced 2018-01-10 21:33:49 +00:00
Tie in loading to main program
This commit is contained in:
parent
02a527d6b4
commit
d19135d486
3 changed files with 42 additions and 5 deletions
|
@ -23,7 +23,7 @@ namespace Nibriboard
|
|||
private HttpServer httpServer;
|
||||
|
||||
private ClientSettings clientSettings;
|
||||
private RippleSpaceManager planeManager = new RippleSpaceManager() { SourceFilename = "./test.ripplespace.zip" };
|
||||
private RippleSpaceManager planeManager;
|
||||
|
||||
private readonly CancellationTokenSource clientManagerCanceller = new CancellationTokenSource();
|
||||
private NibriClientManager clientManager;
|
||||
|
@ -31,10 +31,18 @@ namespace Nibriboard
|
|||
public readonly int CommandPort = 31587;
|
||||
public readonly int Port = 31586;
|
||||
|
||||
public NibriboardServer(int inPort = 31586)
|
||||
public NibriboardServer(string pathToRippleSpace, int inPort = 31586)
|
||||
{
|
||||
Port = inPort;
|
||||
|
||||
// Load the specified packed ripple space file if it exists - otherwise save it to disk
|
||||
if(File.Exists(pathToRippleSpace)) {
|
||||
planeManager = RippleSpaceManager.FromFile(pathToRippleSpace).Result;
|
||||
} else {
|
||||
Log.WriteLine("[NibriboardServer] Couldn't find packed ripple space at {0} - creating new ripple space instead.", pathToRippleSpace);
|
||||
planeManager = new RippleSpaceManager() { SourceFilename = pathToRippleSpace };
|
||||
}
|
||||
|
||||
clientSettings = new ClientSettings() {
|
||||
SecureWebSocket = false,
|
||||
WebSocketHost = "192.168.0.56",
|
||||
|
|
|
@ -9,12 +9,41 @@ namespace Nibriboard
|
|||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
string packedRippleSpaceFile = "./default.ripplespace.zip";
|
||||
|
||||
for(int i = 0; i < args.Length; i++)
|
||||
{
|
||||
switch(args[i])
|
||||
{
|
||||
case "-h":
|
||||
case "--help":
|
||||
Console.WriteLine("Nibriboard Server");
|
||||
Console.WriteLine("By Starbeamrainbowlabs");
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Usage:");
|
||||
Console.WriteLine(" ./Nibriboard.exe [options]");
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Options:");
|
||||
Console.WriteLine(" -h --help Shows this message");
|
||||
Console.WriteLine(" -f --file [filepath] Specify the path to the packed ripplespace file to load. Defaults to '{0}'.", packedRippleSpaceFile);
|
||||
Console.WriteLine();
|
||||
return;
|
||||
|
||||
case "-f":
|
||||
case "--file":
|
||||
packedRippleSpaceFile = args[++i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Log.WriteLine("[core] Starting Nibriboard.");
|
||||
|
||||
Log.WriteLine("[core] Detected embedded files: ");
|
||||
EmbeddedFiles.WriteResourceList();
|
||||
|
||||
NibriboardServer server = new NibriboardServer();
|
||||
Log.WriteLine("[core] Loading ripple space from \"{0}\".", packedRippleSpaceFile);
|
||||
|
||||
NibriboardServer server = new NibriboardServer(packedRippleSpaceFile);
|
||||
Task.WaitAll(
|
||||
server.Start(),
|
||||
server.StartCommandListener()
|
||||
|
|
|
@ -153,7 +153,7 @@ namespace Nibriboard.RippleSpace
|
|||
Log.WriteLine("[Command/Save] Save complete in {0}ms", timer.ElapsedMilliseconds);
|
||||
}
|
||||
|
||||
public async Task<RippleSpaceManager> FromFile(string filename)
|
||||
public static async Task<RippleSpaceManager> FromFile(string filename)
|
||||
{
|
||||
if(!File.Exists(filename))
|
||||
throw new FileNotFoundException($"Error: Couldn't find the packed ripplespace at {filename}");
|
||||
|
@ -165,7 +165,7 @@ namespace Nibriboard.RippleSpace
|
|||
using(IReader rippleSpaceUnpacker = ReaderFactory.Open(packedRippleSpaceStream))
|
||||
{
|
||||
Log.WriteLine($"[Core] Unpacking ripplespace packed with {rippleSpaceUnpacker.ArchiveType} from {filename}.");
|
||||
rippleSpaceUnpacker.WriteAllToDirectory(UnpackedDirectory);
|
||||
rippleSpaceUnpacker.WriteAllToDirectory(rippleSpace.UnpackedDirectory);
|
||||
}
|
||||
Log.WriteLine("[Core] done!");
|
||||
|
||||
|
|
Loading…
Reference in a new issue