Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/scripting
diff options
context:
space:
mode:
Diffstat (limited to 'source/game/scripting')
-rw-r--r--source/game/scripting/StarUniverseServerLuaBindings.cpp18
-rw-r--r--source/game/scripting/StarUniverseServerLuaBindings.hpp4
2 files changed, 19 insertions, 3 deletions
diff --git a/source/game/scripting/StarUniverseServerLuaBindings.cpp b/source/game/scripting/StarUniverseServerLuaBindings.cpp
index 9101be5..ac513a2 100644
--- a/source/game/scripting/StarUniverseServerLuaBindings.cpp
+++ b/source/game/scripting/StarUniverseServerLuaBindings.cpp
@@ -18,7 +18,9 @@ LuaCallbacks LuaBindings::makeUniverseServerCallbacks(UniverseServer* universe)
callbacks.registerCallbackWithSignature<bool, ConnectionId>("isAdmin", bind(UniverseServerCallbacks::isAdmin, universe, _1));
callbacks.registerCallbackWithSignature<bool, ConnectionId>("isPvp", bind(UniverseServerCallbacks::isPvp, universe, _1));
callbacks.registerCallbackWithSignature<void, ConnectionId, bool>("setPvp", bind(UniverseServerCallbacks::setPvp, universe, _1, _2));
- callbacks.registerCallbackWithSignature<RpcThreadPromise<Json>, LuaEngine&, String, String, LuaVariadic<Json>>("sendWorldMessage", bind(UniverseServerCallbacks::sendWorldMessage, universe, _1, _2, _3, _4));
+ callbacks.registerCallbackWithSignature<bool, String>("isWorldActive", bind(UniverseServerCallbacks::isWorldActive, universe, _1));
+ callbacks.registerCallbackWithSignature<bool, StringList>("activeWorlds", bind(UniverseServerCallbacks::activeWorlds, universe));
+ callbacks.registerCallbackWithSignature<RpcThreadPromise<Json>, String, String, LuaVariadic<Json>>("sendWorldMessage", bind(UniverseServerCallbacks::sendWorldMessage, universe, _1, _2, _3));
return callbacks;
}
@@ -108,7 +110,19 @@ void LuaBindings::UniverseServerCallbacks::setPvp(UniverseServer* universe, Conn
universe->setPvp(client, setPvpTo);
}
-RpcThreadPromise<Json> LuaBindings::UniverseServerCallbacks::sendWorldMessage(UniverseServer* universe, LuaEngine& engine, String const& worldId, String const& message, LuaVariadic<Json> args) {
+bool LuaBindings::UniverseServerCallbacks::isWorldActive(UniverseServer* universe, String const& worldId) {
+ return universe->isWorldActive(parseWorldId(worldId));
+}
+
+StringList LuaBindings::UniverseServerCallbacks::activeWorlds(UniverseServer* universe) {
+ StringList worlds;
+ for (WorldId& world : universe->activeWorlds())
+ worlds.append(printWorldId(world));
+
+ return worlds;
+}
+
+RpcThreadPromise<Json> LuaBindings::UniverseServerCallbacks::sendWorldMessage(UniverseServer* universe, String const& worldId, String const& message, LuaVariadic<Json> args) {
return universe->sendWorldMessage(parseWorldId(worldId), message, JsonArray::from(move(args)));
}
diff --git a/source/game/scripting/StarUniverseServerLuaBindings.hpp b/source/game/scripting/StarUniverseServerLuaBindings.hpp
index 5eb1674..0b6b21b 100644
--- a/source/game/scripting/StarUniverseServerLuaBindings.hpp
+++ b/source/game/scripting/StarUniverseServerLuaBindings.hpp
@@ -23,7 +23,9 @@ namespace LuaBindings {
bool isAdmin(UniverseServer* universe, ConnectionId arg1);
bool isPvp(UniverseServer* universe, ConnectionId arg1);
void setPvp(UniverseServer* universe, ConnectionId arg1, Maybe<bool> arg2);
- RpcThreadPromise<Json> sendWorldMessage(UniverseServer* universe, LuaEngine& engine, String const& worldId, String const& message, LuaVariadic<Json> args);
+ bool isWorldActive(UniverseServer* universe, String const& worldId);
+ StringList activeWorlds(UniverseServer* universe);
+ RpcThreadPromise<Json> sendWorldMessage(UniverseServer* universe, String const& worldId, String const& message, LuaVariadic<Json> args);
}
}
}