This commit is contained in:
cay 2026-04-12 09:57:37 +01:00
parent ed5d27b1b7
commit 52dc0afc02
2 changed files with 24 additions and 4 deletions

View File

@ -406,8 +406,16 @@ function registerArenaHandlers(io, socket) {
// Name aus socket.user (Objekt) oder vom Client mitgesendet
const u = socket.user;
room.names[slot] =
(u && (u.ingame_name || u.username || u.name)) || playerName || "Spieler";
const resolvedName =
(u && (u.ingame_name || u.username || u.name)) || playerName || null;
// Guten Namen nie mit Fallback überschreiben:
// Nur setzen wenn (a) noch kein Name gespeichert ist, oder (b) neuer Name besser ist
if (!room.names[slot] || room.names[slot] === "Spieler") {
room.names[slot] = resolvedName || "Spieler";
} else if (resolvedName && resolvedName !== "Spieler") {
room.names[slot] = resolvedName;
}
socket.join("arena_" + matchId);

View File

@ -760,10 +760,22 @@
// Sofort emittieren (socket.io puffert bis verbunden)
fetchAndJoin();
// Sicherheits-Retry nach 2s falls connect noch aussteht
// Sicherheits-Retry: nur erneut joinen wenn Name schon bekannt ist
// (verhindert dass ein fehlgeschlagener /arena/me-Fetch den Namen auf "Spieler" überschreibt)
socket.on("connect", () => {
console.log("[1v1] Socket connected:", socket.id);
fetchAndJoin();
if (myIngameName && myIngameName !== "Spieler") {
// Name bereits bekannt → direkt arena_join senden, kein erneuter Fetch nötig
socket.emit("arena_join", {
matchId,
slot: mySlot,
accountId: null,
playerName: myIngameName,
});
} else {
// Name noch unbekannt (erster Connect oder Fetch fehlgeschlagen) → fetch wiederholen
fetchAndJoin();
}
});
socket.on("connect_error", (err) => {