← Назад к ресурсам

Yet Another TPA

YATPA: A combination of various project ideas into one, but still lean and simple enough to be a viable replacement or solution to teleporting. Suitable for Fabric and Paper.

Modrinth game-mechanics management utility

Описание

# YATPA ![YATPA](https://i.imgur.com/2vqPt7F.png) YATPA is a teleport plugin/mod project for modern Minecraft servers. What makes YATPA stand out is that it combines full teleport-request/home/back/spawn/RTP/void/surface/death tooling with a clickable in-chat command UX (`/tp` menu, paged pickers, and paged logs), while also exposing granular cost controls per teleport type. Economy mode is configurable as `NONE`, `XP_LEVELS`, `ITEM`, or `CURRENCY`; Paper supports `CURRENCY` through Vault (with EssentialsX or another Vault economy provider). OPs have an optional GUI menu to fine tune settings in-game. ## Screenshots #### Help (via /TPAHELP) ![Help](https://i.imgur.com/KKjMxrI.png) #### Clickable TP Menu (via /TP) ![TP](https://i.imgur.com/lc8OQUP.png) #### Clickable TP Logs for OPs (via /TPLOG) ![LOG](https://i.imgur.com/Z7yl2aa.png) #### Clickable Home List (via /TPHOME LIST) ![HOMES](https://i.imgur.com/6sjWV2H.png) #### Clickable User List (via /TPA with no username specified) ![LISTS](https://i.imgur.com/d2VgVum.png) ## Features - Clickable teleport menu: - `/tp` - Includes shortcuts for homes, RTP, spawn, death-back, TPA/TPHere, toggle, block, and unblock. - Player pickers are paginated (5 per page) for `/tpa`, `/tphere`, `/tpablock`, and `/tpaunblock`. - Player teleport requests: - `/tpa ` - `/tpahere ` or `/tphere ` - `/tpaccept` - `/tpdeny` - `/tpatoggle` - `/tpablock ` - `/tpaunblock ` - Homes: - `/tphome set [name]` - `/tphome set default ` - `/tphome delete ` - `/tphome list` - `/tphome [name]` or `/tpahome [name]` - Home list is clickable and shows coordinates. - The default home is marked with `(default)`. - Utility teleports: - `/rtp` - `/spawn` - `/tpaback` or `/tpdeath` (last death location, one use per death) - `/tpsurface` (finds a safe nearby surface landing; disabled by default) - `/tpvoid` (switches between a safe Nether roof position and a safe position below it; disabled by default) - Home costs: - `settings.costs.*.home` charges for travelling to a home. - `settings.costs.*.home_set` charges for setting or replacing a home. - OP commands: - `/ytp ` - `/ytp ` - `/ytp [realm]` - `/ytp [realm]` - `/tpoffline ` - `/tpalog [page]` - In-game admin config (OP): - `/yatpa settings` - `/yatpa gui` (Paper/Fabric native dialog editor; Paper uses the inventory editor when the server does not expose the dialog command) - `/yatpa set ` - `/yatpa reload` - `/setspawn` - The Costs section has separate XP, item, and currency submenus. `/tpsurface` and `/tpvoid` can be enabled under Features. - Player help page: - `/tpahelp` - `/tphelp` - `/yatpa help` - Public help intentionally excludes admin commands. - When teleport costs are enabled, a `Costs` section is shown at the bottom listing only teleports with non-zero costs. ## OP dialog menu Run `/yatpa gui` for a modern in-game settings editor. It organizes YATPA options into clear categories with inline toggles, selectors, and text fields, with validation and save controls built in. Paper falls back to the inventory editor when native dialogs are unavailable; Fabric requires no client-side YATPA mod. ![GUI](https://i.imgur.com/M6RCQ3Y.png) ## Notable Behavior - Requests: - Timeout + cooldown are enforced. - Accept/deny messages are clickable. - If an accepted delayed teleport is cancelled (move/damage), the other player is notified. - Teleports: - Delayed teleports show a countdown. - Costs are validated before countdown and charged on execution. - Players are told exactly what they paid (XP, items, or currency). - `ytp`/`rtp` use safe landing checks to avoid unsafe blocks and lava. - `/tpaback` and `/tpdeath` consume the saved death location after successful use, and require a new death to refresh. - Teleport logging: - `/tpalog` is paginated and clickable. - Log lines include context details (for example home name, target player, coords, or offline target) where relevant. - Costs and settings: - Cost modes: `NONE`, `XP_LEVELS`, `ITEM`, `CURRENCY`. - Realm-specific RTP costs and min/max RTP distance overrides are supported. - Paper `/yatpa gui` and `/yatpa set` expose currency paths directly. - Restrictions and routing: - Per-dimension restrictions can disable `/rtp` only or all YATPA teleports. - `/rtp` supports blacklist + optional overworld routing. - Spawn destination is configurable via `settings.spawn.*` and `/setspawn`. - Platform note: - Vault/EssentialsX currency charging is Paper-only in this release. - The Paper jar uses Bukkit APIs and is marked Folia-compatible, so it runs on Paper, Purpur, Spigot, Bukkit, and Folia. Native dialogs are used when available; the inventory editor remains the fallback on Bukkit-family servers without them. - Command/UX behavior in this README applies to both Paper and Fabric unless noted. ## Configuration Paper config files: - `paper/src/main/resources/config.yml` - `paper/src/main/resources/messages.xml` - `paper/src/main/resources/plugin.yml` Fabric default config/resource files: - `fabric/src/main/resources/yatpa-fabric.properties` - `fabric/src/main/resources/yatpa-fabric.yml` - `fabric/src/main/resources/messages-fabric.xml` Runtime data (Paper) is stored under plugin data folder: - `data/players.yml` - `data/homes.yml` - `data/offline.yml` Runtime data (Fabric) is stored under: - `config/yatpa/store.json` ### Example Config YAML ``` settings: max_homes_default: 3 request_timeout_seconds: 60 request_cooldown_seconds: 30 teleport_delay_seconds: 5 cancel_on_move: true cancel_on_damage: true spawn_radius: 50 rtp_cooldown_seconds: 300 rtp: default_min_distance: 64 default_max_distance: 2500 rtp_to_overworld: false overworld_name: "world" blacklisted_worlds: [] # Optional per-realm overrides realm_min_distance: overworld: 96 nether: 48 end: 128 realm_max_distance: overworld: 3000 nether: 1500 end: 4000 dimension_restrictions: # Use world names, realm aliases (overworld/nether/end), or namespaced ids. # For namespaced ids in YAML, quote the key, for example "minecraft:the_nether". disable_rtp: nether: true disable_teleport: # "minecraft:the_end": true landing: mode: EXACT # EXACT or RANDOM_OFFSET random_offset_max: 4 features: enabled: true tpa: true tpahere: true homes: true rtp: true tpsurface: false tpvoid: false costs: enabled: false mode: NONE # NONE, XP_LEVELS, ITEM, CURRENCY xp_levels: tpa: 4 tpahere: 4 home: 16 home_set: 0 back: 0 # Per-realm RTP overrides (optional; overrides global if set) rtp: overworld: 30 nether: 0 end: 0 spawn: 8 item: material: DIAMOND tpa: 2 tpahere: 2 home: 20 home_set: 0 back: 0 # Per-realm RTP overrides (optional; overrides global if set) rtp: overworld: 30 nether: 0 end: 0 spawn: 10 currency: tpa: 0.0 tpahere: 0.0 home: 0.0 home_set: 0.0 back: 0.0 # Per-realm RTP overrides (optional; overrides global if set) rtp: overworld: 0.0 nether: 0.0 end: 0.0 spawn: 0.0 spawn: enabled: true x: 0 y: 100 z: 0 yaw: 0 pitch: 0 world: world sounds: request_sent: ENTITY_EXPERIENCE_ORB_PICKUP request_received: BLOCK_NOTE_BLOCK_PLING countdown: BLOCK_BELL_USE success: ENTITY_ENDERMAN_TELEPORT cancelled: BLOCK_GLASS_BREAK effects: request_sent: PORTAL request_received: ENCHANT countdown: WAX_OFF success: END_ROD cancelled: SMOKE ``` Fabric `config.properties` supports the same restrictions with either: - `settings.dimension_restrictions.disable_rtp=overworld,minecraft:the_nether` - `settings.dimension_restrictions.disable_teleport=minecraft:the_end,my_custom_dimension` - Dynamic keys like `settings.dimension_restrictions.disable_teleport.minecraft:the_nether=true` ## Permissions (Paper) - `yatpa.op.reload` (default: op) - `yatpa.op.tp` (default: op) - `yatpa.op.tpoffline` (default: op) - `yatpa.op.tpalog` (default: op) - `yatpa.op.setspawn` (default: op) ## License Licensed under `GNU General Public License v3.0` (GPL-3.0-only).