clean up code

This commit is contained in:
1415ddfer 2024-07-13 15:32:39 +08:00
parent 05e0baac8f
commit b2fdb364bf

View File

@ -4,23 +4,23 @@ using System.Net;
using System.Text; using System.Text;
namespace Zerolauncher.Manager namespace Zerolauncher.Manager
{ {
internal class WebApiManager internal static class WebApiManager
{ {
static HttpListener listener = new HttpListener(); static readonly HttpListener Listener = new HttpListener();
static CancellationTokenSource cts = new CancellationTokenSource(); static readonly CancellationTokenSource Cts = new CancellationTokenSource();
public static async Task StartListener() public static async Task StartListener()
{ {
listener.Prefixes.Add("http://127.0.0.1:7233/"); Listener.Prefixes.Add("http://127.0.0.1:7233/");
listener.Start(); Listener.Start();
Trace.WriteLine("Listening..."); Trace.WriteLine("Listening...");
while (!cts.Token.IsCancellationRequested) while (!Cts.Token.IsCancellationRequested)
{ {
HttpListenerContext context = await listener.GetContextAsync(); var context = await Listener.GetContextAsync();
HttpListenerRequest request = context.Request; var request = context.Request;
HttpListenerResponse response = context.Response; var response = context.Response;
var raw = request.RawUrl; var raw = request.RawUrl;
ResponesBody? rb = null; ResponseBody? rb = null;
if (raw != null && raw.Contains("?")) if (raw != null && raw.Contains("?"))
{ {
var lines = raw.Split("?"); var lines = raw.Split("?");
@ -34,121 +34,79 @@ namespace Zerolauncher.Manager
switch (lines[0]) switch (lines[0])
{ {
case "/CloseGame": case "/CloseGame":
{ {
if (EngineManager.ExitGame(acc)) rb = EngineManager.ExitGame(acc) ? new ResponseBody(1, 0, $"Account [{nick}] successful to close.") : new ResponseBody($"Account [{nick}] is unluacher.");
{ }
rb = new ResponesBody(1, 0, $"Account [{nick}] successful to close.");
}
else
{
rb = new ResponesBody($"Account [{nick}] is unluacher.");
break;
}
}
break; break;
case "/ToNormalSize": case "/ToNormalSize":
{
rb = EngineManager.TurnGameSizeNormal(acc) switch
{ {
switch (EngineManager.TurnGameSizeNormal(acc)) 2 => new ResponseBody(1, 0, $"Account [{nick}] now is normal size."),
{ 1 => new ResponseBody(0, 0, $"Account [{nick}] is loading, please wait."),
case 2: 0 => new ResponseBody($"Account [{nick}] is unluacher."),
rb = new ResponesBody(1, 0, $"Account [{nick}] now is normal size."); _ => rb
break; };
case 1: }
rb = new ResponesBody(0, 0, $"Account [{nick}] is loading, please wait.");
break;
case 0:
rb = new ResponesBody($"Account [{nick}] is unluacher.");
break;
}
}
break; break;
case "/ToMiniSize": case "/ToMiniSize":
{
rb = EngineManager.TurnGameSizeMini(acc) switch
{ {
switch (EngineManager.TurnGameSizeMini(acc)) 2 => new ResponseBody(1, 0, $"Account [{nick}] now is mini size."),
{ 1 => new ResponseBody(0, 0, $"Account [{nick}] is loading, please wait."),
case 2: 0 => new ResponseBody($"Account [{nick}] is unluacher."),
rb = new ResponesBody(1, 0, $"Account [{nick}] now is mini size."); _ => rb
break; };
case 1: }
rb = new ResponesBody(0, 0, $"Account [{nick}] is loading, please wait.");
break;
case 0:
rb = new ResponesBody($"Account [{nick}] is unluacher.");
break;
}
}
break; break;
case "/LoginGame": case "/LoginGame":
{ {
if (EngineManager.CreateGame(acc)) if (EngineManager.CreateGame(acc))
{ {
rb = new ResponesBody(0, 0, $"Account [{nick}] successful to start."); rb = new ResponseBody(0, 0, $"Account [{nick}] successful to start.");
} }
else else
{ {
int hwnd = EngineManager.CheckGameState(acc); var hwnd = EngineManager.CheckGameState(acc);
if (hwnd <= 0) rb = hwnd <= 0 ? new ResponseBody(0, 0, $"Account [{nick}] is loading, please wait.") : new ResponseBody(1, hwnd, $"Account [{nick}] now is running.");
{
rb = new ResponesBody(0, 0, $"Account [{nick}] is loading, please wait.");
}
else
{
rb = new ResponesBody(1, hwnd, $"Account [{nick}] now is running.");
}
} }
} }
break; break;
default: default:
rb = new ResponesBody($"commad [{lines[0]}] undefind."); rb = new ResponseBody($"commad [{lines[0]}] undefind.");
break; break;
} }
} }
else else
{ {
rb = new ResponesBody($"Account [{nick}] undefind."); rb = new ResponseBody($"Account [{nick}] undefind.");
} }
} }
else else
{ {
rb = new ResponesBody("args is missing."); rb = new ResponseBody("args is missing.");
} }
} }
if (rb == null) rb ??= new ResponseBody();
{ var buffer = Encoding.UTF8.GetBytes(rb.Encode());
rb = new ResponesBody();
}
byte[] buffer = Encoding.UTF8.GetBytes(rb.Encode());
response.ContentLength64 = buffer.Length; response.ContentLength64 = buffer.Length;
Stream output = response.OutputStream; var output = response.OutputStream;
await output.WriteAsync(buffer, 0, buffer.Length); await output.WriteAsync(buffer, 0, buffer.Length);
output.Close(); output.Close();
} }
listener.Stop(); Listener.Stop();
} }
public static void StopListener() { cts.Cancel(); } public static void StopListener() { Cts.Cancel(); }
} }
class ResponesBody class ResponseBody(int status = -1, int hwnd = 0, string message = "Hello, World!")
{ {
public int status; public ResponseBody(string message) : this(-1, 0, message)
public int hwnd;
public string message;
public ResponesBody(string message)
{ {
this.status = -1;
this.hwnd = 0;
this.message = message;
}
public ResponesBody(int status=-1, int hwnd=0, string message= "Hello, World!")
{
this.status = status;
this.hwnd = hwnd;
this.message = message;
} }
public string Encode() public string Encode()