diff options
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..ab755dd --- /dev/null +++ b/init.lua @@ -0,0 +1,56 @@ +local function tp_func(y, goal) + return function() + local player = minetest.localplayer + local pos = player:get_pos() + + if pos.y < y then + return false, "Can't teleport to " .. goal .. " from this location." + end + + pos.y = y + player:set_pos(pos) + return true + end +end + +local function disconnect_wrapper(func) + return function() + local success, msg = func() + if success then + minetest.after(0, minetest.disconnect) + end + return success, msg + end +end + +local function menu_wrapper(func) + return function() + local _, msg = func() + if msg then + minetest.display_chat_message(msg) + end + end +end + +local end_func = tp_func(-27000, "End") +local nether_func = tp_func(-29000, "Nether") +local spawn_func = disconnect_wrapper(tp_func(-32000, "Spawn")) + +minetest.register_chatcommand("end", { + description = "Teleport to the end (works in the overworld only). This may drop you above the void, so make sure you have Fly or Jetpack enabled.", + func = end_func, +}) + +minetest.register_chatcommand("nether", { + description = "Teleport to the nether (works in the overworld or the end). This may move you into solid blocks, so make sure you have a pickaxe ready or Noclip enabled.", + func = nether_func, +}) + +minetest.register_chatcommand("spawn", { + description = "Teleport to your spawn location. This will disconnect you, you have to reconnect afterwards.", + func = spawn_func, +}) + +minetest.register_cheat("End", "Exploit", menu_wrapper(end_func)) +minetest.register_cheat("Nether", "Exploit", menu_wrapper(nether_func)) +minetest.register_cheat("Spawn", "Exploit", menu_wrapper(spawn_func)) |