aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/CharacterHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index f0f60870bf1..1628f0c4dd1 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1533,6 +1533,19 @@ void WorldSession::SendFeatureSystemStatus()
features.SpeakForMeAllowed = false;
+ for (World::GameRule const& gameRule : sWorld->GetGameRules())
+ {
+ WorldPackets::System::GameRuleValuePair& rule = features.GameRules.emplace_back();
+ rule.Rule = AsUnderlyingType(gameRule.Rule);
+ std::visit([&]<typename T>(T value)
+ {
+ if constexpr (std::is_same_v<T, float>)
+ rule.ValueF = value;
+ else
+ rule.Value = value;
+ }, gameRule.Value);
+ }
+
SendPacket(features.Write());
}