From be571b5cd04f3986dc5725b4b04b4f94bd67a16c Mon Sep 17 00:00:00 2001 From: ErodeesFleurs <3353309908@qq.com> Date: Tue, 2 Apr 2024 09:34:06 +0800 Subject: add world.sendPacket and fixed deadlock --- source/game/StarWorldServer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/game/StarWorldServer.cpp') diff --git a/source/game/StarWorldServer.cpp b/source/game/StarWorldServer.cpp index ad3b555..95ec8c3 100644 --- a/source/game/StarWorldServer.cpp +++ b/source/game/StarWorldServer.cpp @@ -544,6 +544,11 @@ List WorldServer::getOutgoingPackets(ConnectionId clientId) { return std::move(clientInfo->outgoingPackets); } +void WorldServer::sendPacket(ConnectionId clientId, PacketPtr const& packet) { + if (auto const& clientInfo = m_clientInfo.get(clientId)) + clientInfo->outgoingPackets.append(packet); +} + Maybe WorldServer::receiveMessage(ConnectionId fromConnection, String const& message, JsonArray const& args) { Maybe result; for (auto& p : m_scriptContexts) { @@ -2084,7 +2089,7 @@ float WorldServer::lightLevel(Vec2F const& pos) const { } void WorldServer::setDungeonBreathable(DungeonId dungeonId, Maybe breathable) { - Maybe current = m_dungeonIdBreathable.maybe(dungeonId); + Maybe current = m_dungeonIdBreathable.maybe(dungeonId); if (breathable != current) { if (breathable) m_dungeonIdBreathable[dungeonId] = *breathable; -- cgit v1.2.3