]> git.lizzy.rs Git - minetest.git/blobdiff - src/auth.cpp
Properly use time_from_last_punch for limiting PvP punch damage
[minetest.git] / src / auth.cpp
index dc740411b2051109597906195bb65ce6c789ff94..7326a6042735acf9e64b23114ab11077aa07ae8f 100644 (file)
@@ -25,13 +25,35 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "strfnd.h"
 #include "debug.h"
 
+std::set<std::string> privsToSet(u64 privs)
+{
+       std::set<std::string> s;
+       if(privs & PRIV_INTERACT)
+               s.insert("interact");
+       if(privs & PRIV_TELEPORT)
+               s.insert("teleport");
+       if(privs & PRIV_SETTIME)
+               s.insert("settime");
+       if(privs & PRIV_PRIVS)
+               s.insert("privs");
+       if(privs & PRIV_SHOUT)
+               s.insert("shout");
+       if(privs & PRIV_BAN)
+               s.insert("ban");
+       if(privs & PRIV_GIVE)
+               s.insert("give");
+       if(privs & PRIV_PASSWORD)
+               s.insert("password");
+       return s;
+}
+
 // Convert a privileges value into a human-readable string,
 // with each component separated by a comma.
 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)
@@ -42,6 +64,10 @@ std::string privsToString(u64 privs)
                os<<"shout,";
        if(privs & PRIV_BAN)
                os<<"ban,";
+       if(privs & PRIV_GIVE)
+               os<<"give,";
+       if(privs & PRIV_PASSWORD)
+               os<<"password,";
        if(os.tellp())
        {
                // Drop the trailing comma. (Why on earth can't
@@ -63,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")
@@ -74,6 +102,10 @@ u64 stringToPrivs(std::string str)
                        privs |= PRIV_SHOUT;
                else if(s == "ban")
                        privs |= PRIV_BAN;
+               else if(s == "give")
+                       privs |= PRIV_GIVE;
+               else if(s == "password")
+                       privs |= PRIV_PASSWORD;
                else
                        return PRIV_INVALID;
        }