diff options
author | Ovahlord <dreadkiller@gmx.de> | 2024-06-16 03:30:21 +0200 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2024-06-16 03:30:21 +0200 |
commit | 8aff692df500109924f94861a193709db53b48d3 (patch) | |
tree | c1231c3217408874799c3b0b42e2d11b9d6e3699 /src | |
parent | 00d4e821fb948099b86f2ab7746ea9a1df8b3970 (diff) |
Core/Packets: updated SMSG_FEATURE_SYSTEM_STATUS packet structure to 4.4.0
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SystemPackets.cpp | 26 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SystemPackets.h | 23 |
3 files changed, 47 insertions, 10 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index ee0f97fc179..c2a26986356 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -43,6 +43,7 @@ #include "GuildMgr.h" #include "Item.h" #include "Language.h" +#include "LFGMgr.h" #include "Log.h" #include "Map.h" #include "Metric.h" @@ -1429,6 +1430,10 @@ void WorldSession::SendFeatureSystemStatus() features.EuropaTicketSystemStatus->ThrottleState.LastResetTimeBeforeNow = 111111; features.TutorialsEnabled = true; features.NPETutorialsEnabled = true; + + features.AddonChatThrottle.MaxTries = 10; + features.AddonChatThrottle.TriesRestoredPerSecond = 1; + features.AddonChatThrottle.UsedTriesPerMessage = 1; /// END OF DUMMY VALUES features.EuropaTicketSystemStatus->TicketsEnabled = sWorld->getBoolConfig(CONFIG_SUPPORT_TICKETS_ENABLED); @@ -1442,6 +1447,9 @@ void WorldSession::SendFeatureSystemStatus() features.TextToSpeechFeatureEnabled = false; + features.IsGroupFinderEnabled = true; + features.IsLFDEnabled = sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER); + SendPacket(features.Write()); } diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp index deebdf14345..6e0d93cd613 100644 --- a/src/server/game/Server/Packets/SystemPackets.cpp +++ b/src/server/game/Server/Packets/SystemPackets.cpp @@ -87,6 +87,10 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << int16(PlayerNameQueryTelemetryInterval); _worldPacket << PlayerNameQueryInterval; + _worldPacket << int32(AddonChatThrottle.MaxTries); + _worldPacket << int32(AddonChatThrottle.TriesRestoredPerSecond); + _worldPacket << int32(AddonChatThrottle.UsedTriesPerMessage); + for (GameRuleValuePair const& gameRuleValue : GameRuleValues) _worldPacket << gameRuleValue; @@ -122,25 +126,30 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket.WriteBit(QuestSessionEnabled); _worldPacket.WriteBit(IsMuted); _worldPacket.WriteBit(ClubFinderEnabled); + _worldPacket.WriteBit(IsCommunityFinderEnabled); _worldPacket.WriteBit(Unknown901CheckoutRelated); _worldPacket.WriteBit(TextToSpeechFeatureEnabled); - _worldPacket.WriteBit(ChatDisabledByDefault); + _worldPacket.WriteBit(ChatDisabledByDefault); _worldPacket.WriteBit(ChatDisabledByPlayer); _worldPacket.WriteBit(LFGListCustomRequiresAuthenticator); _worldPacket.WriteBit(AddonsDisabled); _worldPacket.WriteBit(WarGamesEnabled); - _worldPacket.WriteBit(false); // unk, unused 4.4.0 + _worldPacket.WriteBit(Unk440_1); // unk, unused 4.4.0 _worldPacket.WriteBit(false); // unk, unused 4.4.0 _worldPacket.WriteBit(ContentTrackingEnabled); - _worldPacket.WriteBit(IsSellAllJunkEnabled); + _worldPacket.WriteBit(IsSellAllJunkEnabled); _worldPacket.WriteBit(IsGroupFinderEnabled); _worldPacket.WriteBit(IsLFDEnabled); _worldPacket.WriteBit(IsLFREnabled); _worldPacket.WriteBit(IsPremadeGroupEnabled); + _worldPacket.WriteBit(CanShowSetRoleButton); + _worldPacket.WriteBit(PetHappinessEnabled); + _worldPacket.WriteBit(CanEditGuildEvent); - _worldPacket.WriteBits(Field_16F.size(), 8); + _worldPacket.WriteBit(IsGuildTradeSkillsEnabled); + _worldPacket.WriteBits(Field_16F.size(), 7); _worldPacket.FlushBits(); @@ -177,8 +186,13 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << int32(SessionAlert->DisplayTime); } - if (!Field_16F.empty()) - _worldPacket.WriteString(Field_16F); + if (Unk440_1) + { + _worldPacket << uint32(Unk440_2.size()); + _worldPacket.append(Unk440_2.data(), Unk440_2.size()); + } + + _worldPacket.WriteString(Field_16F); { _worldPacket.WriteBit(Squelch.IsSquelched); diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h index 88ab5ee2433..4ffd3ebd806 100644 --- a/src/server/game/Server/Packets/SystemPackets.h +++ b/src/server/game/Server/Packets/SystemPackets.h @@ -106,6 +106,13 @@ namespace WorldPackets uint32 Unknown1007 = 0; }; + struct AddonChatThrottleInfo + { + int32 MaxTries = 0; + int32 TriesRestoredPerSecond = 0; + int32 UsedTriesPerMessage = 0; + }; + FeatureSystemStatus() : ServerPacket(SMSG_FEATURE_SYSTEM_STATUS, 200) { } WorldPacket const* Write() override; @@ -151,6 +158,7 @@ namespace WorldPackets bool QuestSessionEnabled = false; bool IsMuted = false; bool ClubFinderEnabled = false; + bool IsCommunityFinderEnabled = false; bool Unknown901CheckoutRelated = false; bool TextToSpeechFeatureEnabled = false; bool ChatDisabledByDefault = false; @@ -158,17 +166,24 @@ namespace WorldPackets bool LFGListCustomRequiresAuthenticator = false; bool AddonsDisabled = false; bool WarGamesEnabled = false; // classic only + bool Unk440_1 = false; // classic only bool ContentTrackingEnabled = false; bool IsSellAllJunkEnabled = false; - bool IsGroupFinderEnabled = true; // classic only - bool IsLFDEnabled = true; // classic only - bool IsLFREnabled = true; // classic only - bool IsPremadeGroupEnabled = true; // classic only + bool IsGroupFinderEnabled = false; // classic only + bool IsLFDEnabled = false; // classic only + bool IsLFREnabled = false; // classic only + bool IsPremadeGroupEnabled = false; // classic only + bool CanShowSetRoleButton = false; // classic only + bool PetHappinessEnabled = false; // classic only + bool CanEditGuildEvent = false; // classic only + bool IsGuildTradeSkillsEnabled = false; // classic only SocialQueueConfig QuickJoinConfig; SquelchInfo Squelch; RafSystemFeatureInfo RAFSystem; + AddonChatThrottleInfo AddonChatThrottle; std::vector<GameRuleValuePair> GameRuleValues; + std::vector<uint8> Unk440_2; std::string Field_16F = ""; }; |