diff options
author | SmallJoker <SmallJoker@users.noreply.github.com> | 2018-07-23 13:00:59 +0200 |
---|---|---|
committer | Vitaliy <silverunicorn2011@yandex.ru> | 2018-07-23 14:00:59 +0300 |
commit | 5a0492b176fa6f01925c87a8ad22034a5ed66155 (patch) | |
tree | c0b467db7a58d7bafc69202728cfe09ebfd3248e | |
parent | f61b1affea744e2bb131b2e01bbc47b3a36b99f2 (diff) |
Check protection on microcontroller programming (#420)
Also, fix globals assignment.
-rw-r--r-- | mesecons_microcontroller/init.lua | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua index 46272b9..9b1bf3b 100644 --- a/mesecons_microcontroller/init.lua +++ b/mesecons_microcontroller/init.lua @@ -103,6 +103,12 @@ minetest.register_node(nodename, { meta:set_string("eeprom", r) end, on_receive_fields = function(pos, formanme, fields, sender) + local player_name = sender:get_player_name() + if minetest.is_protected(pos, player_name) and + not minetest.check_player_privs(player_name, {protection_bypass=true}) then + minetest.record_protection_violation(pos, player_name) + return + end local meta = minetest.get_meta(pos) if fields.band then fields.code = "sbi(C, A&B) :A and B are inputs, C is output" @@ -272,7 +278,7 @@ yc.parsecode = function(code, pos) end yc.parse_get_command = function(code, starti) - i = starti + local i = starti local s while s ~= "" do s = string.sub(code, i, i) @@ -298,7 +304,7 @@ yc.parse_get_command = function(code, starti) end yc.parse_get_params = function(code, starti) - i = starti + local i = starti local s local params = {} local is_string = false @@ -321,7 +327,7 @@ yc.parse_get_params = function(code, starti) end yc.parse_get_eeprom_param = function(cond, starti) - i = starti + local i = starti local s local addr while s ~= "" do @@ -488,7 +494,7 @@ end --Condition parsing yc.command_if_getcondition = function(code, starti) - i = starti + local i = starti local s local brackets = 1 --1 Bracket to close while s ~= "" do |