From be4cc306a54375f362ae13f9e4111ea11a739837 Mon Sep 17 00:00:00 2001 From: Kahrl Date: Sat, 27 Apr 2013 03:28:27 +0200 Subject: Server: force block send of pointed_pos_under after predicted node place --- src/server.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index d5e505190..37bb7a35c 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2980,12 +2980,16 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) playersao->setWieldedItem(item); } - // If item has node placement prediction, always send the above - // node to make sure the client knows what exactly happened + // If item has node placement prediction, always send the + // blocks to make sure the client knows what exactly happened if(item.getDefinition(m_itemdef).node_placement_prediction != ""){ RemoteClient *client = getClient(peer_id); v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_above, BS)); client->SetBlockNotSent(blockpos); + v3s16 blockpos2 = getNodeBlockPos(floatToInt(pointed_pos_under, BS)); + if(blockpos2 != blockpos){ + client->SetBlockNotSent(blockpos2); + } } } // action == 3 -- cgit v1.2.3 From 969d2b3eb1f30e257823d9220697e47735be68e3 Mon Sep 17 00:00:00 2001 From: Kahrl Date: Fri, 3 May 2013 23:58:22 +0200 Subject: Optional dependencies and properly handle mod name conflicts again --- src/server.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index 37bb7a35c..bf48a40d5 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -707,11 +707,11 @@ Server::Server( ModConfiguration modconf(m_path_world); m_mods = modconf.getMods(); - std::list unsatisfied_mods = modconf.getUnsatisfiedMods(); + std::vector unsatisfied_mods = modconf.getUnsatisfiedMods(); // complain about mods with unsatisfied dependencies if(!modconf.isConsistent()) { - for(std::list::iterator it = unsatisfied_mods.begin(); + for(std::vector::iterator it = unsatisfied_mods.begin(); it != unsatisfied_mods.end(); ++it) { ModSpec mod = *it; @@ -745,7 +745,7 @@ Server::Server( for(std::vector::iterator it = m_mods.begin(); it != m_mods.end(); ++it) load_mod_names.erase((*it).name); - for(std::list::iterator it = unsatisfied_mods.begin(); + for(std::vector::iterator it = unsatisfied_mods.begin(); it != unsatisfied_mods.end(); ++it) load_mod_names.erase((*it).name); if(!load_mod_names.empty()) -- cgit v1.2.3 From 6911a7d279f487b832882d95318d432d0afbcc6b Mon Sep 17 00:00:00 2001 From: Aaron Suen Date: Thu, 9 May 2013 21:10:33 -0400 Subject: Clear custom player HUDs when emerging players. Fixes #711. --- src/server.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index bf48a40d5..40a4f8a02 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -5077,6 +5077,9 @@ PlayerSAO* Server::emergePlayer(const char *name, u16 peer_id) getPlayerEffectivePrivs(player->getName()), isSingleplayer()); + /* Clean up old HUD elements from previous sessions */ + player->hud.clear(); + /* Add object to environment */ m_env->addActiveObject(playersao); -- cgit v1.2.3