From 157075f60e94d58dde130191d28ae34d433273c4 Mon Sep 17 00:00:00 2001 From: Minetest-j45 <55553015+Minetest-j45@users.noreply.github.com> Date: Mon, 15 Mar 2021 21:57:19 +0000 Subject: [PATCH] Update antibuildmine.lua --- antibuildmine.lua | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/antibuildmine.lua b/antibuildmine.lua index 8b13789..adee810 100644 --- a/antibuildmine.lua +++ b/antibuildmine.lua @@ -1 +1,37 @@ +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + itemstack:set_count(0) + return itemstack +end) +minetest.register_privilege("build", { + description = "Player can build and dig nodes", +}) + +minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing) + if not placer then return end + if not placer:is_player() then return end + if not minetest.check_player_privs(placer:get_player_name(), {build = true}) then + minetest.set_node(pos, oldnode) + minetest.chat_send_player(placer:get_player_name(), "You can't place this node.") + return itemstack + end +end) + +minetest.register_on_dignode(function(pos, oldnode, digger) + if not digger then return end + if not digger:is_player() then return end + if not minetest.check_player_privs(digger:get_player_name(), {build = true}) then + minetest.set_node(pos, oldnode) + minetest.chat_send_player(digger:get_player_name(), "You can't dig this node.") + local inv = digger:get_inventory() + local lists = inv:get_lists() + for list, v in pairs(lists) do + for _, itemstack in ipairs(v) do + if itemstack:get_name() == oldnode.name then + itemstack:set_count(itemstack:get_count() - 1) + end + end + end + inv:set_lists(lists) + end +end)