From: tenplus1 Date: Thu, 28 Apr 2016 13:59:54 +0000 (+1000) Subject: Avoid teleporting player if /teleport coords are out-of-range X-Git-Tag: 0.4.14~75 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=7baddd173591cc9394d57cdb265f978495314f7a;p=oweals%2Fminetest.git Avoid teleporting player if /teleport coords are out-of-range --- diff --git a/builtin/game/chatcommands.lua b/builtin/game/chatcommands.lua index 7480446f2..3350140ee 100644 --- a/builtin/game/chatcommands.lua +++ b/builtin/game/chatcommands.lua @@ -352,10 +352,16 @@ core.register_chatcommand("teleport", { p.x = tonumber(p.x) p.y = tonumber(p.y) p.z = tonumber(p.z) - teleportee = core.get_player_by_name(name) - if teleportee and p.x and p.y and p.z then - teleportee:setpos(p) - return true, "Teleporting to "..core.pos_to_string(p) + if p.x and p.y and p.z then + local lm = tonumber(minetest.setting_get("map_generation_limit") or 31000) + if p.x < -lm or p.x > lm or p.y < -lm or p.y > lm or p.z < -lm or p.z > lm then + return false, "Cannot teleport out of map bounds!" + end + teleportee = core.get_player_by_name(name) + if teleportee then + teleportee:setpos(p) + return true, "Teleporting to "..core.pos_to_string(p) + end end local teleportee = nil