You've already forked CC-Framework.BriskGameServer
78 lines
2.1 KiB
C#
78 lines
2.1 KiB
C#
using System;
|
||
|
||
/// <summary>
|
||
/// Brisk SDK 初始化参数。
|
||
/// </summary>
|
||
public sealed class BriskOptions
|
||
{
|
||
/// <summary>
|
||
/// 服务端基础地址。可以传主机地址,SDK 会自动补上 <c>/api</c>。
|
||
/// </summary>
|
||
public string BaseUrl;
|
||
/// <summary>
|
||
/// 项目标识。
|
||
/// </summary>
|
||
public string GameKey;
|
||
/// <summary>
|
||
/// 客户端版本号。
|
||
/// </summary>
|
||
public string ClientVersion;
|
||
/// <summary>
|
||
/// 设备标识。
|
||
/// </summary>
|
||
public string DeviceId;
|
||
/// <summary>
|
||
/// 是否启用调试日志。
|
||
/// </summary>
|
||
public bool EnableLog;
|
||
/// <summary>
|
||
/// 初始化时是否主动校验本地会话有效性。
|
||
/// </summary>
|
||
public bool ValidateSessionOnInitialize = true;
|
||
/// <summary>
|
||
/// 初始化恢复的本地会话已过期或失效时,是否使用本地保存的登录身份静默换取新会话。
|
||
/// </summary>
|
||
public bool AutoReloginOnInitialize = true;
|
||
/// <summary>
|
||
/// 自定义登录态持久化实现。
|
||
/// </summary>
|
||
public IBriskTokenStore TokenStore;
|
||
/// <summary>
|
||
/// 自定义严重错误展示器。
|
||
/// </summary>
|
||
public IBriskErrorPresenter ErrorPresenter;
|
||
/// <summary>
|
||
/// 阻断错误确认后的退出处理逻辑。
|
||
/// </summary>
|
||
public Action ExitHandler;
|
||
|
||
/// <summary>
|
||
/// 校验并规范化初始化参数。
|
||
/// </summary>
|
||
public void Validate()
|
||
{
|
||
if (string.IsNullOrWhiteSpace(BaseUrl))
|
||
{
|
||
throw new ArgumentException("BriskOptions.BaseUrl is required.", nameof(BaseUrl));
|
||
}
|
||
|
||
if (string.IsNullOrWhiteSpace(GameKey))
|
||
{
|
||
throw new ArgumentException("BriskOptions.GameKey is required.", nameof(GameKey));
|
||
}
|
||
|
||
BaseUrl = NormalizeBaseUrl(BaseUrl);
|
||
}
|
||
|
||
private static string NormalizeBaseUrl(string baseUrl)
|
||
{
|
||
var normalized = baseUrl.Trim().TrimEnd('/');
|
||
if (normalized.EndsWith("/api", StringComparison.OrdinalIgnoreCase))
|
||
{
|
||
return normalized;
|
||
}
|
||
|
||
return normalized + "/api";
|
||
}
|
||
}
|