Index: ps/trunk/binaries/data/mods/public/gui/common/functions_utility.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/common/functions_utility.js +++ ps/trunk/binaries/data/mods/public/gui/common/functions_utility.js @@ -87,7 +87,13 @@ function stringifiedTeamListToPlayerData(stringifiedTeamList) { - let teamList = JSON.parse(unescapeText(stringifiedTeamList)); + let teamList = {}; + try + { + teamList = JSON.parse(unescapeText(stringifiedTeamList)); + } + catch (e) {} + let playerData = []; for (let team in teamList) @@ -171,12 +177,13 @@ g_ChatMessages.length = 0; Engine.GetGUIObjectByName("chatText").caption = ""; - try { + try + { for (let timer of g_ChatTimers) clearTimeout(timer); g_ChatTimers.length = 0; - } catch (e) { } + catch (e) {} } /** Index: ps/trunk/binaries/data/mods/public/gui/lobby/lobby.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/lobby/lobby.js +++ ps/trunk/binaries/data/mods/public/gui/lobby/lobby.js @@ -1017,7 +1017,16 @@ Math.round(playerRatings.reduce((sum, current) => sum + current) / playerRatings.length) : g_DefaultLobbyRating; - if (!hasSameMods(JSON.parse(game.mods), Engine.GetEngineInfo().mods)) + try + { + game.mods = JSON.parse(game.mods); + } + catch (e) + { + game.mods = []; + } + + if (!hasSameMods(game.mods, Engine.GetEngineInfo().mods)) game.state = "incompatible"; return game; @@ -1178,7 +1187,7 @@ messageBox( 400, 200, translate("Your active mods do not match the mods of this game.") + "\n\n" + - comparedModsString(JSON.parse(game.mods), Engine.GetEngineInfo().mods) + "\n\n" + + comparedModsString(game.mods, Engine.GetEngineInfo().mods) + "\n\n" + translate("Do you want to switch to the mod selection page?"), translate("Incompatible mods"), [translate("No"), translate("Yes")],