aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-11-12 13:56:56 +0100
committerShauren <shauren.trinity@gmail.com>2025-11-12 13:56:56 +0100
commitec6d3708591163b1875f969964be3fd7cb9a517b (patch)
tree07eafe9b7c8a773eca04a9e182740cab1eed6df3
parent8d407deb27c24f4d479b46c631cfa342a0935882 (diff)
Core/Addons: Fix sending banned addons to only contain new entries
-rw-r--r--src/server/game/Server/WorldSession.cpp12
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);