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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/opensb/scripts/opensb/player/commands.lua2
-rw-r--r--source/frontend/StarClientCommandProcessor.cpp9
2 files changed, 8 insertions, 3 deletions
diff --git a/assets/opensb/scripts/opensb/player/commands.lua b/assets/opensb/scripts/opensb/player/commands.lua
index 0387805..2b42f48 100644
--- a/assets/opensb/scripts/opensb/player/commands.lua
+++ b/assets/opensb/scripts/opensb/player/commands.lua
@@ -21,6 +21,8 @@ command("run", function(src)
local success, result = pcall(result)
if not success then
return "^#f00;error: " .. result
+ elseif result == nil then
+ return nil
else
local success, printed = pcall(sb.printJson, result)
if not success then
diff --git a/source/frontend/StarClientCommandProcessor.cpp b/source/frontend/StarClientCommandProcessor.cpp
index def1b43..2d98289 100644
--- a/source/frontend/StarClientCommandProcessor.cpp
+++ b/source/frontend/StarClientCommandProcessor.cpp
@@ -91,9 +91,12 @@ StringList ClientCommandProcessor::handleCommand(String const& commandLine) {
}
} else {
auto player = m_universeClient->mainPlayer();
- if (auto messageResult = player->receiveMessage(connectionForEntity(player->entityId()), "/" + command, { allArguments }))
- result.append(messageResult->isType(Json::Type::String) ? *messageResult->stringPtr() : messageResult->repr(1, true));
- else
+ if (auto messageResult = player->receiveMessage(connectionForEntity(player->entityId()), "/" + command, {allArguments})) {
+ if (messageResult->isType(Json::Type::String))
+ result.append(*messageResult->stringPtr());
+ else if (!messageResult->isNull())
+ result.append(messageResult->repr(1, true));
+ } else
m_universeClient->sendChat(commandLine, ChatSendMode::Broadcast);
}
return result;