Initial commit

master
Elias Fleckenstein 2021-12-09 17:53:57 +01:00
commit 497488eeb8
No known key found for this signature in database
GPG Key ID: 06927A5199D6C9B2
1 changed files with 53 additions and 0 deletions

53
init.lua Normal file
View File

@ -0,0 +1,53 @@
if minetest.settings:get_bool("disable_fly_anticheat", false) then
return
end
local players = {}
local pts = minetest.pos_to_string
minetest.register_on_joinplayer(function(player)
players[player] = {
pos = player:get_pos()
}
end)
minetest.register_on_leaveplayer(function(player)
players[player] = nil
end)
local function supported_by_node(pos)
pos = vector.floor(pos)
for y = -2, 0 do
for x = -1, 1 do
for z = -1, 1 do
local v = vector.add(pos, vector.new(x, y, z))
if minetest.get_node(v).name ~= "air" then
return true
end
end
end
end
end
local i = 0
minetest.register_globalstep(function()
i = i + 1
for _, player in pairs(minetest.get_connected_players()) do
if not minetest.check_player_privs(player:get_player_name(), {fly = true}) then
local pos = player:get_pos()
local old_pos = players[player].pos
if old_pos.y < pos.y and not supported_by_node(pos) then
player:set_pos(old_pos)
print(i, pts(pos), pts(old_pos))
end
end
players[player].pos = player:get_pos()
end
end)