Fix Rotate Node Placement (#6424)
authortenplus1 <tenplus1@users.noreply.github.com>
Sat, 16 Sep 2017 20:39:38 +0000 (21:39 +0100)
committerSmallJoker <mk939@ymail.com>
Sun, 3 Jun 2018 15:31:59 +0000 (17:31 +0200)
This properly checks for creative mode or privilege when using fixed rotate_node() function.

builtin/common/misc_helpers.lua

index 4840dcbaaa74e8602572ece1ac073b4bf9a76183..1e282f88683678c07f795464ecf8e383ffba890d 100644 (file)
@@ -425,11 +425,15 @@ if INIT == "game" then
 --Wrapper for rotate_and_place() to check for sneak and assume Creative mode
 --implies infinite stacks when performing a 6d rotation.
 --------------------------------------------------------------------------------
-
+       local creative_mode_cache = core.settings:get_bool("creative_mode")
+       local function is_creative(name)
+               return creative_mode_cache or
+                               core.check_player_privs(name, {creative = true})
+       end
 
        core.rotate_node = function(itemstack, placer, pointed_thing)
                core.rotate_and_place(itemstack, placer, pointed_thing,
-                               core.settings:get_bool("creative_mode"),
+                               is_creative(placer:get_player_name()),
                                {invert_wall = placer:get_player_control().sneak})
                return itemstack
        end