forked from mtcontrib/factions
Make: mod into modpack
This commit is contained in:
41
fac_protect/init.lua
Normal file
41
fac_protect/init.lua
Normal file
@ -0,0 +1,41 @@
|
||||
local default_is_protected = minetest.is_protected
|
||||
|
||||
minetest.is_protected = function(pos, player)
|
||||
if minetest.check_player_privs(player, "protection_bypass") then
|
||||
return default_is_protected(pos, player)
|
||||
end
|
||||
local y = pos.y
|
||||
if factions_config.protection_depth_height_limit and (pos.y < factions_config.protection_max_depth or pos.y > factions_config.protection_max_height) then
|
||||
return default_is_protected(pos, player)
|
||||
end
|
||||
local parcelpos = factions.get_parcel_pos(pos)
|
||||
local parcel_faction, parcel_fac_name = factions.get_parcel_faction(parcelpos)
|
||||
local player_faction
|
||||
local player_fac_name
|
||||
if player then
|
||||
player_faction, player_fac_name = factions.get_player_faction(player)
|
||||
end
|
||||
-- no faction
|
||||
if not parcel_faction then
|
||||
return default_is_protected(pos, player)
|
||||
elseif player_faction then
|
||||
if parcel_faction.name == player_faction.name then
|
||||
if factions.has_permission(parcel_fac_name, player, "pain_build") then
|
||||
local p = minetest.get_player_by_name(player)
|
||||
p:set_hp(p:get_hp() - 0.5)
|
||||
end
|
||||
return not (factions.has_permission(parcel_fac_name, player, "build") or factions.has_permission(parcel_fac_name, player, "pain_build"))
|
||||
elseif parcel_faction.allies[player_faction.name] then
|
||||
if factions.has_permission(player_fac_name, player, "pain_build") then
|
||||
local p = minetest.get_player_by_name(player)
|
||||
p:set_hp(p:get_hp() - 0.5)
|
||||
end
|
||||
return not (factions.has_permission(player_fac_name, player, "build") or factions.has_permission(player_fac_name, player, "pain_build"))
|
||||
else
|
||||
return true
|
||||
end
|
||||
else
|
||||
return true
|
||||
end
|
||||
return default_is_protected(pos, player)
|
||||
end
|
Reference in New Issue
Block a user