Radicade Public Code

This commit is contained in:
JogmansonReal
2026-10-16 23:33:13 -07:00
commit 55175acdf6
832 changed files with 363261 additions and 0 deletions
+127
View File
@@ -0,0 +1,127 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Cors;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json.Linq;
using RadicadeServer.DB;
using RadicadeServer.RecNet.Config;
using RadicadeServer.Utils;
namespace RadicadeServer.Admin
{
[Route("admin/version")]
[EnableCors("AdminPanel")]
public class AdminVersionAPI(RecDBContext db) : Controller
{
private Task<IActionResult?> RejectInvalidKey(string key)
{
return Task.FromResult<IActionResult?>(key.IsAdminKey() ? null : Unauthorized("Invalid secret"));
}
private async Task<IActionResult> SetServerConfigValue(string keyName, string key, string value)
{
var rejection = await RejectInvalidKey(key);
if (rejection != null) return rejection;
var existingValue = await db.ServerConfig.FirstOrDefaultAsync(x => x.Key == keyName);
if (existingValue != null)
{
existingValue.Value = value;
}
else
{
await db.ServerConfig.AddAsync(new ServerConfigVal { Key = keyName, Value = value });
}
await db.SaveChangesAsync();
return Ok("Set to: " + value);
}
[HttpGet("setgameversion")]
public async Task<IActionResult> SetGameVersion([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("GameVersion", key, value);
}
[HttpGet("setversion")]
public async Task<IActionResult> SetVersion([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("BarrelVersion", key, value);
}
[HttpGet("setkey")]
public async Task<IActionResult> SetKey([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("BarrelKey", key, value);
}
[HttpGet("setcheck")]
public async Task<IActionResult> SetCheck([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("BarrelCheck", key, value);
}
[HttpGet("setmanifestversion")]
public async Task<IActionResult> SetManifestVersion([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("ApprovedManifestVersion", key, value);
}
[HttpGet("setmanifestsha256")]
public async Task<IActionResult> SetManifestSha256([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("ApprovedManifestSha256", key, value);
}
[HttpGet("setgamedownloadurl")]
public async Task<IActionResult> SetGameDownloadUrl([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("GameDownloadUrl", key, value);
}
[HttpGet("setlaunchticket")]
public async Task<IActionResult> SetLaunchTicket([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("LaunchTicket", key, value);
}
[HttpGet("setlaunchticketrequired")]
public async Task<IActionResult> SetLaunchTicketRequired([FromQuery] string key, [FromQuery] bool value)
{
return await SetServerConfigValue("LaunchTicketRequired", key, value.ToString());
}
[HttpGet("setlaunchticketurl")]
public async Task<IActionResult> SetLaunchTicketUrl([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("LaunchTicketUrl", key, value);
}
[HttpGet("setlaunchticketaudience")]
public async Task<IActionResult> SetLaunchTicketAudience([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("LaunchTicketAudience", key, value);
}
[HttpGet("setlaunchticketnonce")]
public async Task<IActionResult> SetLaunchTicketNonce([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("LaunchTicketNonce", key, value);
}
[HttpGet("setgamepackagesha256")]
public async Task<IActionResult> SetGamePackageSha256([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("GamePackageSha256", key, value);
}
[HttpGet("setgamepackagesize")]
public async Task<IActionResult> SetGamePackageSize([FromQuery] string key, [FromQuery] long value)
{
return await SetServerConfigValue("GamePackageSize", key, value.ToString());
}
[HttpGet("setgameextractsubdirectory")]
public async Task<IActionResult> SetGameExtractSubdirectory([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("GameExtractSubdirectory", key, value);
}
[HttpGet("setlaunchermanifestnotes")]
public async Task<IActionResult> SetLauncherManifestNotes([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("LauncherManifestNotes", key, value);
}
[HttpGet("setlaunchermanifestdelete")]
public async Task<IActionResult> SetLauncherManifestDelete([FromQuery] string key, [FromQuery] string value)
{
return await SetServerConfigValue("LauncherManifestDelete", key, value);
}
}
}