diff options
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 13 |
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()); } |