diff --git a/binaries/data/mods/public/gui/session/messages.js b/binaries/data/mods/public/gui/session/messages.js index 389d63d5ac..d063675197 100644 --- a/binaries/data/mods/public/gui/session/messages.js +++ b/binaries/data/mods/public/gui/session/messages.js @@ -271,7 +271,7 @@ function handleNetMessage(message) g_PlayerAssignments = message.hosts; - if (g_IsController) + if (g_IsController && Engine.HasXmppClient()) { var players = [ assignment.name for each (assignment in g_PlayerAssignments) ] Engine.SendChangeStateGame(Object.keys(g_PlayerAssignments).length, players.join(", ")); diff --git a/source/gui/scripting/ScriptFunctions.cpp b/source/gui/scripting/ScriptFunctions.cpp index a3fc85b88a..ac934f52c4 100644 --- a/source/gui/scripting/ScriptFunctions.cpp +++ b/source/gui/scripting/ScriptFunctions.cpp @@ -922,6 +922,7 @@ void GuiScriptingInit(ScriptInterface& scriptInterface) JSI_Mod::RegisterScriptFunctions(scriptInterface); JSI_Sound::RegisterScriptFunctions(scriptInterface); JSI_L10n::RegisterScriptFunctions(scriptInterface); + JSI_Lobby::RegisterScriptFunctions(scriptInterface); // VFS (external) scriptInterface.RegisterFunction("BuildDirEntList"); @@ -1023,39 +1024,4 @@ void GuiScriptingInit(ScriptInterface& scriptInterface) scriptInterface.RegisterFunction("EnableTimeWarpRecording"); scriptInterface.RegisterFunction("RewindTimeWarp"); scriptInterface.RegisterFunction("SetBoundingBoxDebugOverlay"); - - // Lobby functions - scriptInterface.RegisterFunction("HasXmppClient"); - scriptInterface.RegisterFunction("IsRankedGame"); - scriptInterface.RegisterFunction("SetRankedGame"); -#if CONFIG2_LOBBY // Allow the lobby to be disabled - scriptInterface.RegisterFunction("StartXmppClient"); - scriptInterface.RegisterFunction("StartRegisterXmppClient"); - scriptInterface.RegisterFunction("StopXmppClient"); - scriptInterface.RegisterFunction("ConnectXmppClient"); - scriptInterface.RegisterFunction("DisconnectXmppClient"); - scriptInterface.RegisterFunction("SendGetGameList"); - scriptInterface.RegisterFunction("SendGetBoardList"); - scriptInterface.RegisterFunction("SendGetRatingList"); - scriptInterface.RegisterFunction("SendGetProfile"); - scriptInterface.RegisterFunction("SendRegisterGame"); - scriptInterface.RegisterFunction("SendGameReport"); - scriptInterface.RegisterFunction("SendUnregisterGame"); - scriptInterface.RegisterFunction("SendChangeStateGame"); - scriptInterface.RegisterFunction("GetPlayerList"); - scriptInterface.RegisterFunction("GetGameList"); - scriptInterface.RegisterFunction("GetBoardList"); - scriptInterface.RegisterFunction("GetProfile"); - scriptInterface.RegisterFunction("LobbyGuiPollMessage"); - scriptInterface.RegisterFunction("LobbySendMessage"); - scriptInterface.RegisterFunction("LobbySetPlayerPresence"); - scriptInterface.RegisterFunction("LobbySetNick"); - scriptInterface.RegisterFunction("LobbyGetNick"); - scriptInterface.RegisterFunction("LobbyKick"); - scriptInterface.RegisterFunction("LobbyBan"); - scriptInterface.RegisterFunction("LobbyGetPlayerPresence"); - scriptInterface.RegisterFunction("LobbyGetPlayerRole"); - scriptInterface.RegisterFunction("EncryptPassword"); - scriptInterface.RegisterFunction("LobbyGetRoomSubject"); -#endif // CONFIG2_LOBBY } diff --git a/source/lobby/scripting/JSInterface_Lobby.cpp b/source/lobby/scripting/JSInterface_Lobby.cpp index d463f87271..f0d943a5ec 100644 --- a/source/lobby/scripting/JSInterface_Lobby.cpp +++ b/source/lobby/scripting/JSInterface_Lobby.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2013 Wildfire Games. +/* Copyright (C) 2014 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -22,10 +22,47 @@ #include "gui/GUIManager.h" #include "lib/utf8.h" #include "lobby/IXmppClient.h" +#include "scriptinterface/ScriptInterface.h" #include "third_party/encryption/pkcs5_pbkdf2.h" #include "third_party/encryption/sha.h" -#include "scriptinterface/ScriptInterface.h" +void JSI_Lobby::RegisterScriptFunctions(ScriptInterface& scriptInterface) +{ + // Lobby functions + scriptInterface.RegisterFunction("HasXmppClient"); + scriptInterface.RegisterFunction("IsRankedGame"); + scriptInterface.RegisterFunction("SetRankedGame"); +#if CONFIG2_LOBBY // Allow the lobby to be disabled + scriptInterface.RegisterFunction("StartXmppClient"); + scriptInterface.RegisterFunction("StartRegisterXmppClient"); + scriptInterface.RegisterFunction("StopXmppClient"); + scriptInterface.RegisterFunction("ConnectXmppClient"); + scriptInterface.RegisterFunction("DisconnectXmppClient"); + scriptInterface.RegisterFunction("SendGetGameList"); + scriptInterface.RegisterFunction("SendGetBoardList"); + scriptInterface.RegisterFunction("SendGetRatingList"); + scriptInterface.RegisterFunction("SendGetProfile"); + scriptInterface.RegisterFunction("SendRegisterGame"); + scriptInterface.RegisterFunction("SendGameReport"); + scriptInterface.RegisterFunction("SendUnregisterGame"); + scriptInterface.RegisterFunction("SendChangeStateGame"); + scriptInterface.RegisterFunction("GetPlayerList"); + scriptInterface.RegisterFunction("GetGameList"); + scriptInterface.RegisterFunction("GetBoardList"); + scriptInterface.RegisterFunction("GetProfile"); + scriptInterface.RegisterFunction("LobbyGuiPollMessage"); + scriptInterface.RegisterFunction("LobbySendMessage"); + scriptInterface.RegisterFunction("LobbySetPlayerPresence"); + scriptInterface.RegisterFunction("LobbySetNick"); + scriptInterface.RegisterFunction("LobbyGetNick"); + scriptInterface.RegisterFunction("LobbyKick"); + scriptInterface.RegisterFunction("LobbyBan"); + scriptInterface.RegisterFunction("LobbyGetPlayerPresence"); + scriptInterface.RegisterFunction("LobbyGetPlayerRole"); + scriptInterface.RegisterFunction("EncryptPassword"); + scriptInterface.RegisterFunction("LobbyGetRoomSubject"); +#endif // CONFIG2_LOBBY +} bool JSI_Lobby::HasXmppClient(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) { diff --git a/source/lobby/scripting/JSInterface_Lobby.h b/source/lobby/scripting/JSInterface_Lobby.h index eb64dda87f..975bc8999f 100644 --- a/source/lobby/scripting/JSInterface_Lobby.h +++ b/source/lobby/scripting/JSInterface_Lobby.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2013 Wildfire Games. +/* Copyright (C) 2014 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,12 +18,14 @@ #ifndef INCLUDED_JSI_LOBBY #define INCLUDED_JSI_LOBBY +#include "lib/config2.h" #include "scriptinterface/ScriptInterface.h" #include "scriptinterface/ScriptVal.h" -#include "lib/config2.h" // for CONFIG2_LOBBY namespace JSI_Lobby { + void RegisterScriptFunctions(ScriptInterface& scriptInterface); + bool HasXmppClient(ScriptInterface::CxPrivate* pCxPrivate); bool IsRankedGame(ScriptInterface::CxPrivate* pCxPrivate); void SetRankedGame(ScriptInterface::CxPrivate* pCxPrivate, bool isRanked); @@ -66,4 +68,3 @@ namespace JSI_Lobby } #endif -