@@ -1016,18 +1016,11 @@ Local<Value> PlayerClass::getUniqueID() {
1016
1016
1017
1017
Local<Value> PlayerClass::getLangCode () {
1018
1018
try {
1019
- std::string result = " unknown" ;
1020
- auto map = ll::service::getServerNetworkHandler ()
1021
- ->fetchConnectionRequest (get ()->getNetworkIdentifier ())
1022
- .mRawToken .get ()
1023
- ->mDataInfo .value_ .map_ ;
1024
- for (auto & iter : *map) {
1025
- string s (iter.first .c_str ());
1026
- if (s.find (" LanguageCode" ) != std::string::npos) {
1027
- result = iter.second .value_ .string_ ;
1028
- }
1029
- }
1030
- return String::newString (result);
1019
+ Json::Value& requestJson = ll::service::getServerNetworkHandler ()
1020
+ ->fetchConnectionRequest (get ()->getNetworkIdentifier ())
1021
+ .mRawToken ->mDataInfo ;
1022
+
1023
+ return String::newString (requestJson.get (" LanguageCode" , " unknown" ).asString (" unknown" ));
1031
1024
}
1032
1025
CATCH (" Fail in getLangCode!" );
1033
1026
}
@@ -2633,10 +2626,18 @@ Local<Value> PlayerClass::setMovementSpeed(const Arguments& args) {
2633
2626
if (!player) return Local<Value>();
2634
2627
2635
2628
AttributeInstance* movementSpeedAttribute = player->getMutableAttribute (SharedAttributes::MOVEMENT_SPEED);
2636
-
2637
- movementSpeedAttribute->setCurrentValue (args[0 ].asNumber ().toFloat ());
2638
-
2639
- return Boolean::newBoolean (true );
2629
+ if (movementSpeedAttribute) {
2630
+ movementSpeedAttribute->setCurrentValue (args[0 ].asNumber ().toFloat ());
2631
+ return Boolean::newBoolean (true );
2632
+ } else {
2633
+ player->_registerPlayerAttributes ();
2634
+ movementSpeedAttribute = player->getMutableAttribute (SharedAttributes::MOVEMENT_SPEED); // Check again
2635
+ if (movementSpeedAttribute) {
2636
+ movementSpeedAttribute->setCurrentValue (args[0 ].asNumber ().toFloat ());
2637
+ return Boolean::newBoolean (true );
2638
+ }
2639
+ }
2640
+ return Boolean::newBoolean (false );
2640
2641
}
2641
2642
CATCH (" Fail in setMovementSpeed!" );
2642
2643
}
0 commit comments