diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-04-02 13:39:34 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-04-02 13:39:34 +1100 |
commit | 662f12da9624435b1850b424817879f12b7a30b2 (patch) | |
tree | d43af674451d2247b91b2e3b9fa3f3e4b4181423 /source/game/scripting/StarUniverseServerLuaBindings.cpp | |
parent | 40698751e79d119e1ae37ea605b320961d6b597a (diff) |
improvements to universe.sendPacket and world.sendPacket
adds necessary clientsMutex lock, and returns false if sending failed
Diffstat (limited to 'source/game/scripting/StarUniverseServerLuaBindings.cpp')
-rw-r--r-- | source/game/scripting/StarUniverseServerLuaBindings.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/source/game/scripting/StarUniverseServerLuaBindings.cpp b/source/game/scripting/StarUniverseServerLuaBindings.cpp index c68f138..479f6b8 100644 --- a/source/game/scripting/StarUniverseServerLuaBindings.cpp +++ b/source/game/scripting/StarUniverseServerLuaBindings.cpp @@ -21,7 +21,7 @@ LuaCallbacks LuaBindings::makeUniverseServerCallbacks(UniverseServer* universe) callbacks.registerCallbackWithSignature<bool, String>("isWorldActive", bind(UniverseServerCallbacks::isWorldActive, universe, _1)); callbacks.registerCallbackWithSignature<StringList>("activeWorlds", bind(UniverseServerCallbacks::activeWorlds, universe)); callbacks.registerCallbackWithSignature<RpcThreadPromise<Json>, String, String, LuaVariadic<Json>>("sendWorldMessage", bind(UniverseServerCallbacks::sendWorldMessage, universe, _1, _2, _3)); - callbacks.registerCallbackWithSignature<void, ConnectionId, String, Json>("sendPacket", bind(UniverseServerCallbacks::sendPacket, universe, _1, _2, _3)); + callbacks.registerCallbackWithSignature<bool, ConnectionId, String, Json>("sendPacket", bind(UniverseServerCallbacks::sendPacket, universe, _1, _2, _3)); callbacks.registerCallbackWithSignature<String, ConnectionId>("clientWorld", bind(UniverseServerCallbacks::clientWorld, universe, _1)); return callbacks; @@ -117,21 +117,17 @@ bool LuaBindings::UniverseServerCallbacks::isWorldActive(UniverseServer* univers } StringList LuaBindings::UniverseServerCallbacks::activeWorlds(UniverseServer* universe) { - StringList worlds; - for (WorldId& world : universe->activeWorlds()) - worlds.append(printWorldId(world)); - - return worlds; + return universe->activeWorlds().transformed(printWorldId); } RpcThreadPromise<Json> LuaBindings::UniverseServerCallbacks::sendWorldMessage(UniverseServer* universe, String const& worldId, String const& message, LuaVariadic<Json> args) { return universe->sendWorldMessage(parseWorldId(worldId), message, JsonArray::from(std::move(args))); } -void LuaBindings::UniverseServerCallbacks::sendPacket(UniverseServer* universe, ConnectionId clientId, String const& packetTypeName, Json const& args) { +bool LuaBindings::UniverseServerCallbacks::sendPacket(UniverseServer* universe, ConnectionId clientId, String const& packetTypeName, Json const& args) { auto packetType = PacketTypeNames.getLeft(packetTypeName); auto packet = createPacket(packetType, args); - universe->sendPacket(clientId, packet); + return universe->sendPacket(clientId, packet); } String LuaBindings::UniverseServerCallbacks::clientWorld(UniverseServer* universe, ConnectionId clientId) { |