Implement refresh autodiscover

This commit is contained in:
Zaprit 2025-05-26 23:12:12 +01:00
parent aeba706391
commit 91e10d2dab
4 changed files with 48 additions and 1 deletions

View file

@ -0,0 +1,26 @@
using LBPUnion.ProjectLighthouse.Configuration;
using LBPUnion.ProjectLighthouse.Servers.Website.Types;
using Microsoft.AspNetCore.Mvc;
namespace LBPUnion.ProjectLighthouse.Servers.Website.Controllers;
[ApiController]
public class AutoDiscoverController: ControllerBase
{
[ResponseCache(Duration = 86400)]
[HttpGet("/autodiscover")]
[Produces("application/json")]
public IActionResult AutoDiscover()
{
AutoDiscoverResponse resp = new()
{
Version = 3,
Url = ServerConfiguration.Instance.GameApiExternalUrl,
ServerBrand = ServerConfiguration.Instance.Customization.ServerName,
UsesCustomDigestKey = false,
BannerImageUrl = null,
ServerDescription = ServerConfiguration.Instance.Customization.ServerDescription,
};
return this.Ok(resp);
}
}

View file

@ -0,0 +1,19 @@
using Newtonsoft.Json;
namespace LBPUnion.ProjectLighthouse.Servers.Website.Types;
public record AutoDiscoverResponse
{
[JsonProperty("version")]
public uint Version { get; set; }
[JsonProperty("serverBrand")]
public string ServerBrand { get; set; }
[JsonProperty("serverDescription")]
public string ServerDescription { get; set; }
[JsonProperty("url")]
public string Url { get; set; }
[JsonProperty("bannerImageUrl")]
public string? BannerImageUrl { get; set; }
[JsonProperty("usesCustomDigestKey")]
public bool UsesCustomDigestKey { get; set; }
}

View file

@ -4,4 +4,5 @@ public class CustomizationConfiguration
{
public string ServerName { get; set; } = "Project Lighthouse";
public string EnvironmentName { get; set; } = "project-lighthouse";
public string ServerDescription { get; set; } = "A Project Lighthouse Server";
}

View file

@ -11,7 +11,7 @@ public class ServerConfiguration : ConfigurationBase<ServerConfiguration>
// This is so Lighthouse can properly identify outdated configurations and update them with newer settings accordingly.
// If you are modifying anything here, this value MUST be incremented.
// Thanks for listening~
public override int ConfigVersion { get; set; } = 30;
public override int ConfigVersion { get; set; } = 31;
public override string ConfigName { get; set; } = "lighthouse.yml";
public string WebsiteListenUrl { get; set; } = "http://localhost:10060";
@ -31,6 +31,7 @@ public class ServerConfiguration : ConfigurationBase<ServerConfiguration>
public bool CheckForUnsafeFiles { get; set; } = true;
public bool LogChatFiltering { get; set; } = false;
public bool LogChatMessages { get; set; } = false;
public AuthenticationConfiguration Authentication { get; set; } = new();
public CaptchaConfiguration Captcha { get; set; } = new();
public DigestKeyConfiguration DigestKey { get; set; } = new();