远程CDK验证等待窗口延长到45秒,超时与CDK不存在区分提示,避免误报未匹配

This commit is contained in:
ypsdf1
2026-09-28 19:42:07 +08:00
parent 5c25269f3c
commit c64da321df
+12 -3
View File
@@ -2311,10 +2311,12 @@ public class Main extends JavaPlugin implements Listener, CommandExecutor {
final String playerName = p.getName();
final String requestId = submitCdkValidation(cdkCode, playerName);
// ★ 异步线程等待结果(最多6秒)
// ★ 异步线程等待结果(最多45秒)
// Sdf1_login 侧遇到HTTP失败/锁库/解析异常会自动重排队,最多4轮,
// 所以这里要留够时间,否则远端明明匹配到了也会被判成"未匹配"。
new Thread(() -> {
String[] webResult = null;
for (int i = 0; i < 20; i++) {
for (int i = 0; i < 150; i++) {
try { Thread.sleep(300); } catch (InterruptedException ignored) {}
webResult = getCdkValidationResult(requestId);
if (webResult != null) break;
@@ -2357,8 +2359,15 @@ public class Main extends JavaPlugin implements Listener, CommandExecutor {
target.sendMessage(colorize("&6&l[债券] &e&l恭喜!获得 &c&l" + amt + " &e&l债券!"));
} else if (finalResult != null && "already_used".equals(finalResult[0])) {
target.sendMessage(colorize("&c此兑换码已被使用"));
} else {
} else if (finalResult == null) {
// ★ 超时 ≠ 不存在:远端可能只是锁库/网络抖动,别谎报未匹配
log("[债券] 远程验证超时 code=" + cdkCode + " player=" + playerName);
target.sendMessage(colorize("&c[债券] 远程验证超时,请稍后再试一次"));
} else if ("not_found".equals(finalResult[0])) {
target.sendMessage(colorize("&c[债券] CDK不存在: " + cdkCode));
} else {
log("[债券] 远程验证异常 code=" + cdkCode + " status=" + finalResult[0]);
target.sendMessage(colorize("&c[债券] CDK验证失败(" + finalResult[0] + "),请稍后再试"));
}
});
}).start();