diff options
Diffstat (limited to 'src/remoteplayer.cpp')
-rw-r--r-- | src/remoteplayer.cpp | 85 |
1 files changed, 48 insertions, 37 deletions
diff --git a/src/remoteplayer.cpp b/src/remoteplayer.cpp index bef60c792..0fb337065 100644 --- a/src/remoteplayer.cpp +++ b/src/remoteplayer.cpp @@ -22,7 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <json/json.h> #include "filesys.h" #include "gamedef.h" -#include "porting.h" // strlcpy +#include "porting.h" // strlcpy #include "server.h" #include "settings.h" #include "convert_json.h" @@ -36,28 +36,31 @@ bool RemotePlayer::m_setting_cache_loaded = false; float RemotePlayer::m_setting_chat_message_limit_per_10sec = 0.0f; u16 RemotePlayer::m_setting_chat_message_limit_trigger_kick = 0; -RemotePlayer::RemotePlayer(const char *name, IItemDefManager *idef): - Player(name, idef) +RemotePlayer::RemotePlayer(const char *name, IItemDefManager *idef) : Player(name, idef) { if (!RemotePlayer::m_setting_cache_loaded) { RemotePlayer::m_setting_chat_message_limit_per_10sec = - g_settings->getFloat("chat_message_limit_per_10sec"); + g_settings->getFloat("chat_message_limit_per_10sec"); RemotePlayer::m_setting_chat_message_limit_trigger_kick = - g_settings->getU16("chat_message_limit_trigger_kick"); + g_settings->getU16("chat_message_limit_trigger_kick"); RemotePlayer::m_setting_cache_loaded = true; } - movement_acceleration_default = g_settings->getFloat("movement_acceleration_default") * BS; - movement_acceleration_air = g_settings->getFloat("movement_acceleration_air") * BS; - movement_acceleration_fast = g_settings->getFloat("movement_acceleration_fast") * BS; - movement_speed_walk = g_settings->getFloat("movement_speed_walk") * BS; - movement_speed_crouch = g_settings->getFloat("movement_speed_crouch") * BS; - movement_speed_fast = g_settings->getFloat("movement_speed_fast") * BS; - movement_speed_climb = g_settings->getFloat("movement_speed_climb") * BS; - movement_speed_jump = g_settings->getFloat("movement_speed_jump") * BS; - movement_liquid_fluidity = g_settings->getFloat("movement_liquid_fluidity") * BS; - movement_liquid_fluidity_smooth = g_settings->getFloat("movement_liquid_fluidity_smooth") * BS; - movement_liquid_sink = g_settings->getFloat("movement_liquid_sink") * BS; - movement_gravity = g_settings->getFloat("movement_gravity") * BS; + movement_acceleration_default = + g_settings->getFloat("movement_acceleration_default") * BS; + movement_acceleration_air = + g_settings->getFloat("movement_acceleration_air") * BS; + movement_acceleration_fast = + g_settings->getFloat("movement_acceleration_fast") * BS; + movement_speed_walk = g_settings->getFloat("movement_speed_walk") * BS; + movement_speed_crouch = g_settings->getFloat("movement_speed_crouch") * BS; + movement_speed_fast = g_settings->getFloat("movement_speed_fast") * BS; + movement_speed_climb = g_settings->getFloat("movement_speed_climb") * BS; + movement_speed_jump = g_settings->getFloat("movement_speed_jump") * BS; + movement_liquid_fluidity = g_settings->getFloat("movement_liquid_fluidity") * BS; + movement_liquid_fluidity_smooth = + g_settings->getFloat("movement_liquid_fluidity_smooth") * BS; + movement_liquid_sink = g_settings->getFloat("movement_liquid_sink") * BS; + movement_gravity = g_settings->getFloat("movement_gravity") * BS; // copy defaults m_cloud_params.density = 0.4f; @@ -96,45 +99,50 @@ void RemotePlayer::serializeExtraAttributes(std::string &output) output = fastWriteJson(json_root); } - -void RemotePlayer::deSerialize(std::istream &is, const std::string &playername, - PlayerSAO *sao) +void RemotePlayer::deSerialize( + std::istream &is, const std::string &playername, PlayerSAO *sao) { Settings args; if (!args.parseConfigLines(is, "PlayerArgsEnd")) { - throw SerializationError("PlayerArgsEnd of player " + playername + " not found!"); + throw SerializationError( + "PlayerArgsEnd of player " + playername + " not found!"); } m_dirty = true; - //args.getS32("version"); // Version field value not used + // args.getS32("version"); // Version field value not used const std::string &name = args.get("name"); strlcpy(m_name, name.c_str(), PLAYERNAME_SIZE); if (sao) { try { sao->setHPRaw(args.getU16("hp")); - } catch(SettingNotFoundException &e) { + } catch (SettingNotFoundException &e) { sao->setHPRaw(PLAYER_MAX_HP_DEFAULT); } try { sao->setBasePosition(args.getV3F("position")); - } catch (SettingNotFoundException &e) {} + } catch (SettingNotFoundException &e) { + } try { sao->setLookPitch(args.getFloat("pitch")); - } catch (SettingNotFoundException &e) {} + } catch (SettingNotFoundException &e) { + } try { sao->setPlayerYaw(args.getFloat("yaw")); - } catch (SettingNotFoundException &e) {} + } catch (SettingNotFoundException &e) { + } try { sao->setBreath(args.getU16("breath"), false); - } catch (SettingNotFoundException &e) {} + } catch (SettingNotFoundException &e) { + } try { - const std::string &extended_attributes = args.get("extended_attributes"); + const std::string &extended_attributes = + args.get("extended_attributes"); std::istringstream iss(extended_attributes); Json::CharReaderBuilder builder; builder.settings_["collectComments"] = false; @@ -149,14 +157,15 @@ void RemotePlayer::deSerialize(std::istream &is, const std::string &playername, sao->getMeta().setString(it, attr_value.asString()); } sao->getMeta().setModified(false); - } catch (SettingNotFoundException &e) {} + } catch (SettingNotFoundException &e) { + } } try { inventory.deSerialize(is); } catch (SerializationError &e) { errorstream << "Failed to deserialize player inventory. player_name=" - << name << " " << e.what() << std::endl; + << name << " " << e.what() << std::endl; } if (!inventory.getList("craftpreview") && inventory.getList("craftresult")) { @@ -164,10 +173,9 @@ void RemotePlayer::deSerialize(std::istream &is, const std::string &playername, inventory.addList("craftpreview", 1); bool craftresult_is_preview = true; - if(args.exists("craftresult_is_preview")) + if (args.exists("craftresult_is_preview")) craftresult_is_preview = args.getBool("craftresult_is_preview"); - if(craftresult_is_preview) - { + if (craftresult_is_preview) { // Clear craftresult inventory.getList("craftresult")->changeItem(0, ItemStack()); } @@ -195,7 +203,7 @@ void RemotePlayer::serialize(std::ostream &os) args.writeLines(os); - os<<"PlayerArgsEnd\n"; + os << "PlayerArgsEnd\n"; inventory.serialize(os); } @@ -212,18 +220,21 @@ const RemotePlayerChatResult RemotePlayer::canSendChatMessage() return RPLAYER_CHATRESULT_OK; } - m_chat_message_allowance += time_passed * (m_setting_chat_message_limit_per_10sec / 8.0f); + m_chat_message_allowance += + time_passed * (m_setting_chat_message_limit_per_10sec / 8.0f); if (m_chat_message_allowance > m_setting_chat_message_limit_per_10sec) { m_chat_message_allowance = m_setting_chat_message_limit_per_10sec; } if (m_chat_message_allowance < 1.0f) { infostream << "Player " << m_name - << " chat limited due to excessive message amount." << std::endl; + << " chat limited due to excessive message amount." + << std::endl; // Kick player if flooding is too intensive m_message_rate_overhead++; - if (m_message_rate_overhead > RemotePlayer::m_setting_chat_message_limit_trigger_kick) { + if (m_message_rate_overhead > + RemotePlayer::m_setting_chat_message_limit_trigger_kick) { return RPLAYER_CHATRESULT_KICK; } |