#include "porting.h" // strlcpy
#include "server.h"
#include "settings.h"
+#include "convert_json.h"
/*
RemotePlayer
assert(m_sao);
Json::Value json_root;
const PlayerAttributes &attrs = m_sao->getExtendedAttributes();
- for (PlayerAttributes::const_iterator it = attrs.begin(); it != attrs.end(); ++it) {
- json_root[(*it).first] = (*it).second;
+ for (const auto &attr : attrs) {
+ json_root[attr.first] = attr.second;
}
- Json::FastWriter writer;
- output = writer.write(json_root);
+ output = fastWriteJson(json_root);
+
m_sao->setExtendedAttributeModified(false);
}
try {
sao->setHPRaw(args.getS32("hp"));
} catch(SettingNotFoundException &e) {
- sao->setHPRaw(PLAYER_MAX_HP);
+ sao->setHPRaw(PLAYER_MAX_HP_DEFAULT);
}
try {
try {
const std::string &extended_attributes = args.get("extended_attributes");
- Json::Reader reader;
+ std::istringstream iss(extended_attributes);
+ Json::CharReaderBuilder builder;
+ builder.settings_["collectComments"] = false;
+ std::string errs;
+
Json::Value attr_root;
- reader.parse(extended_attributes, attr_root);
+ Json::parseFromStream(builder, iss, &attr_root, &errs);
const Json::Value::Members attr_list = attr_root.getMemberNames();
- for (Json::Value::Members::const_iterator it = attr_list.begin();
- it != attr_list.end(); ++it) {
- Json::Value attr_value = attr_root[*it];
- sao->setExtendedAttribute(*it, attr_value.asString());
+ for (const auto &it : attr_list) {
+ Json::Value attr_value = attr_root[it];
+ sao->setExtendedAttribute(it, attr_value.asString());
}
} catch (SettingNotFoundException &e) {}
}
args.setFloat("yaw", m_sao->getYaw());
args.setS32("breath", m_sao->getBreath());
- std::string extended_attrs = "";
+ std::string extended_attrs;
serializeExtraAttributes(extended_attrs);
args.set("extended_attributes", extended_attrs);