2.1.1 (r1848) 2009-07-08:
* Enabled hot-swapping plugins (may require re-configuring enabled plugins) (Issue 103)
* The database editor will prompt before discarding unsaved changes
* Added graphical flagSpoof editor to the database editor
* Fixed bug causing expireDays=0 to mean expire immediately
* Increased the BNLS timeout to 15 seconds
* Added an exception tracker (Issue 91)
* Fixed a bug with MCP server login
* The capture for "?trigger" is no longer case-sensitive
* Fixed a bug relating to dates in the DatabaseEditor
* Added SOCKS4/4a support
* Handle SID_CHATEVENT EID_BROADCAST
* Added lag icons to HTMLOutputEventHandler
* Improved the MirrorSelector
* Improved handling of offline-commands
* Improved BNLS_VERSIONCHECKEX2 timeout behavior
* Reduced schema upgrade verbosity for harmless MergerTokens
* New windows are centered on the screen
* Added a connection configuration wizard
* SID_WARDEN error message has a link to Warden FAQ
* Fixed a race condition that could deadlock when greetings are sent
* Console plugin now supports color
* Inactive accounts are set to zero access instead of being deleted
* Added color scheme from Invigoration
* Added 'promote' and 'demote' commands
* Press the up and down keys to cycle through chat history
* The bot will warn users about alias deletion when 80% of expireDays has passed
* H2 is now the default database engine

2.1.0 (r1640) 2008-10-06:
* Added BotNet account login
* CDKeys are now dumped to cdkeys.processed.txt in a well-formatted way
* Added /accept and /decline for W3 clan management
* Added a simple clan creation utility
* Added options to customize the GUI font size and family
* Fixed a bug where the version check progress display wouldn't update
* Battle.net info/error messages are marked as such
* Fixed a bug where the ChatQueue wouldn't send ops commands
* Added a telnet plugin compatible with the Battle.net CHAT protocol
* Added 'whisperback' and 'clearqueue' commands
* Added DM, MC, Hex, and Base64 encryption - type /dm, /mc, /hex, or /b64 to toggle
* Added real clan icons (initiate, peon, grunt, shaman, chieftain)
* Fixed a bug in the 'recruits' command (Issue 77)
* Fixed several bugs with the 'whois' command
* Added a Lockdown plugin (requires ops in a clan channel to function)
* Modified the ChatQueue to use priorities
* Added logging of debug, info, and error messages via HTMLOutputEventHandler
* Fixed a bug in the 'mailall' command
* Added timezone support
* Fixed a bug where BotNet would leak in to its own profile tab (Issue 75)
* Fixed a bug that prevented using commands while disconnected (Issue 79)
* Added an 'addalias' command (Issue 82)
* The bot will attempt to re-launch itself after downloading an update
* Added an 'update' command, along with auto-restart
* Fixed a bug where newlines were allowed in settings fields
* Growl will be used in preference of the SystemTray API (OSX/Java6 compatibility)
* Improved the 'add' command to display info about the previous/new ranks
* Added a database configuration wizard
* Added a 'timeban' command
* Alt+V toggles join/part notifications (Issue 76)
* Auto-promotions can now apply to users with no account (one is auto-created)
* Fixed a bug with greetings for users with #x in their logon handle
* Moved the AP logic before the greeting
* Setting trivia round length to zero disables rounds
* Added missing sleep()s in BNCS/DigitalText login loop
* Added support for 26-character (Anthology) SC/D2 keys
* Added unicode support, and the ability to use it in conjunction with encryption (Issue 80)
* The chat splitter will now work properly with "/w" and "/f m" (Issue 95)
* The chat splitter will now work properly with unicode characters (Issue 96)
* Allow Cayenne to manage the database schema in favor of flat files
* Added option to display / commands in chat
* Moved tasks to the GuiDesktop
* Added per-account flag spoofing

2.0.6 (r1400) 2008-04-21:
* Added auto-rejoin afer being kicked (Issue 52)
* Added 'search' and 'searchrank' commands
* Force Cayenne to use the DriverManager to get a driver
* Re-enabled info/error responses forwarded to the user
* Auto-create users that don't exist in the DB when joining a channel
* Reduced the verbosity of exceptions on the GUI
* Improved feedback when the database fails to initialize
* Mail/AP notifications are now whispered
* Improved the chat long line splitter to use ellipses
* Missing keys in settings.ini will be added with the default value
* Vote is now a command which works by Account
* Fixed a BNetUser perspective bug affecting the ping command
* ChatQueue: Unban requires ops
* Fixed logic to decide which connection of a profile is the primary
* Added relationships to the DB editor
* Send mail to the bot master when a new command is created
* ChatQueue will be cleared when changing channels (Issue 72)
* Never kick/ban without ops
* Added kP BotNet support
* Disabled Cayenne logging
* Trivia is now a command
* Added deletion rules to the Cayenne mapping file
* Added a default exception handler
* Confirm row deletion in DatabaseEditor
* Version check will complete before connecting to battle.net
* Removed the parseCommand() workaround

2.0.5 (r1300) 2008-04-09:
* Added a Cayenne persistence layer to address database problems
* Added StatString test cases
* The 'renameaccount' command now picks up the case of the old account name
* The 'unban' command now infers the user namespace
* Fixed a bug where super-users couldn't use commands
* Added more database editors
* Fixed a bug affecting 'kick' and 'ban' when searching for users
* Added 'votekick' 'voteban' and 'votecancel' commands
* Logs will be saved to log.txt by default
* Added a profile editor
* Fixed a bug with the chat splitter
* Added an 'allseen' command
* Fixed a bug where auto-promotions were case sensitive
* Remove stale users from the database

2.0.4.2 (r1237) 2008-04-01:
* Allow use of %keywords% and commands in anti-idles and with /say (Cause of issue 61)
* Nightly builds are now an update type! They are less stable than Alpha
* Removed the size restraint on the "What's New" window
* Added some error handling for conditions where BNI downloads fail
* Changed the auto-update algorithm to prevent failed download from breaking the jar
* Added a setting to disable the plug icon for DSHR/DRTL/SSHR/JSTR/STAR/SEXP/W2BN
* Improved the readability of trivia answers
* Separated the commands and keywords enable flags (Issue 61)

2.0.4.1 (r1182) 2008-03-19:
* Added warden support (special thanks to iago and Hdx)
  - Just drop Starcraft.exe in the bot folder!

2.0.4 Beta (r1174) 2008-03-17:
* Added DigitalText connection support
* Fixed a bug where having no connections would cause the GUI to never load
* Added tag to close the HTML table in HTMLOutputEventHandler (Issue 57)
* Introduced first pass at music controllers; not yet configurable or fully tested
  - OSX: iTunes (AppleScript)
  - Windows: iTunes (ActiveX), Winamp (JDIC-MPControl)
  - Linux (JDIC-MPControl): Rhythmbox, XMMS, GMusicBrowser
* Introduced first-pass SWT code to SVN
* Added a PluginManager for plugin discovery with the JARLoader
* Changed /rw to StealthBot-style rewhisper (Issue 58)
* Added the concept of a TimeZone to the HTMLOutputEventHandler
* Reorganized the Settings class
* Added a BNLS bot id
* Changed the way commands respond to fit a more object-oriented model
* Changed the "What's New" window's layout to use cards instead of tabs
* Removed the database tab from the settings window
* Removed the touchUser() exception display
* Added a /quote command to send text directly to bnet
* Added an OperatingSystem enumeration utility
* Added OS-specific version checks; download platform-specific files

2.0.3.1 (r1100) 2008-01-21:
* Added a setting to customize the userlist display format
* Added a setting to customize the command response display format
* Added a setting to enable the HTMLOutput plugin
* Moved the HTMLOutput userlist to logs
* Added highlighting of "my user" in the userlist
* Improved version comparison logic
* Removed the checkbox to disable the GUI from the GUI
* Disabled resizing of configuration windows
* Added logic to prevent KeyManager from choking on tabs
* Addressed a common problem with Derby and CommandEventHandler.touchUser() 
* Added BNetUser.toStringEx() to display ping and flags
* Fixed a bug where 'commander access' was not passed to commands properly
* Added a 'setauth' command
* Added a version editor utility
* Added an option to disable tab completion
* Added an option to disable minimize to system tray

2.0.3 (r1072) 2008-01-07:
* Completely redesigned the command subsystem to fit a more object-oriented model
* Commands not in the database will be created with maximum (master) access
* Changed server, port, and channel to profile-specific fields
* Replaced EventHandler semaphores with synchronized code blocks
* Fixed a race condition with joining restricted channels
* Fixed a bug with selecting CD keys
* Added lag icons
* Improved the logic for constructing the text label on each profile tab
* Configurable tray notifications
* Fixed a bug where it was impossible to stay disconnected
* Connect/disconnect/reconnect affect each connection of a profile
* Multiple commands can be used at once with a semicolon delimiter
* Added a 'rejoin' command
* Added tab-completion style slash command completion
* Fixed a bug where tab-completion would select all text with certain look and feels
* Added a "What's New" window
* Customizable BNetUser.toString()

2.0.2.2 (r1022) 2007-12-22:
* Fixed a bug that prevented banning users outside of the channel
* Allow editing cdkeys from the connection settings window
* Closing profiles
* Pressing the 'cancel' button on 'new profile' settings window closes the profile
* Pressing the 'cancel' button when no CD keys are entered will not bring the window back
* Fixed a bug where 'apply' didn't redraw the window correctly
* Fixed a bug with lowercase CD keys
* Improved version comparison logic

2.0.2.1 (r1000) 2007-12-12:
* Extended Settings read/write methods
* Fixed a bug where the CLI would cause 100% CPU use
* Added an option to change the profile in the GUI
* Fixed a bug where plugins would receive initialize() twice
* Add settings menu items for each connection of a profile
* Secondary EHs now receive titleChanged()
* Better discovery of JDBC drivers
* Fixed a bug with 'new profile'
* Added a <Connection> field to plugin events
* Changed HTMLOutputEventHandler to use profile-specific userlists/logs
* Moved anti-idle, trigger, and enableGreetings to profile-specific settings
* Improved Database.getUser(BNetUser)
* Quick 'add' command
* Fixed a bug caused by the BNetUser cache

2.0.2 (r978) 2007-12-07:
* Started the change log
* Added a tab to the settings window to configure debug logging
* Allow / commands to be passed through parseCommand()
* Switched the DB editor to use ConfigTextAreas
* Fixed a bug where profiles with multiple connections would connect out of order
* Improved the SortedProperties class to use safer operations, and to include sorting of the keySet() method
* Moved the responsibility of maintaining a List<BNetUser> to the core package
* Added wildcard support to the kick and ban commands; very useful combined with direct / commands
* Fixed a bug where anti-idles would function independently of profiles
* Modified anti-idles to use each message before resetting the list from anti-idle.txt
* Improved window position saving logic; save on resize, ignore maximized windows
* Dispose TaskManager window when not in use (may help alleviate Spaces bug in Leopard) 
* Setting expireDays=0 now means never expires
* Fixed case sensitivity of commands when using a Derby database
* Replaced the outdated BotLayoutManager
* Fixed packet logging messages; added EID message types to SID_CHATEVENT
* Fixed a bug where the bot would crash if a clan member's rank changed before SID_CLANLIST was received
* Added an option to disable the mirror selector
