UltimateTPA
Simple TPA plugin with language and clickable messages.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
UltimateTPA
🔁 UltimateTPA
UltimateTPA is a modern, fully-featured teleport request plugin for Minecraft (Spigot/Paper 1.18+). It allows players to easily send and manage teleport requests with interactive chat buttons, localization, and smart safety features.
---
⚙️ Features
- 💬 request expiration using `/tpa` and `/tpahere` - ✅ request expiration with clickable chat buttons - ⏱ request expiration and request expiration - 🌍 request expiration (JSON-based language files) - 🔊 request expiration for requests and responses - 🧠 request expiration and request expiration - 🧍♂️ Handles both `/tpa` (teleport to a player) and `/tpahere` (teleport player to you) - 💾 Persistent and modular design for future expansion
---
📁 Installation
1. Download the latest release of `UltimateTPA.jar` 2. Place it into your server’s `plugins/` folder 3. Restart or reload your server 4. The plugin automatically generates its configuration and language files
---
Config.yml
```yaml
==== UltimateTPA Configuration ====
==== Delay ====
teleport-delay: 5 # Time (in seconds) before teleport happens after accept
==== Expire-Time ====
request-expire-time: 60 # Time (in seconds) before a teleport request expires
==== Conditions ====
cancel-on-move: true # Whether moving during the delay cancels teleport
==== Prefix ====
prefix: "&7[&aTPA&7] " # Chat prefix for all messages
==== Sounds ====
sound: enabled: true accept: "ENTITY_PLAYER_LEVELUP" deny: "ENTITY_VILLAGER_NO" request: "BLOCK_NOTE_BLOCK_PLING" ```
---
🕹️ Commands
| Command | Description | |----------|--------------| | `/tpa <player>` | Send a teleport request to another player | | `/tpahere <player>` | Request another player to teleport to you | | `/tpaccept` | Accept a pending teleport request | | `/tpdeny` | Deny a pending teleport request |
---
💬 Interactive Chat
Players receive teleport requests with clickable options:
[Accept] [Deny]
Clicking a button runs the respective command automatically. This makes teleport management fast and intuitive — no command typing required.
---
🌐 Language System
UltimateTPA supports multiple languages through simple JSON files. Each player automatically receives messages in their own Minecraft locale (e.g., `en_US`, `de_DE`).
Example language file structure:
/plugins/UltimateTPA/lang/en_US.json
en_US.json
```json { "tpa_request": "§e%player% wants to teleport to you.", "tpahere_request": "&e%player% wants you to teleport to them.", "tpa_accept": "§a[Accept]", "tpa_deny": "§c[Deny]", "tpa_sent": "§7Teleport request sent to §e%player%", "tpahere_sent": "&7Teleport request (here) sent to &e%player%", "tpa_no_request": "§cYou have no pending teleport requests.", "tpa_sender_offline": "§cThe player is no longer online.", "tpa_accepted": "§aYou accepted the teleport request.", "tpa_accepted_by": "§aYour request was accepted by §e%player%", "tpa_denied": "§cYou denied the teleport request.", "tpa_denied_by": "§cYour request was denied by §e%player%" } ```
🌐 Adding New Language Files
You can easily add new language files! You can find the available ISO 639-3 ISO 639-3 (using the ISO 639-3 standard).
If you’ve created new translations, feel free to share them with me on Discord – this helps the plugin grow and support more languages. *(Optional, but very appreciated!)* 💬
---
🧩 Developer Overview
Core Classes:
- `UltimateTPA` → Main plugin class - `TPACommand`, `TPAHereCommand`, `TPAAcceptCommand`, `TPADenyCommand` → Command handlers - `TPARequest` → Represents an active teleport request - `TPAMoveListener` → Cancels teleportation if the player moves - `LanguageManager` → Loads and manages translations
---
🧰 Compatibility
- ✅ Compatible with Java 17+, Java 17+, Java 17+, Java 17+ and Java 17+ - 🧱 Requires Java 17+ - ☕ Requires Java 17+
---
🧑💻 Author
Package: Scholle Package: `de.scholle.ultimateTPA`
---
📜 License
This project is licensed under the Apache License 2.0. You may freely use, modify, and distribute this plugin under the terms of that license.
For more details, visit: http://www.apache.org/licenses/LICENSE-2.0