Changelog
TTT Version History
Click here to view the rich documentation. [?]
0.10.3
TTT v0.10.3 fixes a critical issue with the auto-updater caused by a change to CurseForge's CDN which resulted in bogus artifacts being downloaded. Users affected by this issue will need to manually update to this version.
0.10.2
TTT v0.10.2 packages Rosetta v1.1.3 in order to resolve an issue in the localization engine introduced by the last hotfix.
0.10.1
TTT v0.10.1 packages Rosetta v1.1.2 to resolve a bug in the localization engine in Paper for 1.10.2.
Bugs Fixed
- Fix localization engine sometimes throwing a
NullPointerException
on recent versions of Paper
0.10.0
TTT v0.10 introduces new features primarily designed to make the plugin more flexible in how it operates. This update is particularly targeted toward larger servers and in particular BungeeCord networks.
New Features
- Add option to configure plugin's operating mode
- Add
continuous
mode- Players will not be ejected from the arena when a round ends
- Add
dedicated
mode- Only one round exists on the server, which players are automatically added to upon joining and may not leave
- This arena cycles per a configurable pattern every x rounds or minutes
- Add
- Add basic BungeeCord support in correspondance with
dedicated
mode- When
return-server
is configured, players will be sent to that server on running/ttt leave
instead of the command failing
- When
- Add optional
force
parameter toleave
command to allow administrators to leave rounds in dedicated - Add tip to join message explaining
leave
command - Add pagination to
help
command - Add config option to toggle server-wide victory messages (
false
by default) - Add telemetry support
New Commands
- Add
/ttt arenainfo
command
Changes
- Improve DNA scanner behavior when no target is selected
- Rename
carena
andrarena
commands tocreatearena
andremovearena
(old names are still available as aliases)
Removed Features
- Remove
reload
command
Bug Fixes
- Fix
/ttt help help
throwing an exception - Fix victory messages being sent even if a round never started
- Fix players not being placed in spectator mode upon dying due to Multiverse conflict (special thanks to CraftBlock for helping track this down)
- Fix plugin doing reflection lookup for
getOnlinePlayers
method every time it's invoked
Internal Changes
- Properly implement command aliases internally
- Rewrite
forceend
command implementation - Refactor event handlers to be more sane
- Revamp config handler
- Partially migrate to Rosetta 1.1 API features
- Clean up helper classes a bit
0.9.6
TTT v0.9.6 fixes a bug caused by players disconnecting while in an active round.
0.9.5
TTT v0.9.5 packages the latest versions of Metrics and CrossTitles to provide support for Minecraft 1.9.
Changes
- Update
fr_FR
andpt_BR
locales
Internal Changes
- Bump CrossTitles dependency to version
0.1.2
- Bump MCStats dependency to revision
R8-SNAPSHOT
0.9.4
TTT v0.9.4 fixes the plugin failing non-gracefully when Steel is not present in the environment and provides localization updates.
Changes
- Update
de_DE
,fr_FR
,it_IT
,ko_KR
,lol_US
,pl_PL
, andtr_TR
locales
Bug Fixes
- Fix plugin failing non-gracefully when Steel is not present in the environment
0.9.3
TTT v0.9.3 addresses another issue regarding detective assignment.
0.9.2
TTT v0.9.2 addresses an issue with the /ttt import
command.
Bug Fixes
- Fix
/ttt import
throwing an exception when passed the name of an existing arena
0.9.1
TTT v0.9.1 addresses bugs present in the initial 0.9 release.
Bug Fixes
- Fix a detective always being assigned despite config settings
- Fix bodies (chests) not always being rolled back
0.9.0
TTT v0.9.0 adds several new gameplay features and administrative commands, simplifies configuration, and overhauls several internal backends.
New Features
- Add post-round period
- Display remaining round time on scoreboard
- Add DNA decay feature
- Add time-since-death clock to bodies
- Add discreet body searching via sneaking
- Localize body inventories on per-player basis
- Add chat prefix to distinguish spectators from killed players
- Automatically delete remaining legacy storage files from data folder on load
- Add partial
no_NO
,pt_PT
,tr_TR
, andlol_US
locales
New Commands
/ttt slay
- slays a given player/ttt respawn
- respawns a given player into a round/ttt role
- displays the role of a given player/ttt roles
- displays the roles of all players in a given round/ttt forceend
- forces a round to end, skipping the round-end period and immediately resetting its arena/ttt reload
- reloads the configuration from disk
Changes
- Change default crowbar damage from
6
to5
- Change default ammo given to players from
40
to55
- Overhaul permission model to improve UX
- Revamp documentation in
config.yml
- Replace multiple hacks/workarounds with calls to Flint API methods
- Update localization
- Bump Flint dependency to 1.1 (API revision 2)
Removed Features
- Remove time-related broadcasts
- Remove scoreboard-related config options
- Remove previously deprecated permission nodes
- Drop support for Bukkit versions prior to 1.7.8
- Remove special join messages for normal testers and translators (it was too much to reasonably keep track of)
Bug Fixes
- Fix chest type selection on body creation
- Fix traitor/detective ratio clamping
- Fix DNA scanner identifying body without searching
- Fix players being able to receive damage before round start
- Fix karma being reset to 0 for spectators on round end
Internal Changes
- Overhaul scoreboard backend
- Overhaul body backend
- Overhaul command backend
- Generate body inventories on-demand (rather than storing them in the physical chest)
- Refactor player interact and death event handling to be more sane
- Centralize several magic metadata keys
- Refactor command classes into new packages
- Refactor helper classes into new packages
0.8.8
TTT v0.8.8 renames the packages of shaded libraries to avoid conflicts with other plugins.
0.8.7
TTT v0.8.7 fixes all remaining issues with the auto-installer for Steel.
0.8.6
TTT v0.8.6 fixes scoreboard support for legacy Bukkit versions.
Note: TTT's scoreboard backend will no longer support Bukkit versions prior to 1.7.8 as of version 0.9.0.
0.8.5
TTT v0.8.5 fixes issues with the Steel auto-installer and fixes scoreboards not clearing upon a round's preparation period being cancelled.
0.8.4
TTT v0.8.4 implements an auto-updater for Steel and adds more customized feedback to the existing update system.
0.8.3
TTT v0.8.3 fixes the arena creation wizard conflicting with chat-modifying plugins.
0.8.2
TTT v0.8.2 fixes the arena creation wizard, which was not working properly in prior 0.8.x versions.
0.8.1
TTT v0.8.1 fixes issues with the plugin when Steel is not installed on the server.
Changes
- Enable metrics and auto-updater before Steel check
Bug Fixes
- Fix plugin not gracefully failing when Steel is not installed
Internal changes
- Move basic initialization code to discrete bootstrap class
0.8.0
Note: This version is no longer available for download on BukkitDev.
TTT v0.8.0 ports the plugin to the Flint engine, adds new utility commands, introduces UX enhancements, and removes select deprecated features.
New Features
- Add interactive arena creation wizard
- Add interactive lobby sign creation wizard via Flint
- Implement per-player message localization via Rosetta
- Add support for arena boundaries
- Add
listarenas
command - Add
listspawns
command - Add optional support for spectating rounds in progress
- Reset karma to
low_autokick
value on round join if below - Add output to
addspawn
andremovespawn
commands - Add partial Hungarian (
hu_HU
) locale
Changes
- Change info color to
DARK_AQUA
(fromDARK_PURPLE
) - Switch spawning mode to random rather than sequential
- Change visibility of arena join message to arena-local
- Tweak round start/end countdowns
- Use sidebar for karma scoreboard by default (as opposed to player list)
- Display subtitles by default (instead of full-sized titles)
- Rename several config keys (w/ backwards-compatibility) to more closely match official gamemode config
- Remove material abstraction layer
- Subsequently, config materials are now parsed as raw
enum
values (as opposed to converted from Minecraft's official name)
- Subsequently, config materials are now parsed as raw
- Deprecated permission nodes are no longer assigned by default
- Add release codename to default command
- Update locales
Removed Features
- Remove arguments from
carena
command - Remove
setexit
command - Remove optional time argument from
prepare
andstart
commands - Remove legacy lobby sign syntax in favor of new wizard
- Remove shorthand command syntax (e.g.
/ttt j
instead of/ttt join
) - Remove
/ttt quit
command in favor of/ttt leave
- Remove configurable scoreboard role-based prefixes
- Remove
guns-outside-arenas
config option - Remove ANSI coloring from console messages
Bug Fixes
- Fix inconsistent internal references to detectives
- Fix DNA scanning when the body of a player who has left the round is scanned
- Fix DNA scanning when the killer of a scanned body is spectating
- Fix karma kick/ban-related config values not applying
- Fix quirks regarding scoreboards and teams
- Fix scoreboard flickering
- Fix bodies replacing solid blocks
Internal Changes
- Port to Flint engine
- Migrate locale handling to Rosetta (should resolve most or all existing issues relating to localization)
- Fully migrate to player UUIDs internally
- Restructure/optimize how bodies are handled internally
- Restructure/optimize how scoreboards are handled internally
- Refactor an enormous amount of other code
- Bump Bukkit dependency to 1.8.8-R0.1
- Bump target JDK to 1.7
0.7.4
TTT v0.7.4 fixes remaining errors thrown when MGLib is missing.
0.7.3
TTT v0.7.3 introduces minor changes regarding startup procedures.
- Add warning message if detected Java version is 7 or below
- Gracefully fail if MGLib is missing (previously an exception was thrown)
0.7.2
TTT v0.7.2 packages the latest version of CrossTitles to fix title compatibility for more recent versions of 1.8.x.
0.7.1
TTT v0.7.1 fixes some issues with server software prior to Minecraft 1.8.
0.7.0
Version 0.7.0 introduces several new features and adds administrative functionality.
Note: This version requires MGLib v0.4.0 or greater.
New Features
- Add
/ttt kick
command - Add
/ttt ban
command - Add
/ttt prepare
command - Add
/ttt start
command - Add
/ttt end
command - Add
/ttt rarena
command (for removing arenas) - Update
/ttt setexit
command (now accepts boolean flag to retain orientation) - Display titles to players on round start and end (optional)
- Crowbar and gun items are now configurable
- Use vanilla TTT algorithm for karma-based damage reduction
- Tweak karma algorithms to always use 1000 as base karma
- Add full UUID support
- Break the plugin on cracked servers (not necessarily offline servers, BungeeCord is still good)
- Greatly improve config checker (config is no longer completely reset when the plugin updates)
- Fully localize plugin in German, Spanish, and Korean
Bug Fixes
- Fix ban evasion via username change
- Fix all issues related to UUIDs (this does not apply to cracked servers, buy the game)
Internal Changes (kind of boring, feel free to skip)
- Bump MGLib dependency version to 0.4.0
- Build project with Gradle instead of Maven
- Change artifact ID to
ttt
(fromTTT
) - Shade in Updater and Metrics instead of direct inclusion
- Refactor main package to
net.caseif.ttt
- Restructure comamnd handling
- Remove
TTTPlayer
class in favor of metadata - Remove build stability checker
- Remove most magic values
- Read contributors from a separate file instead of hardcoding them
- Move most messages to locale files
- Convert locales to
.properties
format - Improve code formatting
- Version suffix for snapshots now includes Git commit (if applicable)
0.6.0
TTT has been rebuilt from the ground up based on MGLib, a powerful minigame library.
New Features
- Arenas may be created based on locations, rather than having to import an entire world
- Arenas may have multiple spawn points
- Add support for Minecraft 1.6.x and earlier (untested)
- Add preemptive support via MGLib for vanilla spectator gamemode (untested, obviously)
- Add custom Metrics graph for MGLib version
- Lobby signs now count up if time is unlimited
Bug Fixes
- Fix incompatibility with MultiVerse
- Fix karma clean bonus being improperly calculated
- Fix players becoming stuck if they fall into the void while preparing
- Fix scoreboard not always being properly updated
- Fix bodies forming double chests
- Fix a load of
NullPointerExceptions
Internal Changes
- Rebuild project to use MGLib instead of an integrated engine
- Refactor permissions (old ones work, but are deprecated)
- Modify certain subsystems to use UUIDs instead of usernames
0.5
New Features
- Add lobby system
- Lobby signs are protected from direct and indirect destruction
- Two types of signs: "status" and "players"
- Add
/ttt help lobby
command - Add build stability checker (reports stability of current build when plugin is loaded)
- DNA scanners spin when no sample has been collected
- Add esES locale
- Add itIT locale
- Add plPL locale
- Add output to
/ttt ss
command
Bug Fixes
- Fix "
IOException: String length longer than maximum allowed (X > 16)
" - Fix improper round conclusion on server reload/restart (before, players in rounds would lose their inventory and remain in the arena)
- Fix conflicts with Multiverse
- Fix potential memory leaks on server reload due to static variables
- Change gamemode to survival on round join
- Fix
IllegalPluginAccessException
on disable - Fix
StringIndexOutOfBoundsException
when importing world
Internal Changes
- Rebrand project to
TTT
- Load all config values on plugin enable so as not to continually reference it while running
- Update MCStats to Revision 7
- Change encoding of source files and in turn strings in binaries to UTF-8 without BOM
- Change encoding of locales to UTF-8 without BOM, fixing special characters being displayed incorrectly
- Change updater class so as to comply with ToS changes
0.4.1
New Features
- Implemented karma system
- Karma system uses actual TTT algorithms to calculate karma rewards and penalties
- Karma system allows for configurable variables in algorithms
- Implemented damage reduction based on players' karma
- Karma system allows for players to be automatically kicked from rounds or banned from using the plugin (for a period of time or permanently)
- Karma may or may not persist between player relogs and server reloads/restarts
- Added scoreboard for TTT rounds
- Players' karma is displayed next to their name on the scoreboard
- Alive players are bolded on scoreboard; MIA are non-formatted; dead have strikethrough
- Traitors and Detectives have colored names on nametag and player list
- Two default locale files are now created in
plugins/TTT/locales
(template.properties
andl33t.properties
) - Added internal roRO locale
- Added internal nbNO locale
Bug Fixes
- Fixed most bugs involving Detectives
- Removed console spam regarding invalid locale in config
- Fixed players being removed from rounds upon inter-world teleport
- Fixed players being removed from rounds upon attempting to break the block beneath them (as a result of the last point)
- Fixed
HangingEntities
(Paintings/Item Frames) being breakable by players in rounds
Internal Changes
- Detectives are now internally assigned a role (this is why Detective-related bugs are fixed)
- Optimized round resetting (read: Removed redundant code)
- Removed offline server safeguard (I'd prefer you only use it for BungeeCord, though ;D)
- Removed classes from Apache Commons IO FileUtils
0.3
New Features
- Added BungeeCord support
- Added subcommand aliases (first letter of subcommand)
- Locales may be user-configured (create
xxYY.properties
file inplugins\Trouble In Terrorist Town\locales
and set locale toxxYY
in config - Added config option to disable verbose logging
Bug Fixes
- Fixed lots of
NullPointerExceptions
- Fixed players being able to access ender chests while in TTT rounds
- Fixed players being kicked from rounds for no reason
- Fixed entities spawning in TTT rounds
- Fixed entities targeting dead players (just in case)
- Fixed AutoUpdate console spam when online host is not available
Internal Changes
- Created new classes for listeners and managers (schedulers)
- Listeners and managers are stored in separate classes
- Each player's data is stored in single object
- Each round's data is stored in single object
- Plugin uses own logger as opposed to Bukkit's
- Fixed potential memory leaks on server reload
- Added enum for player roles (innocent, traitor, detective)
0.2
New Features
- Added Detectives
- Added DNA Scanners (used by right-clicking bodies)
- Added new locales
Bug Fixes
- Fixed armor not being removed upon joining match
- Fixed inventory not being removed if
/ttt quit
is used - Fixed players not being internally removed from game on teleport or quit prior to setup period
- Fixed plugin not announcing when player leaves game
- Fixed
StringIndexOutOfBoundsException
- Fixed inventory load error caused by armor
- Fixed helmet not being removed when player joins game
- Fixed players in games regenerating health
- Fixed players being damagable during waiting period
- Fixed DNA scanner conflicting with Essentials
- Disabled PMs for joined and dead players
Internal Changes
- Modified config check
0.1.1
- Fixed "
save being accessed from another location
" bug - Fixed
NullPointerException
resulting from theuid.dat
file not being deleted - Added frFR localization
- Added daDK localization
0.1
- Initial Release