Provides a command (/randomteleport) to randomly teleport a player to a safe location in a give radius around a given point!
Truely random!
You can define different presets that your players can use via /rtp <preset> or via any alias that you define in your commands.yml. (E.g. /wilderness for a wildernes teleportfunctionality). It also includes different cooldowns for each preset, parameters to limit the target location to certain biomes and the ability to create random teleport signs!
Respects WorldGuard, Factions, FactionsUUID, RedProtect and GriefPrevention regions and tries to teleport player to the position with the least protections around it! It also checks for the WorldBorder!
Donations
Programming is time intensive and I would really appreciate your support!
So if you can afford it or make commercially use of this plugin feel free to buy me a beer! :)
Video Review & Explanation
Permissions
randomteleport.use - Permission to use the command (Not needed for Presets!)
randomteleport.presets.default - Permission for the default /rtp preset
randomteleport.presets.<presetname> - Permission for the /rtp <presetname> command
randomteleport.sign.preset.<presetname> - Permission to use a specific preset on a [RandomTP] sign
randomteleport.sign.create - Allows creating preset signs ([rtp] or [RandomTP] on the 2nd line and the preset name on the 3rd)
randomteleport.sign.destroy - Allows destroying preset signs ([rtp] or [RandomTP] on the 2nd line and the preset name on the 3rd)
randomteleport.manual - Gives permission to manually specify parameters in the command
randomteleport.manual.option.* -
Gives permission to use certain options in the command
randomteleport.tpothers - Lets the user also teleport other players
randomteleport.cooldownexempt - No teleport cooldowns for players with that permission
randomteleport.stat - Permission for the /rtp stat command
randomteleport.reload - Permission for the /rtp reload command
Commands
/randomteleport <minRange> <maxRange> [options]
minRange - minimum distance to teleport the player away from the center point (default is the player's location, the range is square shaped)
Teleports the player called Phoenix616 to a random position in the world equestria and in a radius of 100 to 500 blocks around x/z 0/0. It will not check for saved regions and will only ignore air/lava/water and cactus. A teleport with this options can only be used every 60 seconds.
Aliases:
/randomtp
/rtp
Presets
Version 1.5.0 introduced presets which you can trigger with only /rtp or /rtp <presetname>. The player needs the permission randomteleport.presets.default to execute the default /rtp or the permission randomteleport.presets.<presetname> to use any other preset with /rtp <presetname>. A player does not need the randomteleport.use permission to use presets!
You define the presets in the config as if the player would enter the command himself without the -p <playername> option. The player does not need the permission to execute the command you input into the config, just the permission for the specific preset!
This example is included in the config file:
presets:
default: "/rtp 100 1000 -f"
test: "rtp 10 200 -f"
Presetsigns:
Version 1.6.0 introduces preset signs which work like the normal presets but you can run them from signs. Just write the following lines on a sign:
Instead of "Default" on the 3rd line you can add the name of every preset you have set in your config. To create and destroy those signs you need the permission randomteleport.sign.create. Players need the permission randomteleport.sign.preset.<presetname> to be able use (rightclick) the sign!
Config
# Default language to use when client's language isn't available
lang: en
# Some debug information
debug: true
# Delay in ticks between checking chunks when searching
# Blocks to teleport on in normal mode
save-blocks:
- sand
- sandstone
- gravel
- dirt
- grass_block
- coarse_dirt
- podzol
- stone
- granite
- diorite
- andesite
- cobblestone
- end_stone
- netherrack
# Blocks unsave when in "--force blocks" mode
unsave-blocks:
- air
- water
- lava
- oak_sapling
- spruce_sapling
- birch_sapling
- jungle_sapling
- acacia_sapling
- dark_oak_sapling
- white_bed
- orange_bed
- magenta_bed
- light_blue_bed
- yellow_bed
- lime_bed
- pink_bed
- gray_bed
- light_gray_bed
- cyan_bed
- purple_bed
- blue_bed
- brown_bed
- green_bed
- red_bed
- black_bed
- powered_rail
- detector_rail
- cobweb
- piston_head
- tnt
- torch
- fire
- sign
- ladder
- rail
- wall_sign
- lever
- stone_pressure_plate
- iron_door
- redstone_wall_torch
- redstone_torch
- stone_button
- cactus
- magma_block
- nether_portal
- vine
- end_portal
- end_portal_frame
- tripwire_hook
- tripwire
- flower_pot
- oak_leaves
- spruce_leaves
- birch_leaves
- jungle_leaves
- acacia_leaves
- dark_oak_leaves
- barrier
- iron_trapdoor
- oak_trapdoor
- spruce_trapdoor
- birch_trapdoor
- jungle_trapdoor
- acacia_trapdoor
- dark_oak_trapdoor
- oak_door
- spruce_door
- birch_door
- jungle_door
- acacia_door
- dark_oak_door
- end_rod
- end_gateway
sign-variables:
- "[RTP]"
- "[RandomTP]"
# Just write your command arguments as you would use it ingame behind /rtp
# Don't use the -p parameter, this will get added automatically with the senders name/the specified playername
presets:
# Triggered when you use /rtp without any additional paramters
default: "100 1000"
# add more to use /rtp <rtpname>, player needs "randomteleport.presets.<rtpname>"
# <rtpname>: "/rtp 1 2"
test: "10 200 -f"
Default english language settings can be found in the lang.en.yml. If you want to add more language support just create a new lang.<locale>.yml in your languages folder!
Support
If you need help feel free to ask in the discussion thread or directly open a ticket on the GitHub issue tracker. (Make sure to check if others have that issue too!)
Source
The source code can be found on Github under the GPlv3 license!