2021-01-06 04:14:55 +00:00
|
|
|
-- Code by Apelta. Mutelated by Lone_Wolf. Mutelated again by Apelta.
|
|
|
|
antisabotage = {}
|
2020-12-25 18:36:32 +00:00
|
|
|
|
2021-01-06 04:14:55 +00:00
|
|
|
function antisabotage.is_sabotage(pos, oldnode, digger) -- used for paxel
|
2020-12-25 18:36:32 +00:00
|
|
|
local dname = digger:get_player_name()
|
2021-01-06 04:14:55 +00:00
|
|
|
|
2020-12-25 18:36:32 +00:00
|
|
|
for _, player in pairs(minetest.get_connected_players()) do
|
|
|
|
local name = player:get_player_name()
|
|
|
|
|
|
|
|
if name ~= dname and ctf.players[name].team == ctf.players[dname].team then
|
|
|
|
local player_pos = player:get_pos()
|
|
|
|
|
|
|
|
if math.floor(player_pos.y) == pos.y and vector.distance(player_pos, pos) <= 1.5 then
|
|
|
|
minetest.set_node(pos, oldnode)
|
2021-01-06 04:14:55 +00:00
|
|
|
|
|
|
|
-- Remove all node drops
|
|
|
|
for _, item in pairs(minetest.get_node_drops(oldnode)) do
|
|
|
|
digger:get_inventory():remove_item("main", ItemStack(item))
|
|
|
|
end
|
|
|
|
|
2020-12-25 18:36:32 +00:00
|
|
|
minetest.chat_send_player(dname, "You can't mine blocks under your teammates!")
|
2021-01-06 04:14:55 +00:00
|
|
|
return true
|
2020-12-25 18:36:32 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2021-01-06 04:14:55 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
minetest.register_on_dignode(function(pos, oldnode, digger)
|
|
|
|
if not digger:is_player() then return end
|
|
|
|
|
|
|
|
antisabotage.is_sabotage(pos, oldnode, digger)
|
2020-12-25 18:36:32 +00:00
|
|
|
end)
|