From 64e672a1c770a60be07f7503b7aec080d680eb06 Mon Sep 17 00:00:00 2001 From: Gundul Date: Wed, 15 Nov 2023 12:04:13 +0100 Subject: [PATCH] no punch in protected areas --- lib_planes/entities.lua | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/lib_planes/entities.lua b/lib_planes/entities.lua index 6073497..088c8a8 100644 --- a/lib_planes/entities.lua +++ b/lib_planes/entities.lua @@ -631,22 +631,31 @@ local function damage_vehicle(self, toolcaps, ttime, damage) end function airutils.on_punch(self, puncher, ttime, toolcaps, dir, damage) - local name = puncher:get_player_name() + local name = "" + local ppos = {} + + if not puncher or not puncher:is_player() then + return + end + + if (puncher:is_player()) then + name = puncher:get_player_name() + ppos = puncher:get_pos() + if (minetest.is_protected(ppos, name)) then + return + end + end + if self.hp_max <= 0 then airutils.destroy(self, name) end airutils.setText(self, self._vehicle_name) - if (puncher and puncher:is_player() and - (string.find(puncher:get_wielded_item():get_name(), "rayweapon") or - toolcaps.damage_groups.vehicle)) then - damage_vehicle(self, toolcaps, ttime, damage) + if (string.find(puncher:get_wielded_item():get_name(), "rayweapon") or + toolcaps.damage_groups.vehicle) then + damage_vehicle(self, toolcaps, ttime, damage) end - if not puncher or not puncher:is_player() then - return - end - local is_admin = false is_admin = minetest.check_player_privs(puncher, {server=true}) if self.owner and self.owner ~= name and self.owner ~= "" then