mirror of
https://github.com/CyberL1/Minecraft-Realms-Emulator.git
synced 2024-11-21 21:58:21 -05:00
feat: config helper
This commit is contained in:
parent
3a951beeb3
commit
e05a82d4bc
@ -1,6 +1,7 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Minecraft_Realms_Emulator.Data;
|
using Minecraft_Realms_Emulator.Data;
|
||||||
using Minecraft_Realms_Emulator.Entities;
|
using Minecraft_Realms_Emulator.Entities;
|
||||||
|
using Minecraft_Realms_Emulator.Helpers;
|
||||||
|
|
||||||
namespace Minecraft_Realms_Emulator.Controllers
|
namespace Minecraft_Realms_Emulator.Controllers
|
||||||
{
|
{
|
||||||
@ -16,10 +17,12 @@ namespace Minecraft_Realms_Emulator.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public ActionResult<Configuration> GetConfigurationAsync()
|
public ActionResult<Configuration> GetConfiguration()
|
||||||
{
|
{
|
||||||
var configuration = _context.Configuration;
|
var config = new ConfigHelper(_context);
|
||||||
return Ok(configuration);
|
var settings = config.GetSettings();
|
||||||
|
|
||||||
|
return Ok(settings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,8 +1,8 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Minecraft_Realms_Emulator.Attributes;
|
using Minecraft_Realms_Emulator.Attributes;
|
||||||
using Minecraft_Realms_Emulator.Data;
|
using Minecraft_Realms_Emulator.Data;
|
||||||
|
using Minecraft_Realms_Emulator.Helpers;
|
||||||
using Minecraft_Realms_Emulator.Responses;
|
using Minecraft_Realms_Emulator.Responses;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace Minecraft_Realms_Emulator.Controllers
|
namespace Minecraft_Realms_Emulator.Controllers
|
||||||
{
|
{
|
||||||
@ -19,28 +19,29 @@ namespace Minecraft_Realms_Emulator.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("available")]
|
[HttpGet("available")]
|
||||||
public bool GetAvailable()
|
public ActionResult<bool> GetAvailable()
|
||||||
{
|
{
|
||||||
return true;
|
return Ok(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("client/compatible")]
|
[HttpGet("client/compatible")]
|
||||||
public string GetCompatible()
|
public ActionResult<string> GetCompatible()
|
||||||
{
|
{
|
||||||
return Compatility.COMPATIBLE.ToString();
|
return Ok("COMPATIBLE");
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("v1/news")]
|
[HttpGet("v1/news")]
|
||||||
public NewsResponse GetNews()
|
public ActionResult<NewsResponse> GetNews()
|
||||||
{
|
{
|
||||||
var newsLink = _context.Configuration.FirstOrDefault(s => s.Key == "newsLink");
|
var config = new ConfigHelper(_context);
|
||||||
|
var newsLink = config.GetSetting("newsLink");
|
||||||
|
|
||||||
var news = new NewsResponse
|
var news = new NewsResponse
|
||||||
{
|
{
|
||||||
NewsLink = JsonConvert.DeserializeObject(newsLink.Value),
|
NewsLink = newsLink.Value
|
||||||
};
|
};
|
||||||
|
|
||||||
return news;
|
return Ok(news);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Minecraft_Realms_Emulator.Attributes;
|
using Minecraft_Realms_Emulator.Attributes;
|
||||||
using Minecraft_Realms_Emulator.Data;
|
using Minecraft_Realms_Emulator.Data;
|
||||||
|
using Minecraft_Realms_Emulator.Helpers;
|
||||||
|
|
||||||
namespace Minecraft_Realms_Emulator.Controllers
|
namespace Minecraft_Realms_Emulator.Controllers
|
||||||
{
|
{
|
||||||
@ -16,9 +17,13 @@ namespace Minecraft_Realms_Emulator.Controllers
|
|||||||
_context = context;
|
_context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet(Name = "GetTrial")]
|
[HttpGet]
|
||||||
public bool Get() {
|
public ActionResult<bool> GetTrial()
|
||||||
return bool.Parse(_context.Configuration.FirstOrDefault(x => x.Key == "trialMode").Value);
|
{
|
||||||
|
var config = new ConfigHelper(_context);
|
||||||
|
var trialMode = config.GetSetting("trialMode");
|
||||||
|
|
||||||
|
return Ok(trialMode.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Minecraft_Realms_Emulator.Attributes;
|
using Minecraft_Realms_Emulator.Attributes;
|
||||||
using Minecraft_Realms_Emulator.Data;
|
using Minecraft_Realms_Emulator.Data;
|
||||||
using Minecraft_Realms_Emulator.Entities;
|
using Minecraft_Realms_Emulator.Entities;
|
||||||
|
using Minecraft_Realms_Emulator.Helpers;
|
||||||
using Minecraft_Realms_Emulator.Requests;
|
using Minecraft_Realms_Emulator.Requests;
|
||||||
using Minecraft_Realms_Emulator.Responses;
|
using Minecraft_Realms_Emulator.Responses;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
@ -233,12 +234,13 @@ namespace Minecraft_Realms_Emulator.Controllers
|
|||||||
world.State = "OPEN";
|
world.State = "OPEN";
|
||||||
world.Subscription = subscription;
|
world.Subscription = subscription;
|
||||||
|
|
||||||
var defaultServerAddress = _context.Configuration.FirstOrDefault(x => x.Key == "defaultServerAddress");
|
var config = new ConfigHelper(_context);
|
||||||
|
var defaultServerAddress = config.GetSetting("defaultServerAddress");
|
||||||
|
|
||||||
var connection = new Connection
|
var connection = new Connection
|
||||||
{
|
{
|
||||||
World = world,
|
World = world,
|
||||||
Address = JsonConvert.DeserializeObject(defaultServerAddress.Value)
|
Address = defaultServerAddress.Value
|
||||||
};
|
};
|
||||||
|
|
||||||
Slot slot = new()
|
Slot slot = new()
|
||||||
|
47
Minecraft-Realms-Emulator/Helpers/Config/ConfigHelper.cs
Normal file
47
Minecraft-Realms-Emulator/Helpers/Config/ConfigHelper.cs
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
using Minecraft_Realms_Emulator.Data;
|
||||||
|
using Minecraft_Realms_Emulator.Entities;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Minecraft_Realms_Emulator.Helpers
|
||||||
|
{
|
||||||
|
public class ConfigHelper
|
||||||
|
{
|
||||||
|
private readonly DataContext Db;
|
||||||
|
|
||||||
|
public ConfigHelper(DataContext db)
|
||||||
|
{
|
||||||
|
Db = db;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Configuration> GetSettings()
|
||||||
|
{
|
||||||
|
List<Configuration> settings = [];
|
||||||
|
|
||||||
|
foreach (var setting in Db.Configuration)
|
||||||
|
{
|
||||||
|
Configuration settingTyped = new()
|
||||||
|
{
|
||||||
|
Key = setting.Key,
|
||||||
|
Value = JsonConvert.DeserializeObject(setting.Value)
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.Add(settingTyped);
|
||||||
|
}
|
||||||
|
|
||||||
|
return settings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Configuration? GetSetting(string key)
|
||||||
|
{
|
||||||
|
var setting = Db.Configuration.Find(key);
|
||||||
|
|
||||||
|
if (setting == null) return null;
|
||||||
|
|
||||||
|
return new()
|
||||||
|
{
|
||||||
|
Key = setting.Key,
|
||||||
|
Value = JsonConvert.DeserializeObject(setting.Value)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
Minecraft-Realms-Emulator/Helpers/Config/Settings.cs
Normal file
9
Minecraft-Realms-Emulator/Helpers/Config/Settings.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
namespace Minecraft_Realms_Emulator.Helpers.Config
|
||||||
|
{
|
||||||
|
public class Settings : Dictionary<string, string>
|
||||||
|
{
|
||||||
|
public string DefaultServerAddress { get; set; } = "127.0.0.1";
|
||||||
|
public string NewsLink { get; set; } = "https://github.com/CyberL1/Minecraft-Realms-Emulator";
|
||||||
|
public bool TrialMode { get; set; } = true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,8 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Minecraft_Realms_Emulator.Data;
|
using Minecraft_Realms_Emulator.Data;
|
||||||
using Minecraft_Realms_Emulator.Entities;
|
using Minecraft_Realms_Emulator.Entities;
|
||||||
|
using Minecraft_Realms_Emulator.Helpers.Config;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace Minecraft_Realms_Emulator.Helpers
|
namespace Minecraft_Realms_Emulator.Helpers
|
||||||
{
|
{
|
||||||
@ -13,37 +15,34 @@ namespace Minecraft_Realms_Emulator.Helpers
|
|||||||
|
|
||||||
db.Database.Migrate();
|
db.Database.Migrate();
|
||||||
|
|
||||||
if (!db.Configuration.Any(s => s.Key == "newsLink"))
|
var config = new ConfigHelper(db);
|
||||||
|
var settings = new Settings();
|
||||||
|
|
||||||
|
if (config.GetSetting("newsLink") == null)
|
||||||
{
|
{
|
||||||
var newsLink = new Configuration
|
db.Configuration.Add(new Configuration
|
||||||
{
|
{
|
||||||
Key = "newsLink",
|
Key = "newsLink",
|
||||||
Value = "\"https://github.com/CyberL1/Minecraft-Realms-Emulator\""
|
Value = JsonConvert.SerializeObject(settings.NewsLink)
|
||||||
};
|
});
|
||||||
|
|
||||||
db.Configuration.Add(newsLink);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!db.Configuration.Any(s => s.Key == "defaultServerAddress"))
|
if (config.GetSetting("defaultServerAddress") == null)
|
||||||
{
|
{
|
||||||
var defaultServerAddress = new Configuration
|
db.Configuration.Add(new Configuration
|
||||||
{
|
{
|
||||||
Key = "defaultServerAddress",
|
Key = "defaultServerAddress",
|
||||||
Value = "\"127.0.0.1\""
|
Value = JsonConvert.SerializeObject(settings.DefaultServerAddress)
|
||||||
};
|
});
|
||||||
|
|
||||||
db.Configuration.Add(defaultServerAddress);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!db.Configuration.Any(x => x.Key == "trialMode"))
|
if (config.GetSetting("trialMode") == null)
|
||||||
{
|
{
|
||||||
var trialMode = new Configuration
|
db.Configuration.Add(new Configuration
|
||||||
{
|
{
|
||||||
Key = "trialMode",
|
Key = "trialMode",
|
||||||
Value = true
|
Value = JsonConvert.SerializeObject(settings.TrialMode)
|
||||||
};
|
});
|
||||||
|
|
||||||
db.Configuration.Add(trialMode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
|
Loading…
Reference in New Issue
Block a user