}
output = fastWriteJson(json_root);
-
- m_sao->getMeta().setModified(false);
}
if (sao) {
try {
- sao->setHPRaw(args.getS32("hp"));
+ sao->setHPRaw(args.getU16("hp"));
} catch(SettingNotFoundException &e) {
sao->setHPRaw(PLAYER_MAX_HP_DEFAULT);
}
} catch (SettingNotFoundException &e) {}
try {
- sao->setPitch(args.getFloat("pitch"));
+ sao->setLookPitch(args.getFloat("pitch"));
} catch (SettingNotFoundException &e) {}
try {
- sao->setYaw(args.getFloat("yaw"));
+ sao->setPlayerYaw(args.getFloat("yaw"));
} catch (SettingNotFoundException &e) {}
try {
- sao->setBreath(args.getS32("breath"), false);
+ sao->setBreath(args.getU16("breath"), false);
} catch (SettingNotFoundException &e) {}
try {
} catch (SettingNotFoundException &e) {}
}
- inventory.deSerialize(is);
+ try {
+ inventory.deSerialize(is);
+ } catch (SerializationError &e) {
+ errorstream << "Failed to deserialize player inventory. player_name="
+ << name << " " << e.what() << std::endl;
+ }
- if (inventory.getList("craftpreview") == NULL) {
+ if (!inventory.getList("craftpreview") && inventory.getList("craftresult")) {
// Convert players without craftpreview
inventory.addList("craftpreview", 1);
// This should not happen
assert(m_sao);
- args.setS32("hp", m_sao->getHP());
+ args.setU16("hp", m_sao->getHP());
args.setV3F("position", m_sao->getBasePosition());
- args.setFloat("pitch", m_sao->getPitch());
- args.setFloat("yaw", m_sao->getYaw());
- args.setS32("breath", m_sao->getBreath());
+ args.setFloat("pitch", m_sao->getLookPitch());
+ args.setFloat("yaw", m_sao->getRotation().Y);
+ args.setU16("breath", m_sao->getBreath());
std::string extended_attrs;
serializeExtraAttributes(extended_attrs);
m_chat_message_allowance -= 1.0f;
return RPLAYER_CHATRESULT_OK;
}
+
+void RemotePlayer::onSuccessfulSave()
+{
+ setModified(false);
+ if (m_sao)
+ m_sao->getMeta().setModified(false);
+}