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

summaryrefslogtreecommitdiff
path: root/source/game/StarWorldServer.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-04-24 16:28:09 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2024-04-24 16:28:09 +1000
commitf58702683fda7d9b6c26548b1cf7e2382f958893 (patch)
tree6b1041a480f7dc4d86a0f30fe04fbcb263963649 /source/game/StarWorldServer.cpp
parentd0f8aec244a0d71f67863f94cab4c5f84d93de22 (diff)
log EntityMessageResponse error instead of throwing
Diffstat (limited to 'source/game/StarWorldServer.cpp')
-rw-r--r--source/game/StarWorldServer.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/source/game/StarWorldServer.cpp b/source/game/StarWorldServer.cpp
index 1b4041f..bf7e030 100644
--- a/source/game/StarWorldServer.cpp
+++ b/source/game/StarWorldServer.cpp
@@ -507,17 +507,18 @@ void WorldServer::handleIncomingPackets(ConnectionId clientId, List<PacketPtr> c
} else if (auto entityMessageResponsePacket = as<EntityMessageResponsePacket>(packet)) {
if (!m_entityMessageResponses.contains(entityMessageResponsePacket->uuid))
- throw WorldServerException("ScriptedEntityResponse received for unknown context!");
-
- auto response = m_entityMessageResponses.take(entityMessageResponsePacket->uuid).second;
- if (response.is<ConnectionId>()) {
- if (auto clientInfo = m_clientInfo.value(response.get<ConnectionId>()))
- clientInfo->outgoingPackets.append(std::move(entityMessageResponsePacket));
- } else {
- if (entityMessageResponsePacket->response.isRight())
- response.get<RpcPromiseKeeper<Json>>().fulfill(entityMessageResponsePacket->response.right());
- else
- response.get<RpcPromiseKeeper<Json>>().fail(entityMessageResponsePacket->response.left());
+ Logger::warn("EntityMessageResponse received for unknown context [{}]!", entityMessageResponsePacket->uuid.hex());
+ else {
+ auto response = m_entityMessageResponses.take(entityMessageResponsePacket->uuid).second;
+ if (response.is<ConnectionId>()) {
+ if (auto clientInfo = m_clientInfo.value(response.get<ConnectionId>()))
+ clientInfo->outgoingPackets.append(std::move(entityMessageResponsePacket));
+ } else {
+ if (entityMessageResponsePacket->response.isRight())
+ response.get<RpcPromiseKeeper<Json>>().fulfill(entityMessageResponsePacket->response.right());
+ else
+ response.get<RpcPromiseKeeper<Json>>().fail(entityMessageResponsePacket->response.left());
+ }
}
} else if (auto pingPacket = as<PingPacket>(packet)) {
clientInfo->outgoingPackets.append(make_shared<PongPacket>(pingPacket->time));