File Details
RTP999-1.0.2
- R
- Sep 22, 2025
- 13.96 KB
- 66
- 1.21.8+9
File Name
RTP999-1.0.2.jar
Supported Versions
- 1.21.5-Snapshot
- 1.21.8
- 1.21.7
- 1.21.6
- 1.21.5
- 1.21.4
- 1.21.3
- 1.21.2
- 1.21.1
- 1.21
added more blocks to safe method so that rtping in the nether wouldn't fail
fixed minor bug where rtping in the nether world teleport to the nether roof
Added /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.
New 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.

