Описание
# SimpleTPA
### Plugin
Its a SimpleTPA Plugin. With some Customization Options. **Default config is at the end of this page.**
### Please Message me if you encounter any Bugs!
**Discord: blizzard8562 _(for Bug-Reports, other Issues and Feedback)_**
**Available for Paper/Folia and Bukkit/Spigot** _(two separate downloads, see the Modrinth versions tab)_
**Features:**
- Customizable Messages _(supports MiniMessage tags and legacy color codes)_
- TPA-Cooldowns
- Custom Sounds
- Clickable Chat Message _(for /tpaccept or /tpdeny)_
- PlaceholderAPI Support
- Optional Teleport-Warmup _(stand still for a few seconds after being accepted, before you get teleported)_
- Optional support for multiple simultaneous TPA-Requests
- Folia Support
**How to use:**
- _**/tpa [Player]**_ To send a teleportation request to a specified Player
- _**/tpahere [Player]**_ To send a teleportation request, asking a specified Player to **teleport to you**
- _**/tpaccept [Player]**_ To accept a pending TPA-Request. Specify a Player if you have multiple pending requests.
- _**/tpdeny [Player]**_ To deny a pending TPA-Request. Specify a Player if you have multiple pending requests.
- _**/tpacancel [Player]**_ To cancel one of your pending outgoing TPA-Requests. Specify a Player if you have multiple.
- _**/tpreload**_ To reload the config.yml. _Permission Required: tpa.reload_
- _**/tpatoggle**_ Toggles whether you allow incoming TPA-Requests.
- _**/tpdebug**_ Toggles console logging of TPA request lifecycle events. _Permission Required: tpa.debug_
- _**/tphere [Player]**_ Force-teleports a specified Player to you. _Permission Required: tpa.command.tphere_
- _**/tpo [Player]**_ Teleports you to the last known (offline) location of a specified Player _Permission Required: tpa.command.tpo_
- _**/tpa version**_ Allows viewing plugin version info.
- _**/tpa help**_ Lists all available commands with a short description.
**Permissions:**
**Player Commands:**_(default permissions)_
- _**tpa.command.tpa**_ You need this Permission to run _**/tpa**_.
- _**tpa.command.tpahere**_ You need this Permission to run _**/tpahere**_.
- _**tpa.command.tpaccept**_ You need this Permission to run _**/tpaccept**_.
- _**tpa.command.tpdeny**_ You need this Permission to run _**/tpdeny**_.
- _**tpa.command.tpacancel**_ You need this Permission to run _**/tpacancel**_.
- _**tpa.command.tpatoggle**_ You need this Permission to run _**/tpatoggle**_.
- _**tpa.command.version**_ You need this Permission to run _**/tpa version**_.
- _**tpa.command.help**_ You need this Permission to run _**/tpa help**_.
**Admin Commands:**_(default only for OP)_
- _**tpa.reload**_ You need this Permission to run _**/tpreload**_.
- _**tpa.debug**_ You need this Permission to run _**/tpdebug**_.
- _**tpa.command.tphere**_ You need this Permission to run _**/tphere**_.
- _**tpa.command.tpo**_ You need this Permission to run _**/tpo**_.
**How AI was/is used in this Project:**
AI was/is used for Code-Reviews.

_default config.yml (paper 1.6)_
```
settings:
tpa_cooldown: 30 # Cooldown in Seconds, before a Player can send another TPA-Request.
tpa_request_timeout: 60 # Time in Seconds, until a TPA-Request runs out.
check_for_updates: true # Checks Modrinth every 12 hours for a new version.
modrinth_project_slug: "simpletpaplugin" # Modrinth project slug used for update notifications. Usually there's no need to change this.
use_placeholderapi_formatting: true # Formats Player names in messages using PlaceholderAPI. Requires PlaceholderAPI to be installed.
player_display_format: "%player%" # Format for Player names in messages. Legacy § codes and MiniMessage tags (e.g. from %luckperms_prefix%) are automatically translated so they can be mixed safely. Example: "%luckperms_prefix% | %player%" requires PlaceholderAPI and LuckPerms, as well as the LuckPerms PlaceholderAPI expansion, to be installed.
teleport_warmup_enabled: false # If enabled, the requester has to stand still for a configured amount of time before being teleported after their TPA-Request gets accepted.
teleport_warmup_seconds: 5 # Time in Seconds the requester has to stand still before being teleported. Only used if teleport_warmup_enabled is true.
allow_multiple_requests: true # If enabled, Players can send TPA-Requests to multiple different Players at the same time, and receive multiple incoming Requests at once.
suppress_usage_hint: true # If enabled, suppresses the server's built-in "/tpa " usage hint that would otherwise appear below SimpleTPA's own error messages.
tpahere_enabled: true # If enabled, allows Players to use /tpahere to ask another Player to teleport to them.
tpahere_cooldown: 30 # Cooldown in Seconds, before a Player can send another TPA-Here-Request. Shares the same default as tpa_cooldown but can be changed independently.
tpahere_request_timeout: 60 # Time in Seconds, until a TPA-Here-Request runs out. Shares the same default as tpa_request_timeout but can be changed independently.
tpo_enabled: true # If enabled, allows staff to use /tpo to teleport to an offline Player's last known location. Also controls whether logout locations are recorded at all.
sounds:
tpa_request_sent: "entity.experience_orb.pickup"
tpa_request_received: "entity.player.levelup"
tpa_accept: "entity.enderman.teleport"
tpa_deny: "entity.villager.no"
tpa_expired: "entity.item.break"
tpa_toggle_enabled: "block.note_block.bass"
tpa_toggle_disabled: "block.note_block.pling"
tpa_teleport_cancelled: "entity.villager.no"
tpahere_request_sent: "entity.experience_orb.pickup"
tpahere_request_received: "entity.player.levelup"
messages: # Uses MiniMessage tags (e.g. , , ) in this file. Legacy § codes also work and are automatically translated internally if you prefer them. update_available_console is only ever printed to the console log and does not support any coloring.
tpa_request_sent: "You sent a TPA-Request to %target%."
tpa_request_received: "%player% sent you a TPA-Request! /tpaccept or /tpdeny"
tpahere_request_sent: "You sent a TPA-Request asking %target% to teleport to you."
tpahere_request_received: "%player% sent a TPA-Request asking you to teleport to them! /tpaccept or /tpdeny"
tpahere_disabled: "The /tpahere command is currently disabled."
tpa_accept_success: "You accepted the TPA-Request from %player%."
tpa_accept_teleport: "You got teleported by %player%."
tpa_teleport_warmup_started: "Teleporting to %player% in %seconds% seconds. Don't move!"
tpa_teleport_warmup_cancelled: "Teleportation to %player% was cancelled because you moved."
tpa_deny_success: "You denied the TPA-Request from %player%."
tpa_deny_notify: "%player% denied your TPA-Request."
tpa_no_request: "You dont have any pending TPA-Requests."
tpa_request_exists: "You already have a pending TPA-Request. Wait for it to be accepted, denied, or to expire before sending another."
tpa_request_exists_target: "You already have a pending TPA-Request to this Player."
tpa_no_request_from: "You don't have a pending TPA-Request from %player%."
tpa_no_request_to: "You don't have a pending TPA-Request to %player%."
tpa_multiple_requests: "You have multiple pending TPA-Requests: %players%. Use /tpaccept [player] or /tpdeny [player] to choose one."
tpa_multiple_requests_outgoing: "You have multiple pending outgoing TPA-Requests: %players%. Use /tpacancel [player] to choose one."
player_not_online: "This Player is currently not online."
player_only_command: "This command can only be used by Players."
tpa_self_request: "You cannot send a TPA-Request to yourself."
wrong_usage: "Use: /%command% [Player]"
tpa_cancel_success: "Your TPA-Request was cancelled."
tpa_cancel_notify: "%player% cancelled their TPA-Request."
tpa_request_expired_sender: "Your TPA-Request to %target% ran out."
tpa_request_expired_receiver: "The TPA-Request by %player% ran out."
tpahere_request_expired_sender: "Your TPA-Request asking %target% to teleport to you ran out."
tpahere_request_expired_receiver: "The TPA-Request by %player% asking you to teleport to them ran out."
tpa_cooldown: "Please wait %seconds% Seconds, before sending a new TPA-Request."
config_reloaded: "The Configuration has succesfully been reloaded."
no_permission: "You dont have the required Permissions to use this Command.!"
tpa_toggle_enabled: "You will no longer receive TPA-Requests."
tpa_toggle_disabled: "You can now receive TPA-Requests again."
tpa_target_not_accepting: "%target% is not currently accepting TPA-Requests."
version_info: "SimpleTPA version info - Current: %current% | Latest: %latest% | %url%"
update_available_console: "A new version (%version%) of SimpleTPA is available! Download: %url%"
update_available_player: "A new version (%version%) of SimpleTPA is available! Download: %url%"
tpa_debug_enabled: "TPA event debug logging is now enabled."
tpa_debug_disabled: "TPA event debug logging is now disabled."
tphere_success: "You teleported %player% to you."
tphere_moved_notify: "You were teleported to %player%."
tpo_disabled: "The /tpo command is currently disabled."
tpo_player_online: "%player% is currently online, use /tpahere or /tpa instead."
tpo_no_data: "No last known location is available for %player%."
tpo_success: "Teleported to %player%'s last known location."
clickable_messages:
accept_text: "[✔ Accept]"
accept_hover: "Click to accept the TPA!"
accept_command: "/tpaccept"
accept_color: "GREEN"
deny_text: "[✖ Deny]"
deny_hover: "Click to deny the TPA!"
deny_command: "/tpdeny"
deny_color: "RED"
help_messages:
header: "--- SimpleTPA Commands ---"
tpa: "/tpa [player] - Sends a TPA-Request to a Player."
tpahere: "/tpahere [player] - Asks a Player to teleport to you."
tpaccept: "/tpaccept [player] - Accepts a pending TPA-Request. Specify a Player if you have multiple."
tpdeny: "/tpdeny [player] - Denies a pending TPA-Request. Specify a Player if you have multiple."
tpacancel: "/tpacancel [player] - Cancels one of your pending outgoing TPA-Requests."
tpatoggle: "/tpatoggle - Toggles whether you can receive TPA-Requests."
tphere: "/tphere [player] - Force-teleports a Player to you. (Staff)"
tpo: "/tpo [player] - Teleports you to an offline Player's last known location. (Staff)"
version: "/tpa version - Shows the current plugin version and update status."
help: "/tpa help - Shows this help message."
tpreload: "/tpreload - Reloads the plugin configuration."
```
German Translation for config.yml(paper 1.6)
```
settings:
tpa_cooldown: 30 # Abklingzeit in Sekunden, bevor ein Spieler eine weitere TPA-Anfrage senden kann.
tpa_request_timeout: 60 # Zeit in Sekunden, bis eine TPA-Anfrage abläuft.
check_for_updates: true # Überprüft alle 12 Stunden auf Modrinth, ob eine neue Version verfügbar ist.
modrinth_project_slug: "simpletpaplugin" # Modrinth-Projekt-Slug für Update-Benachrichtigungen.
use_placeholderapi_formatting: true # Formatiert Spielernamen in Nachrichten mit PlaceholderAPI. Erfordert, dass PlaceholderAPI installiert ist.
player_display_format: "§6%luckperms_prefix% §8| %player%" # Format für Spielernamen in Nachrichten. %luckperms_prefix% erfordert PlaceholderAPI und LuckPerms.
teleport_warmup_enabled: false # Wenn aktiviert, muss der Anfragende nach Annahme der TPA-Anfrage für eine festgelegte Zeit stillstehen, bevor er teleportiert wird.
teleport_warmup_seconds: 5 # Zeit in Sekunden, die der Anfragende stillstehen muss, bevor er teleportiert wird. Wird nur verwendet, wenn teleport_warmup_enabled aktiviert ist.
allow_multiple_requests: true # Wenn aktiviert, können Spieler gleichzeitig TPA-Anfragen an mehrere verschiedene Spieler senden und mehrere eingehende Anfragen gleichzeitig erhalten.
suppress_usage_hint: true # Wenn aktiviert, wird der servereigene Verwendungshinweis "/tpa " unter den Fehlermeldungen von SimpleTPA ausgeblendet.
tpahere_enabled: true # Wenn aktiviert, können Spieler /tpahere verwenden, um einen anderen Spieler aufzufordern, sich zu ihnen zu teleportieren.
tpahere_cooldown: 30 # Abklingzeit in Sekunden, bevor ein Spieler eine weitere TPA-Here-Anfrage senden kann.
tpahere_request_timeout: 60 # Zeit in Sekunden, bis eine TPA-Here-Anfrage abläuft.
tpo_enabled: true # Wenn aktiviert, können Teammitglieder /tpo verwenden, um sich zur letzten bekannten Position eines offline Spielers zu teleportieren.
sounds:
tpa_request_sent: "entity.experience_orb.pickup"
tpa_request_received: "entity.player.levelup"
tpa_accept: "entity.enderman.teleport"
tpa_deny: "entity.villager.no"
tpa_expired: "entity.item.break"
tpa_toggle_enabled: "block.note_block.bass"
tpa_toggle_disabled: "block.note_block.pling"
tpa_teleport_cancelled: "entity.villager.no"
tpahere_request_sent: "entity.experience_orb.pickup"
tpahere_request_received: "entity.player.levelup"
messages:
tpa_request_sent: "Du hast eine TPA-Anfrage an %target% gesendet."
tpa_request_received: "%player% hat dir eine TPA-Anfrage gesendet! /tpaccept oder /tpdeny"
tpahere_request_sent: "Du hast eine TPA-Anfrage an %target% gesendet, damit sich der Spieler zu dir teleportiert."
tpahere_request_received: "%player% hat dich aufgefordert, dich zu ihm zu teleportieren! /tpaccept oder /tpdeny"
tpahere_disabled: "§cDer Befehl /tpahere ist derzeit deaktiviert."
tpa_accept_success: "Du hast die TPA-Anfrage von %player% akzeptiert."
tpa_accept_teleport: "Du wurdest von %player% teleportiert."
tpa_teleport_warmup_started: "§eDu wirst in %seconds% Sekunden zu %player% teleportiert. Beweg dich nicht!"
tpa_teleport_warmup_cancelled: "§cDie Teleportation zu %player% wurde abgebrochen, da du dich bewegt hast."
tpa_deny_success: "Du hast die TPA-Anfrage von %player% abgelehnt."
tpa_deny_notify: "%player% hat deine TPA-Anfrage abgelehnt."
tpa_no_request: "Du hast keine ausstehenden TPA-Anfragen."
tpa_request_exists: "Du hast bereits eine ausstehende TPA-Anfrage. Warte, bis diese akzeptiert, abgelehnt wurde oder abgelaufen ist, bevor du eine weitere sendest."
tpa_request_exists_target: "Du hast bereits eine ausstehende TPA-Anfrage an diesen Spieler."
tpa_no_request_from: "Du hast keine ausstehende TPA-Anfrage von %player%."
tpa_no_request_to: "Du hast keine ausstehende TPA-Anfrage an %player%."
tpa_multiple_requests: "Du hast mehrere ausstehende TPA-Anfragen: %players%. Nutze /tpaccept oder /tpdeny , um eine auszuwählen."
tpa_multiple_requests_outgoing: "Du hast mehrere ausstehende ausgehende TPA-Anfragen: %players%. Nutze /tpacancel , um eine auszuwählen."
player_not_online: "Dieser Spieler ist derzeit nicht online."
player_only_command: "Dieser Befehl kann nur von Spielern verwendet werden."
tpa_self_request: "Du kannst dir selbst keine TPA-Anfrage senden."
wrong_usage: "Verwendung: /%command% "
tpa_cancel_success: "Deine TPA-Anfrage wurde abgebrochen."
tpa_cancel_notify: "%player% hat seine TPA-Anfrage abgebrochen."
tpa_request_expired_sender: "Deine TPA-Anfrage an %target% ist abgelaufen."
tpa_request_expired_receiver: "Die TPA-Anfrage von %player% ist abgelaufen."
tpahere_request_expired_sender: "Deine TPA-Anfrage an %target%, sich zu dir zu teleportieren, ist abgelaufen."
tpahere_request_expired_receiver: "Die TPA-Anfrage von %player%, sich zu dir zu teleportieren, ist abgelaufen."
tpa_cooldown: "§eBitte warte %seconds% Sekunden, bevor du eine neue TPA-Anfrage sendest."
config_reloaded: "§aDie Konfiguration wurde erfolgreich neu geladen."
no_permission: "§cDu hast nicht die benötigten Berechtigungen, um diesen Befehl zu verwenden!"
tpa_toggle_enabled: "§cDu erhältst nun keine TPA-Anfragen mehr."
tpa_toggle_disabled: "§aDu kannst jetzt wieder TPA-Anfragen erhalten."
tpa_target_not_accepting: "%target% akzeptiert derzeit keine TPA-Anfragen."
version_info: "SimpleTPA Versionsinfo - Aktuell: %current% | Neueste: %latest% | %url%"
update_available_console: "Eine neue Version (%version%) von SimpleTPA ist verfügbar! Download: %url%"
update_available_player: "§eEine neue Version (%version%) von SimpleTPA ist verfügbar! §fDownload: %url%"
tpa_debug_enabled: "§aDas TPA-Debug-Logging ist jetzt aktiviert."
tpa_debug_disabled: "§7Das TPA-Debug-Logging ist jetzt deaktiviert."
tphere_success: "§aDu hast %player% zu dir teleportiert."
tphere_moved_notify: "§eDu wurdest zu %player% teleportiert."
tpo_disabled: "§cDer Befehl /tpo ist derzeit deaktiviert."
tpo_player_online: "%player% ist derzeit online. Verwende stattdessen /tpahere oder /tpa."
tpo_no_data: "§cEs ist keine letzte bekannte Position von %player% verfügbar."
tpo_success: "§aDu wurdest zur letzten bekannten Position von %player% teleportiert."
clickable_messages:
accept_text: "[✔ Akzeptieren]"
accept_hover: "Klicke, um die TPA-Anfrage zu akzeptieren!"
accept_command: "/tpaccept"
accept_color: "GREEN"
deny_text: "[✖ Ablehnen]"
deny_hover: "Klicke, um die TPA-Anfrage abzulehnen!"
deny_command: "/tpdeny"
deny_color: "RED"
help_messages:
header: "§6--- SimpleTPA Befehle ---"
tpa: "§e/tpa §7- Sendet eine TPA-Anfrage an einen Spieler."
tpahere: "§e/tpahere §7- Bittet einen Spieler, sich zu dir zu teleportieren."
tpaccept: "§e/tpaccept [Spieler] §7- Akzeptiert eine ausstehende TPA-Anfrage. Gib einen Spieler an, wenn du mehrere hast."
tpdeny: "§e/tpdeny [Spieler] §7- Lehnt eine ausstehende TPA-Anfrage ab. Gib einen Spieler an, wenn du mehrere hast."
tpacancel: "§e/tpacancel [Spieler] §7- Bricht eine deiner ausstehenden ausgehenden TPA-Anfragen ab."
tpatoggle: "§e/tpatoggle §7- Schaltet um, ob du TPA-Anfragen erhalten kannst."
tphere: "§e/tphere §7- Teleportiert einen Spieler zu dir. (Teammitglied)"
tpo: "§e/tpo §7- Teleportiert dich zur letzten bekannten Position eines offline Spielers. (Teammitglied)"
version: "§e/tpa version §7- Zeigt die aktuelle Plugin-Version und den Update-Status an."
help: "§e/tpa help §7- Zeigt diese Hilfenachricht an."
tpreload: "§e/tpreload §7- Lädt die Plugin-Konfiguration neu."
```
Have fun :)