From 932988af4650cdd844669d4cd238907409413db6 Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Fri, 2 Dec 2011 12:18:19 +0200
Subject: [PATCH] Rename "build" privilege to "interact" (backwards-compatibly,
 of course)

---
 src/auth.cpp   | 12 +++++++-----
 src/auth.h     |  4 ++--
 src/server.cpp |  8 ++++----
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/auth.cpp b/src/auth.cpp
index 9920e0e40..7326a6042 100644
--- a/src/auth.cpp
+++ b/src/auth.cpp
@@ -28,8 +28,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 std::set<std::string> privsToSet(u64 privs)
 {
 	std::set<std::string> s;
-	if(privs & PRIV_BUILD)
-		s.insert("build");
+	if(privs & PRIV_INTERACT)
+		s.insert("interact");
 	if(privs & PRIV_TELEPORT)
 		s.insert("teleport");
 	if(privs & PRIV_SETTIME)
@@ -52,8 +52,8 @@ std::set<std::string> privsToSet(u64 privs)
 std::string privsToString(u64 privs)
 {
 	std::ostringstream os(std::ios_base::binary);
-	if(privs & PRIV_BUILD)
-		os<<"build,";
+	if(privs & PRIV_INTERACT)
+		os<<"interact,";
 	if(privs & PRIV_TELEPORT)
 		os<<"teleport,";
 	if(privs & PRIV_SETTIME)
@@ -89,7 +89,9 @@ u64 stringToPrivs(std::string str)
 	{
 		std::string s = trim(f.next(","));
 		if(s == "build")
-			privs |= PRIV_BUILD;
+			privs |= PRIV_INTERACT;
+		else if(s == "interact")
+			privs |= PRIV_INTERACT;
 		else if(s == "teleport")
 			privs |= PRIV_TELEPORT;
 		else if(s == "settime")
diff --git a/src/auth.h b/src/auth.h
index 0ef94735f..6f176931a 100644
--- a/src/auth.h
+++ b/src/auth.h
@@ -31,7 +31,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 // of the player, and define things they're allowed to do. See also
 // the static methods Player::privsToString and stringToPrivs that
 // convert these to human-readable form.
-const u64 PRIV_BUILD = 1;            // Can build - i.e. modify the world
+const u64 PRIV_INTERACT = 1;            // Can interact
 const u64 PRIV_TELEPORT = 2;         // Can teleport
 const u64 PRIV_SETTIME = 4;          // Can set the time
 const u64 PRIV_PRIVS = 8;            // Can grant and revoke privileges
@@ -46,7 +46,7 @@ const u64 PRIV_PASSWORD = 256;       // Can set other players' passwords
 // Default privileges - these can be overriden for new players using the
 // config option "default_privs" - however, this value still applies for
 // players that existed before the privileges system was added.
-const u64 PRIV_DEFAULT = PRIV_BUILD|PRIV_SHOUT;
+const u64 PRIV_DEFAULT = PRIV_INTERACT|PRIV_SHOUT;
 const u64 PRIV_ALL = 0x7FFFFFFFFFFFFFFFULL;
 const u64 PRIV_INVALID = 0x8000000000000000ULL;
 
diff --git a/src/server.cpp b/src/server.cpp
index f12fd261e..3b2b45225 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -2381,7 +2381,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 	}
 	else if(command == TOSERVER_SIGNNODETEXT)
 	{
-		if((getPlayerPrivs(player) & PRIV_BUILD) == 0)
+		if((getPlayerPrivs(player) & PRIV_INTERACT) == 0)
 			return;
 		/*
 			u16 command
@@ -2562,7 +2562,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 			
 			// Disallow moving items in elsewhere than player's inventory
 			// if not allowed to build
-			if((getPlayerPrivs(player) & PRIV_BUILD) == 0
+			if((getPlayerPrivs(player) & PRIV_INTERACT) == 0
 					&& (ma->from_inv != "current_player"
 					|| ma->to_inv != "current_player"))
 			{
@@ -2628,7 +2628,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 		{
 			IDropAction *da = (IDropAction*)a;
 			// Disallow dropping items if not allowed to build
-			if((getPlayerPrivs(player) & PRIV_BUILD) == 0)
+			if((getPlayerPrivs(player) & PRIV_INTERACT) == 0)
 			{
 				delete a;
 				return;
@@ -2976,7 +2976,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 		/*
 			Make sure the player is allowed to do it
 		*/
-		bool build_priv = (getPlayerPrivs(player) & PRIV_BUILD) != 0;
+		bool build_priv = (getPlayerPrivs(player) & PRIV_INTERACT) != 0;
 		if(!build_priv)
 		{
 			infostream<<"Ignoring interaction from player "<<player->getName()
-- 
GitLab