mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-03-15 21:45:12 +00:00
fix(Server/Scripting): Remove packet copy from server script hooks (#25063)
Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Co-authored-by: Andrew <47818697+Nyeriah@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -50,9 +50,7 @@ bool ScriptMgr::CanPacketSend(WorldSession* session, WorldPacket const& packet)
|
||||
if (ScriptRegistry<ServerScript>::ScriptPointerList.empty())
|
||||
return true;
|
||||
|
||||
WorldPacket copy(packet);
|
||||
|
||||
CALL_ENABLED_BOOLEAN_HOOKS(ServerScript, SERVERHOOK_CAN_PACKET_SEND, !script->CanPacketSend(session, copy));
|
||||
CALL_ENABLED_BOOLEAN_HOOKS(ServerScript, SERVERHOOK_CAN_PACKET_SEND, !script->CanPacketSend(session, packet));
|
||||
}
|
||||
|
||||
bool ScriptMgr::CanPacketReceive(WorldSession* session, WorldPacket const& packet)
|
||||
@@ -60,9 +58,7 @@ bool ScriptMgr::CanPacketReceive(WorldSession* session, WorldPacket const& packe
|
||||
if (ScriptRegistry<ServerScript>::ScriptPointerList.empty())
|
||||
return true;
|
||||
|
||||
WorldPacket copy(packet);
|
||||
|
||||
CALL_ENABLED_BOOLEAN_HOOKS(ServerScript, SERVERHOOK_CAN_PACKET_RECEIVE, !script->CanPacketReceive(session, copy));
|
||||
CALL_ENABLED_BOOLEAN_HOOKS(ServerScript, SERVERHOOK_CAN_PACKET_RECEIVE, !script->CanPacketReceive(session, packet));
|
||||
}
|
||||
|
||||
ServerScript::ServerScript(const char* name, std::vector<uint16> enabledHooks)
|
||||
|
||||
@@ -53,23 +53,23 @@ public:
|
||||
virtual void OnSocketClose(std::shared_ptr<WorldSocket> const& /*socket*/) { }
|
||||
|
||||
/**
|
||||
* @brief This hook called when a packet is sent to a client. The packet object is a copy of the original packet, so reading and modifying it is safe.
|
||||
* @brief This hook is called when a packet is sent to a client.
|
||||
*
|
||||
* @param session Contains information about the WorldSession
|
||||
* @param packet Contains information about the WorldPacket
|
||||
* @return True if you want to continue sending the packet, false if you want to disallow sending the packet
|
||||
*/
|
||||
[[nodiscard]] virtual bool CanPacketSend(WorldSession* /*session*/, WorldPacket& /*packet*/) { return true; }
|
||||
[[nodiscard]] virtual bool CanPacketSend(WorldSession* /*session*/, WorldPacket const& /*packet*/) { return true; }
|
||||
|
||||
/**
|
||||
* @brief Called when a (valid) packet is received by a client. The packet object is a copy of the original packet, so
|
||||
* reading and modifying it is safe. Make sure to check WorldSession pointer before usage, it might be null in case of auth packets
|
||||
* @brief Called when a (valid) packet is received by a client.
|
||||
* Make sure to check WorldSession pointer before usage, it might be null in case of auth packets
|
||||
*
|
||||
* @param session Contains information about the WorldSession
|
||||
* @param packet Contains information about the WorldPacket
|
||||
* @return True if you want to continue receive the packet, false if you want to disallow receive the packet
|
||||
* @return True if you want to continue receiving the packet, false if you want to disallow receiving the packet
|
||||
*/
|
||||
[[nodiscard]] virtual bool CanPacketReceive(WorldSession* /*session*/, WorldPacket& /*packet*/) { return true; }
|
||||
[[nodiscard]] virtual bool CanPacketReceive(WorldSession* /*session*/, WorldPacket const& /*packet*/) { return true; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user