mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
fix: separate hotfix by client
This commit is contained in:
@@ -56,14 +56,13 @@ public static class ConfigManager
|
||||
|
||||
// Generate all necessary versions
|
||||
var verList = new List<string>();
|
||||
if (GameConstants.GAME_VERSION.Length > 4)
|
||||
for (var i = 1; i < 6; i++)
|
||||
verList.Add(GameConstants.GAME_VERSION + i.ToString());
|
||||
else
|
||||
verList.Add(GameConstants.GAME_VERSION);
|
||||
|
||||
Logger.Info(I18NManager.Translate("Server.ServerInfo.CurrentVersion",
|
||||
verList.Aggregate((current, next) => $"{current}, {next}")));
|
||||
var prefix = new List<string> { "CN", "OS" };
|
||||
foreach (var pre in prefix)
|
||||
if (GameConstants.GAME_VERSION[^1] == '5')
|
||||
for (var i = 1; i < 6; i++)
|
||||
verList.Add(pre + GameConstants.GAME_VERSION + i.ToString());
|
||||
else
|
||||
verList.Add(pre + GameConstants.GAME_VERSION);
|
||||
|
||||
if (!file.Exists)
|
||||
{
|
||||
@@ -83,6 +82,8 @@ public static class ConfigManager
|
||||
if (!Hotfix.HotfixData.TryGetValue(version, out var _))
|
||||
Hotfix.HotfixData[version] = new();
|
||||
|
||||
Logger.Info(I18NManager.Translate("Server.ServerInfo.CurrentVersion", GameConstants.GAME_VERSION));
|
||||
|
||||
SaveData(Hotfix, HotfixFilePath);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,9 +36,9 @@ internal partial class QueryGatewayHandler
|
||||
if (ConfigManager.Config.GameServer.UsePacketEncryption)
|
||||
gateServer.ClientSecretKey = Convert.ToBase64String(Crypto.ClientSecretKey!.GetBytes());
|
||||
|
||||
// Auto separate CN/OS prefix
|
||||
var region = ConfigManager.Hotfix.Region;
|
||||
if (region == BaseRegionEnum.None)
|
||||
_ = Enum.TryParse(version[..2], out region);
|
||||
if (region == BaseRegionEnum.None) _ = Enum.TryParse(version[..2], out region);
|
||||
var baseUrl = region switch
|
||||
{
|
||||
BaseRegionEnum.CN => BaseUrl.CN,
|
||||
@@ -46,6 +46,7 @@ internal partial class QueryGatewayHandler
|
||||
_ => BaseUrl.OS
|
||||
};
|
||||
|
||||
// Separate CN/OS hotfix by client
|
||||
var ver = VersionRegex().Replace(version, "");
|
||||
ConfigManager.Hotfix.HotfixData.TryGetValue(ver, out var urls);
|
||||
if (urls != null)
|
||||
@@ -66,6 +67,6 @@ internal partial class QueryGatewayHandler
|
||||
Data = Convert.ToBase64String(gateServer.ToByteArray());
|
||||
}
|
||||
|
||||
[GeneratedRegex(@"CN|OS|BETA|PROD|Android|Win|iOS")]
|
||||
[GeneratedRegex(@"BETA|PROD|CECREATION|Android|Win|iOS")]
|
||||
private static partial Regex VersionRegex();
|
||||
}
|
||||
Reference in New Issue
Block a user