diff --git a/binaries/data/mods/public/gui/prelobby/common/feedback/feedback.js b/binaries/data/mods/public/gui/prelobby/common/feedback/feedback.js index e49ce1436a..6028cff9c6 100644 --- a/binaries/data/mods/public/gui/prelobby/common/feedback/feedback.js +++ b/binaries/data/mods/public/gui/prelobby/common/feedback/feedback.js @@ -22,8 +22,13 @@ function onTick() return; for (let message of messages) + { if (message.type == "system" && message.level) g_LobbyMessages[message.level](message); + + if (!Engine.HasXmppClient()) + break; + } } function setFeedback(feedbackText) diff --git a/source/lobby/XmppClient.cpp b/source/lobby/XmppClient.cpp index 91de26a728..0dd5e72e13 100644 --- a/source/lobby/XmppClient.cpp +++ b/source/lobby/XmppClient.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2019 Wildfire Games. +/* Copyright (C) 2020 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -279,6 +279,7 @@ void XmppClient::onDisconnect(gloox::ConnectionError error) m_Profile.clear(); m_HistoricGuiMessages.clear(); m_isConnected = false; + m_initialLoadComplete = false; CreateGUIMessage( "system", @@ -699,7 +700,7 @@ bool XmppClient::GuiPollHasPlayerListUpdate() JS::Value XmppClient::GuiPollNewMessages(const ScriptInterface& scriptInterface) { - if (!m_initialLoadComplete || m_GuiMessageQueue.empty()) + if ((m_isConnected && !m_initialLoadComplete) || m_GuiMessageQueue.empty()) return JS::UndefinedValue(); JSContext* cx = scriptInterface.GetContext();