From 11444c75b1560e027ab1a7e54e4352fdffa5a1e8 Mon Sep 17 00:00:00 2001 From: CyberL1 Date: Tue, 25 Jun 2024 08:54:11 +0200 Subject: [PATCH] feat: more settings (OnlineMode, AutomaticRealmsCreation) --- Minecraft-Realms-Emulator/Enums/SettingsEnum.cs | 4 +++- .../Helpers/Config/Settings.cs | 2 ++ .../Modes/External/McoController.cs | 17 ++++++++++++++++- .../Modes/External/WorldsController.cs | 2 +- .../Modes/Realms/Controllers/McoController.cs | 17 ++++++++++++++++- .../Realms/Controllers/WorldsController.cs | 2 +- 6 files changed, 39 insertions(+), 5 deletions(-) diff --git a/Minecraft-Realms-Emulator/Enums/SettingsEnum.cs b/Minecraft-Realms-Emulator/Enums/SettingsEnum.cs index 4b95d1a..8bae65c 100644 --- a/Minecraft-Realms-Emulator/Enums/SettingsEnum.cs +++ b/Minecraft-Realms-Emulator/Enums/SettingsEnum.cs @@ -5,6 +5,8 @@ NewsLink, DefaultServerAddress, TrialMode, - WorkMode + WorkMode, + OnlineMode, + AutomaticRealmsCreation } } diff --git a/Minecraft-Realms-Emulator/Helpers/Config/Settings.cs b/Minecraft-Realms-Emulator/Helpers/Config/Settings.cs index 2d0a640..d39325b 100644 --- a/Minecraft-Realms-Emulator/Helpers/Config/Settings.cs +++ b/Minecraft-Realms-Emulator/Helpers/Config/Settings.cs @@ -8,5 +8,7 @@ namespace Minecraft_Realms_Emulator.Helpers.Config public string NewsLink { get; set; } = "https://github.com/CyberL1/Minecraft-Realms-Emulator"; public bool TrialMode { get; set; } = true; public string WorkMode { get; set; } = nameof(WorkModeEnum.EXTERNAL); + public bool OnlineMode { get; set; } = false; + public bool AutomaticRealmsCreation { get; set; } = true; } } diff --git a/Minecraft-Realms-Emulator/Modes/External/McoController.cs b/Minecraft-Realms-Emulator/Modes/External/McoController.cs index 616c0a0..84d540f 100644 --- a/Minecraft-Realms-Emulator/Modes/External/McoController.cs +++ b/Minecraft-Realms-Emulator/Modes/External/McoController.cs @@ -20,8 +20,23 @@ namespace Minecraft_Realms_Emulator.Modes.External } [HttpGet("available")] - public ActionResult GetAvailable() + public async Task> GetAvailable() { + if (new ConfigHelper(_context).GetSetting(nameof(SettingsEnum.OnlineMode)).Value) + { + string cookie = Request.Headers.Cookie; + string playerUUID = cookie.Split(";")[0].Split(":")[2]; + + try + { + await new HttpClient().GetFromJsonAsync($"https://sessionserver.mojang.com/session/minecraft/profile/{playerUUID}"); + } + catch + { + return Unauthorized(); + } + } + return Ok(true); } diff --git a/Minecraft-Realms-Emulator/Modes/External/WorldsController.cs b/Minecraft-Realms-Emulator/Modes/External/WorldsController.cs index b517e47..05751f9 100644 --- a/Minecraft-Realms-Emulator/Modes/External/WorldsController.cs +++ b/Minecraft-Realms-Emulator/Modes/External/WorldsController.cs @@ -38,7 +38,7 @@ namespace Minecraft_Realms_Emulator.Modes.External List allWorlds = []; - if (ownedWorlds.ToArray().Length == 0) + if (ownedWorlds.ToArray().Length == 0 && new ConfigHelper(_context).GetSetting(nameof(SettingsEnum.AutomaticRealmsCreation)).Value) { var world = new World { diff --git a/Minecraft-Realms-Emulator/Modes/Realms/Controllers/McoController.cs b/Minecraft-Realms-Emulator/Modes/Realms/Controllers/McoController.cs index 82e1f50..f4f3057 100644 --- a/Minecraft-Realms-Emulator/Modes/Realms/Controllers/McoController.cs +++ b/Minecraft-Realms-Emulator/Modes/Realms/Controllers/McoController.cs @@ -20,8 +20,23 @@ namespace Minecraft_Realms_Emulator.Modes.Realms.Controllers } [HttpGet("available")] - public ActionResult GetAvailable() + public async Task> GetAvailable() { + if (new ConfigHelper(_context).GetSetting(nameof(SettingsEnum.OnlineMode)).Value) + { + string cookie = Request.Headers.Cookie; + string playerUUID = cookie.Split(";")[0].Split(":")[2]; + + try + { + await new HttpClient().GetFromJsonAsync($"https://sessionserver.mojang.com/session/minecraft/profile/{playerUUID}"); + } + catch + { + return Unauthorized(); + } + } + return Ok(true); } diff --git a/Minecraft-Realms-Emulator/Modes/Realms/Controllers/WorldsController.cs b/Minecraft-Realms-Emulator/Modes/Realms/Controllers/WorldsController.cs index 2828564..b70be8d 100644 --- a/Minecraft-Realms-Emulator/Modes/Realms/Controllers/WorldsController.cs +++ b/Minecraft-Realms-Emulator/Modes/Realms/Controllers/WorldsController.cs @@ -41,7 +41,7 @@ namespace Minecraft_Realms_Emulator.Modes.Realms.Controllers List allWorlds = []; - if (ownedWorlds.ToArray().Length == 0) + if (ownedWorlds.ToArray().Length == 0 && new ConfigHelper(_context).GetSetting(nameof(SettingsEnum.AutomaticRealmsCreation)).Value) { var world = new World {