local event = require('event') local commands = require('commands') minecraft = require('minecraft') config = require('config') warpDelay = 60 * 5 homes = {} warps = {} lastHomeTime = {} lastWarpTime = {} event.on('init', function() local loadedHomes, err = config.load('homes') if loadedHomes and not err then homes = loadedHomes end end) commands.register('sethome', function(user) local loc = rcon:GetLocation(user) local c = {} for i, v in loc() do c[i] = v end homes[user] = c err = config.save('homes', homes) if err ~= nil then print('Unable to save homes') end rcon:SendMessage(user, string.format("Home location set to %d, %d, %d", c[1], c[2], c[3])) end) commands.register('resethome', function(user) homes[user] = nil err = config.save('homes', homes) if err ~= nil then print('Unable to save homes') end rcon:SendMessage(user, 'Home location reset') end) commands.register('home', function(user) local loc = nil if homes[user] ~= nil then loc = homes[user] end if loc == nil then rcon:SendMessage(user, "You haven't set your spawn or home yet.") return end local lastWarp = lastHomeTime[user] if lastWarp ~= nil and lastWarp + warpDelay > os.time() and not minecraft.isOp(user) then local delay = warpDelay - (os.time() - lastWarp) rcon:SendMessage(user, "You need to wait " .. delay .. " seconds before warping again.") return end lastHomeTime[user] = os.time() rcon:Teleport(user, string.format("%f %d %f", loc[1], loc[2], loc[3])) end) commands.register('setwarp ', function(user, place) if not minecraft.isOp(user) then return end local loc = rcon:GetLocation(user) local c = {} for i, v in loc() do c[i] = v end warps[place] = c err = config.save('warps', warps) if err ~= nil then print('Unable to save warps') end rcon:SendMessage(user, string.format("Warp %s set to %d, %d, %d", place, c[1], c[2], c[3])) end) commands.register('warp ', function(user, place) if warps[place] == nil then rcon:SendMessage(user, "This warp point doesn't exist") return end local loc = warps[place] local lastWarp = lastWarpTime[user] if lastWarp ~= nil and lastWarp + warpDelay > os.time() and not minecraft.isOp(user) then local delay = warpDelay - (os.time() - lastWarp) rcon:SendMessage(user, "You need to wait " .. delay .. " seconds before warping again.") return end lastWarpTime[user] = os.time() rcon:Teleport(user, string.format("%f %d %f", loc[1], loc[2], loc[3])) end) tprequests = {} commands.register('tpa ', function(user, target) end) commands.register('tpaccept', function(user) end) commands.register('tpdeny', function(user) end)