aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2024-06-16 03:30:21 +0200
committerOvahlord <dreadkiller@gmx.de>2024-06-16 03:30:21 +0200
commit8aff692df500109924f94861a193709db53b48d3 (patch)
treec1231c3217408874799c3b0b42e2d11b9d6e3699 /src
parent00d4e821fb948099b86f2ab7746ea9a1df8b3970 (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.cpp8
-rw-r--r--src/server/game/Server/Packets/SystemPackets.cpp26
-rw-r--r--src/server/game/Server/Packets/SystemPackets.h23
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 = "";
};