一个允许玩家控制生物生成的Spigot插件。

# 💣 xTntRun - The Classic Minigame, Reinvented! 💣
Bring the excitement and chaos of the classic **TNTRun** to your server with **xTntRun**! This plugin allows you to quickly and easily set up the popular minigame where players must run on a platform that vanishes beneath their feet. The last player standing wins!
Designed to be **lightweight, efficient, and extremely customizable**, xTntRun is the perfect solution for any server looking to add a fun and competitive minigame for its community.
---
## ✨ Key Features
* 🚀 **Multi-Arena Support:** Create as many arenas as you want! Each can have its own unique setup to keep the fun going.
* 📋 **Interactive Selector GUI:** A sleek and user-friendly menu that allows players to see all available arenas, view their status (waiting/in-game), and join with a single click.
* 📊 **Detailed & Dynamic Scoreboard:** Display crucial information like the map name, remaining players, and game state. The scoreboard automatically updates for waiting, starting, and in-game phases.
* ⚙️ **Highly Customizable:** Modify **absolutely everything**—from messages and titles to items and menus—through the easy-to-edit `config.yml` and `messages.yml` files. Full HEX color support included!
* ⚔️ **Customizable Skill Items:** Add an extra layer of strategy with items like:
* **Double Jump:** An in-air boost to save yourself from a fall! (Fully configurable).
* **Punch Bow:** Annoy your opponents and knock them into the void!
* 🏆 **PlaceholderAPI Integration:** Use a wide range of placeholders to display TNTRun stats in any other compatible plugin, such as scoreboards or tablists.
* 🎉 **Victory Celebrations:** Make the winner feel special with customizable fireworks, sounds, and particle effects at the end of the match!
* 👨💻 **Simple Admin Commands:** Manage your arenas, set the main lobby, and reload the configuration with intuitive and powerful commands.
---
## 🔗 Dependencies
For xTntRun to work correctly, you will need to install the following plugins:
1. [**PlaceholderAPI**](https://www.spigotmc.org/resources/placeholderapi.624/): (Required) Necessary for all placeholders to function.
2. [**WorldEdit**](https://dev.bukkit.org/projects/worldedit): (Required for setup) Needed to save your arena schematics.
---
## 🛠️ Commands
### Player Commands
``/tntrun join `` - Join a specific arena.
``/tntrun leave`` - Leave your current arena.
``/tntrun menu`` - Open the arena selection menu.
### Admin Commands
``/tntrun create `` - Create a new arena.
``/tntrun setlobby `` - Set the waiting lobby for an arena.
``/tntrun setspectator `` - Set the spectator spawn point for an arena.
``/tntrun save `` - Save the arena and make it available for players.
``/tntrun setlobby`` - Set the main server lobby (where players go after a game).
``/tntrun reload`` - Reload the plugin's configuration files.
---
## 📈 Available Placeholders
Use these placeholders with PlaceholderAPI to display stats anywhere on your server.
``%tntrun_players%`` - Total players across all TNTRun arenas.
``%tntrun_wins%`` - A player's total wins.
``%tntrun_losses%`` - A player's total losses.
``%tntrun_map_name%`` - The name of the map the player is in.
``%tntrun_arena_players%`` - Current players in the player's arena.
``%tntrun_arena_max_players%`` - Max players in the player's arena.
``%tntrun_countdown%`` - The current countdown timer.
## ⭐ Config
```yaml
# ___ __ _
# / __\___ _ __ / _(_) __ _
# / / / _ \| '_ \| |_| |/ _` | Plugin by
# / /__| (_) | | | | _| | (_| | xPlugins
# \____/\___/|_| |_|_| |_|\__, |
# |___/ 1.0.0
# Time in seconds for the countdown before the game starts.
countdown-seconds: 10
# Minimum players required for the countdown to start.
min-players: 2
# Maximum players per arena.
max-players: 40
lobby-location:
world: Hub
x: 0.5
y: 65.0
z: 0.5
yaw: -179.85002
pitch: 3.0000002
# ____ __ _
# / ___|___ _ __ / _(_) __ _
# | | / _ \| '_ \| |_| |/ _` |
# | |__| (_) | | | | _| | (_| |
# \____\___/|_| |_|_| |_|\__, |
# |___/ Scoreboard
scoreboard:
title: 'FF4B4B&lTNT FF8E15&lRUN'
lines-waiting:
- '&7%tntrun_date%'
- ' '
- '&fMap: &a%tntrun_map_name%'
- '&fPlayers: &a%tntrun_players%/%tntrun_max_players%'
- ' '
- '&eWaiting for players...'
- ' '
- 'FFFF55myserver.net'
lines-starting:
- '&7%tntrun_date%'
- ' '
- '&fMap: &a%tntrun_map_name%'
- '&fPlayers: &a%tntrun_players%/%tntrun_max_players%'
- ' '
- '&fStarting in &a%tntrun_countdown%s'
- ' '
- 'FFFF55myserver.net'
lines-ingame:
- '&7%tntrun_date%'
- ' '
- '&fPlayers remaining:'
- '&a%tntrun_players%/%tntrun_max_players%'
- ' '
- '&cRun for your life!'
- ' '
- 'FFFF55myserver.net'
# ____ __ _
# / ___|___ _ __ / _(_) __ _
# | | / _ \| '_ \| |_| |/ _` |
# | |__| (_) | | | | _| | (_| |
# \____\___/|_| |_|_| |_|\__, |
# |___/ Celebration
win-celebration:
enabled: true
fireworks:
enabled: true
amount: 5
power: 1
colors:
- ORANGE
- YELLOW
- RED
particles:
enabled: true
particle_type: FLAME
count: 100
sound:
enabled: true
sound_name: ENTITY_PLAYER_LEVELUP
volume: 1.0
pitch: 1.0
# ____ __ _
# / ___|___ _ __ / _(_) __ _
# | | / _ \| '_ \| |_| |/ _` |
# | |__| (_) | | | | _| | (_| |
# \____\___/|_| |_|_| |_|\__, |
# |___/ Items
items:
leave-item:
enabled: true
material: RED_BED
slot: 8
name: '&8 ▸ &fLeave Game &8• &fRight Click!'
lore:
- '&8 ℹ Information'
- ''
- '&fClick to return'
- '&fto the main lobby.'
- ''
- 'FF0000 ✔ Click to leave! '
- ''
enchanted: false
doublejump-item:
enabled: true
material: FEATHER
slot: 0
name: '&8 ▸ &fDouble Jump &8• &fRight Click!'
lore:
- '&8 ℹ Information'
- ''
- '&fRight-click in the'
- '&fair for a boost!'
- ''
- 'FF0000 ✔ Jump now! '
- ''
enchanted: true
power: 1.1
cooldown-seconds: 3
sound: ENTITY_GHAST_SHOOT
title:
enabled: true
main-title: 'CFCCA✈ &lWHOOSH!CFCCA ✈'
sub-title: ''
fade-in: 0
stay: 10
fade-out: 5
punch-bow:
enabled: true
material: BOW
slot: 1
arrow-slot: 10
name: '&8 ▸ &fPunch Bow &8• &fRight Click!'
lore:
- '&8 ℹ Information'
- ''
- '&fAnnoy your friends'
- '&fusing this item!'
- ''
- 'FF0000 ✔ Use it now! '
- ''
enchanted: true
unbreakable: true
knockback-power: 0.5
cooldown-seconds: 2
# ____ __ _
# / ___|___ _ __ / _(_) __ _
# | | / _ \| '_ \| |_| |/ _` |
# | |__| (_) | | | | _| | (_| |
# \____\___/|_| |_|_| |_|\__, |
# |___/ Messages (Titles)
game-titles:
countdown:
enabled: true
main-title: 'FFA0A0Get Ready!'
sub-title: '&fThe game starts in FFA0A0%time%s'
fade-in: 5
stay: 20
fade-out: 5
start:
enabled: true
main-title: '&f☠ FF0000&lRUN! &f☠'
sub-title: '&fDon''t let the blocks fall!'
fade-in: 10
stay: 40
fade-out: 10
# ____ __ _
# / ___|___ _ __ / _(_) __ _
# | | / _ \| '_ \| |_| |/ _` |
# | |__| (_) | | | | _| | (_| |
# \____\___/|_| |_|_| |_|\__, |
# |___/ Arena Menu
arena-menu:
title: '&8 Arena Selector'
size: 36
filler-item:
enabled: true
material: BLACK_STAINED_GLASS_PANE
name: ' '
random-join-item:
enabled: true
material: NETHER_STAR
slot: 31
name: '&8 ▸ PFF99Quick Match! ☀ '
lore:
- ''
- '&8 ℹ Information'
- ''
- '&fClick to join any'
- '&favailable arena!'
- ''
- 'PFF99 ▸ &nClickPFF99 to play!'
- ''
close-menu-item:
enabled: true
material: 'head:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2VkMWFiYTczZjYzOWY0YmM0MmJkNDgxOTZjNzE1MTk3YmUyNzEyYzNiOTYyYzk3ZWJmOWU5ZWQ4ZWZhMDI1In19fQ=='
slot: 35
name: 'FF0000 ✘ Close Menu!'
lore:
- ''
- '&8 ℹ Information'
- ''
- '&fClick to close'
- '&fthis menu!'
- ''
- 'FF0000 ✔ Click to close! '
- ''
item-available:
material: 'head:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGI1OTljNjE4ZTkxNGMyNWEzN2Q2OWY1NDFhMjJiZWJiZjc1MTYxNTI2Mzc1NmYyNTYxZmFiNGNmYTM5ZSJ9fX0='
name: '&8 ▸ &fMap &7• FF0000%map_name%'
lore:
- ''
- '&8 ℹ Information'
- ''
- '&7 ▸ &fStatus: 7FF55Available!'
- '&7 ▸ &fPlayers: &a%players%/%max_players%'
- ''
- 'FF0000 ✔ Click to join! '
- ''
item-unavailable:
material: 'head:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjE4NTZjN2IzNzhkMzUwMjYyMTQzODQzZDFmOWZiYjIxOTExYTcxOTgzYmE3YjM5YTRkNGJhNWI2NmJlZGM2In19fQ=='
name: '&8 ▸ &fArena &7• FF8888%map_name%'
lore:
- ''
- '&8 ℹ Information'
- ''
- '&7 ▸ &fStatus: FF8888✘'
- '&7 ▸ &fPlayers: FF8888%players%/%max_players%'
- ''
- 'FF8888 ✘ Not available! '
- ''
```
## 💫 Messanges
```yaml
#
# /\/\ ___ ___ ___ __ _ _ __ __ _ ___ ___
# / \ / _ \/ __/ __|/ _` | '_ \ / _` |/ _ \/ __|
# / /\/\ \ __/\__ \__ \ (_| | | | | (_| | __/\__ \
# \/ \/\___||___/___/\__,_|_| |_|\__, |\___||___/
# |___/ .yml
prefix: 'FF5555xTntRun' # Set to '' for better aesthetics :)
# Error & Warning Messages
no-permission: 'FF5555 ✘ Attention! You do not have permission to execute this command.'
player-only-command: 'FF5555 ✘ Attention! This command can only be executed by a player.'
game-not-found: 'FFBB55 ⚠ Oops! The arena you mentioned does not exist.'
already-in-game: 'FFBB55 ℹ Wait! You are already in a game.'
not-in-game: 'FFBB55 ⚠ Attention! You are not currently in a game.'
game-full: 'FFBB55 ℹ Sorry! The game is full.'
game-in-progress: 'FFBB55 ℹ Attention! The game has already started.'
no-games-available: 'FFBB55 ⚠ Oops! There are no games available at the moment.'
item-on-cooldown: 'FFBB55 ⌚ Wait! You must wait a bit to use this again.'
fly-disabled: 'FF5555 ℹ Attention! You cannot fly during the game.'
# Game Messages
player-join: 'CFF6F ✔ &n%player%&f has joined the game. &7(%current%/%max%)'
player-leave: 'FF6F6F ✘ &n%player%&f has left the game. &7(%current%/%max%)'
player-eliminated: 'FF0000 ☠ &n%player%&f has been eliminated.'
countdown-starting: 'FAEDCB ℹ Get ready! &fThe game will start in FAEDCB%time% &fseconds...'
game-start: 'FCD05C 🔥 The game has started! Run for your life!'
game-win: 'FCD05C ☀ Congratulations, &n%winner%&f! You have won the TNT Run game.'
not-enough-players: 'FAEDCB ⚠ Attention! The countdown has stopped. Not enough players.'
# Admin Command Messages
lobby-set: '7FF55 ✔ Success! You have set the main lobby to your position.'
reload-success: '7FF55 ✔ Success! The plugin configurations have been reloaded.'
```
---
> ### Need Help?
> If you have any questions, suggestions, or find a bug, don't hesitate to post it in th