diff --git a/Kiseki.Launcher.Windows/Kiseki.Launcher.Windows.csproj b/Kiseki.Launcher.Windows/Kiseki.Launcher.Windows.csproj
index 8d114f3..f0d573b 100644
--- a/Kiseki.Launcher.Windows/Kiseki.Launcher.Windows.csproj
+++ b/Kiseki.Launcher.Windows/Kiseki.Launcher.Windows.csproj
@@ -43,6 +43,6 @@
-
+
\ No newline at end of file
diff --git a/Kiseki.Launcher/Controller.cs b/Kiseki.Launcher/Controller.cs
index acf6260..aaab6b3 100644
--- a/Kiseki.Launcher/Controller.cs
+++ b/Kiseki.Launcher/Controller.cs
@@ -9,37 +9,37 @@ namespace Kiseki.Launcher
public class Controller
{
private readonly string BaseURL;
- private readonly string JoinScriptURL;
- private readonly string Ticket;
+ private IDictionary Arguments = new Dictionary();
public event EventHandler? PageHeadingChanged;
public event EventHandler? ProgressBarChanged;
public event EventHandler? ProgressBarStateChanged;
public event EventHandler? Launched;
- public Controller(string BaseURL, string[] Arguments)
+ public static readonly HttpClient HttpClient = new();
+
+ public Controller(string baseURL, string[] args)
{
- this.BaseURL = BaseURL;
+ BaseURL = baseURL;
- // TODO: handle these more gracefully
- if (Arguments.Length != 0 || Arguments[0] != "launch")
+ if (args.Length > 0)
{
- Environment.Exit(0);
- }
+ // TODO: handle these more gracefully
- if (!Helpers.IsBase64String(Arguments[0]))
- {
- Environment.Exit(0);
- }
+ if (!Helpers.Base64.IsBase64String(args[0]))
+ {
+ Environment.Exit(0);
+ }
- string payload = Helpers.ConvertBase64ToString(Arguments[0]);
- if (payload.Split("|").Length != 2) // joinscripturl, ticket; TODO: this will also include launchmode (ide/play)
- {
- Environment.Exit(0);
- }
+ string payload = Helpers.Base64.ConvertBase64ToString(args[0]);
+ if (payload.Split("|").Length != 2) // joinscripturl, ticket; TODO: this will also include launchmode (ide/play) & other stuff
+ {
+ Environment.Exit(0);
+ }
- JoinScriptURL = payload.Split("|")[0];
- Ticket = payload.Split("|")[1];
+ Arguments["JoinScriptURL"] = payload.Split("|")[0];
+ Arguments["Ticket"] = payload.Split("|")[1];
+ }
}
public async void Start()
diff --git a/Kiseki.Launcher/Helpers.cs b/Kiseki.Launcher/Helpers/Base64.cs
similarity index 89%
rename from Kiseki.Launcher/Helpers.cs
rename to Kiseki.Launcher/Helpers/Base64.cs
index 12887b0..0a15efd 100644
--- a/Kiseki.Launcher/Helpers.cs
+++ b/Kiseki.Launcher/Helpers/Base64.cs
@@ -1,8 +1,8 @@
using System.Text;
-namespace Kiseki.Launcher
+namespace Kiseki.Launcher.Helpers
{
- public static class Helpers
+ public static class Base64
{
// https://stackoverflow.com/a/54143400
public static bool IsBase64String(string base64)
diff --git a/Kiseki.Launcher/Helpers/Http.cs b/Kiseki.Launcher/Helpers/Http.cs
new file mode 100644
index 0000000..b9842d7
--- /dev/null
+++ b/Kiseki.Launcher/Helpers/Http.cs
@@ -0,0 +1,21 @@
+using System.Text.Json;
+
+namespace Kiseki.Launcher.Helpers
+{
+ public static class Http
+ {
+ public static async Task GetJson(string url)
+ {
+ string json = await Controller.HttpClient.GetStringAsync(url);
+
+ try
+ {
+ return JsonSerializer.Deserialize(json);
+ }
+ catch
+ {
+ return default;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Kiseki.Launcher/Interfaces/ILauncher.cs b/Kiseki.Launcher/Interfaces/ILauncher.cs
new file mode 100644
index 0000000..a7a15b1
--- /dev/null
+++ b/Kiseki.Launcher/Interfaces/ILauncher.cs
@@ -0,0 +1,8 @@
+namespace Kiseki.Launcher
+{
+ public interface ILauncher
+ {
+ void Register();
+ void Unregister();
+ }
+}
\ No newline at end of file
diff --git a/Kiseki.Launcher/Interfaces.cs b/Kiseki.Launcher/Interfaces/IProtocol.cs
similarity index 54%
rename from Kiseki.Launcher/Interfaces.cs
rename to Kiseki.Launcher/Interfaces/IProtocol.cs
index 2fd07c4..a21ed2a 100644
--- a/Kiseki.Launcher/Interfaces.cs
+++ b/Kiseki.Launcher/Interfaces/IProtocol.cs
@@ -1,12 +1,6 @@
namespace Kiseki.Launcher
{
- interface ILauncher
- {
- void Register();
- void Unregister();
- }
-
- interface IProtocol
+ public interface IProtocol
{
void Register(string key, string name, string handler);
void Unregister(string key);
diff --git a/Kiseki.Launcher/Models/HealthCheck.cs b/Kiseki.Launcher/Models/HealthCheck.cs
new file mode 100644
index 0000000..6abf719
--- /dev/null
+++ b/Kiseki.Launcher/Models/HealthCheck.cs
@@ -0,0 +1,7 @@
+namespace Kiseki.Launcher.Models
+{
+ public class HealthCheck
+ {
+ public string Response { get; set; }
+ }
+}
\ No newline at end of file