command /rtp: trigger: set {_world} to sender's world set {_x} to random integer between -1000 and 1000 set {_y} to 255 set {_z} to random integer between -1000 and 1000 set {_location} to {_world}'s get handle() get method "getBlockAt" with parameters {_x, _y, _z} if {_location}'s getType() get method "isSolid"() is true: loop 10 times: set {_x} to random integer between -1000 and 1000 set {_z} to random integer between -1000 and 1000 set {_location} to {_world}'s get handle() get method "getBlockAt" with parameters {_x, _y, _z} if {_location}'s getType() get method "isSolid"() is false: teleport sender to {_location}'s getHandle() add(0.5, 1, 0.5) run exit loop else: teleport sender to {_location}'s getHandle() add(0.5, 1, 0.5) reflection: class: org.bukkit.World methods: "getBlockAt(int, int, int)": return: org.bukkit.block.Block class: org.bukkit.block.Block methods: "getType()": return: org.bukkit.Material "isSolid()": return: boolean