ProjectLighthouse/ProjectLighthouse.Servers.API/Responses/RpcResponse.cs

34 lines
No EOL
1.5 KiB
C#

#nullable disable
using LBPUnion.ProjectLighthouse.Configuration.ConfigurationCategories;
namespace LBPUnion.ProjectLighthouse.Servers.API.Responses;
public class RpcResponse
{
public string ApplicationId { get; set; }
public string PartyIdPrefix { get; set; }
public UsernameType UsernameType { get; set; }
public RpcAssets Assets { get; set; }
public static RpcResponse CreateFromConfiguration(RichPresenceConfiguration configuration) =>
new()
{
ApplicationId = configuration.ApplicationId,
PartyIdPrefix = configuration.PartyIdPrefix,
UsernameType = configuration.UsernameType,
Assets = new RpcAssets
{
UseApplicationAssets = configuration.Assets.UseApplicationAssets,
PodAsset = AssetConvertNull(configuration.Assets.PodAsset),
MoonAsset = AssetConvertNull(configuration.Assets.MoonAsset),
RemoteMoonAsset = AssetConvertNull(configuration.Assets.RemoteMoonAsset),
DeveloperAsset = AssetConvertNull(configuration.Assets.DeveloperAsset),
DeveloperAdventureAsset = AssetConvertNull(configuration.Assets.DeveloperAdventureAsset),
DlcAsset = AssetConvertNull(configuration.Assets.DlcAsset),
FallbackAsset = AssetConvertNull(configuration.Assets.FallbackAsset),
},
};
private static string AssetConvertNull(string asset) => string.IsNullOrWhiteSpace(asset) ? null : asset;
}