This commit is contained in:
cay 2026-04-12 10:19:59 +01:00
parent 14d9f2c77c
commit 74f86e36f2
2 changed files with 18 additions and 3 deletions

View File

@ -459,7 +459,7 @@ async function handle1v1Click(card) {
hideQueueStatus(); hideQueueStatus();
showMatchFoundOverlay(me.name, data.opponent.name, () => { showMatchFoundOverlay(me.name, data.opponent.name, () => {
openArenaPopup( openArenaPopup(
`/arena/1v1?match=${encodeURIComponent(data.matchId)}&slot=${encodeURIComponent(data.mySlot)}&deck=${encodeURIComponent(selectedDeckId||'')}`, `/arena/1v1?match=${encodeURIComponent(data.matchId)}&slot=${encodeURIComponent(data.mySlot)}&deck=${encodeURIComponent(selectedDeckId||'')}&opponent=${encodeURIComponent(data.opponent.name||'')}`,
data.opponent.name, data.matchId data.opponent.name, data.matchId
); );
}); });

View File

@ -720,6 +720,13 @@
const mySlot = urlParams.get("slot") || "<%= mySlot || 'player1' %>"; const mySlot = urlParams.get("slot") || "<%= mySlot || 'player1' %>";
const amIPlayer1 = mySlot === "player1"; const amIPlayer1 = mySlot === "player1";
// Gegner-Name direkt aus URL setzen (kommt aus match_found, immer korrekt)
const opponentNameFromUrl = urlParams.get("opponent");
if (opponentNameFromUrl) {
const oppEl = document.getElementById(amIPlayer1 ? "nameRight" : "nameLeft");
if (oppEl) oppEl.textContent = decodeURIComponent(opponentNameFromUrl);
}
/* ── Socket ─────────────────────────────────────────── */ /* ── Socket ─────────────────────────────────────────── */
const socket = io(); const socket = io();
@ -807,12 +814,20 @@
console.log("[Arena] arena_ready:", data); console.log("[Arena] arena_ready:", data);
clearTimeout(readyFallbackTimer); clearTimeout(readyFallbackTimer);
document.getElementById("connecting-overlay")?.remove(); document.getElementById("connecting-overlay")?.remove();
// Gegner-Name aus server-Daten setzen (immer, außer leer) // Gegner-Name: URL-Parameter hat Vorrang (aus match_found, 100% korrekt)
// Server-Daten nur als Fallback wenn URL-Name fehlt
const oppName = amIPlayer1 ? data.player2 : data.player1; const oppName = amIPlayer1 ? data.player2 : data.player1;
const oppEl = document.getElementById( const oppEl = document.getElementById(
amIPlayer1 ? "nameRight" : "nameLeft", amIPlayer1 ? "nameRight" : "nameLeft",
); );
if (oppEl && oppName) oppEl.textContent = oppName; const currentOppName = oppEl?.textContent || "";
const urlOppName = urlParams.get("opponent");
// Nur überschreiben wenn Server einen echten Namen hat (nicht "Spieler"/"Spieler 1"/"Spieler 2")
if (oppEl && oppName && !["Spieler", "Spieler 1", "Spieler 2", "Gegner"].includes(oppName)) {
oppEl.textContent = oppName;
} else if (oppEl && urlOppName && (!currentOppName || currentOppName === "Gegner")) {
oppEl.textContent = decodeURIComponent(urlOppName);
}
// Eigenen Namen sichern falls noch nicht gesetzt // Eigenen Namen sichern falls noch nicht gesetzt
const myEl = document.getElementById( const myEl = document.getElementById(
amIPlayer1 ? "nameLeft" : "nameRight", amIPlayer1 ? "nameLeft" : "nameRight",