Fixed safe-mode timing: previously, post-processing was triggered in the same tick after PlayerPortalEvent, which meant that with cancel-portal-exit: false, it could be executed before the actual teleport.
Teleportation with cancel-portal-exit: true has been moved to a “plugin” cause (TeleportCause.PLUGIN) so that other plugins/anti-cheats can distinguish this teleportation more correctly.
The unreliable check unstableMessage.equals(Component.empty()) has been removed: now an empty/blank message correctly disables message sending.
The platform is no longer set to “always”: previously, createPlatform() was called every time safe-mode: true, even if the player was not stuck.
Added protection against teleportation to the roof of the Nether: random Y and point search are limited to a safe maximum (below the bedrock layer), so the coordinate will not go into the roof area.
Improved base point selection
First version

This plugin adds random teleport on vanilla Nether portal usage