diff --git a/README.md b/README.md index 122335c..880d68d 100644 --- a/README.md +++ b/README.md @@ -15,3 +15,4 @@ Changelog: - 0.2 - Added error checking and a 10 second warning before becoming visible - 0.3 - Potions can now be stacked - 0.4 - Potion recipe changed now that Nyan Cat no longer in default game + - 0.5 - Use newer functions, Minetest 0.4.16 and anove needed to run diff --git a/init.lua b/init.lua index f59dbf9..125cd64 100644 --- a/init.lua +++ b/init.lua @@ -3,8 +3,8 @@ invisibility = {} local effect_time = 180 -- 3 minutes --- reset player invisibility if they go offline +-- reset player invisibility if they go offline minetest.register_on_leaveplayer(function(player) local name = player:get_player_name() @@ -14,8 +14,15 @@ minetest.register_on_leaveplayer(function(player) end end) --- invisibility potion +-- creative check +local creative_mode_cache = minetest.settings:get_bool("creative_mode") +function is_creative(name) + return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) +end + + +-- invisibility potion minetest.register_node("invisibility:potion", { description = "Invisibility Potion", drawtype = "plantlike", @@ -87,7 +94,7 @@ minetest.register_node("invisibility:potion", { end) -- take potion, return empty bottle (and rest of potion stack) - if not minetest.setting_getbool("creative_mode") then + if not is_creative(user:get_player_name()) then local item_count = user:get_wielded_item():get_count() local inv = user:get_inventory() @@ -114,8 +121,8 @@ minetest.register_node("invisibility:potion", { end, }) --- craft recipe +-- craft recipe minetest.register_craft( { output = "invisibility:potion", type = "shapeless", @@ -129,8 +136,8 @@ minetest.register_craft( { }, }) --- invisibility function +-- invisibility function invisible = function(player, toggle) if not player then return false end @@ -168,8 +175,8 @@ invisible = function(player, toggle) end --- vanish command (admin only) +-- vanish command (admin only) minetest.register_chatcommand("vanish", { params = "", description = "Make player invisible",