From 4c743f9c4d1d263c5c36edb6a5dbaab7e2bdc6e4 Mon Sep 17 00:00:00 2001 From: cheapie Date: Mon, 23 May 2016 13:13:24 -0500 Subject: [PATCH] Add protection support to channel fields (#33) --- digilines_inventory/init.lua | 5 +++++ digilines_lcd/init.lua | 5 +++++ digilines_lightsensor/init.lua | 5 +++++ digilines_rtc/init.lua | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/digilines_inventory/init.lua b/digilines_inventory/init.lua index a8e7ecf..0269d4e 100644 --- a/digilines_inventory/init.lua +++ b/digilines_inventory/init.lua @@ -61,6 +61,11 @@ minetest.register_node("digilines_inventory:chest", { return minetest.get_meta(pos):get_inventory():is_empty("main") end, on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos, name) and not minetest.check_player_privs(name, {protection_bypass=true}) then + minetest.record_protection_violation(pos, name) + return + end if fields.channel ~= nil then minetest.get_meta(pos):set_string("channel",fields.channel) end diff --git a/digilines_lcd/init.lua b/digilines_lcd/init.lua index ade3fca..fafa477 100644 --- a/digilines_lcd/init.lua +++ b/digilines_lcd/init.lua @@ -107,6 +107,11 @@ minetest.register_node("digilines_lcd:lcd", { end, on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos, name) and not minetest.check_player_privs(name, {protection_bypass=true}) then + minetest.record_protection_violation(pos, name) + return + end if (fields.channel) then minetest.get_meta(pos):set_string("channel", fields.channel) end diff --git a/digilines_lightsensor/init.lua b/digilines_lightsensor/init.lua index 7dda1ce..914899b 100644 --- a/digilines_lightsensor/init.lua +++ b/digilines_lightsensor/init.lua @@ -50,6 +50,11 @@ minetest.register_node("digilines_lightsensor:lightsensor", { meta:set_string("formspec", "field[channel;Channel;${channel}]") end, on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos, name) and not minetest.check_player_privs(name, {protection_bypass=true}) then + minetest.record_protection_violation(pos, name) + return + end if (fields.channel) then minetest.get_meta(pos):set_string("channel", fields.channel) end diff --git a/digilines_rtc/init.lua b/digilines_rtc/init.lua index 6b7bfaf..5abafc1 100644 --- a/digilines_rtc/init.lua +++ b/digilines_rtc/init.lua @@ -46,6 +46,11 @@ minetest.register_node("digilines_rtc:rtc", { meta:set_string("formspec", "field[channel;Channel;${channel}]") end, on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos, name) and not minetest.check_player_privs(name, {protection_bypass=true}) then + minetest.record_protection_violation(pos, name) + return + end if (fields.channel) then minetest.get_meta(pos):set_string("channel", fields.channel) end