
TeleHop
Cross-server teleportation suite for Paper + Velocity networks. Includes homes, warps, TPA, RTP, /back, and /spawn - all synced across servers via MySQL. Features a modular config, multi-language support, and configurable teleport effects.
Список изменений
[2.0.0] - 2026-06-01 Added Version Adapters
Multi-version support: a single JAR runs on Paper 1.21.x (Java 21) and Paper 26.1.x (Java 25) VersionAdapter interface abstracts World.getName() and Bukkit.getWorld() across API versions Paper121Adapter for 1.21.x (standard name-based world resolution) Paper261Adapter for 26.1.x (key-based world resolution with name fallback) Runtime version detection in Bootstrap using getMinecraftVersion() with Bukkit version string fallback Adapters loaded via Class.forName reflection to avoid NoClassDefFoundError on unsupported versions CI verification that both adapter modules compile against their respective Paper API versions Homes
Named homes system: /sethome
/back and /back death to return to last teleport or death location (session-only, cross-server) /lastlocation (aliases: /lastloc, /backlast, /ll) for persistent logout location tracking Saved on quit, persisted in MySQL last_locations table Cross-server support with automatic server transfer TPA Toggle
/tpatoggle to block incoming TPA requests (session-only, cross-server aware) Random Respawn
Players respawn at a random safe location on death instead of world spawn Fully async safe-location search using Paper's HeightMap API Configurable via config/respawn.yml (world, radius, bed/anchor respect) Automatically skipped on the hub server Multi-Proxy Support
Opt-in Redis-based cross-proxy communication for multiple Velocity proxies TPA requests, admin teleports, transfers, and player lists all work across proxy boundaries Region-aware /spawn routing maps servers to regional hubs (e.g. EU players go to lobby-eu) Configurable via multi-proxy.enabled, proxy.id, Redis connection in config.properties Coordinate Teleportation
/tp
/forcedelhome
Back button (spectral arrow) in the dimension picker to return to region selection Teleport Effects
Configurable particles and sounds per teleport type (spawn, tpa, rtp, warp, home, back) Configuration
Modular config split: config/general.yml, database.yml, features.yml, teleport.yml, tpa.yml, rtp.yml, home.yml, respawn.yml Auto-migration from legacy monolithic config.yml Configuration wiki (WIKI.md) bundled in plugins/TeleHop/config/ on first run In-Game Help
/telehop help with categorised command listing (general, TPA, homes, back, warps, admin) /telehop perms with all permission nodes and descriptions CI/CD
GitHub Actions: CI (checkstyle, tests, build), PR checks, release workflow, CodeQL security scanning Version consistency checks across pom.xml, plugin.yml, and Velocity @Plugin YAML syntax validation and language key parity checks Tab completion works across the entire network (player names + warp names) Permission-gated tab complete: /tp, /tphere, admin subcommands hidden from non-admins Changed (from 1.0.0) Homes migrated from slot-based (uuid, slot INT) to name-based (uuid, name VARCHAR) schema Cross-server home packets use homeName instead of homeSlot home.yml defaults: max-slots: 10, gui-rows: 5 SpawnCommand uses region-aware hub resolution AdminTeleportCommand supports coordinate forms alongside player-name modes Jedis 5.1.0 added as a dependency (shaded in Velocity JAR) for multi-proxy support Migration from 1.0.0 Drop in the new 2.0.0 JARs (Paper + Velocity) Homes table is migrated automatically on first startup (slot numbers converted to names) No manual database intervention needed Grant telehop.homes.N (2-10) to ranks via LuckPerms for additional home slots If upgrading from a pre-split config.yml, the plugin auto-migrates to the config/ directory layout
