FUBS Random Teleport
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 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)
- 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 -fTeleports 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.
Also tested it with -w (world).
Dont work.
I use my-worlds for multiple worlds
I Would Love to use this plugin but this option:
-w,-world <world name> - name of the world in which the player should be randomly teleported, default is the world the sender is in or if the sender is the console the world the targeted player is in
Why can't sender console not teleport other players to different worlds ?
Can you try to change this ?
Because i need to add this to my spawn portal to survival world.
But i don't want the players to have this permission.
I use a command portal to do this and it can send from console.
Would this be updated in future ?
@shadowfaxenator
No, but I will look into it in the future.
@iveldesigns
Currently there are no plans to make the command use a config file for the parameter. The general idea behind the design is that you input all data directly into the command via commandblocks and to have not to use any config editing. But I will keep it in mind and maybe I will implement something like a default config file which is used if the command is executed without any parameters.
And there is no intentional preloading of chunks because of the "falling thre the floor because of internet connection speed" problem implemented, but it has to load the chunk where it teleports the player to a certain level to check if the location is valid, I would image that this can prevent the falling threw the floor problem. Also I have this plugin running on a 60+ player server and no one has mentioned this problem yet so I guess it is fine?
@Quinnisaurus
You are missing the minimum and maximum range before the coordinate parameter. Also all options do start with a "-" (check /rtp or the Command usage section of the description)
When I type /rtp x -100 it says Your input contains an invalid number! What does that mean and why does it say that?
Any plans to drive the range via config file so that a player could use "/rtp" and get sent to a random spot in that range?
Also, is there any chunk preloading going on with this so that users don't fall and get trapped?
Does it igrone Towny clamed chunks?