aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/game/chatcommands.lua14
1 files changed, 10 insertions, 4 deletions
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