Home›Java›Mods›Dtpa
Dtpa
ModsJava

Dtpa

Java mod listed for Minecraft 1.21. Download on the author's site.

⬇ Download on Spigot
# DTPA — Teleport Requests, Reimagined

**DTPA** (short for *DevAmy Teleport Requests*) is a modern, fully-featured TPA/TPAHere plugin for Paper 1.21+ and Folia. Built from the ground up with a GUI-driven confirm/accept flow, database persistence, and extensive configuration — every message, sound, GUI layout, cooldown, and restriction is controllable from `config.yml`.

## Features

- **TPA & TPAHere** — request and accept teleports with an optional Triumph GUI confirm/accept screen
- **Countdown** — configurable teleport delay with action bar and title progress (movement cancels it)
- **Damage Cancel** — taking damage mid-countdown aborts the teleport
- **Cooldown** — per-target or global cooldown with bypass permission
- **World Blacklist** — block TPA in/from specific worlds
- **Max Requests** — limit how many outgoing pending requests a player can have
- **Distance Limit** — enforce a maximum distance for TPA requests
- **Blocklist** — `/tpablacklist <player>` to block specific players from sending you requests
- **Toggles** — disable incoming TPA, TPAHere, or enable auto-accept, all persistent
- **Confirm Toggle** — players can disable the confirm GUI for faster sending
- **TPA List** — `/tpalist` to view your pending outgoing/incoming requests
- **TPA Admin** — `/tpaadmin clear|reload|info|remove` for server management
- **Database Backend** — choose MySQL, H2, or SQLite (configurable via `databases.yml`)
- **Folia Compatible** — no `BukkitRunnable`, no `Bukkit.getScheduler()`; uses `EntityScheduler` and `GlobalRegionScheduler`
- **PlaceholderAPI** — optional PAPI support in messages
- **ACF Commands** — tab completion, permission checks, usage suggestions out of the box

## Commands

| Command | Permission | Description |
|---|---|---|
| `/tpa <player>` | `dtpa.command.tpa` | Send a TPA request |
| `/tpahere <player>` | `dtpa.command.tpahere` | Send a TPAHere request |
| `/tpaccept <player>` | `dtpa.command.tpaccept` | Accept a request |
| `/tpadeny <player>` | `dtpa.command.tpadeny` | Deny a request |
| `/tpatoggle` | `dtpa.command.tpatoggle` | Toggle receiving TPA requests |
| `/tpaheretoggle` | `dtpa.command.tpaheretoggle` | Toggle receiving TPAHere requests |
| `/tpauto` | `dtpa.command.tpauto` | Toggle auto-accept |
| `/tpatoggleconfirm` | `dtpa.command.tpatoggleconfirm` | Toggle confirm GUI |
| `/tpcancel [player]` | `dtpa.command.tpcancel` | Cancel outgoing request to a player |
| `/tpalist [player]` | `dtpa.command.tpalist` | List pending requests |
| `/tpablacklist <player>` | `dtpa.command.tpablacklist` | Block/unblock a player |
| `/tpareload` | `dtpa.command.tpareload` | Reload config (op) |
| `/tpaadmin <clear\|reload\|info\|remove>` | `dtpa.command.tpaadmin` | Admin management (op) |

## Permissions

| Permission | Default | Description |
|---|---|---|
| `dtpa.command.*` | `true` | All player-facing commands |
| `dtpa.command.tpareload` | `op` | Reload the config |
| `dtpa.command.tpaadmin` | `op` | Admin commands |
| `dtpa.bypass.cooldown` | `op` | Bypass cooldown |
| `dtpa.bypass.world` | `op` | Bypass world blacklist |
| `dtpa.bypass.maxrequests` | `op` | Bypass max request limit |
| `dtpa.bypass.distance` | `op` | Bypass distance limit |

## Configuration

Everything is driven by `config.yml`:

- **Messages** — every line of text the plugin sends, fully customizable with `&` color codes and PlaceholderAPI support
- **Sounds** — configurable sound effects for request sent/received/accept/deny/teleport/cancel
- **GUI Layouts** — Triumph GUI slot positions, display names, lore, item types, glow for both the confirm and accept screens
- **Timings** — countdown duration, request expiry, action bar update interval
- **Cooldowns** — enable/disable, duration, per-target vs global
- **World Blacklist** — enable/disable, world list, bypass permission
- **Max Requests** — per-player cap with bypass permission
- **Distance Limit** — max blocks with bypass permission
- **Damage Cancel** — enable/disable, notify toggle

Database settings are in `databases.yml` — choose between MySQL (HikariCP pool), H2, or SQLite with zero extra setup.

## Requirements

- **Paper** 1.21+ (or **Folia**)
- **Java 21**
- *(Optional)* PlaceholderAPI

## Installation

1. Drop `DTPA.jar` into your `plugins/` folder
2. Restart or `/reload`
3. Edit `plugins/DTPA/config.yml` and `plugins/DTPA/databases.yml` to your liking
4. Run `/tpareload` to apply changes

The plugin will create and migrate its config automatically — old configs gain any new settings without manual edits.

## Database

| Backend | Connection | Notes |
|---|---|---|
| **MySQL** | HikariCP pool | Active requests cached in RAM |
| **H2** | File-based, single connection | No RAM cache |
| **SQLite** | File-based, single connection | No RAM cache, default |

All toggles, cooldowns, and blocklists are read from the database on every call for correctness. No flatfiles.

## Building from Source

```bash
JAVA_HOME=/usr/lib/jvm/zulu-21-amd64 ./gradlew build
```

Output: `build/libs/DTPA.jar`
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Dtpa is a free Minecraft Java mod. Compatible with Minecraft 1.21. Downloaded 10 times (via Spigot). Download it and open it directly in the game.

Explore more