diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-11-12 13:56:56 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-11-12 13:56:56 +0100 |
| commit | ec6d3708591163b1875f969964be3fd7cb9a517b (patch) | |
| tree | 07eafe9b7c8a773eca04a9e182740cab1eed6df3 | |
| parent | 8d407deb27c24f4d479b46c631cfa342a0935882 (diff) | |
Core/Addons: Fix sending banned addons to only contain new entries
| -rw-r--r-- | src/server/game/Server/WorldSession.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 85ed0e3f131..2514d316076 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -1134,6 +1134,8 @@ void WorldSession::ReadAddonsInfo(ByteBuffer &data) ByteBuffer addonInfo; addonInfo.resize(size); + _addons.SecureAddons.clear(); + if (uncompress(addonInfo.contents(), &uSize, data.contents() + pos, data.size() - pos) == Z_OK) { try @@ -1182,9 +1184,8 @@ void WorldSession::ReadAddonsInfo(ByteBuffer &data) addonInfo.rpos(addonInfo.size() - 4); - uint32 lastBannedAddOnTimestamp; - addonInfo >> lastBannedAddOnTimestamp; - TC_LOG_DEBUG("addon", "AddOn: Newest banned addon timestamp: {}", lastBannedAddOnTimestamp); + addonInfo >> _addons.LastBannedAddOnTimestamp; + TC_LOG_DEBUG("addon", "AddOn: Newest banned addon timestamp: {}", _addons.LastBannedAddOnTimestamp); } catch (ByteBufferException const& e) { @@ -1253,10 +1254,7 @@ void WorldSession::SendAddonsInfo() std::size_t sizePos = data.wpos(); uint32 bannedAddonCount = 0; data << uint32(0); - auto itr = std::lower_bound(bannedAddons->begin(), bannedAddons->end(), _addons.LastBannedAddOnTimestamp, [](BannedAddon const& bannedAddon, uint32 timestamp) - { - return bannedAddon.Timestamp < timestamp; - }); + auto itr = std::ranges::lower_bound(*bannedAddons, lastBannedAddOnTimestamp, std::ranges::less(), &BannedAddon::Timestamp); for (; itr != bannedAddons->end(); ++itr) { data << uint32(itr->Id); |
