Only run webserver in game
This commit is contained in:
parent
1256de60a7
commit
5b56d7fd43
3 changed files with 21 additions and 9 deletions
|
@ -6,6 +6,7 @@
|
|||
<OutputType>Exe</OutputType>
|
||||
-->
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Authors>NorbiPeti</Authors>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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<string, string> _commandReceiver;
|
||||
private readonly Func<string> _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
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue