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 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
  • Add optional force parameter to leave 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 and rarena commands to createarena and removearena (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 and pt_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, and tr_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, and lol_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 to 5
  • Change default ammo given to players from 40 to 55
  • 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 and removespawn commands
  • Add partial Hungarian (hu_HU) locale

Changes

  • Change info color to DARK_AQUA (from DARK_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)
  • 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 and start 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 (from TTT)
  • 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 and l33t.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 in plugins\Trouble In Terrorist Town\locales and set locale to xxYY 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 the uid.dat file not being deleted
  • Added frFR localization
  • Added daDK localization

0.1

  • Initial Release