FUBS Random Teleport

Bukkit Plugins
8,842 Downloads Last Updated: Jun 18, 2021 Game Version: 1.16   +3
 Made in Germany with love (and beer)

Provides a command (/randomteleport) to randomly teleport a player to a safe location in a give radius around a given point!

Truly 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 WorldGuardFactionsFactionsUUIDRedProtect 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)
  • maxRange - maximum distance to teleport
  • Additional options
/randomteleport --stat - a little debug statistic
/randomteleport --reload - reload the config
/randomteleport(without additional parameters) - executes the default preset from the config
/randomteleport <presetname> - executes the preset set in the config
 
Example:
/rtp 100 500 -p Phoenix616 -x 0 -z 0 -w equestria -c 60 -f
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!
 
Development Builds
Development builds are available via the Minebench.de Jenkins server
 
ToDo
These features will be implemented in the full 2.0 rewrite:
  • Y coordinate specification Implemented
  • Support Nether and End Implemented
  • Per world default presets
  • More teleport target control
  • Teleport multiple players at once to the same coordinate (team support)
  • Max usage per teleport
  • Delay before teleporting
  • Option to only teleport to generated chunks Implemented
  • More protection plugin compatibility (like RedProtect) Implemented
  • Pay for teleports
For a full and more detailed list see the milestone on GitHub.
 
Other Resources
This resource is distributed without any warranty or liability by the author according to the GPLv3.

Comments

Posts Quoted: