mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-17 13:39:46 -04:00
Core/PacketsIO: Updated and enabled SMSG_CHANNEL_NOTIFY, CMSG_CHAT_REGISTER_ADDON_PREFIXES, CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES
- Thanks to @MitchesD for all his help, you're awesome! - Packets have been sniffed & parsed and they all check out.
This commit is contained in:
@@ -913,31 +913,23 @@ bool WorldSession::IsAddonRegistered(const std::string& prefix) const
|
||||
return itr != _registeredAddonPrefixes.end();
|
||||
}
|
||||
|
||||
void WorldSession::HandleUnregisterAddonPrefixesOpcode(WorldPacket& /*recvPacket*/) // empty packet
|
||||
void WorldSession::HandleUnregisterAllAddonPrefixesOpcode(WorldPackets::Chat::ChatUnregisterAllAddonPrefixes& /*packet*/) // empty packet
|
||||
{
|
||||
_registeredAddonPrefixes.clear();
|
||||
}
|
||||
|
||||
void WorldSession::HandleAddonRegisteredPrefixesOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleAddonRegisteredPrefixesOpcode(WorldPackets::Chat::ChatRegisterAddonPrefixes& packet)
|
||||
{
|
||||
// This is always sent after CMSG_UNREGISTER_ALL_ADDON_PREFIXES
|
||||
// This is always sent after CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES
|
||||
|
||||
uint32 count = recvPacket.ReadBits(25);
|
||||
|
||||
if (count > REGISTERED_ADDON_PREFIX_SOFTCAP)
|
||||
if (packet.Prefixes.size() > REGISTERED_ADDON_PREFIX_SOFTCAP)
|
||||
{
|
||||
// if we have hit the softcap (64) nothing should be filtered
|
||||
_filterAddonMessages = false;
|
||||
recvPacket.rfinish();
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<uint8> lengths(count);
|
||||
for (uint32 i = 0; i < count; ++i)
|
||||
lengths[i] = recvPacket.ReadBits(5);
|
||||
|
||||
for (uint32 i = 0; i < count; ++i)
|
||||
_registeredAddonPrefixes.push_back(recvPacket.ReadString(lengths[i]));
|
||||
_registeredAddonPrefixes.insert(_registeredAddonPrefixes.end(), packet.Prefixes.begin(), packet.Prefixes.end());
|
||||
|
||||
if (_registeredAddonPrefixes.size() > REGISTERED_ADDON_PREFIX_SOFTCAP) // shouldn't happen
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user