RTP999 1.0.5
on Oct 8, 2025New Features & Changes:
-
Teleport Warm-up:
- Introduced a configurable warm-up period before a player is teleported.
- Teleportation is now cancelled if the player moves or takes damage during the warm-up phase.
- New configuration option:
warm-up-seconds
(global and per-world).
-
World Selection GUI:
- Added a new command
/rtpworlds
which opens a graphical user interface (GUI). - Players can now select a world from the GUI to initiate a random teleport in that specific world.
- The GUI displays relevant information for each world, such as cooldown and range.
- New permission:
rtp.worlds
.
- Added a new command
-
Advanced Region Shapes:
- The random teleport area can now be configured as either a
circle
(default) or asquare
. - New configuration option:
shape
(global and per-world).
- The random teleport area can now be configured as either a
-
WorldGuard Integration:
- Added support for WorldGuard, allowing administrators to define specific regions where RTP is either allowed or denied.
- New configuration options under a
worldguard
section (global and per-world):enabled
: Toggle WorldGuard integration on/off.mode
: Set toallow
(only teleport into listed regions) ordeny
(do not teleport into listed regions).regions
: A list of WorldGuard region names to apply the mode to.
- Added WorldGuard as a soft dependency in
plugin.yml
.
RTP999 1.0.4
on Sep 9, 2025added more blocks to safe method so that rtping in the nether wouldn't fail
RTP999 1.0.3
on Sep 9, 2025fixed minor bug where rtping in the nether world teleport to the nether roof
RTP999 1.0.2
on Sep 8, 2025Added /rtp999 reload command to reload configuration at runtime without server restart. Fixed issue where getHighestBlockYAt(x, z) could return non-solid blocks (e.g., leaves, carpet) causing unsafe teleports. Improved ground detection by scanning downward from highest block to find solid, walkable ground. Clamped cave ceiling check to not exceed world max height to avoid out-of-bounds errors. Added configuration options to enable or disable RTP in Nether and End dimensions per world and globally. Added per-world configuration support allowing different RTP settings (range, cooldown, attempts, cave check, etc.) per world. Changed teleport Y offset from +1 to +1.5 to prevent player spawning inside blocks like slabs or fences. Added periodic cleanup of expired cooldowns to optimize memory usage. Added permission checks for /rtp and /rtp999 reload commands. Added global disabled worlds list to block RTP in specific worlds regardless of per-world config. Improved asynchronous safe location scanning for better server performance. Cleaned and optimized code for maintainability and performance.
RTP999 1.0.1
on Aug 23, 2025New Features
- Disabled Worlds
Added support for a list of worlds where /rtp is blocked.
Controlled through the disabled-worlds section in config.yml.
- Nether Check
Teleporting in the Nether is now blocked entirely.
Prevents players from glitching above bedrock or into lava ceilings.
- CommandExecutor Implementation
Your main plugin class now officially implements CommandExecutor.
Makes command registration cleaner and more correct.
🛠️ Improvements 4. Thread Safety
You moved player.getLocation() and player.getWorld() outside of the async thread.
Prevents thread safety issues with Bukkit’s API.
- Random Location Generation
Switched from square-style teleport (X ± range, Z ± range) to a circular-style spread using angles.
This creates more evenly distributed teleport locations.
- Cave Detection Logic
Replaced the basic ceiling-only check with a proper cave check.
Now checks for both a solid floor and solid ceiling to avoid caves.
- ThreadLocalRandom
Replaced the Random object with ThreadLocalRandom for better performance and thread safety in the async task.
✅ Still Present and Unchanged
Cooldown system per player
Safe location checks (air above, solid ground below)
Particle + sound effects on teleport
Config-based range, max attempts, and Y-level limits
RTP runs asynchronously to avoid server lag
RTP999 V1.0
on Jul 25, 2025the first release