Yesterday I released the latest version of my Minecraft Server Manager for Windows. Version 2.3 comes with lots of new features and improvements including:

- What’s New window added (this is a self-referencing window now! :) )
- Non-Vanilla MC settings shifted out of server.properties into mcsm.properties
- Backwards compatibility enabled for server.properties:
- Xmx and Xms values auto-shifted from server.properties to mcsm.properties if detected and mcsm.properties doesn’t already contain values. Values are subsequently removed from server.properties.
- Web-interface-port setting shifted to mcsm.properties. Added backeards compatibility code for this change.
- Added Server Listings tab page - allows you to list your public server on ManageMinecraft.com
- Added Download Servers/Clients (button on MainForm and new form for the download manager)
- Downloads come from ManageMinecraft.com (where tested versions servers/clients will be stored)
- Select copy-to/install location
- Auto-installs servers (i.e. unzips into selected folder & deletes the zip file)
- Startup splash-screen added
- MainForm:
- UI converted to Win8 style using MetroFramework libraries
- UI theme restored on application startup
- Refactored & extracted methods for all the default commands - primary aim was to make them accessible for testing.
- Added additional command result recognition code. Can now detect following output types: Join, Leave, Message, Giving, Command, OnlinePlayers, OnlinePlayersList, Saving, SaveComplete, Loaded, Tell, Ban, Pardon, Deop, Op, List, Kick, Teleport, ClearInventory, Enchant, Effect, AddXP, AddXPLevels, SetDefaultGameMode, SetDifficulty, SetGameRule, SetSpawnPoint, SetTime, SetWeather, HelpStart
- Added right-click context menu for editing or removing command buttons.
- Added instructional tooltip to command buttons (reminder of right-click feature)
- Extracted method for laying out custom command tab pages
- Main Form now remembers previous size, location and window state.
- Player handling shifted to new classes - see below.
- Added shortcut keys:
- F1 : Opens up What’s New list
- Ctrl + T : Toggles UI theme
- See bug fixes.
- Output Processing :
- UI Timer that updates the full and message log boxes - means the UI no longer freezes when server is under high load e.g. at startup
- Massively refactored code for output handling to make it easier to handle different output from different mods in a unified manner.
- Shifted ProcessOutput into MineCraftServer.cs : MainForm now only handles UI side of things.
- Output processing converted into a class-plugin system to allow easier extension.
- Full Log shows the pre-processed output text to improve the look/fell of the log - still contains all log messages.
- Full Log messages prefixed with detected message type.
- Testing:
- Test Clients added to make testing much smoother/easier
- ModTest class auto-starts correct client for the current test server (specified in mcsm.properties: ClientLocation parameter - relative path)
- Increased length of time that tests wait for client to connect.
- Added new mod versions including FTB Ultimate 1.0.2, Flans Mod 2.3, Vanilla 1.5.2
- Expanded set of tests to include all the default commands seen in the MainForm UI.
- Numerous bug fixes that caused tests to crash or fail.
- Mapping: (Many thanks to user Uhu for these changes)
- Map zooming redesigned
- Map Form: * X/Z Location indicator * Cross-hair cursor when mouse over the map * Increased number of zoom options * Use mouse scroll wheel to zoom * Use mouse left button to pan * Zoom centres on mouse cursor * Names and skins kept constant size when zooming * Per-dimension rendering developed * Player names appear in bold when player is connected
- MCMap: * Class significantly cleaned up. * Resisze map method added. * BlockSize changed to double - acts as zoom calculation when rendering the map not using MapForm. * BlockSize removed from main render methods. * See bug fixes.
- Player data:
- PlayerData class added - used for keeping track of individual MC players (including relevant update method)
- PlayerDataList class added - used for keeping a list of all players in a server (including relevant update methods)
- PlayerUtils static class added - provides static methods
- Position3D class added for MC map position handling (can cast to this from Vector3)
- Events added to PlayerDataList
- Updater:
- Changed UI to use new MetroFramework library to make it look new/modern
- Updates only occur if newer version (primarily allows dev version ot be incremented without accidentally updating an old version!)
- All forms:
- Update UI’s to new Win8 style
- Settings window:
- Numerous changes…many thanks to user ArtDude543!
- Bug fixes:
- Mapping: ZOffset incorrectly calculated causes mis-alignment of the map render. Now fixed.
- Mapping: X/Z Offsets poorly calculated (I had assumed all maps have negative chunks). Corrected.
- Add XP Levels failed to load player name.
- Backup would occur after every save, regardless of intention.
- Detection of default commands 100% for Vanilla MC 1.5.1 & 1.5.2
- Removing Commands tab page without first removing the commands caused invisible buttons to exist!
- After removing custom command button, other buttons would not re-layout to fill in the space.
- Fixed Server Listing tab page controls anchoring
- Hidden output pre-processor error with addidng date to processed value fixed.
- Player entity rendering bug fixed.
- HandleOutput of OnlinePlayersList output threw cross-thread exception.
- Backup folder worlds were mistakenly listed.