Features - steve4744/TNTRun GitHub Wiki
The following list of features applies to the latest release and so not all features will be present in older versions of the plugin.
- Supports multiple arenas
- Automatic arena regeneration
- Configurable block destroy delay
- Force-start voting system
- Force-start command with permission
- Custom Events
- Parties
- Join fee can be set per arena
- Join fee currency can be money or Minecraft material
- Configurable anti-camping system
- Custom messages
- Formatting codes support
- Full tab completion based on permissions
- Kits - can be enabled per arena
- Heads - interfaces with HeadsPlus plugin
- Signs
- Configurable per-arena time limit
- Configurable per-arena countdown
- Configurable sounds
- Customisable arena join menu
- Autojoin command to join first available arena
- In-game scoreboard
- Titles and bossbars
- Spectator system
- Player stats
- Leader board
- Auto updating leader board sign
- Arena leave checker
- Customizable shop
- PVP can be enabled/disabled per arena
- Player rewards
- Built-in placeholder support
- MySQL support
- Bungeecord support
- One player test mode
Multiple arenas can be created in a world or across multiple worlds. The plugin is fully compatible with the Multiverse group of plugins.
At the end of a game all the blocks broken by players stepping on them will be automatically regenerated. The time allowed for the regeneration (before players can rejoin the arena) can be set in the config file for each arena. The default is 60 ticks (3 seconds).
If your arena experiences some lag or delay before blocks are broken underneath a player, the 'game level destroy delay' setting can be changed in the arena config file. The default is 8 ticks which should be good for the majority of arenas.
Players waiting in an arena can vote to force-start the arena before the minimum number of players is reached. The number of votes required is determined by the values of 'votepercent' and 'minplayers' set for the arena.
For example, to allow 2 players to be able to force-start an arena when 'minplayers' is set to 3.
When the first player votes, the arena will have 1/3 (33%) votes, and when the second player votes the arena will have 2/3 (66%) votes.
The 'votepercent' should be set to 0.65 (65%) or less to allow the force-start.
If 'minplayers' is changed to 4, two votes would not be enough to force-start the arena because 2/4 (50%) is less than the 'votepercent' (65%). In this case 3 votes would be required as 3/4 (75%) is greater than the 'votepercent'.
The value of 'votepercent' is specified as a decimal between 0 and 1. The default is 0.75.
If you wish to give certain players the ability to force start an arena before the minimum number of players has been achieved, they can be given the 'tntrun.start' permission. They will then be able to run the command '/tntrun start [arena]'.
The current list of events are:
PlayerJoinArenaEvent
PlayerLeaveArenaEvent
PlayerWinArenaEvent
PlayerSpectateArenaEvent
ArenaStartEvent
ArenaTimeoutEvent
RewardWinnerEvent
Each custom player event will give you the player object and also the arena. The arena events will return the arena object.
Example usage:
@EventHandler
public void onPlayerJoinArena(PlayerJoinArenaEvent event) {
Player player = event.getPlayer();
String arena = event.getArena().getArenaName();
getLogger().info("TNTRun_reloaded: Player " + player.getName() + " has joined arena " + arena.getArenaName())
}
Each arena can be configured to charge a fee to join the arena. This can be monetary or any Minecraft item such gold_nuggets. This can be enabled using commands /trsetup setfee
and (to use a minecraft item as currency) /trsetup setcurrency
.
When the arena countdown reaches 5 seconds, all the players in the arena are teleported back to the arena spawn point. This can be disabled or amended in the plugin config file.
All in-game messages are customisable in the messages.yml file. A message can be suppressed by setting the value to an empty string using 2 single quotes.
The messages can be reloaded using command /trsetup reloadmsg.
See the Language Support section for information on translating the messages into your chosen language.
Most of the strings in messages.yml support Bukkit colour (&6) and formatting (&l) codes as well as hex/rgb colours (<#ff11aa>). See the Scoreboard section for details on using colour codes in the scorebboards.
Full tab completion for all commands is enabled. Players will only be able to see commands that they have permissions to use.
A kit is a set of items, weapons, food and potions that can be allocated to players at the start of a game.
A kit is created with command /trsetup addkit [kitname]
The addkit command adds all the items in your inventory including armour and active potion effects to the kit.
Kits are enabled on a per arena basis using command /trsetup enablekits [arena]
Players joining an arena (with kits enabled) will be allocated a random kit from those that have been created. If there is only one kit, everyone will receive the same kit.
A kit can also be linked to an arena using command /trsetup linkkit {arena} {kit}. Every player joining the arena will then receive the same kit.
If more than one kit is linked to an arena, by default players will receive a random kit from this list.
To force all players to receive the same linked kit, set the following in the {arena}.yml file.
randomLinkedKit: false
The list of available kits can be displayed with command /tr listkits
The contents of a kit can be displayed with command /tr listkit [kitname]
A kit can be deleted with command /trsetup deletekit [kitname]
Item slot 9 in the hotbar will always be the configured 'leave' item for the arena unless removed in the config.
An optional feature is to allow players to purchase different heads to wear during the game. To enable this feature you will need to have the plugin HeadsPlus by Thatsmusic99 installed on your server.
After joining the arena, players can use a hotbar item to open the HeadsPlus interface and purchase a head to wear during the game. The head is automatically equipped on the player's head when purchased, and removed at the end of the game.
Players will need the permission node below to use this feature.
tntrun.heads: true
The price for each head is set in plugins\HeadsPlus\customheads.yml. The default price is 10.0 and is set in the same file, so if you want all heads to be free just change the default price to 0.0.
You may need to explicitly set permission below if players can buy heads at 0 cost even with a price set.
headsplus.bypass.cost: false
A time limit can be set per arena with command /trsetup settimelimit {arena} {seconds}
The default is 300 seconds. If no time limit is required then set the number of seconds to zero.
Once the minimum number of players to start the game has been reached, the countdown will commence. The default countdown is 10 seconds and can be changed with the command /trsetup setcountdown {arena} {seconds}
Sounds can be configured in the plugin config file. See the Configuration section for details.
The arena join menu allows TNTRun_reloaded arenas to be selected from an inventory menu. This is accessed using the /tr join command without specifying an arena name. The command is avaiable to all players by default but can be disabled by disallowing permission tntrun.joinmenu.
The list of arenas can be limited to only show enabled arenas in the config.yml.
The clickable items (TNT by default) and the coloured tiles can be changed in the config.yml file.
The menu heading and other text can be changed in the messages.yml file.
menutitle: '&1TNTRun_reloaded Arenas'
menuarenaname: '&a{ARENA}'
menutext: '&5Players: &6{PS}/{MPS}'
menufee: '&5Join Fee: &6{FEE}'
menupvp: '&5PVP: &6Enabled'
To automatically join the arena with most waiting players, the command /tr autojoin can be used.
To filter arenas on whether they have pvp enabled or not, use command /tr autojoin [pvp | nopvp]
Titles and bossbars can be enabled/disabled in the plugin config file - see the Configuration section.
The title messages can be configured in titles.yml and reloaded with command /trsetup reloadtitles.
The bossbar messages can be configured in bars.yml and reloaded with command /trsetup reloadbars.
When a player loses a game he automatically becomes a spectator in that arena. The player can fly within the arena bounds but cannot interact with players or blocks within the arena and is invisible to other players.
Spectators are given a tracking item (default compass) as a hotbar item which can be used to teleport to any of the remaining players in the arena.
To join an arena as a spectator players need permission tntrun.spectate with command /tr spectate [arena].
The signs configuration in config.yml has a setting to allow players clicking on a sign of an in-game arena to join as spectators
signs:
allowspectate: true
The invitation message configuration in config.yml also includes a setting to allow players to join an in-game arena as a spectator by clicking the message.
A total of the number of games played and the number of games won by each player is recorded by default in file stats.yml. MySQL can also be used in place of the file to record player stats - the settings are configured in config.yml.
Stats can be enabled/disabled per arena in arena config file.
There is also a setting to only record stats if a minimum number of players start the game.