diff --git a/TBConsole/TBConsole.csproj b/TBConsole/TBConsole.csproj
index e809eb3..4fd66f2 100644
--- a/TBConsole/TBConsole.csproj
+++ b/TBConsole/TBConsole.csproj
@@ -6,6 +6,7 @@
Exe
-->
netstandard2.0
+ NorbiPeti
diff --git a/TBConsole/TBConsoleMod.cs b/TBConsole/TBConsoleMod.cs
index a301490..0b51db6 100644
--- a/TBConsole/TBConsoleMod.cs
+++ b/TBConsole/TBConsoleMod.cs
@@ -4,7 +4,9 @@ using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using IllusionPlugin;
+using TechbloxModdingAPI.App;
using TechbloxModdingAPI.Commands;
+using TechbloxModdingAPI.Utility;
using UnityEngine;
namespace TBConsole
@@ -19,8 +21,19 @@ namespace TBConsole
public override void OnApplicationStart()
{
TechbloxModdingAPI.Main.Init();
- _server = new WebServer(CommandReceived, GetCommandList);
- _server.Start();
+ Game.Enter += async (sender, e) =>
+ {
+ while (_server?.Running ?? false)
+ {
+ Logging.LogWarning("A previous web server is still running");
+ _server?.Stop();
+ await Task.Delay(500);
+ }
+
+ _server = new WebServer(CommandReceived, GetCommandList);
+ _server.Start();
+ };
+ Game.Exit += (sender, e) => _server?.Stop();
}
private string CommandReceived(string command)
@@ -42,8 +55,6 @@ namespace TBConsole
}
}
- //Console.WriteLine("Command parts: " + cmdparts.Aggregate((a, b) => a + ", " + b));
-
switch (cmdparts.Count)
{
case 1:
@@ -74,7 +85,7 @@ namespace TBConsole
public override void OnApplicationQuit()
{
- _server.Stop();
+ _server?.Stop();
TechbloxModdingAPI.Main.Shutdown();
}
diff --git a/TBConsole/WebServer.cs b/TBConsole/WebServer.cs
index 2d33061..6366725 100644
--- a/TBConsole/WebServer.cs
+++ b/TBConsole/WebServer.cs
@@ -7,7 +7,7 @@ namespace TBConsole
{
public class WebServer
{
- private bool _running;
+ public bool Running { get; private set; }
private readonly HttpListener _listener = new HttpListener();
private readonly Func _commandReceiver;
private readonly Func _commandsListSender;
@@ -20,13 +20,13 @@ namespace TBConsole
public void Start()
{
- _running = true;
+ Running = true;
KeepListening();
}
public void Stop()
{
- _running = false;
+ Running = false;
_listener.Stop();
}
@@ -34,7 +34,7 @@ namespace TBConsole
{
_listener.Prefixes.Add("http://localhost:8019/");
_listener.Start();
- while (_running)
+ while (Running)
{
try
{