summaryrefslogtreecommitdiff
path: root/src/network/serverpackethandler.cpp
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2016-10-08 10:38:04 +0200
committerNer'zhul <nerzhul@users.noreply.github.com>2016-10-08 11:36:28 +0200
commit8bcd10b872bc88c6f474913d6efb8d53c50c5ae1 (patch)
tree39a8af0048ed642eddc43c74ab9f736558663e9d /src/network/serverpackethandler.cpp
parent0264e38bff12a3c6b81231ac1f6cd281179df744 (diff)
downloadminetest-8bcd10b872bc88c6f474913d6efb8d53c50c5ae1.tar.gz
minetest-8bcd10b872bc88c6f474913d6efb8d53c50c5ae1.tar.bz2
minetest-8bcd10b872bc88c6f474913d6efb8d53c50c5ae1.zip
Player/LocalPlayer/RemotePlayer inheritance cleanup (part 1 on X)
* LocalPlayer take ownership of maxHudId as it's the only caller * RemotePlayer take ownership of day night ratio as it's the only user * Pass getPlayerControl as const reference to prevent object copy on each call (perf improvement in ObjectRef::l_get_player_control call) * getPlayerSAO is now only RemotePlayer call * get/setHotbarItemCount is now RemotePlayer owned * Server: Use RemotePlayer instead of Player object on concerned call to properly fix the object type * PlayerSAO now uses RemotePlayer instead of Player because it's only server side * ObjectRef::getplayer also returns RemotePlayer as it's linked with PlayerSAO
Diffstat (limited to 'src/network/serverpackethandler.cpp')
-rw-r--r--src/network/serverpackethandler.cpp31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp
index f9061cc4f..3fba7f720 100644
--- a/src/network/serverpackethandler.cpp
+++ b/src/network/serverpackethandler.cpp
@@ -800,7 +800,8 @@ void Server::handleCommand_PlayerPos(NetworkPacket* pkt)
pitch = modulo360f(pitch);
yaw = modulo360f(yaw);
- Player *player = m_env->getPlayer(pkt->getPeerId());
+ RemotePlayer *player =
+ dynamic_cast<RemotePlayer *>(m_env->getPlayer(pkt->getPeerId()));
if (player == NULL) {
errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
@@ -879,7 +880,9 @@ void Server::handleCommand_DeletedBlocks(NetworkPacket* pkt)
void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
{
- Player *player = m_env->getPlayer(pkt->getPeerId());
+ RemotePlayer *player =
+ dynamic_cast<RemotePlayer *>(m_env->getPlayer(pkt->getPeerId()));
+
if (player == NULL) {
errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
@@ -1078,7 +1081,9 @@ void Server::handleCommand_Damage(NetworkPacket* pkt)
*pkt >> damage;
- Player *player = m_env->getPlayer(pkt->getPeerId());
+ RemotePlayer *player =
+ dynamic_cast<RemotePlayer *>(m_env->getPlayer(pkt->getPeerId()));
+
if (player == NULL) {
errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
@@ -1112,7 +1117,9 @@ void Server::handleCommand_Breath(NetworkPacket* pkt)
*pkt >> breath;
- Player *player = m_env->getPlayer(pkt->getPeerId());
+ RemotePlayer *player =
+ dynamic_cast<RemotePlayer *>(m_env->getPlayer(pkt->getPeerId()));
+
if (player == NULL) {
errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
@@ -1224,7 +1231,9 @@ void Server::handleCommand_PlayerItem(NetworkPacket* pkt)
if (pkt->getSize() < 2)
return;
- Player *player = m_env->getPlayer(pkt->getPeerId());
+ RemotePlayer *player =
+ dynamic_cast<RemotePlayer *>(m_env->getPlayer(pkt->getPeerId()));
+
if (player == NULL) {
errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
@@ -1299,7 +1308,9 @@ void Server::handleCommand_Interact(NetworkPacket* pkt)
verbosestream << "TOSERVER_INTERACT: action=" << (int)action << ", item="
<< item_i << ", pointed=" << pointed.dump() << std::endl;
- Player *player = m_env->getPlayer(pkt->getPeerId());
+ RemotePlayer *player =
+ dynamic_cast<RemotePlayer *>(m_env->getPlayer(pkt->getPeerId()));
+
if (player == NULL) {
errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
@@ -1719,7 +1730,9 @@ void Server::handleCommand_NodeMetaFields(NetworkPacket* pkt)
fields[fieldname] = pkt->readLongString();
}
- Player *player = m_env->getPlayer(pkt->getPeerId());
+ RemotePlayer *player =
+ dynamic_cast<RemotePlayer *>(m_env->getPlayer(pkt->getPeerId()));
+
if (player == NULL) {
errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
@@ -1769,7 +1782,9 @@ void Server::handleCommand_InventoryFields(NetworkPacket* pkt)
fields[fieldname] = pkt->readLongString();
}
- Player *player = m_env->getPlayer(pkt->getPeerId());
+ RemotePlayer *player =
+ dynamic_cast<RemotePlayer *>(m_env->getPlayer(pkt->getPeerId()));
+
if (player == NULL) {
errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()