191 build - поправлены старые падения, проверены 3 матча и 6 агентов одновременных
This commit is contained in:
@@ -5010,7 +5010,7 @@ function startCustomTooltips() {
|
||||
const rawCommands = typeof commands === "function" ? commands() : commands;
|
||||
const clean = (rawCommands || []).map(compactVmixCommand).filter((command) => command.Function);
|
||||
if (!clean.length) return Promise.resolve({ ok: true, applied: 0, requested: 0, results: [] });
|
||||
|
||||
const deviceId = currentRuntimeVmixDeviceId();
|
||||
const penaltyInputs = new Set(clean.map((command) => String(command.Input || "")));
|
||||
const penaltyAssignments = Array.from(state.vmixPenaltyTargetAssignments.entries())
|
||||
.filter(([, value]) => penaltyInputs.has(String(value.input || "")));
|
||||
@@ -5021,6 +5021,13 @@ function startCustomTooltips() {
|
||||
}
|
||||
};
|
||||
|
||||
// An empty selection must not use an old session Agent or confirm an unsent penalty target.
|
||||
if (!deviceId) {
|
||||
forgetFailedPenaltyAssignments();
|
||||
console.warn("vMix timer sync skipped: select an Agent in this browser");
|
||||
return Promise.resolve({ ok: false, skipped: true, reason: "device_selection_required", applied: 0, requested: clean.length, results: [], error: "Выберите Agent в этом браузере" });
|
||||
}
|
||||
|
||||
const request = fetch("/api/hockey/vmix/sequence", {
|
||||
method: "POST",
|
||||
cache: "no-store",
|
||||
@@ -5031,7 +5038,7 @@ function startCustomTooltips() {
|
||||
// but BUILD106 uses ordered single WebSocket frames rather than vmix.batch.
|
||||
body: JSON.stringify({
|
||||
commands: clean,
|
||||
device_id: currentRuntimeVmixDeviceId(),
|
||||
device_id: deviceId,
|
||||
session_token: currentRuntimeHockeySessionToken(),
|
||||
delivery_mode: "timer-fast-ordered",
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user