diff options
Diffstat (limited to 'source/game/StarWorldServer.cpp')
-rw-r--r-- | source/game/StarWorldServer.cpp | 23 |
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)); |