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

summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-03-21 15:38:57 +1100
committerGitHub <noreply@github.com>2024-03-21 15:38:57 +1100
commite2fd804f554d991b4ac0139ce9d80d349d60ce79 (patch)
tree861b72422875a3f8694b76ed2ac0a4860f22adbc /source
parent330fc938f327476509973c5fed7cf5d6fbcdb0b4 (diff)
parent868216a992c5d2d721ce457bbc0ac9843b121a0f (diff)
Merge pull request #46 from ErodeesFleurs/luaFunc
Add parseJson and clientWorld functions to LuaBindings
Diffstat (limited to 'source')
-rw-r--r--source/core/scripting/StarUtilityLuaBindings.cpp5
-rw-r--r--source/core/scripting/StarUtilityLuaBindings.hpp1
-rw-r--r--source/game/scripting/StarUniverseServerLuaBindings.cpp5
-rw-r--r--source/game/scripting/StarUniverseServerLuaBindings.hpp1
4 files changed, 12 insertions, 0 deletions
diff --git a/source/core/scripting/StarUtilityLuaBindings.cpp b/source/core/scripting/StarUtilityLuaBindings.cpp
index ed04fa7..5ab6e19 100644
--- a/source/core/scripting/StarUtilityLuaBindings.cpp
+++ b/source/core/scripting/StarUtilityLuaBindings.cpp
@@ -113,6 +113,7 @@ LuaCallbacks LuaBindings::makeUtilityCallbacks() {
callbacks.registerCallback("logWarn", UtilityCallbacks::logWarn);
callbacks.registerCallback("logError", UtilityCallbacks::logError);
callbacks.registerCallback("setLogMap", UtilityCallbacks::setLogMap);
+ callbacks.registerCallback("parseJson", UtilityCallbacks::parseJson);
callbacks.registerCallback("printJson", UtilityCallbacks::printJson);
callbacks.registerCallback("print", UtilityCallbacks::print);
callbacks.registerCallback("interpolateSinEase", UtilityCallbacks::interpolateSinEase);
@@ -192,6 +193,10 @@ void LuaBindings::UtilityCallbacks::setLogMap(String const& key, String const& v
LogMap::set(key, formatLua(value, args));
}
+Json LuaBindings::UtilityCallbacks::parseJson(String const& str) {
+ return Json::parse(str);
+}
+
String LuaBindings::UtilityCallbacks::printJson(Json const& arg, Maybe<int> pretty) {
return arg.repr(pretty.value());
}
diff --git a/source/core/scripting/StarUtilityLuaBindings.hpp b/source/core/scripting/StarUtilityLuaBindings.hpp
index 8435ecd..67d1f9c 100644
--- a/source/core/scripting/StarUtilityLuaBindings.hpp
+++ b/source/core/scripting/StarUtilityLuaBindings.hpp
@@ -16,6 +16,7 @@ namespace LuaBindings {
void logWarn(String const& str, LuaVariadic<LuaValue> const& args);
void logError(String const& str, LuaVariadic<LuaValue> const& args);
void setLogMap(String const& key, String const& value, LuaVariadic<LuaValue> const& args);
+ Json parseJson(String const& str);
String printJson(Json const& arg, Maybe<int> pretty);
String print(LuaValue const& arg);
LuaValue interpolateSinEase(LuaEngine& engine, double offset, LuaValue const& value1, LuaValue const& value2);
diff --git a/source/game/scripting/StarUniverseServerLuaBindings.cpp b/source/game/scripting/StarUniverseServerLuaBindings.cpp
index 99b1a7a..c68f138 100644
--- a/source/game/scripting/StarUniverseServerLuaBindings.cpp
+++ b/source/game/scripting/StarUniverseServerLuaBindings.cpp
@@ -22,6 +22,7 @@ LuaCallbacks LuaBindings::makeUniverseServerCallbacks(UniverseServer* universe)
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<String, ConnectionId>("clientWorld", bind(UniverseServerCallbacks::clientWorld, universe, _1));
return callbacks;
}
@@ -133,4 +134,8 @@ void LuaBindings::UniverseServerCallbacks::sendPacket(UniverseServer* universe,
universe->sendPacket(clientId, packet);
}
+String LuaBindings::UniverseServerCallbacks::clientWorld(UniverseServer* universe, ConnectionId clientId) {
+ return printWorldId(universe->clientWorld(clientId));
+}
+
}
diff --git a/source/game/scripting/StarUniverseServerLuaBindings.hpp b/source/game/scripting/StarUniverseServerLuaBindings.hpp
index 18dca7d..b5ce8b9 100644
--- a/source/game/scripting/StarUniverseServerLuaBindings.hpp
+++ b/source/game/scripting/StarUniverseServerLuaBindings.hpp
@@ -26,6 +26,7 @@ namespace LuaBindings {
StringList activeWorlds(UniverseServer* universe);
RpcThreadPromise<Json> sendWorldMessage(UniverseServer* universe, String const& worldId, String const& message, LuaVariadic<Json> args);
void sendPacket(UniverseServer* universe, ConnectionId clientId, String const& packetTypeName, Json const& args);
+ String clientWorld(UniverseServer* universe, ConnectionId clientId);
}
}
}