Jump to content

Version history: Difference between revisions

From fCraft Wiki
mNo edit summary
 
(135 intermediate revisions by the same user not shown)
Line 1: Line 1:
{| align="right"
<div style="float:right;margin-left:5px;margin:bottom:5px;">__TOC__</div>
| __TOC__
|}
=0.6xx=
=0.6xx=
===0.644===
''27 January 2014 - r2327''
*Fix: Fixed a bug that caused character '@' in player names to be treated same as '_' (thanks Dingus)
*Fix: Fixed a rare crash in {{cmd|ZEdit}} when using the command improperly.
*Fix: Fixed a DataError being thrown in ConfigGUI's "Worlds" tab after toggling rank prefixes on/off.
*Fix: Improved error reporting.
*Change: Improved reliability of external IP checks.
===0.643===
''15 October 2013 - r2234''
*Fix: Fixed sometimes wrapping last word of a chat message to the next line, when the whole message could fit on one line (thanks AndrewPH).
*Fix: Installing updates no longer causes UAC prompts under Windows Vista.
*Fix: Fixed IRC periodically crashing if someone quits with an empty message.
*Fix: Fixed IRC-related crashes not being submitted to the crash reporter.
===0.642===
''27 August 2013 - r2180''
*Feature: Added {{cmd|Fill3D}}.
*Feature: Added caret (^), tilde (~), and grave accent (`) to [[emotes]].
*Fix: Emotes work via IRC once again.
*Fix: ConfigGUI: Fixed "Add world" and "Edit world" popups sometimes locking up.
*Fix: Fixed PlayerDB not saving LastFailedLoginIP properly.
*Change: Made it easy to switch heartbeat servers (minecraft.net to classicube or back) via ConfigGUI.
*Change: Added an optional second parameter to {{cmd|DumpStats}}, which allows specifying period of inactivity for filtering players.
*Change: Improved startup and shutdown times, and reduced CPU use.
*Change: {{cmd|Hide}} and {{cmd|Unhide}} now indicate when they are silent or not.
===0.641===
''17 August 2013 - r2150''
*Feature: Improved the way {{cmd|EllipsoidH}} works on flat surfaces. Instead of filled ellipses, it now makes rings.
*Feature: Added {{cmd|Reply}} (<code>/re</code>).
*Feature: {{cmd|Fill2D}} can now fill with any brush, not just solid color.
*Feature: Added ''HeartbeatUrl'' [[List of config keys#Advanced|config key]], to allow alternative heartbeat/authentication services. '''Note: [[HeartbeatSaver]] only needs to be updated IF you plan on using something other than minecraft.net'''
*Fix: Fixed a InvalidOperationException in ConfigGUI when re-drawing the map preview (thanks Jonty800).
*Fix: Fixed "Realistic" MapGen help (thanks Jonty800).
*Fix: Now correctly kicking custom premium-MC clients.
*Fix: Fixed help messages in [[HeartbeatSaver]] and {{cmd|MassRank}}.
*Fix: Fixed a potential way of revealing hidden players by messaging them.
*Change: ConfigGUI's port checker works again.
*Change: IRC bot will now retry for its primary nick every 30 seconds (thanks Dankirk).
===0.640===
''30 July 2013 - r2124''
*'''Feature: [[Mojang accounts|Mojang account]] (email) support.''' Added {{perm|ViewEmails}} permission and a config option to disallow email users.
*Feature: Overhauled map generation! Improved {{cmd|Gen}}, new {{cmd|SetGen}} command, more options, preset loading/saving, redesigned ConfigGUI interface, and two new map generation modes: Vanilla (from [http://femto.fcraft.net FemtoCraft]) and FloatingIsland.
*Feature: Optional [http://www.regular-expressions.info/quickstart.html RegEx] filtering of filenames for [[MapRenderer]] and [[MapConverter]], enabled by <code>--regex</code> flag.
*Feature: Added <i>"Player ___ logged in from an IP shared by frozen players..."</i> announcement.
*Feature: Added an optional parameter to toggle commands (grass, water, lava, solid, paint, static) &mdash; "on"/"1" or "off"/"0".
*Feature: Added BackupOnMapChange config key, which automates backups when a world's map is replaced by /Gen or /WLoad (enabled by default).
*Feature: Added <code>/To</code> as an alias of {{cmd|TP}}, and <code>/Flush</code> as an alias for {{cmd|WFlush}}.
*Feature: [[MapRenderer]] is now much quicker, thanks to optimization and multithreading.
*Feature: Added ability to change capitalization of player's name using {{cmd|SetInfo}}.
*Fix: Fixed MapGenerator sometimes locking up when working with tiny 16x16 maps (thanks 123DMWM).
*Fix: Fixed world greetings not being saved between restarts (thanks Jonty800).
*Fix: Fixed {{cmd|WLoad}} showing incorrect map file names when prompting to replace files (thanks Smokeybacon).
*Fix: Fixed [[Command_Tips#Restricting_player_name_search|online-only name prefix]] revealing hidden players in some commands (thanks Intertoothh and recon).
*Fix: When a spectating player gets frozen, they are no longer stuck spectating (thanks ruggedbear and NuclearWaffle121).
*Fix: IRC now handles two-number color codes and reset codes correctly (thanks Liam).
*Fix: Fixed map changes sometimes leaving behind "ghost maps" for players with rank-specific main maps set (thanks Jonty800).
*Fix: PlayerDB name autocompletion now correctly handles players with '.' in their names.
*Fix: Timed backups no longer drift slightly every hour.
*Fix: Players can now {{cmd|Clear}} their chat even while [[/Deafen|deaf]].
*Fix: Fixed a rare serialization issue with PlayerDB's RankChangedBy field.
*Fix: Players who were added to the database manually now correctly have FirstLoginDate and ID set on first login.
*Change: MapRenderer/MapConverter: Now only allow either one directory, or one-or-more files to be specified. Multiple directories, and mixed directories/files are no longer allowed.
*Change: MapRenderer/MapConverter: Disabled slow fallback conversion by default (which caused non-map files to take forever to skip in recursive mode). Old behavior can be reenabled with <code>--tryhard</code> flag.
*Change: When auto-updating or restarting under Mono, fCraft no longer tries to use "mono-sgen", now just using "mono" and assuming that runtime is properly configured.
*Change: {{cmd|WBuild}} and {{cmd|WAccess}} can optionally now take "@" in front of rank name.
*Change: Removed BackupOnJoin config key.
*Change: UpdateInstaller's <code>--restart</code> parameter is more flexible.
*Change: Dropped Mono 2.6 support.
*Change: Optimizations in player movement code, PlayerDB loading/saving, IP ban list loading, map generation, map rendering, {{cmd|Ellipsoid}}, and {{cmd|Sphere}}.
===0.639===
''10 December 2012 - r1917''
*Feature: Added RankPrefixesOnDisplayedNames config key (default: false), which controls whether to prepend rank prefixes to names of players with a custom DisplayedName set.
*Feature: Added BypassHttpsCertificateValidation config key (default: false), to ease HTTPS-related pains under Mono.
*Feature: Added MoveEmoteDotToEndOfMessage config key (default: true), which slightly changes emote formatting, by BobKare's request.
*Fix: Fixed a stability issue in the IRC bot.
*Fix: Fixed incorrect runtime version detection for Mono versions older than 2.6.
*Fix: Server now gives more informative messages when you try to do something disallowed to yourself (mute, unfreeze, ban, kick, etc).
*Fix: Fixed being able to teleport to hidden players (thanks nope__avi).
*Fix: Fixed {{cmd|Unhide}} not faking a join message for hidden players (thanks ruggedbear).
*Fix: Fixed IRC bot sending USER before NICK (fixes occasional error 451) (thanks Hellenion).
*Change: Added ability to set players' BandwidthUseMode via {{cmd|SetInfo}}.
*Change: Improved {{cmd|Env}}, {{cmd|UndoAreaNot}}, and {{cmd|Help}} messages.
*Change: Players' connection messages in logs now include TimesVisited stat.
*Change: {{cmd|Help|commands}} is no longer an alias for {{cmd|Commands}} (thanks ruggedbear).
===0.638===
''29 November 2012 - r1887''
*Feature: [[Emotes|Emote]] keywords and their Unicode equivalents can now be included in announcement and rule files.
*Feature: IRC bot now sends a quit message consisting of server name and shutdown reason.
*Fix: Fixed a very small chance of PlayerInfo.TimeMutedLeft returning negative time spans.
*Fix: Leading and trailing spaces are now trimmed from kick/ban/unban reasons.
*Fix: Fixed some emotes getting trimmed from {{cmd|Say}}, {{cmd|Me}}, and {{cmd|Staff}} (thanks Intertoothh)
*Fix: Fixed RestartInterval starting two chat timers (thanks Hellenion)
*Fix: Fixed ServerCLI using console colors for the first few messages even if <code>--noconsolecolor</code> [[List of command-line options|command-line switch]] was given (thanks Hellenion)
*Change: Added <code>--noupdater</code> command line switch, which stops fCraft from launching update installer binaries (although all other update-related behavior remains the same)
*Change: Player's own name is no longer considered in autocompletion/searches for commands that are not applicable to self (e.g. {{cmd|Ban}}, {{cmd|Mute}}, {{cmd|Ignore}}, {{cmd|TP}}, etc)
*Change: Logged global chat messages now have "(global)" prepended before player's name.
*API: Updated trunk project files to VisualStudio 2010. Target runtime remains .NET 3.5 Client Profile.
===0.637===
''16 October 2012 - r1847''
*Feature: Added {{cmd|Emotes}} command, to list emotes and their keywords.
*Fix: Fixed IRC bot cutting off very long messages.
*Fix: Fixed {{cmd|Info}} not working with some IP ranges (thanks _BjorN64_).
*Fix: Fixed single-letter emote keywords not working (thanks Wundsalz).
*Fix: Improved the way IRC bot handles nick conflicts (thanks Jonty800).
*Fix: {{cmd|DumpStats}} no longer dies when an invalid file name is given (thanks Hellenion).
*Change: Added a new build configuration, DEBUG_NETWORKING, which traces all incoming and outgoing packets.
*Change: IRC bot now logs all outgoing messages when built in DEBUG_IRC configuration.
===0.636===
''10 October 2012 - r1832''
*Feature: Check your configs! New options were added to control display of colors and emotes to/from IRC.
*Feature: Added {house} [[emotes|emote]]: ⌂ (0x7F).
*Fix: Fixed newline codes %n/%N not being parsed properly.
*Fix: Fixed a crash in Color.StripColors (thanks sukinorules).
*Fix: Fixed random symbols appearing in stack traces in console (thanks sukinorules).
*Fix: Fixed couple problems with Player.Moving event (thanks 00pol).
*Fix: Spawn points of MCSharp map files are now loaded correctly (thanks 00pol).
*Change: Players' DisplayedNames may no longer contains line breaks.
===0.635===
''8 October 2012 - r1822''
*Feature: Added support for "[[emotes]]" (chat symbols). New permission ({{perm|UseEmotes}}) and config key (IRCAllowEmotes) were added.
*Fix: Fixed numbers sometimes being accepted as valid (e.g. by {{cmd|Mute}}), although counted as 0-length time spans.
*Fix: Fixed PlayerDB not saving strings with newlines properly.
*Fix: Fixed IRC bot sometimes producing messages that are a couple characters over the IRC message size limit (512 chars).
*Fix: Fixed players being able to use newline codes (&N/&n) on IRC.
*Fix: Fixed problems with UpdaterMode and BackupOnStartup settings in ConfigGUI.
*Fix: Fixed fCraft not building in DEBUG_IRC configuration.
*Change: Added a workaround for TermInfoDriver-related exceptions under Mono (thanks Hellenion)
*Change: Symbolic [[colors|color codes]] (e.g. %S) can now be used in chat.
*Change: Backslash can now be used to escape percent [[colors|color codes]] (e.g. \%C).
*Change: fCraft will now retry looking up the external IP up to 3 times.
*Change: Lots of documentation, annotation, and API improvements.
===0.634===
''30 September 2012 - r1796''
*Fix: Fixed an occasional InvalidOperationException when auto-updating in ServerGUI.
*Fix: Fixed ConfigGUI showing misleading information in "unrecognized entry ignore" errors.
*Fix: Fixed Logger trying to write to file in [[MapConverter]] and [[MapRenderer]].
*Fix: Fixed [[MapRenderer]] and [[MapConverter]] spamming zone-related errors (thanks Hellenion and AndrewPH)
*Fix: Fixed {{cmd|UndoPlayerNot}} help entry (thanks ruggedbear)
*Change: Heartbeat code now uses HTTPS, as mandated by Mojang. If you use Mono, see http://www.mono-project.com/FAQ:_Security
*Change: Removed support for the malfunctioning WoM Direct heartbeat service.
*Change: RankChangeReason is now shown as a "Rank note" in {{cmd|Info}}, even if no other data (PreviousRank/RankChangedBy/RankChangeDate) exists (thanks Wundsalz)
===0.633===
''26 September 2012 - r1788''
*Feature: Added checkbox for HeartbeatEnabled config key to ConfigGUI, on the advanced tab.
*Fix: Fixed heartbeat/verification issues caused by "no-www" changes made by Mojang at minecraft.net
*Fix: Fixed VisualStudio designer being unable to load ConfigGUI.MainForm.
*Fix: Fixed {{cmd|ZMark}} being spammy (thanks ruggedbear).
*Fix: Binding "air" block to something now works as expected (deleted blocks are replaced with the binding) (thanks Hellenion).
*Fix: Added missing tooltips to "Data Backup" checkbox in ConfigGUI (thanks PhoneBook_).
*Fix: Added [[HeartbeatSaver]] to UpdateInstaller and list of protected filenames.
*Fix: Fixed occasional startup crash in [[HeartbeatSaver]].
*Change: {{cmd|Reload|Autorank}} now triggers a re-scan of the whole PlayerDB.
*Change: Added code to BlockDB to recover misaligned .fbdb files. BlockDB files are supposed to be aligned to 20 bytes. Misalignment might happen if writing didn't finish properly - e.g. power outage, or ungraceful shutdown.
*Change: Improved consistency of exit codes in [[HeartbeatSaver]], [[MapConverter]], and [[MapRenderer]].
===0.632===
''14 September 2012 - r1765''
*Feature: Added standalone [[HeartbeatSaver]] utility, a heartbeat-sending daemon.
*Feature: Added a way to specify scale/turbulence/seed for cloudy brush.
*Feature: Renamed "IRC" LogType to "IRCStatus", and added "IRCChat" LogType. Check your configs.
*Fix: Fixed the updater. You'll have to update from version 0.631 manually (thanks nope__avi).
*Fix: Fixed a bug related to multiple players trying to join an almost-full server at the same time.
*Fix: Fixed a rare InvalidOperationException crash in ConfigGUI.
*Fix: Fixed reversed order in {{cmd|BlockInfo}} (thanks recon_).
*Fix: Fixed a few formatting errors in feedback messages.
*Fix: Fixed a rare disconnect related to a spectator trying to follow a spectatee to a full world.
*Fix: Fixed {{cmd|Hide}} not showing a fake disconnect message when needed.
*Fix: Fixed {{cmd|WRename}} prompting for file overwrite when changing capitalization in a world name.
*Fix: Fixed UndoArea/UndoAreaNot and UndoPlayer/UndoPlayerNot messages occasionally getting mixed up.
*Fix: Fixed players being unable to join the server if access restrictions prevent them from joining the rank-specific main world.
*Fix: {{cmd|WRemove}} now correctly handles removing rank-main worlds.
*Fix: Fixed a case where newlines in PlayerInfo or IPBanInfo fields would cause record corruption.
*Fix: Fixed reversed messages in {{cmd|DoNotMark}} (thanks Hellenion).
*Fix: Fixed ServerCLI sometimes staying open, waiting on console input, when it's supposed to shut down or restart.
*Change: Sped up "cloudy" brush when working with large draw commands.
*Change: Crash reporter now submits list of names and versions of all loaded assemblies, to help identify mismatched or missing dependencies.
*Change: Added logging to every confirmation prompt, "/ok", {{cmd|BlockDB}} enabling/disabling/clearing, {{cmd|ZRemove}}, {{cmd|InfoSwap}}, and {{cmd|Env}}.
*Change: Any pending confirmations are now reset on world change.
*Change: Added /I as an alias for {{cmd|Info}}, and /CS as an alias for {{cmd|CopySlot}}.
*Change: Removed "marbled" brush ("cloudy" works just as well) and FCMv4 map format support (development canceled).
*Change: {{cmd|Where}} command now only requires {{perm|ViewOthersInfo}} permission to see other players' whereabouts. It can be used by anyone on self.
*API: Many more documentation improvements.
===0.631===
''5 September 2012 - r1741''
*Feature: Added a way to restrict commands to match online players' names only, by prefixing the name with an exclamation mark (!). See [[Command Tips]] for more.
*Feature: Added {{cmd|DoNotMark}} command. When toggled on, clicking on blocks does not cause marks to be added to a selection.
*Fix: Included MapConverter.exe and MapRenderer.exe in list of protected filenames.
*Fix: Fixed a potential crash in Paths.FileExists when working in case-sensitive mode in a root directory.
*Fix: Fixed ConfigGUI not loading permission limits properly (thanks recon_).
*Fix: Added missing fake connection message when using non-silent {{cmd|Unhide}} (thanks Wundsalz).
*Change: Improvements to fCraft's built-in crash reporter.
*Change: Blocks redone with {{cmd|Redo}} are now flagged as "Redone" in /BlockInfo (instead of "UndoneSelf"), [[/Paint|painted]] blocks as "Painted" (instead of "Manual, Replaced").
*API: Many more documentation improvements.
===0.630===
''4 September 2012 - r1727''
*Feature: New permissions! {{perm|FlushWorlds}} (previously part of {{perm|ManageWorlds}}), {{perm|UseTimers}} (previously part of {{perm|Say}}), and {{perm|UndoAll}}.
*Feature: Added ability to undo multiple players' actions at once, or EVERYONE's actions at once, using {{cmd|UndoPlayer}} and {{cmd|UndoArea}}. Command syntax changed, see wiki.
*Feature: {{cmd|Info}} now shows whether minecraft.net accounts are free or paid.
*Feature: Added special "skip"/"none" blocktype, usable with brushes and draw commands.
*Feature: Added ability to clear world/zone whitelists and blacklists. Use "-*" in place of player name to clear whitelist, and "+*" to clear blacklist.
*Feature: Added a way to remove all zones in a world, {{cmd|ZRemove|*}}.
*Feature: Added {{cmd|UndoAreaNot}} (/uan) and {{cmd|UndoPlayerNot}} (/upn), which reverse changes made by everyone EXCEPT the given player(s).
*Feature: Added [[MapConverter]] and [[MapRenderer]] utilities.
*Feature: {{cmd|CuboidW}} now supports optionally filling sides and center with different blocktypes, e.g. "/cw white blue red".
*Fix: Fixed ServerCLI launching the wrong fCraft binary after running the updater.
*Fix: Fixed a missing warning in {{cmd|Gen}} when map height is not a multiple of 16.
*Fix: Fixed a rare case of players receiving desynchronized copies of maps where draw commands are in progress.
*Fix: Fixed a crash in {{cmd|Commands|<Category>}}
*Fix: Fixed potential crashes when working with files in root directories (e.g. C:/)
*Fix: Improved {{cmd|BanEx}} logging.
*Fix: Improved support for Myne/MyneCraft/HyveBuild/iCraft maps.
*Fix: Fixed "Add World" dialog in ConfigGUI defaulting to 20 minutes, instead of "(default)".
*Fix: Fixed SaveInterval and BackupInterval being limited to just 100 seconds/minutes in ConfigGUI (thanks Hellenion).
*Fix: Improved consistency of timestamp format in logs (thanks Hellenion).
*Fix: Fixed being unable to remove world greetings via {{cmd|WSet}} (thanks Hellenion).
*Fix: Fixed IRC bot cutting off long messages (thanks Hellenion).
*Change: Improved performance of {{cmd|Gen}}, {{cmd|WLoad}}, world loading, and all BlockDB-related commands.
*Change: Adjustments to block names and aliases, as well as command aliases.
*Change: Merged {{cmd|Cancel}} and /Nvm commands.
*Change: "&N" is now usable as a "newline" constant in all configurable strings (rules, announcements, greetings, etc), and "%N" is usable by players with {{perm|UseColorCode}} permissions.
*Change: Made {{cmd|Say}}, {{cmd|Me}}, and {{cmd|Staff}} usable by frozen players.
*Change: Added a warning to /Colors regarding the minimum rank required to use colorcodes in chat (thanks Jonty800).
*Change: Ignoring a player no longer prevents you from seeing {{cmd|Say}} messages written by them.
*Change: {{cmd|Paint}}, {{cmd|Solid}}, {{cmd|Grass}}, {{cmd|Water}}, and {{cmd|Lava}} are no longer usable by players without Build permission, and dont show up in /Commands for them.
*Change: Clarified {{cmd|ZEdit}} messages when trying to remove self from blacklist, or add yourself to whitelist.
*Change: {{cmd|Mute}}, {{cmd|Unmute}}, {{cmd|Freeze}}, and {{cmd|Unfreeze}} are now also usable on offline players.
*Change: Session threads are no longer marked as "background", to prevent unexpected side effects from session threads being aborted on shutdown. This might slow down shutdown a bit, but there is less to go wrong.
*Change: World greetings can now support constants.
*Change: Ctrl+C/Ctrl+Break are intercepted in ConfigCLI, and result in a graceful shutdown.
*Change: Process exit code is now set to match ShutdownReason.
*API: Added ChatTimer.Started and ChatTimer.Stopped events, rewrote BlockDB, MapConversion, and IsoCat APIs.
*API: Many documentation improvements.
===0.624===
''16 July 2012 - r1636''
*Fix: Fixed BlockDB time-limiting code trimming too much data from the database.
*Fix: CommandBook ban import now accepts any filename that ends with ".csv", not just "bans.csv".
*Fix: ServerCLI no longer crashes upon receiving EOF from console.
*Fix: Fixed a rare case of hidden players being revealed (briefly) when their rank is changed.
*Fix: Fixed [[/Spectate]] leaving ghost players behind on world change (thanks Hellenion).
*Fix: Fixed a couple typos in [[/WLock]] and [[/WUnlock]] (thanks ImNoobSoWhat).
*Change: Added server name to [[/ServerInfo]]
*Change: If opening a link fails (from ConfigGUI or ServerGUI), the URL is copied to clipboard, instead of crashing.
*Change: "[[/Import]] bans" no longer prints a message for every player who's already banned, instead showing a total number of already-banned players at the end.
*Change: Added a missing "Copy" context menu to the ServerGUI's log box (thanks to Jonty800).
*Change: fCraft front-ends now check fCraft.dll's assembly version, and refuse to start if there is a mismatch (Thanks Zaneo).
===0.623===
''9 July 2012 - r1624''
*Fix: Fixed a crash in [[/PasteX]] and [[/PasteNotX]].
*Fix: Fixed [[/BanInfo]] crash when given a non-banned IP address.
*Fix: Fixed a crash in Player.DetectChatSpam if AntiSpam was supposed to be disabled.
*Fix: Fixed typos in comments and messages (thanks Jonty800).
*Fix: Fixed a crash in [[/ZAdd]] (thanks thelonedrummer18).
===0.622===
''6 July 2012 - r1619''
*Feature: ServerGUI message log is now color-coded, easier to select/copy/paste, and featuring clickable links.
*Fix: Fixed several regressions in [[/Hide]] and [[/Spectate]] that were introduced in 0.620-0.621 (thanks mark_b).
*Fix: Fixed [[/Deafen]] being usable from console (thanks phonebookguy).
*Fix: Fixed a crash in Paste/PasteNot/PasteX/PasteNotX (thanks Grant).
*Misc: Updated some draw command messages, credits, help entries, warnings.
===0.621===
''5 July 2012 - r1612''
*Feature: Added CommandBook banlist (bans.csv) support to [[/Import]].
*Feature: Added a way to list all players of a certain rank with "[[/Info]] @ClassName".
*Feature: Added {PLAYER_LIST} variable, for use in greetings/announcements/rules.
*Fix: Fixed changes to DefaultBackupInterval config key not being applied.
*Fix: Fixed [[/BanInfo]] showing "players on same IP" for players without a recorded IP address.
*Fix: Fixed fCraft occasionally using localized datetime and number formatting.
*Fix: Fixed [[/Cut]] storing the selected blocks before checking player's draw limit (thanks ruggedbear).
*Fix: Fixed [[/Fill2D]] starting a selection even if command parameters could not be parsed (thanks David00143).
*Fix: Fixed [[/Copy]] and [[/Cut]] reporting incorrect origin information (thanks nope__avi).
*Fix: Players who are spectating or being spectated by you are no longer hidden from the tab player list (thanks ruggedbear).
*Change: If multiple players are spectating the same player, they no longer see each other (thanks Hellenion).
*Change: Small improvements and fixes to [[/WSet]] and to AntiSpam functionality.
*Change: Sped up PlayerDB loading on startup.
*Change: Added shortcuts for [[/SetInfo]] field names.
===0.620===
''17 June 2012 - r1592''
*Feature: WoM Direct description and flags can now be set from config, without the need to go to WoM Direct website.
*Feature: Added a new [[/WSet]] command, that allows hiding worlds, changing backup settings, and setting greeting messages.
*Feature: More [[/WInfo]] information is persisted across server restarts: IsLocked, LockedBy, UnlockedBy, LoadedBy, LoadedOn, MapChangedBy, MapChangedOn.
*Feature: Added IRCStripMinecraftColors config key (default: true). It determines whether Minecraft colorcodes (ampersand codes) entered on IRC should be removed before showing the message in-game.
*Fix: Fixed incorrect percentages occasional being printed by [[/Measure]], [[/Cancel]], and [[/Undo]].
*Fix: Locked worlds remain locked after server restart.
*Fix: Addressed many flaws and glitches in the backup system.
*Fix: Fixed a case where draw commands that affected no blocks caused division by zero
*Fix: Fixed a PlayerDB record corruption bug that affected numbers over 100,000,000.
*Fix: Fixed a stability issue related to LineWrapper (thanks Kevinsweijen and Mc_MrCat).
*Fix: Fixed IRC markup codes being forwarded to the server in IRC's channel-kick messages.
*Fix: Fixed [[/Unmute]] not checking rank limits (thanks Jonty800).
*Fix: Fixed "[[/BanIP]] <IP>" and "[[/BanAll]] <PlayerName>" not checking ban exemptions when kicking players (thanks BobKare).
*Fix: Fixed "[[/BanIP]] <PlayerName>" not kicking all the players from IP address.
*Fix: Fixed Undo/Redo messages (thanks Jonty800).
*Fix: Fixed compatibility with Mono 2.10.8.1 (thanks Hawkzeh).
*Change: Removed [[/WHide]] and [[/WUnhide]] (obsoleted by [[/WSet]]).
===0.618===
''22 April 2012 - r1568''
*Fix: Fixed a crash in ConfigGUI when trying to sort by map size and a map file is missing (thanks Moose).
*Change: Ampersands are no longer allowed in chat, even escaped, due to unpredictable Minecraft client behavior.
===0.617===
''21 April 2012 - r1564''
*Feature: [[/BInfo]] now accepts optional XYZ coordinates, like [[/Mark]].
*Fix: Added a workaround for "Internal error Flush" under Mono.
*Fix: Fixed [[/WBring]] printing incorrect usage syntax (thanks recon_)
*Fix: Fixed typo in [[/BlockDB]] (thanks xN8Gx)
*Fix: Fixed IRC bots not binding to the specified local endpoint.
*Fix: Fixed "PreviousRank" not getting updated by [[/SetInfo]] working (thanks nope__avi)
*Fix: Fixed several rare stability issues (thanks Kevinsweijen).
*Fix: Fixed [[/Undo]] and [[/Redo]] producing odd log messages if 0 blocks have been changed.
*<s>Change: Allowed '&' character (ampersand) to be entered in chat, which is now escaped.</s>
===0.616===
''10 March 2012 - r1498''
*Fix: Fixed [[/Import]] terminating when importing bans, if a player with the given name is already banned.
*Fix: Fixed a formatting error in [[/Bring]] and [[/WBring]] confirmation messages.
*Fix: Fixed mixed-up messages in [[/WAccess]] and [[/WBuild]] when removing players from blacklist/whitelist (thanks ruggedbear and xN8Gx)
*Fix: Fixed [[/Static]] not turning off after switching worlds (thanks boblol0909)
*Fix: Fixed [[/Rotate]] printing incorrect copyslot number (thanks Mc_MrCat)
*Fix: Fixed a ServerGUI crash when pressing the down arrow key after typing in the first console message (thanks Jason)
*Fix: [[/Me]] messages no longer count towards stats twice (thanks recon_)
*Fix: [[/Mute]] and [[/Unmute]] now usable with "-" in place of player name (thanks thelonedrummer18)
*Fix: Fixed README.txt typo (thanks Wolfmade)
===0.615===
''2 February 2012 - r1445''
*Fix: Fixed [[/Patrol]] checking Spectate permission, and [[/SpecPatrol]] not checking it.
*Fix: Fixed [[/WRename]] not updating player's last-used-world-name (thanks Hellenion)
*Fix: Fixed colorcodes (%-codes) not getting applied consistently (thanks BobKare)
*Fix: Fixed a rare name-verification issue that only affected players whose ranks have been imported (thanks Mc_MrCat)
*Fix: ServerGUI now correctly interprets "Notify" and "Auto" updater settings.
*Change: Data backups are now stored in ./databackups/ directory.
===0.614===
''24 January 2012 - r1426''
*Fix: Fixed server crashing if PlayerDB.txt exists but is empty.
*Fix: Fixed "[[/Join]] -" using player names, and "[[/TP]] -" using world names.
*Fix: Solved File.Replace-related errors, which caused occasional save failures.
*Fix: Fixed [[/SpecPatrol]] not checking caller's Spectate permission limit when selecting the next target.
*Fix: Fixed "random" brush producing obvious repeating patterns.
*Fix: Fixed auto-updater occasionally freezing when attempting to "Restart Now".
*Fix: Added permission limit check to [[/Unfreeze]] (thanks Xb0x4d4m)
*Fix: Improved the way [[/Bring]] and [[/WBring]] enforce access permissions (thanks Hellenion)
*Change: Added more information about player connects/disconnects to log file.
===0.613===
''11 January 2012 - r1401''
*Fix: Fixed ConfigGUI not saving changes to ShowConnectionMessages key.
*Fix: Fixed a case where ConfigGUI could crash while attempting to rename a world.
*Fix: All spectate permissions are now re-checked when someone gets promoted or demoted.
*Fix: Fixed ConfigGUI Worlds tab crash when dealing with zoned maps.
*Fix: Fixed IRC bot not retrying for desired nickname after reconnecting
*Fix: Fixed a case where editing a world via ConfigGUI would clear security whitelists/blacklists.
*Fix: Fixed spectating players not being treated as hidden (thanks Hellenion)
*Fix: Fixed formatting in "Player ___ got auto-kicked" message (thanks BobKare)
*Fix: Fixed auto-kick revealing hidden players (thanks BobKare)
*Fix: Fixed RandomBrush-related [[/Undo]] artifacts in [[/Triangle]] (thanks Lunara_Noctis)
===0.612===
''14 December 2011 - r1307''
*Fix: Fixed "[[/Worlds]] @Rank" not autocompleting rank names.
*Fix: Fixed compatibility with legacy PlayerDB format versions. PlayerDB files created by fCraft 0.400+ will work again.
*Fix: Fixed several syntax problems and crashes in /Gen.
*Fix: Fixed a bug that reset a world's BackupInterval to default and IsLocked flag to false after changing the map (backport from 0.700).
*Fix: Fixed a bug that prevented kicks/bans/promotions/demotions from being announced on IRC if no reason was given.
*Change: Capped all user-entered time spans at 9999 days.
*Change: Shortened and clarified some confirmation prompts ([[/Gen]], [[/WLoad]], [[/ZRemove]], [[/Import]], [[/MassRank]]).
===0.611===
''3 December 2011 - r1282''
*Feature: Added information about periodic backups to [[/WInfo]].
*Fix: Fixed [[/Players]] not working properly if both world name and offset were given.
*Fix: Fixed [[/WAccess]], [[/WBuild]], and [[/ZEdit]] not working with one-letter rank names.
*Fix: Fixed [[/BanIP]], /BanAll, /UnbanIP, and /UnbanAll treating fully numeric player names as IPs.
*Fix: Fixed [[/SetInfo]] not resetting PlayerInfo.LastModified date.
*Fix: Fixed "[[/Worlds]] populated" revealing worlds with hidden players.
*Fix: Fixed [[/BringAll]] ignoring per-rank limits in some cases (thanks ferny530)
*Fix: Fixed appearance of black and white blocks in [[/Env]] edges (thanks Jonty)
*Fix: Fixed a bug in Position.Equals<Position>(), which may have caused unnecessary position updates in Player.UpdateVisibleEntities (thanks boblol0909)
*Fix: Fixed a little crash in Chat.GetRawMessageType (thanks ruggedbear)
*Fix: Fixed a case where Player.CanPlace checked permissions against the wrong world's BuildSecurity controller (thanks Xesdra)
*Fix: Fixed "[[/Commands]] @Rank" showing hidden commands (thanks Hellenion)
*Fix: Fixed a typo in [[/Worlds]] (thanks Kevinsweijen)
*Fix: Fixed BlockDBAutoEnable and BlockDBAutoEnableRank config keys being placed in the "General" section.
*Change: Improved config.xml format (now version 152). Configs created with fCraft 0.611+ will not be usable with older versions of fCraft.
*Change: Rewrote ServerGUI startup code to make it more responsive (thanks to 800craft for the idea).
*Change: Added information about command-line options to the README, and fixed some typos.
*Change: MaxConnectionsPerIP restriction no longer applies to localhost.
*Change: Increased block-ratio limit for "random", "cloudy", and "marbled" brushes from 1000 to 10,000.
===0.610===
''18 November 2011 - r1240''
*Feature: Added [[/Fill2D]] (/f2d), [[/Triangle]] (/t), and [[/TriangleW]] (/tw) draw commands.
*Feature: Added ability to filter [[/Worlds]] by rank.
*Feature: Added [[/Static]] (a way to repeat selection commands).
*Feature: Added MaxUndoStates config key (how many steps back can [[/Undo]] go), and ConfigGUI bindings.
*Feature: Added experimental IP-range lookup to [[/Info]] (CIDR notation). Changed /Info pattern-matching single-character symbol from '.' to '?'
*Feature: Added pagination to [[/Players]].
*Feature: [[/Spectate]] and [[/SpecPatrol]] now show what commands, PMs, and rank messages the target types in.
*Feature: Added a way to change server salt without needing a restart, using <code>[[/Reload]] Salt</code>
*Feature: [[/Measure]] now shows statistics about block types in the selection.
*Feature: [[/Gen]] now has two new templates: "ocean" and "empty"
*Fix: Many fixes in name-retyping functionality.
*Fix: Addressed stability issues in LineWrapper and Undo/Redo.
*Fix: Fixed [[/WLock]] not canceling all draw commands (as intended).
*Fix: Fixed some outdated descriptions, links, and tooltips in ConfigGUI.
*Fix: Fixed being able to BanIP/BanAll/UnbanIP/UnbanAll invalid IP addresses (0.0.0.0 and 255.255.255.255).
*Fix: Fixed [[/Info]] printing a blank page (instead of the last page) if given offset is greater than the total number of matches.
*Fix: Fixed rank prefixes being appended to players' names if DisplayedName is set.
*Fix: Fixed a couple rare crashes/hangs in ServerGUI when parsing console commands.
*Fix: Fixed [[/Ban]] and [[/Unban]] announcing when they're not supposed to.
*Fix: Fixed a potential crash in [[/BanInfo]] when looking up an IP address directly (no player name).
*Fix: Fixed another obscure way of revealing hidden players.
*Fix: Fixed Beta client kick message (thanks Voziv).
*Fix: Fixed [[/Commands]] defaulting to printing ALL commands.
*Fix: Fixed [[/Undo]] trying to re-cancel canceled commands.
*Fix: Fixed uncaught "Illegal characters in path." exception when trying to save a [[/Gen]]'erated map to an invalid filename.
*Fix: Fixed typos in [[/ReplaceNot]] and [[/UndoArea]].
*Change: Added a warning on startup if name verification is disabled.
*Change: Tweaks and improvements to [[/Info]], [[/WInfo]], [[/BanInfo]], [[/SetInfo]], and [[/Commands]].
*Change: Removed code that tries next port if the given one could not be used. Now fCraft either starts on the port specified in config, or dies.
*Change: Commands now complain about being given too many parameters (in addition to complaining about too few parameters). This should help catch mistyped commands.
*Change: Added an option to disable giant-tree generation in ConfigGUI's map generator.
*Change: Changed log format for bans/kicks to include more information, and fixed log message format for "Player ____ logged in from an IP shared by banned players..."
*Change: Included config.xml in the automated data backup.
*Change: ConfigGUI tweaks and improvements.
*Change: Changes some aliases:
**Added /Whois and /WhoWas as aliases for [[/Info]].
**Set "/B" and "/About" to be aliases for [[/BInfo]].
*Change: Changed some ConfigKey defaults:
**BlockDBEnabled defaults to "true"
**WomEnableEnvExtensions defaults to "false"
**IRCBotAnnounceServerEvents defaults to "true"
*Change: Discontinued ServerWinService (formerly fCraftWinService) subproject.
*API: Improved Vector3I, Vector3F, and Position classes a bit.
*API: New events: DrawOperation.Beginning / Began / Ended
*API: Changed the way PlayerInfo stores empty string fields. Instead of a 0-length string, it now uses nulls.
*Optimization: Sped up PlayerDB loading/saving, and boolean ConfigKey lookup.
===0.604===
''23 October 2011 - r1155''
*Feature: Added support for repeating previously-entered player and world names. Just put a dash (-) in place of the player/world name when using a command, and fCraft will fill in the most-recently-used name.
*Fix: Fixed an occasional SecurityController-related crash in [[/Gen]], [[/WLoad]], and ConfigGUI world editor.
*Fix: Fixed an very rare problem in shutdown/restart commands.
*Fix: Fixed a rare crash that only happened if: MaxPlayers>128, MaxPlayersPerWorld=128, main is full, AND connecting player has a reserved slot.
*Fix: Fixed naming of paste/pastenot and pastex/pastenotx
*Fix: Fixed a permission exploit in /wbring (thanks to panda100123)
*Fix: Fixed [[/Rules]] section finder accidentally being case-sensitive.
*Fix: Fixed an issue with MCSharp/MCZall/MCLawl/MCQuai/MCStorm/MCForge/MCWhatever importer.
*Change: Decreased shading strength in IsoCat renderer.
*Change: Added /Who as an alias for [[/Players]], by request.
*Change: Clarified ConfigGUI description of name verification settings.
*Change: Normalized command name capitalization. Command names must now start with an uppercase letter, for consistency.
*API: Fixed inconsistencies in PlayerDB.txt header row format declaration.
===0.603===
''20 October 2011 - r1142''
*Fix: [[/Cancel]] can no longer be repeated with "/" (no longer replaces previously-called command).
*Fix: Fixed [[/Rotate]] and [[/Mirror]] messing up if a paste command is in progress.
*Fix: Re-enabled crash interception and reporting.
===0.602===
===0.602===
Feature: One-click paste commands are now the default. Two-click aligned paste commands are now known as pastex/pastenotx (or px/pnx)
''18 October 2011 - r1135''
Feature: Added /rb command (shortcut for /brush replacebrush + /c).
*Feature: One-click paste commands are now the default. Two-click aligned paste commands are now known as [[/PasteX]] (/PX) and [[/PasteNotX]].
Feature: Added a way to change number of copy/paste slots per rank from ConfigGUI.
*Feature: Added [[/ReplaceBrush]] (/RB) command (shortcut for <code>[[/Brush]] ReplaceBrush</code> + <code>[[/Cuboid]]</code>).
Fix: Fixed a few typos and missing help entries.
*Feature: Added a way to change number of copy/paste slots per rank from ConfigGUI.
Fix: Fixed DrawOp completion message and log entry.
*Fix: Fixed a few typos and missing help entries.
Fix: Fixed /paste and /pastenot not properly clipping against world boundaries.
*Fix: Fixed DrawOp completion message and log entry.
Fix: Fixed ConfigGUI not preserving environment settings for worlds.
*Fix: Fixed [[/Paste]] and [[/PasteNot]] not properly clipping against world boundaries.
Fix: Fixed ConfigGUI losing some worlds and showing some errors when importing from 0.5xx.
*Fix: Fixed ConfigGUI not preserving environment settings for worlds.
Fix: Fixed /bring not being usable from console.
*Fix: Fixed ConfigGUI losing some worlds and showing some errors when importing from 0.5xx.
Fix: Fixed /wrename crashing if invalid characters (from filesystem's point of view) are present in the new name.
*Fix: Fixed [[/Bring]] not being usable from console.
Fix: Fixed /specpatrol (/spat) not checking for Spectate permission.
*Fix: Fixed [[/WRename]] crashing if invalid characters (from filesystem's point of view) are present in the new name.
Fix: Fixed /undoarea'd and /undoplayer'ed blocks having "Restored" flag set in /bi
*Fix: Fixed [[/SpecPatrol]] not checking for Spectate permission.
Fix: Fixed a detached checkbox on "Worlds" tab of ConfigGUI.
*Fix: Fixed [[/UndoArea]]'d and [[/UndoPlayer]]'ed blocks having "Restored" flag set in /bi
Fix: Fixed /say, /staff, and /me getting logged twice.
*Fix: Fixed a detached checkbox on "Worlds" tab of ConfigGUI.
Fix: Fixed per-world backup settings being cleared on server restart.
*Fix: Fixed [[/Say]], [[/Staff]], and [[/Me]] getting logged twice.
Fix: Fixed a rare NullReferenceException in WorldManager.LoadWorldList that occurred if the main world was missing, and the fallback world had access restrictions.
*Fix: Fixed per-world backup settings being cleared on server restart.
Fix: Fixed some issues with BlockDB settings in "Add World" and "Edit World" popups of ConfiGUI.
*Fix: Fixed a rare NullReferenceException in WorldManager.LoadWorldList that occurred if the main world was missing, and the fallback world had access restrictions.
Fix: Fixed a rare ConfigGUI crash when resetting the rank tab whole one of the old ranks is selected.
*Fix: Fixed some issues with BlockDB settings in "Add World" and "Edit World" popups of ConfiGUI.
Change: Sped up /eh and /sph slightly (thanks to Redshift).
*Fix: Fixed a rare ConfigGUI crash when resetting the rank tab whole one of the old ranks is selected.
Change: Improved error handling in /env when setting level.
*Change: Sped up [[/EllipsoidH]] and [[/SphereH]] slightly (thanks to Redshift).
Change: Double-buffered the preview on "Chat" tab of ConfigGUI, to get rid of flicker.
*Change: Improved error handling in [[/Env]] when setting level.
Change: Clarified auto-freeze message when trying to kick/ban someone without a required reason string.
*Change: Double-buffered the preview on "Chat" tab of ConfigGUI, to get rid of flicker.
*Change: Clarified auto-freeze message when trying to kick/ban someone without a required reason string.


===0.601===
===0.601===
Fixed several issues with /undo and drawing commands.
''15 October 2011 - r1135''
*Fixed several issues with [[/Undo]] and drawing commands.


===0.600===
===0.600===
Chat: Added a /Timer command for creating publicly-announced countdowns/timers.
''14 October 2011 - r1107''
Chat: Added a way to cancel partial messages: /Nvm
:''See [http://www.fcraft.net/0.600/ http://www.fCraft.net/0.600] for a summary of changes, and upgrade notes.''
Chat: Removed "Banned player ___ tried to log in" and "Player ___ tried to log in from a banned IP" messages.
*Chat: Added a {{cmd|Timer}} command for creating publicly-announced countdowns/timers.
Chat: /Say, /Staff, and /Me commands can no longer repeated using "/" shortcut.
*Chat: Added a way to cancel partial messages: <code>/Nvm</code>.
Chat: Added a warning when trying to PM deafened players.
*Chat: Removed "Banned player ___ tried to log in" and "Player ___ tried to log in from a banned IP" messages.
Chat: Added a shortcut for chatting to same rank: "@@ Message"
*Chat: {{cmd|Say}}, {{cmd|Staff}}, and {{cmd|Me}} commands can no longer repeated using "/" shortcut.
Chat: Increased the number of blank lines sent by /Clear to 30, to accommodate players with smaller-than-normal font sizes.
*Chat: Added a warning when trying to PM deafened players.
Chat Fix: Fixed /Say, /Roll, /Staff, and /Me sometimes bypassing Chat permission, mute check, or spam detection check.
*Chat: Added a shortcut for chatting to same rank: "@@ Message"
Chat Fix: Fixed rank chat being logged twice.
*Chat: Increased the number of blank lines sent by {{cmd|Clear}} to 30, to accommodate players with smaller-than-normal font sizes.
Chat Fix: Fixed some system messages getting through to deafened players.
*Chat Fix: Fixed {{cmd|Say}}, {{cmd|Roll}}, {{cmd|Staff}}, and {{cmd|Me}} sometimes bypassing {{perm|Chat}} permission, mute check, or spam detection check.
Chat Fix: /Deafen now clears the screen when toggled on.
*Chat Fix: Fixed rank chat being logged twice.
Commands: Rank and zone names now autocomplete.
*Chat Fix: Fixed some system messages getting through to deafened players.
Commands: Players can no longer freeze, mute, kick, ban, unban, promote, or demote themselves.
*Chat Fix: {{cmd|Deafen}} now clears the screen when toggled on.
Commands: /Players can now be called with an optional WorldName parameter, to only list players in a particular world.
*Commands: Rank and zone names now autocomplete.
Commands: /WLoad now takes two more optional parameters: build rank and access rank names.
*Commands: Players can no longer freeze, mute, kick, ban, unban, promote, or demote themselves.
Commands: /Info now shows last leave reason, idle time, freeze/mute information, and ban exemption status.
*Commands: {{cmd|Players}} can now be called with an optional WorldName parameter, to only list players in a particular world.
Commands: Augmented /Rules to support several rule categories.
*Commands: {{cmd|WLoad}} now takes two more optional parameters: build rank and access rank names.
Commands: Added /Spectate and /SpecPatrol (/SPat) commands.
*Commands: {{cmd|Info}} now shows last leave reason, idle time, freeze/mute information, and ban exemption status.
Commands: Added /WBring (brings target player to a world);
*Commands: Augmented {{cmd|Rules}} to support several rule categories.
Commands: Added /Spawn command (brings you to spawn). Typing "/TP" no longer does the same thing, and /TP now always requires Teleport permission.
*Commands: Added {{cmd|Spectate}} and {{cmd|SpecPatrol}} (<code>/SPat</code>) commands.
Commands: Algorithm that /Patrol uses to pick next target was improved.
*Commands: Added {{cmd|WBring}} (brings target player to a world);
Commands: Renamed Lock/Unlock to WLock/WUnlock, for consistency.
*Commands: Added {{cmd|Spawn}} command (brings you to spawn). Typing "{{cmd|TP}}" no longer does the same thing, and {{cmd|TP}} now always requires {{perm|Teleport}} permission.
Commands: Merged /ReloadConfig and /AutoRankReload into /Reload command. Merged /ImportRanks and /ImportBans into /Import command. Combined functionality of /LockAll into /WLock, and functionality of /UnlockAll into /WUnlock.
*Commands: Algorithm that {{cmd|Patrol}} uses to pick the next target was improved.
Commands: /Info and /Worlds now support pagination.
*Commands: Renamed Lock/Unlock commands to {{cmd|WLock}}/{{cmd|WUnlock}}, for consistency.
Commands: When world access permissions are changed with /WAccess, players who lost ability to join the world will automatically be moved to main.
*Commands: Merged <code>/ReloadConfig</code> and <code>/AutoRankReload</code> into {{cmd|Reload}} command. Merged <code>/ImportRanks</code> and <code>/ImportBans</code> into {{cmd|Import}} command. Combined functionality of <code>/LockAll</code> into {{cmd|WLock}}, and functionality of <code>/UnlockAll</code> into {{cmd|WUnlock}}.
Commands: Frozen player can no longer call most commands, with exception of: /Clear, /Info, /BanInfo, /RankInfo, /ServerInfo, /Ranks, /Rules, /Where, /Help, /Commands, /Colors, /Worlds, /Zones, and /ZInfo.
*Commands: {{cmd|Info}} and {{cmd|Worlds}} now support pagination.
Commands: /Bring and /WBring now give the option of overriding worlds' access minimum-rank. Explicitly blacklisted players will continue to be barred.
*Commands: When world access permissions are changed with {{cmd|WAccess}}, players who lost ability to join the world will automatically be moved to main.
Commands: Added /InfoSwap command, for swapping two players' ranks and PlayerDB records.
*Commands: Frozen player can no longer call most commands, with exception of: {{cmd|Clear}}, {{cmd|Info}}, {{cmd|BanInfo}}, {{cmd|RankInfo}}, {{cmd|ServerInfo}}, {{cmd|Ranks}}, {{cmd|Rules}}, {{cmd|Where}}, {{cmd|Help}}, {{cmd|Commands}}, {{cmd|Colors}}, {{cmd|Worlds}}, {{cmd|Zones}}, and {{cmd|ZInfo}}.
Commands: Added a way to abort a server shutdown or restart ("/Shutdown abort" or "/Restart abort").
*Commands: {{cmd|Bring}} and {{cmd|WBring}} now give the option of overriding worlds' access minimum-rank. Explicitly blacklisted players will continue to be barred.
Commands: /RankInfo now shows copy/paste slots, idle kick time, and permission limits.
*Commands: Added {{cmd|InfoSwap}} command, for swapping two players' ranks and PlayerDB records.
Commands: Most time-related commands now take the compact format (e.g. 1m30s, 45s, 24h, etc).
*Commands: Added a way to abort a server shutdown or restart ("{{cmd|Shutdown|abort}}" or "{{cmd|Restart|abort}}").
Commands: Color-coded /Commands.
*Commands: {{cmd|RankInfo}} now shows copy/paste slots, idle kick time, and permission limits.
Commands: Limited /Mute duration to range between 1 second and 700 days (100 weeks).
*Commands: Most time-related commands now take the [[Time formatting|compact format]] (e.g. 1m30s, 45s, 24h, etc).
Commands: /SetInfo now allows changing players' DisplayedName.
*Commands: Color-coded {{cmd|Commands}}.
Commands: A warning is now shown when a player is kicked/banned, and other players are still connected from the IP.
*Commands: Limited {{cmd|Mute}} duration to range between 1 second and 700 days (100 weeks).
Commands: Added a way to add IP ban exemptions using /BanEx (banning all players from IP except a particular one).
*Commands: {{cmd|SetInfo}} now allows changing players' DisplayedName.
Commands: Added automatic countdowns to /Shutdown and /Restart.
*Commands: A warning is now shown when a player is kicked/banned, and other players are still connected from the IP.
Commands: Added more stats to /ServerInfo.
*Commands: Added a way to add IP ban exemptions using {{cmd|BanEx}} (banning all players from IP except a particular one).
Commands: /MassRank now defaults to silent, and takes a "reason" parameter.
*Commands: Added automatic countdowns to {{cmd|Shutdown}} and {{cmd|Restart}}.
Commands: Added "/St" as an alias for /Staff. Changed "/L" from being alias for /Join, to being alias for /Lava. Removed "/Cub" alias for "/Cuboid".
*Commands: Added more stats to {{cmd|ServerInfo}}.
Commands Fix: Fixed /UnbanIP and /UnbanAll not announcing the unban reason.
*Commands: {{cmd|MassRank}} now defaults to silent, and takes a "reason" parameter.
Commands Fix: Fixed /Info not formatting names of offline players.
*Commands: Added "/St" as an alias for {{cmd|Staff}}. Changed "/L" from being alias for {{cmd|Join}}, to being alias for {{cmd|Lava}}. Removed "/Cub" alias for {{cmd|Cuboid}}.
Commands Fix: Fixed /Restart breaking under Mono if working path contains spaces.
*Commands Fix: Fixed {{cmd|UnbanIP}} and {{cmd|UnbanAll}} not announcing the unban reason.
Commands Fix: Fixed freeze/unfreeze printing wrong ranks in "You can only freeze players ranked ____ or lower" messages.
*Commands Fix: Fixed {{cmd|Info}} not formatting names of offline players.
Commands Fix: Fixed a rare crash in /Rules when used from console.
*Commands Fix: Fixed {{cmd|Restart}} breaking under Mono if working path contains spaces.
Commands Fix: /BanIP and /BanAll no longer allow to ban the IP if it's shared by any players whom caller is not allowed to ban.
*Commands Fix: Fixed freeze/unfreeze printing wrong ranks in "You can only freeze players ranked ____ or lower" messages.
Commands Fix: Fixed /Ignore and /Unignore printing all matches at once on autocompletion.
*Commands Fix: Fixed a rare crash in {{cmd|Rules}} when used from console.
Commands Fix: Fixed a case where /BringAll could reveal hidden players.
*Commands Fix: {{cmd|BanIP}} and {{cmd|BanAll}} no longer allow to ban the IP if it's shared by any players whom caller is not allowed to ban.
Commands Fix: Fixed a few bugs in /DumpStats, expanded player listing to top-5/bottom-5, and added "BlocksDrawn" stat.
*Commands Fix: Fixed {{cmd|Ignore}} and {{cmd|Unignore}} printing all matches at once on autocompletion.
Commands Fix: Fixed /Rank and /TP commands showing up in /Commands for ALL players.
*Commands Fix: Fixed a case where {{cmd|BringAll}} could reveal hidden players.
Commands Fix: Fixed a couple rare bugs in /Roll
*Commands Fix: Fixed a few bugs in {{cmd|DumpStats}}, expanded player listing to top-5/bottom-5, and added "BlocksDrawn" stat.
Commands Fix: Fixed broken /BringAll support for bringing multiple ranks at once.
*Commands Fix: Fixed {{cmd|Rank}} and {{cmd|TP}} commands showing up in {{cmd|Commands}} for ALL players.
Commands Fix: Fixed several obscure ways of revealing presence of hidden players via commands like /ServerInfo and /Worlds.
*Commands Fix: Fixed a couple rare bugs in {{cmd|Roll}}.
Config: New config keys: BackupDataOnStartup (default: true), RestartInterval (default: 0), HeartbeatToWoMDirect (default: true), BlockDBEnabled (default: true), BlockDBAutoEnable (default: true), and BlockDBAutoEnableRank (default: DefaultRank), WoMEnableEnvExtensions (default: false).
*Commands Fix: Fixed broken {{cmd|BringAll}} support for bringing multiple ranks at once.
Config: Added Spectate permission that covers /Spectate and /SpecPatrol.
*Commands Fix: Fixed several obscure ways of revealing presence of hidden players via commands like {{cmd|ServerInfo}} and {{cmd|Worlds}}.
Config: Added DrawAdvanced permission that covers /Brush, /Sphere, /SphereH, /Torus, and /Restore commands.
*Config: New config keys: BackupDataOnStartup (default: true), RestartInterval (default: 0), HeartbeatToWoMDirect (default: true), BlockDBEnabled (default: true), BlockDBAutoEnable (default: true), and BlockDBAutoEnableRank (default: DefaultRank), WoMEnableEnvExtensions (default: false).
Config: Added ManageBlockDB permission that covers /BlockDB.
*Config: Added {{perm|Spectate}} permission that covers {{cmd|Spectate}} and {{cmd|SpecPatrol}}.
Config: Added UndoOthersActions permission that covers /UndoPlayer and /UndoArea.
*Config: Added {{perm|DrawAdvanced}} permission that covers {{cmd|Brush}}, {{cmd|Sphere, {{cmd|SphereH}}, {{cmd|Torus}}, and {{cmd|Restore}} commands.
Config: /Reload can now update more config keys without needing a restart: AutoRankEnabled, BandwidthUseMode, ConsoleName, DefaultRank, DefaultBuildRank, PatrolledRank.
*Config: Added {{perm|ManageBlockDB}} permission that covers {{cmd|BlockDB}}.
Config: Removed obsolete ShowBannedConnectionMessages config key.
*Config: Added {{perm|UndoOthersActions}} permission that covers {{cmd|UndoPlayer}} and {{cmd|UndoArea}}.
Config Fix: Fixed DefaultRank/DefaultBuildRank/PatrolledRank settings not being applied.
*Config: {{cmd|Reload}} can now update more config keys without needing a restart: AutoRankEnabled, BandwidthUseMode, ConsoleName, DefaultRank, DefaultBuildRank, PatrolledRank.
ConfigGUI: Added BlockDB settings to "Worlds" tab and "Add/Edit World" dialog.
*Config: Removed obsolete ShowBannedConnectionMessages config key.
ConfigGUI: Reorganized Rank tab.
*Config Fix: Fixed DefaultRank/DefaultBuildRank/PatrolledRank settings not being applied.
ConfigGUI: Relaxed restrictions on rank prefixes.
*ConfigGUI: Added BlockDB settings to "Worlds" tab and "Add/Edit World" dialog.
ConfigGUI: Added "Insert Color" and "Insert Keyword" buttons to announce/rule/greeting editors in ConfigGUI, and a "Reset" button to revert edits.
*ConfigGUI: Reorganized Rank tab.
ConfigGUI: Any errors/warnings that are produced while loading worlds.xml in ConfigGUI are now displayed at startup.
*ConfigGUI: Relaxed restrictions on rank prefixes.
ConfigGUI Fix: ConfigGUI no longer loses worlds' whitelists/blacklists.
*ConfigGUI: Added "Insert Color" and "Insert Keyword" buttons to announce/rule/greeting editors in ConfigGUI, and a "Reset" button to revert edits.
ConfigGUI Fix: Fixed several bugs related to renaming worlds.
*ConfigGUI: Any errors/warnings that are produced while loading <code>worlds.xml</code> in ConfigGUI are now displayed at startup.
ConfigGUI Fix: Fixed several "Reset" bugs.
*ConfigGUI Fix: ConfigGUI no longer loses worlds' whitelists/blacklists.
ConfigGUI Fix: Fixed "Enable colors in IRC" checkbox remaining disabled in ConfigTool.
*ConfigGUI Fix: Fixed several bugs related to renaming worlds.
ConfigGUI Fix: Fixed ConfigTool's Chat tab not updating to reflect changes in rank colors/prefixes.
*ConfigGUI Fix: Fixed several "Reset" bugs.
ConfigGUI Fix: Fixed sort order in Worlds tab when sorting by world size.
*ConfigGUI Fix: Fixed "Enable colors in IRC" checkbox remaining disabled in ConfigTool.
ConfigGUI Fix: Fixed some rank dropdown menus in ConfigGUI showing "(lowest rank)" instead of "(default rank)" as the default option.
*ConfigGUI Fix: Fixed ConfigTool's Chat tab not updating to reflect changes in rank colors/prefixes.
Drawing: Introduced a brush/pattern system for draw commands. Rewrote (almost) all existing draw commands to take advantage of that new infrastructure. Brushes are: Normal (default), Checkered, Random, Cloudy, Marbled, Replace, ReplaceNot, ReplaceBrush.
*ConfigGUI Fix: Fixed sort order in Worlds tab when sorting by world size.
Drawing: Added a way to /Undo up to five commands back. Use /Redo to reverse it.
*ConfigGUI Fix: Fixed some rank dropdown menus in ConfigGUI showing "(lowest rank)" instead of "(default rank)" as the default option.
Drawing: Added /Torus drawing command, written and contributed by M1_Abrams.
*Drawing: Introduced a brush/pattern system for draw commands. Rewrote (almost) all existing draw commands to take advantage of that new infrastructure. Brushes are: Normal (default), Checkered, Random, Cloudy, Marbled, Replace, ReplaceNot, ReplaceBrush.
Drawing: Added support for multiple copy/paste slots, using /CopySlot. Number of slots of configurable per-rank.
*Drawing: Added a way to {{cmd|Undo}} up to five commands back. Use {{cmd|Redo to reverse it.
Drawing: /Replace and /ReplaceNot can now take just one blocktype. The replacement type is inferred from the type of block player is holding when clicking.
*Drawing: Added {{cmd|Torus}} drawing command, written and contributed by M1_Abrams.
Drawing: /Undo now cancels the last drawing commands.
*Drawing: Added support for multiple copy/paste slots, using {{cmd|CopySlot}}. Number of slots of configurable per-rank.
Drawing: Added a new block name aliases: "g" for grass, "w" for water, "a" for air.
*Drawing: {{cmd|Replace}} and {{cmd|ReplaceNot}} can now take just one blocktype. The replacement type is inferred from the type of block player is holding when clicking.
Drawing Fix: Added a missing volume check to /Line, and fixed /CuboidW volume calculations.
*Drawing: {{cmd|Undo}} now cancels the last drawing commands.
Drawing Fix: Fixed /Copy and /Cut reporting incorrect orientation.
*Drawing: Added a new [[Blocks|block name aliases]]: "g" for grass, "w" for water, "a" for air.
FrontEnd: Colored ConfigCLI log messages: red for errors, yellow for warnings, dark gray for debug, default (gray) for everything else. Call with "--noconsolecolor" parameter to disable.
*Drawing Fix: Added a missing volume check to {{cmd|Line}}, and fixed {{cmd|CuboidW}} volume calculations.
FrontEnd: ServerCLI now handles all updater modes properly, and downloads updater/restarts if needed.
*Drawing Fix: Fixed {{cmd|Copy}} and {{cmd|Cut}} reporting incorrect orientation.
FrontEnd: Improved window titles.
*FrontEnd: Colored ConfigCLI log messages: red for errors, yellow for warnings, dark gray for debug, default (gray) for everything else. Call with "--noconsolecolor" parameter to disable.
FrontEnd Fix: Fixed ServerCLI writing errors to stdout instead of stderr.
*FrontEnd: ServerCLI now handles all updater modes properly, and downloads updater/restarts if needed.
Misc: Players who log out hidden will now log in silently, still hidden.
*FrontEnd: Improved window titles.
Misc: More keywords are now usable in announcements, rules, and greeting files: {SERVER_NAME}, {MOTD}, {RANK}, {PLAYER_NAME}, {TIME}, {WORLD}, {PLAYERS}, and {WORLDS}
*FrontEnd Fix: Fixed ServerCLI writing errors to stdout instead of stderr.
Misc: Kicked or disconnected players no longer have their TotalTime increased for the time idled.
*Misc: Players who log out hidden will now log in silently, still hidden.
Misc: fCraft will refuse to start up if running old versions of mono (2.4 or earlier).
*Misc: More [[Constants|keywords]] are now usable in announcements, rules, and greeting files: {SERVER_NAME}, {MOTD}, {RANK}, {PLAYER_NAME}, {TIME}, {WORLD}, {PLAYERS}, and {WORLDS}
Misc: Crash reporter now prints a reference number for submitted reports.
*Misc: Kicked or disconnected players no longer have their TotalTime increased for the time idled.
Misc: AutoRank now only evaluates online players on a timer. A full database sweep will only be done on startup or on-demand. This should notably reduce average CPU use on large databases.
*Misc: fCraft will refuse to start up if running old versions of mono (2.4 or earlier).
Misc: Added AutoRank pseudoplayer (similar to Console), who is now credited with all autorank promotions/demotions.
*Misc: Crash reporter now prints a reference number for submitted reports.
Misc: Increased the allowed clicking distance when manually clicking blocks, to account for lag.
*Misc: AutoRank now only evaluates online players on a timer. A full database sweep will only be done on startup or on-demand. This should notably reduce average CPU use on large databases.
Misc: IRC bot now announces channel kicks and nick changes.
*Misc: Added AutoRank pseudoplayer (similar to Console), who is now credited with all autorank promotions/demotions.
Misc: When a player with a reserved slot tries to join a full world, the longest-idle player will be kicked to make room.
*Misc: Increased the allowed clicking distance when manually clicking blocks, to account for lag.
Misc: Frozen, demoted, and banned players are now automatically unhidden. Frozen players are undeafened. Banned players are also automatically unfrozen and unmuted.
*Misc: IRC bot now announces channel kicks and nick changes.
Misc: When a player's rank is changed, their bindings are now reset (to avoid issues with /water, /lava, and /solid), and any in-progress selection is canceled (draw commands, /zone, /ztest, /bi, /measure, etc)
*Misc: When a player with a reserved slot tries to join a full world, the longest-idle player will be kicked to make room.
Misc: Frozen players now have a little blue star appended to their names, similar to the red star for banned players.
*Misc: Frozen, demoted, and banned players are now automatically unhidden. Frozen players are undeafened. Banned players are also automatically unfrozen and unmuted.
Misc: Moved all Heartbeat-related operations to the background thread (fixes lag spikes when minecraft.net times out).
*Misc: When a player's rank is changed, their bindings are now reset (to avoid issues with {{cmd|Water}}, {{cmd|Lava}}, and {{cmd|Solid}}), and any in-progress selection is canceled ([[:Category:Requires Draw|draw]] commands, {{cmd|Zone}}, {{cmd|ZTest}}, {{cmd|BInfo}}, {{cmd|Measure}}, etc)
Misc: Added a dynamically updated compass at the top-right of the screen, visible to players who use WoM 1.8.8+
*Misc: Frozen players now have a little blue star appended to their names, similar to the red star for banned players.
Misc: Made fCraft.sln default to "Release" configuration when loaded.
*Misc: Moved all heartbeat-related operations to the background thread (fixes lag spikes when minecraft.net times out).
Misc: Added a check for libMonoPosix on server startup. This allows catching misconfigured Mono setups early.
*Misc: Added a dynamically updated compass at the top-right of the screen, visible to players who use WoM 1.8.8+
Misc: Ranks now default to "white" color ("&f") instead of "none" color ("").
*Misc: Added a check for libMonoPosix on server startup. This allows catching misconfigured Mono setups early.
Misc: Edited the "failed to load main world" message to sound less menacing, since it's usually caused just by main world filling up.
*Misc: Ranks now default to "white" color ("&f") instead of "none" color ("").
Misc: Sped up /PruneDB, /MassRank, map generation. Reduced memory use of draw commands, undo buffers, and ConfigTool.
*Misc: Edited the "failed to load main world" message to sound less menacing, since it's usually caused just by main world filling up.
Misc Fix: Fixed "duplicate metadata key" warning in FCMv3 maps.
*Misc: Sped up {{cmd|PruneDB}}, {{cmd|MassRank}}, map generation. Reduced memory use of draw commands, undo buffers, and ConfigGUI.
Misc Fix: Fixed a zone-related race condition when exporting to Opticraft map format.
*Misc Fix: Fixed "duplicate metadata key" warning in FCMv3 maps.
Misc Fix: Fixed fCraft being unable to start if fCraft.dll is in the root directory of a drive (e.g. in "C:/")
*Misc Fix: Fixed a zone-related race condition when exporting to Opticraft map format.
Misc Fix: Fixed a bug that caused bandwidth to sometimes be wasted on needlessly updating position of non-moving players.
*Misc Fix: Fixed fCraft being unable to start if fCraft.dll is in the root directory of a drive (e.g. in "C:/")
Misc Fix: Fixed a clock drift problem in periodic SchedulerTasks.
*Misc Fix: Fixed a bug that caused bandwidth to sometimes be wasted on needlessly updating position of non-moving players.
Misc Fix: Fixed a case where, in some rank configurations, players would see themselves as offline when hidden (in /Info, /BInfo, /Players, etc).
*Misc Fix: Fixed a clock drift problem in periodic SchedulerTasks.
PlayerDB: Added 46th column: PlayerInfo.IsHidden ('h' if hidden, otherwise blank).
*Misc Fix: Fixed a case where, in some rank configurations, players would see themselves as offline when hidden (in {{cmd|Info}}, {{cmd|BInfo}}, {{cmd|Players}}, etc).
PlayerDB: Added 47th column: PlayerInfo.LastModified (UTC unix timestamp). Accuracy is not yet guaranteed.
*PlayerDB: Added 46th column: PlayerInfo.IsHidden ('h' if hidden, otherwise blank).
PlayerDB: Added 48th column: PlayerInfo.DisplayedName (string or blank). Overrides "Name" field for purposes of displaying formatted name (ClassyName).
*PlayerDB: Added 47th column: PlayerInfo.LastModified (UTC unix timestamp). Accuracy is not yet guaranteed.
PlayerDB: Removed 14th column (FailedLoginCount) due to disuse.
*PlayerDB: Added 48th column: PlayerInfo.DisplayedName (string or blank). Overrides "Name" field for purposes of displaying formatted name (ClassyName).
PlayerDB: PlayerDB now writes out changes to TotalTime incrementally for online players, instead of applying the change on-logout.
*PlayerDB: Removed 14th column (FailedLoginCount) due to disuse.
Worlds: Added a way to change some environment and texture settings per-map, using /Env.
*PlayerDB: PlayerDB now writes out changes to TotalTime incrementally for online players, instead of applying the change on-logout.
Worlds: Per-world settings on backup intervals now work.
*Worlds: Added a way to change some environment and texture settings per-map, using {{cmd|Env}}.
Worlds: Added BlockDB - a system for tracking edits per-block. Added related /BlockDB and /BInfo commands.
*Worlds: Per-world settings on backup intervals now work.
Worlds: Added /UndoPlayer and /UndoArea commands for undoing players' actions using BlockDB.
*Worlds: Added BlockDB - a system for tracking edits per-block. Added related {{cmd|BlockDB}} and {{cmd|BInfo}} commands.
Worlds: If a world has a missing map file, a warning is now shown, and a default flatgrass map is created.
*Worlds: Added {{cmd|UndoPlayer}} and {{cmd|UndoArea}} commands for undoing players' actions using BlockDB.
Worlds: Added a way to set per-rank main world, using /WMain.
*Worlds: If a world has a missing map file, a warning is now shown, and a default flatgrass map is created.
Worlds: Added /Restore command, inspired by good old MinerCPP. Selectively loads a map from another file or backup.
*Worlds: Added a way to set per-rank main world, using {{cmd|WMain}}.
Worlds: Allowed non-standard dimensions (neither multiples of 16, nor powers of 2). Added a warning about glitches when using nonstandard dimensions.
*Worlds: Added {{cmd|Restore}} command, inspired by good old MinerCPP. Selectively loads a map from another file or backup.
Worlds: Added LoadedBy, LoadedOn, MapChangedBy, and MapChangedOn to /WInfo and to worlds.xml
*Worlds: Allowed non-standard dimensions (neither multiples of 16, nor powers of 2). Added a warning about glitches when using nonstandard dimensions.
Worlds: MapGenerator tweaks: "default" template is now known as "random," "mountains" template now has more cliffs and snow on mountaintops, "island" template is less rough and has nice beaches, and water is now automatically removed from "desert" maps.
*Worlds: Added LoadedBy, LoadedOn, MapChangedBy, and MapChangedOn to {{cmd|WInfo}} and to <code>worlds.xml</code>.
Worlds Fix: Fixed a crash that occurred if worlds.xml existed but contained no worlds.
*Worlds: MapGenerator tweaks: "default" template is now known as "random," "mountains" template now has more cliffs and snow on mountaintops, "island" template is less rough and has nice beaches, and water is now automatically removed from "desert" maps.
Worlds Fix: Fixed an exploit that allowed players to bypass world access permissions in certain rank configurations.
*Worlds Fix: Fixed a crash that occurred if worlds.xml existed but contained no worlds.
Worlds Fix: Fixed some rare crashes in /WLoad.
*Worlds Fix: Fixed an exploit that allowed players to bypass world access permissions in certain rank configurations.
Worlds Fix: Fixed /WAccess and /wbuild occasionally not saving the world list after adding players to the access/build whitelists.
*Worlds Fix: Fixed some rare crashes in {{cmd|WLoad}}.
Worlds Fix: Fixed being unable to change just the capitalization when renaming worlds from ConfigTool, under Windows.
*Worlds Fix: Fixed {{cmd|WAccess}} and {{cmd|WBuild}} occasionally not saving the world list after adding players to the access/build whitelists.
Zones: Added /ZRename command to rename zones.
*Worlds Fix: Fixed being unable to change just the capitalization when renaming worlds from ConfigGUI, under Windows.
Zones: Added /ZMark command to use zone boundaries for drawing or making selections.
*Zones: Added {{cmd|ZRename}} command to rename zones.
Zones Fix: Fixed /ZAdd crash when adding more than one personal zone for the same player (/ZAdd +Name).
*Zones: Added {{cmd|ZMark}} command to use zone boundaries for drawing or making selections.
Zones Fix: Fixed a rare case where two players could simultaneously create a zone with the same name on the same world, which would crash one of the players.
*Zones Fix: Fixed {{cmd|ZAdd}} crash when adding more than one personal zone for the same player ({{cmd|ZAdd|+Name}}).
Zones Fix: /Zones no longer crashes if used on a world with a missing or corrupt map file.
*Zones Fix: Fixed a rare case where two players could simultaneously create a zone with the same name on the same world, which would crash one of the players.
Zones Fix: Tightened security checks of /ZAdd and /ZRemove to prevent a permission exploit.
*Zones Fix: {{cmd|Zones}} no longer crashes if used on a world with a missing or corrupt map file.
API: Added specialized MetadataCollection class to manage per-map and per-player metadata, and ZoneCollection for zones.
*Zones Fix: Tightened security checks of {{cmd|ZAdd}} and {{cmd|ZRemove}} to prevent a permission exploit.
API: Added ReSharper-compatible annotations and more argument checks throughout the codebase.
*API: Added specialized MetadataCollection class to manage per-map and per-player metadata, and ZoneCollection for zones.
API: fCraft now consistently uses [X,Y,Z] for coordinates (where X/Y are horizontal, and Z is vertical), and [Width,Length,Height] for dimensions (Width/Length horizontal, Height vertical).
*API: Added ReSharper-compatible annotations and more argument checks throughout the codebase.
API: Merged Session and Player classes. All session-related functionality is in Player.Networking.cs file.
*API: fCraft now consistently uses [X,Y,Z] for coordinates (where X/Y are horizontal, and Z is vertical), and [Width,Length,Height] for dimensions (Width/Length horizontal, Height vertical).
API: New line-wrapping algorithm provides better performance and safety. Now using "\n" instead of "&N" to force a newline.
*API: Merged Session and Player classes. All session-related functionality is in Player.Networking.cs file.
API: Renamed World.PlayerList to World.Players, Server.PlayerList to Server.Players, and added PlayerDB.PlayerInfoList
*API: New line-wrapping algorithm provides better performance and safety. Now using "\n" instead of "&N" to force a newline.
API: New LINQ-style API for working with sets of players. This API is now used for all messaging and packet-sending. Old API (Server.Send* and World.Send*) was removed.
*API: Renamed World.PlayerList to World.Players, Server.PlayerList to Server.Players, and added PlayerDB.PlayerInfoList
API: New unified API for handling player-generated chat (Chat static class), and new events (Chat.Sending and Chat.Sent).
*API: New LINQ-style API for working with sets of players. This API is now used for all messaging and packet-sending. Old API (Server.Send* and World.Send*) was removed.
API: All cancellable events now implement ICancellableEvent.
*API: New unified API for handling player-generated chat (Chat static class), and new events (Chat.Sending and Chat.Sent).
API: MapDAT and MapNBT now implement IMapConverter.LoadHeader.
*API: All cancellable events now implement ICancellableEvent.
API: Converted IClassy.GetClassyName(), Rank.GetFullName(), and Player.GetListName() to properties.
*API: MapDAT and MapNBT now implement IMapConverter.LoadHeader.
API: Renamed ConfigKey.GetBool() to ConfigKey.Enabled(). Added ConfigKey.TryGetInt() and ConfigKey.TryGetBool() methods.
*API: Converted IClassy.GetClassyName(), Rank.GetFullName(), and Player.GetListName() to properties.
API: CommandManager.RegisterCommand() now checks for reserved command names (currently "ok" and "nvm"), and does a better job at handling command name capitalization differences.
*API: Renamed ConfigKey.GetBool() to ConfigKey.Enabled(). Added ConfigKey.TryGetInt() and ConfigKey.TryGetBool() methods.
API: Added ability to override Player.MaxBlockPlacementRange, Player.SocketTimeout, Heartbeat.Delay, and Heartbeat.Timeout.
*API: CommandManager.RegisterCommand() now checks for reserved command names (currently "ok" and "nvm"), and does a better job at handling command name capitalization differences.
API: Renamed RankManager.ParseRank(string) to Rank.Parse(string)
*API: Added ability to override Player.MaxBlockPlacementRange, Player.SocketTimeout, Heartbeat.Delay, and Heartbeat.Timeout.
API: All draw/undo/copy/paste commands have been moved to fCraft.Drawing namespace.
*API: Renamed RankManager.ParseRank(string) to Rank.Parse(string)
API: Added support for multiple /help sections per command.
*API: All draw/undo/copy/paste commands have been moved to fCraft.Drawing namespace.
API: Added CommandCategory.Debug, removed CommandDescriptor.HelpHander and HelpHandler delegate.
*API: Added support for multiple {{cmd|Help}} sections per command.
API: Moved Server.Player* events to Player.* and Server.PlayerInfo* to PlayerInfo.*
*API: Added CommandCategory.Debug, removed CommandDescriptor.HelpHander and HelpHandler delegate.
API: Expanded the confirmation system (/OK) to allow custom callbacks, decoupled from the command system.
*API: Moved Server.Player* events to Player.* and Server.PlayerInfo* to PlayerInfo.*
API Fix: "Bad heartbeat" reply from minecraft.net no longer triggers UrlChanged event.
*API: Expanded the confirmation system (<code>/OK</code>) to allow custom callbacks, decoupled from the command system.
API Fix: Fixed a couple bugs in BoundingBox.GetIntersection and BoundingBox.Contains.
*API Fix: "Bad heartbeat" reply from minecraft.net no longer triggers UrlChanged event.
API Fix: Fixed /Replace and /ReplaceNot not firing Player.PlacedBlock
*API Fix: Fixed a couple bugs in BoundingBox.GetIntersection and BoundingBox.Contains.
events.
*API Fix: Fixed {{cmd|Replace}} and {{cmd|ReplaceNot}} not firing Player.PlacedBlock
API Fix: Uncaught exceptions that occur while parsing player messages no longer send crash reports when in DEBUG configuration.
*events.
*API Fix: Uncaught exceptions that occur while parsing player messages no longer send crash reports when in DEBUG configuration.


=0.5xx=
=0.5xx=
===0.537===
===0.537===
Fixed another heartbeat-related issue caused by minecraft.net updates.
''14 September 2011 - r991''
*Fixed another heartbeat-related issue caused by minecraft.net updates.


===0.536===
===0.536===
Fix: Fixed a rare crash in DoChangeRank when promoting/demoting offline players.
''14 September 2011 - r988''
Fix: Fixed a case where world access/build whitelist additions were not immediately saved.
*Fix: Fixed a rare crash in DoChangeRank when promoting/demoting offline players.
Fix: Fixed several errors in the way time spans were displayed.
*Fix: Fixed a case where world access/build whitelist additions were not immediately saved.
Fix: Unhandled exceptions in background task callbacks will no longer take down the server
*Fix: Fixed several errors in the way time spans were displayed.
Change: Changed the heartbeat handler to use GET instead of POST (workaround for minecraft.net problems).
*Fix: Unhandled exceptions in background task callbacks will no longer take down the server
Change: Removed AutoLauncher.
*Change: Changed the heartbeat handler to use GET instead of POST (workaround for minecraft.net problems).
*Change: Removed AutoLauncher.


===0.535===
===0.535===
Workaround for minecraft.net heartbeat changes.
''1 July 2011 - r702''
*Workaround for minecraft.net heartbeat changes.


===0.534===
===0.534===
Feature: Added <RestartInterval> config key (in seconds). It should help people who are suffering from Mono memory leaks. This setting can only currently be modified by editing config.xml
''18 June 2011 - r668''
Fix: Fixed /wload and /gen resetting the world's hidden status.
*Feature: Added <RestartInterval> config key (in seconds). It should help people who are suffering from Mono memory leaks. This setting can only currently be modified by editing config.xml
Fix: Fixed "Apply" button not getting enabled in ConfigTool when world list is changed.
*Fix: Fixed /wload and /gen resetting the world's hidden status.
Fix: Fixed /cw reporting incorrect volume (fixes #3308137).
*Fix: Fixed "Apply" button not getting enabled in ConfigTool when world list is changed.
Fix: Added a confirmation when /wrename will result in overwriting a map file, and fixed a related crash (fixes #3311994).
*Fix: Fixed /cw reporting incorrect volume (fixes #3308137).
Fix: Fixed FormatException in error handling code in World.AcceptPlayer
*Fix: Added a confirmation when /wrename will result in overwriting a map file, and fixed a related crash (fixes #3311994).
Fix: Fixed /info not showing formatted names for players who appear offline.
*Fix: Fixed FormatException in error handling code in World.AcceptPlayer
Fix: Fixed several issues with renaming worlds from ConfigTool.
*Fix: Fixed /info not showing formatted names for players who appear offline.
Fix: Fixed /restart breaking under Mono if path contains spaces.
*Fix: Fixed several issues with renaming worlds from ConfigTool.
Fix: Fixed /staff, /me, and /roll commands not requiring the Chat permission.
*Fix: Fixed /restart breaking under Mono if path contains spaces.
Fix: Fixed "Use IRC colors" checkbox remaining disabled in ConfigTool.
*Fix: Fixed /staff, /me, and /roll commands not requiring the Chat permission.
Change: Allowed all printable ASCII characters in chat except '&'.
*Fix: Fixed "Use IRC colors" checkbox remaining disabled in ConfigTool.
Change: Heartbeat tweaks to prevent "Bad heartbeat" from popping up.
*Change: Allowed all printable ASCII characters in chat except '&'.
Optimization: ConfigTool starts up faster, and uses much less memory.
*Change: Heartbeat tweaks to prevent "Bad heartbeat" from popping up.
*Optimization: ConfigTool starts up faster, and uses much less memory.


===0.533===
===0.533===
Fix: Fixed a regression in 0.530 that erased some strings in PlayerInfo and IPBanInfo objects, such as ban reasons.
''24 May 2011 - r614''
Change: Increased heartbeat interval to 27.5 seconds.
*Fix: Fixed a regression in 0.530 that erased some strings in PlayerInfo and IPBanInfo objects, such as ban reasons.
Change: Reduced jitter of player movement.
*Change: Increased heartbeat interval to 27.5 seconds.
*Change: Reduced jitter of player movement.


===0.532===
===0.532===
Feature: Added "/worlds loaded" command.
''23 May 2011 - r611''
Fix: Fixed a bug that prevented worlds from accepting any block changes after a map change (/wload or /gen)
*Feature: Added "/worlds loaded" command.
Fix: Fixed "Player _____ joined main." displaying twice when players connect.
*Fix: Fixed a bug that prevented worlds from accepting any block changes after a map change (/wload or /gen)
Change: Added /colours as an alias to /colors
*Fix: Fixed "Player _____ joined main." displaying twice when players connect.
Change: Adjusted /dumpstats security checks, and made it require EditPlayerDB permission (instead of Import).
*Change: Added /colours as an alias to /colors
*Change: Adjusted /dumpstats security checks, and made it require EditPlayerDB permission (instead of Import).


===0.531===
===0.531===
Feature: /sinfo now shows bandwidth use, fCraft version, and .NET/Mono version.
''20 May 2011 - r603''
Feature: Added ability to use coordinates with mark (e.g. "/mark 0 0 0").
*Feature: /SInfo now shows bandwidth use, fCraft version, and .NET/Mono version.
Fix: Fixed non-default rank settings not saving properly from ConfigTool.
*Feature: Added ability to use coordinates with mark (e.g. "/Mark 0 0 0").
Fix: Fixed a serialization bug in IPBanList that happened if a ban reason was not given, or if an IP address was not associated with any player.
*Fix: Fixed non-default rank settings not saving properly from ConfigTool.
Fix: Fixed a few minor bugs in /wmain.
*Fix: Fixed a serialization bug in IPBanList that happened if a ban reason was not given, or if an IP address was not associated with any player.
Change: Allowed the caret (^) in chat messages.
*Fix: Fixed a few minor bugs in /WMain.
Change: Reduced movement lag.
*Change: Allowed the caret (^) in chat messages.
Change: /version command has been removed due to redundancy with /sinfo.
*Change: Reduced movement lag.
Change: Detailed reasons of player disconnects are now logged better.
*Change: /version command has been removed due to redundancy with /sinfo.
Change: Increased Minecraft.net heartbeat interval slightly.
*Change: Detailed reasons of player disconnects are now logged better.
API: Added new events: Scheduler.TaskAdded, Scheduler.TaskExecuting, Scheduler.TaskExecuted, and Scheduler.TaskRemoved. These events are only available when fCraft.dll is built with DEBUG_SCHEDULER flag because of their performance impact.
*Change: Increased Minecraft.net heartbeat interval slightly.
Optimization: Removed the scheduler overhead from having unloaded worlds.
*API: Added new events: Scheduler.TaskAdded, Scheduler.TaskExecuting, Scheduler.TaskExecuted, and Scheduler.TaskRemoved. These events are only available when fCraft.dll is built with DEBUG_SCHEDULER flag because of their performance impact.
Optimization: Sped up MapGenerator by about 10%.
*Optimization: Removed the scheduler overhead from having unloaded worlds.
*Optimization: Sped up MapGenerator by about 10%.


===0.530===
===0.530===
Feature: New adaptive bandwidth-saving mechanism for updating player positions, controlled by the new BandwidthUseMode config key.
''7 May 2011 - r583''
Feature: Added OptiCraft blocktype names and blocks' numeric IDs as aliases.
*Feature: New adaptive bandwidth-saving mechanism for updating player positions, controlled by the new BandwidthUseMode config key.
Fix: Fixed block bindings not being applied to drawing commands.
*Feature: Added OptiCraft blocktype names and blocks' numeric IDs as aliases.
Fix: Fixed fCraft getting confused if worlds.xml contains duplicates.
*Fix: Fixed block bindings not being applied to drawing commands.
Fix: Fixed "/" (repeat last command) not rewinding the command, which caused some issues with command arguments.
*Fix: Fixed fCraft getting confused if worlds.xml contains duplicates.
Fix: Fixed "Max connections per IP" setting not saving in ConfigTool.
*Fix: Fixed "/" (repeat last command) not rewinding the command, which caused some issues with command arguments.
Fix: Fixed AnnounceRankChangeReasons checkbox being erroneously tied to RequireRankChangeReasons key in ConfigTool.
*Fix: Fixed "Max connections per IP" setting not saving in ConfigTool.
Fix: Added some missing tooltips to ConfigTool.
*Fix: Fixed AnnounceRankChangeReasons checkbox being erroneously tied to RequireRankChangeReasons key in ConfigTool.
Fix: Marked 10.0.0.0/8 IP range as LAN.
*Fix: Added some missing tooltips to ConfigTool.
Fix: Fixed an issue with balanced name verification (thanks wootalyzer).
*Fix: Marked 10.0.0.0/8 IP range as LAN.
Fix: Fixed server announcing hidden players' departure (#3292633). Thanks to Hellenion.
*Fix: Fixed an issue with balanced name verification (thanks wootalyzer).
Fix: Fixed /bring not checking per-rank permissions (#3292303). Thanks to Denny
*Fix: Fixed server announcing hidden players' departure (#3292633). Thanks to Hellenion.
Fix: Fixed some header bugs in the D3 map converter.
*Fix: Fixed /bring not checking per-rank permissions (#3292303). Thanks to Denny
Fix: Fixed /wload crashing instead of printing an error message under Mono if the path was malformed.
*Fix: Fixed some header bugs in the D3 map converter.
Fix: Fixed /banip not recognizing invalid IPs (e.g. broadcast).
*Fix: Fixed /wload crashing instead of printing an error message under Mono if the path was malformed.
Fix: Fixed antispam resetting players' mute time.
*Fix: Fixed /banip not recognizing invalid IPs (e.g. broadcast).
Fix: Fixed Scheduler being able to add tasks after the shutdown process started.
*Fix: Fixed antispam resetting players' mute time.
Fix: Reduced problems associated with players trying to connect while the server is shutting down.
*Fix: Fixed Scheduler being able to add tasks after the shutdown process started.
Fix: Added autorank.xml to the list of protected files.
*Fix: Reduced problems associated with players trying to connect while the server is shutting down.
Fix: Fixed a crash in backup system that happened if two backups ran simultaneously and the total size or number of backup files was limited.
*Fix: Added autorank.xml to the list of protected files.
Fix: Fixed a case where duplicate worlds could be created.
*Fix: Fixed a crash in backup system that happened if two backups ran simultaneously and the total size or number of backup files was limited.
Change: When players rejoin a world (e.g. /wflush or /wload), "joined world" message is no longer shown.
*Fix: Fixed a case where duplicate worlds could be created.
Change: /mute no longer allows shortening players' mute time, only to extend it.
*Change: When players rejoin a world (e.g. /wflush or /wload), "joined world" message is no longer shown.
Change: Allowed player names with periods.
*Change: /mute no longer allows shortening players' mute time, only to extend it.
Change: Removed SaveOnShutdown config key, tweaked range checks on some keys, grouped key tags into section tags.
*Change: Allowed player names with periods.
Change: When saving config.xml, keys with default values are now commented out.
*Change: Removed SaveOnShutdown config key, tweaked range checks on some keys, grouped key tags into section tags.
API: New events! PlayerHideChanged, PlayerInfoCreating, PlayerInfoCreated, PlayerInfoRankChanging, and PlayerInfoRankChanged.
*Change: When saving config.xml, keys with default values are now commented out.
API: Server.StartServer() now throws specific exceptions on failure, instead of returning false.
*API: New events! PlayerHideChanged, PlayerInfoCreating, PlayerInfoCreated, PlayerInfoRankChanging, and PlayerInfoRankChanged.
API: Removed some obsolete Server events.
*API: Server.StartServer() now throws specific exceptions on failure, instead of returning false.
API: Switched to 100% Utc dates/times internally. PlayerDB now uses UTC Unix timestamps to serialize all dates/times.
*API: Removed some obsolete Server events.
Optimization: Sped up map generation.
*API: Switched to 100% Utc dates/times internally. PlayerDB now uses UTC Unix timestamps to serialize all dates/times.
Optimization: Reduced PlayerDB saving interval, reduced PlayerDB filesize, reduced CPU and memory use of PlayerDB saving, reduced memory footprint of loaded PlayerDB, improved IPAddress lookup performance in PlayerDB.
*Optimization: Sped up map generation.
*Optimization: Reduced PlayerDB saving interval, reduced PlayerDB filesize, reduced CPU and memory use of PlayerDB saving, reduced memory footprint of loaded PlayerDB, improved IPAddress lookup performance in PlayerDB.


===0.522===
===0.522===
Feature: Added more functionality to hollow ellipsoid and sphere, thanks to Redshift. Now it is possible to define outer/inner blocktypes.
''16 April 2011 - r546''
Feature: Added OptiCraft map format support, courtesy of LgZ-optical
*Feature: Added more functionality to hollow ellipsoid and sphere, thanks to Redshift. Now it is possible to define outer/inner blocktypes.
Fix: Fixed a serious error that caused a crash when main world became full. This bug affected 0.520 and 0.521.
*Feature: Added OptiCraft map format support, courtesy of LgZ-optical
Fix: Fixed AutoLauncher not working under Mono (thanks to ven000m for spotting).
*Fix: Fixed a serious error that caused a crash when main world became full. This bug affected 0.520 and 0.521.
Fix: Fixed "Add World" dialog crashing if closed while generating a world.
*Fix: Fixed AutoLauncher not working under Mono (thanks to ven000m for spotting).
Fix: Fixed /restart using ShutdownReason.ShuttingDown (instead of ShutdownReason.Restarting)  
*Fix: Fixed "Add World" dialog crashing if closed while generating a world.
Fix: Fixed a crash in ConfigTool if MaxPlayers was set to be less than MaxPlayersPerWorld.
*Fix: Fixed /restart using ShutdownReason.ShuttingDown (instead of ShutdownReason.Restarting)  
Fix: When loading old configs (pre-0.520), MaxPlayersPerWorld is automatically set to match MaxPlayers, to avoid unexpected side effects.
*Fix: Fixed a crash in ConfigTool if MaxPlayers was set to be less than MaxPlayersPerWorld.
API: Added WorldCreating and WorldCreated events.
*Fix: When loading old configs (pre-0.520), MaxPlayersPerWorld is automatically set to match MaxPlayers, to avoid unexpected side effects.
API: Moved world-related commands from Server to a new class, WorldManager.
*API: Added WorldCreating and WorldCreated events.
API: Renamed RankList to RankManager, and CommandList to CommandManager, for consistency.
*API: Moved world-related commands from Server to a new class, WorldManager.
*API: Renamed RankList to RankManager, and CommandList to CommandManager, for consistency.


===0.521===
===0.521===
Feature: Added a /clear command, to clear in-game chat. Also works from fCraftConsole and fCraftUI.
''12 April 2011 - r534''
Fix: Added missing chat commands.
*Feature: Added a /Clear command, to clear in-game chat. Also works from fCraftConsole and fCraftUI.
Fix: Cosmetic fixes in /zremove.
*Fix: Added missing chat commands.
*Fix: Cosmetic fixes in /ZRemove.


===0.520===
===0.520===
Feature: Removed the server-wide 128 player limit. Now the limit is per-world.
''12 April 2011 - r532''
Feature: You can now repeat the last command by typing "/"
*Feature: Removed the server-wide 128 player limit. Now the limit is per-world.
Feature: Added a way to use color codes in chat (with % instead of &), a UseColorCodes permission, and a /colors command.
*Feature: You can now repeat the last command by typing "/"
Feature: Added support for multi-line messages or commands. Add " /" to the end of a line to continue typing it.
*Feature: Added a way to use color codes in chat (with % instead of &), a UseColorCodes permission, and a /colors command.
Feature: Added "/commands", to replace "/help commands". It allows filtering commands by rank, category, permissions, etc. Aliases: /cmdlist, /cmds
*Feature: Added support for multi-line messages or commands. Add " /" to the end of a line to continue typing it.
Feature: New permissions: ViewPlayerIPs, BringAll
*Feature: Added "/commands", to replace "/help commands". It allows filtering commands by rank, category, permissions, etc. Aliases: /cmdlist, /cmds
Feature: New config switches: AnnounceRankChangeReasons and RequireKickReason.
*Feature: New permissions: ViewPlayerIPs, BringAll
Feature: Replaced LimitOneConnectionPerIP config key (boolean) with a more flexible MaxConnectionsPerIP (int).
*Feature: New config switches: AnnounceRankChangeReasons and RequireKickReason.
Feature: Added /bringall command, for moving everyone (or only certain ranks) from your world (or optionally all worlds, or a list of other worlds) to your location.
*Feature: Replaced LimitOneConnectionPerIP config key (boolean) with a more flexible MaxConnectionsPerIP (int).
Feature: /bring can be limited per-rank
*Feature: Added /bringall command, for moving everyone (or only certain ranks) from your world (or optionally all worlds, or a list of other worlds) to your location.
Feature: When file is not found on case-sensitive filesystems, fCraft tries to syggest similar filenames.
*Feature: /bring can be limited per-rank
Feature: Added new constants to use in greeting.txt: {TIME}, {PLAYER_NAME}, {WORLD}, {PLAYERS}, {WORLDS}, {MOTD}
*Feature: When file is not found on case-sensitive filesystems, fCraft tries to syggest similar filenames.
Feature: Improved compatibility with SurvivalTest clients.
*Feature: Added new constants to use in greeting.txt: {TIME}, {PLAYER_NAME}, {WORLD}, {PLAYERS}, {WORLDS}, {MOTD}
Fix: Fixed /banip not kicking other players from the same IP (besides the named player)
*Feature: Improved compatibility with SurvivalTest clients.
Fix: Added missing blocktype validation to MapFCMv2, MapFCMv3, MapMyne, and MapNBT.
*Fix: Fixed /banip not kicking other players from the same IP (besides the named player)
Fix: Fixed a rare shutdown crash in fCraftUI.
*Fix: Added missing blocktype validation to MapFCMv2, MapFCMv3, MapMyne, and MapNBT.
Fix: Improved the way PlayerDB.Load handles errors in individual records. A single corrupted entry will no longer prevent the rest from loading.
*Fix: Fixed a rare shutdown crash in fCraftUI.
Fix: Fixed fCraftUI abruptly quitting on crash / failure to start, instead of showing the error message. Use "--exitoncrash" command-line switch to reproduce old behavior.
*Fix: Improved the way PlayerDB.Load handles errors in individual records. A single corrupted entry will no longer prevent the rest from loading.
Fix: Fixed ConfigTool's World tab not prompting to delete map files when deleting worlds.
*Fix: Fixed fCraftUI abruptly quitting on crash / failure to start, instead of showing the error message. Use "--exitoncrash" command-line switch to reproduce old behavior.
Fix: Fixed a bug in MCSharp importer (#3281305)
*Fix: Fixed ConfigTool's World tab not prompting to delete map files when deleting worlds.
Fix: Fixed a list of permissions in /rinfo not being sorted.
*Fix: Fixed a bug in MCSharp importer (#3281305)
Fix: Fixed /mute rank limit dropdown sometimes getting out of sync.
*Fix: Fixed a list of permissions in /rinfo not being sorted.
Fix: Fixed IRC bot redundantly announcing kicks when someone has been banned.
*Fix: Fixed /mute rank limit dropdown sometimes getting out of sync.
Fix: Fixed a bug where fCraft would fail to start if PlayerDB.txt was truncated/empty.
*Fix: Fixed IRC bot redundantly announcing kicks when someone has been banned.
Change: Moved "IP" config key from General to Advanced.
*Fix: Fixed a bug where fCraft would fail to start if PlayerDB.txt was truncated/empty.
Change: Added /spin as an alias to /rotate (for MCLawl users)
*Change: Moved "IP" config key from General to Advanced.
API: New events: PlayerClicking, PlayerClicked, PlayerPlacingBlock, PlayerPlacedBlock, PlayerListChanged, PlayerBeingKicked, PlayerKicked
*Change: Added /spin as an alias to /rotate (for MCLawl users)
Optimization: Reduced CPU use of draw commands by ~30%. Sped up PlayerDB loading by ~8%, and reduced memory use when saving. Also reduced PlayerDB filesize by about 15%
*API: New events: PlayerClicking, PlayerClicked, PlayerPlacingBlock, PlayerPlacedBlock, PlayerListChanged, PlayerBeingKicked, PlayerKicked
*Optimization: Reduced CPU use of draw commands by ~30%. Sped up PlayerDB loading by ~8%, and reduced memory use when saving. Also reduced PlayerDB filesize by about 15%


===0.512===
===0.512===
Feature: /zones can now be used from console, and can be used on any world (active or inactive).
''2 April 2011 - r508''
Feature: Improved D3 map importer.
*Feature: /zones can now be used from console, and can be used on any world (active or inactive).
Fix: Added missing filename sanity/safety checks to /dumpstats (#3267362, thanks to Hellenion)
*Feature: Improved D3 map importer.
Fix: Fixed mixed up messages shown in /waccess and /wbuild (#3179189)
*Fix: Added missing filename sanity/safety checks to /dumpstats (#3267362, thanks to Hellenion)
Fix: Fixed crash reports sometimes failing to submit.
*Fix: Fixed mixed up messages shown in /waccess and /wbuild (#3179189)
Fix: Fixed /dumpstats crashing if a rank had 0 players.
*Fix: Fixed crash reports sometimes failing to submit.
Fix: Made Mono version detection less crashy (#3267476, thanks to Hellenion again)
*Fix: Fixed /dumpstats crashing if a rank had 0 players.
Fix: Fixed MapUtility.LoadHeader terminating early, before going through all fallback converters.
*Fix: Made Mono version detection less crashy (#3267476, thanks to Hellenion again)
Fix: Fixed ConfigTool tab order.
*Fix: Fixed MapUtility.LoadHeader terminating early, before going through all fallback converters.
Fix: Fixed fCraft reporting inaccurate CPU usage figures.
*Fix: Fixed ConfigTool tab order.
Fix: Fixed a NullReferenceException in /rank if an invalid player name was given.
*Fix: Fixed fCraft reporting inaccurate CPU usage figures.
Fix: Fixed fCraft project not building under Windows if path contains spaces.
*Fix: Fixed a NullReferenceException in /rank if an invalid player name was given.
Change: Added "/serverreport" as an alias for "/sinfo"
*Fix: Fixed fCraft project not building under Windows if path contains spaces.
Change: Improved the way fCraft handles and reports map loading errors.
*Change: Added "/serverreport" as an alias for "/sinfo"
API Change: Moved all filename constants (e.g. "PlayerDB.txt") to Paths class.
*Change: Improved the way fCraft handles and reports map loading errors.
*API Change: Moved all filename constants (e.g. "PlayerDB.txt") to Paths class.


===0.511===
===0.511===
Feature: Further improvements to Mono support. fCraft will now utilize mono-sgen whenever possible.
''31 March 2011 - r497''
Fix: Fixed fCraftUI ignoring command-line arguments.
*Feature: Further improvements to Mono support. fCraft will now utilize mono-sgen whenever possible.
Fix: Fixed broken /paste and /pastenot volume checks.
*Fix: Fixed fCraftUI ignoring command-line arguments.
Fix: Fixed crash reports failing to submit.
*Fix: Fixed broken /paste and /pastenot volume checks.
Fix: Fixed a timezone-related bug that messed up players' "total time on server" stat.
*Fix: Fixed crash reports failing to submit.
Change: Added a warning if running on old versions of Mono (2.6 or lower).  
*Fix: Fixed a timezone-related bug that messed up players' "total time on server" stat.
*Change: Added a warning if running on old versions of Mono (2.6 or lower).  


===0.510_r489===
===0.510_r489===
Fix: Fixed unnecessary GDI+ dependence in fCraftConsole under Mono
''29 March 2011 - r489''
Fix: Fixed EnumKeyAttribute not taking blank values (as in case of ProcessPriority config key).
*Fix: Fixed unnecessary GDI+ dependence in fCraftConsole under Mono
*Fix: Fixed EnumKeyAttribute not taking blank values (as in case of ProcessPriority config key).


===0.510===
===0.510===
Feature: The fCraft updater has been rewritten and expanded. It now works under all OSes, and provides more features.
''29 March 2011 - r488''
Feature: fCraft now handles differences between case-sensitive and case-insensitive filesystems much better. /wrename and /wload are also aware of the filesystem.
*Feature: The fCraft updater has been rewritten and expanded. It now works under all OSes, and provides more features.
Feature: fCraft now checks presence, filename capitalization, and integrity of all map files on the world list at startup.
*Feature: fCraft now handles differences between case-sensitive and case-insensitive filesystems much better. /wrename and /wload are also aware of the filesystem.
Feature: New ConfigTool settings for updater, checkbox for showing "player connected/left" messages, and "/mute" permission settings.
*Feature: fCraft now checks presence, filename capitalization, and integrity of all map files on the world list at startup.
Feature: Added "/credits" command to ConfigUI.
*Feature: New ConfigTool settings for updater, checkbox for showing "player connected/left" messages, and "/mute" permission settings.
Feature: Implemented "--norestart" and "--exitoncrash" command-line switches for fCraft.
*Feature: Added "/credits" command to ConfigUI.
Feature: fCraft event system is being rewritten with modding support in mind.
*Feature: Implemented "--norestart" and "--exitoncrash" command-line switches for fCraft.
Feature: Improved MCSharp/MCZall/MCLawl map support.
*Feature: fCraft event system is being rewritten with modding support in mind.
Fix: Software errors that happen while parsing player and console commands will no longer cause disconnects/crashes.
*Feature: Improved MCSharp/MCZall/MCLawl map support.
Fix: IPBanList will attempt to recover records lost due to a recent regression in 0.505.
*Fix: Software errors that happen while parsing player and console commands will no longer cause disconnects/crashes.
Fix: Fixed /wrename errors in cases where names differ only in capitalization.
*Fix: IPBanList will attempt to recover records lost due to a recent regression in 0.505.
Fix: Fixed "Copy Existing World" showing the current world on the list in AddWorldPopup.
*Fix: Fixed /wrename errors in cases where names differ only in capitalization.
Fix: Fixed "Chat" tab preview not updating when settings are reset.
*Fix: Fixed "Copy Existing World" showing the current world on the list in AddWorldPopup.
Fix: Fixed per-world whitelist/blacklist not saving when worlds are edited with AddWorldPopup.
*Fix: Fixed "Chat" tab preview not updating when settings are reset.
Fix: Fixed non-verified connections that get kicked from affecting that name's PlayerInfo.
*Fix: Fixed per-world whitelist/blacklist not saving when worlds are edited with AddWorldPopup.
Fix: Server.GenerateSalt() now uses a cryptographically secure PRNG.
*Fix: Fixed non-verified connections that get kicked from affecting that name's PlayerInfo.
Fix: Fixed verification problems on servers with HeartbeatEnabled=false.
*Fix: Server.GenerateSalt() now uses a cryptographically secure PRNG.
Fix: Fixed a wrong message being shown by /rank if the target is already same or higher/lower rank.
*Fix: Fixed verification problems on servers with HeartbeatEnabled=false.
Fix: Fixed /winfo showing incorrect information for last lock/unlock event.
*Fix: Fixed a wrong message being shown by /rank if the target is already same or higher/lower rank.
Fix: Fixed tabbing order on ConfigUI.
*Fix: Fixed /winfo showing incorrect information for last lock/unlock event.
Fix: Improved the way Server.InitLibrary and Logger.Log errors are handled.
*Fix: Fixed tabbing order on ConfigUI.
Fix: Added missing validation checks to LoadHeader in several map converters.
*Fix: Improved the way Server.InitLibrary and Logger.Log errors are handled.
Fix: Fixed players being able to complete a draw command or /zadd, if they were demoted before clicking for the second time.
*Fix: Added missing validation checks to LoadHeader in several map converters.
Fix: Added missing /paste and /pastenot volume checks.
*Fix: Fixed players being able to complete a draw command or /zadd, if they were demoted before clicking for the second time.
Fix: Fixed a bug in /zinfo that showed incorrect creation/editing times.
*Fix: Added missing /paste and /pastenot volume checks.
Fix: Better error messages for unrecognized block names in command parameters.
*Fix: Fixed a bug in /zinfo that showed incorrect creation/editing times.
Fix: /restart now works from ConfigUI under Mono (but still broken in fCraftConsole).
*Fix: Better error messages for unrecognized block names in command parameters.
Fix: Fixed handling of command-line arguments surrounded with quotes.
*Fix: /restart now works from ConfigUI under Mono (but still broken in fCraftConsole).
Fix: Fixed a bug at ConfigTool.ConfigUI.xAllowSecurityCircumvention_CheckedChanged (#3181907, thanks to clhdrums87).
*Fix: Fixed handling of command-line arguments surrounded with quotes.
Fix: Fixed /winfo counting hidden players (#3237877, thanks to Hellenion).
*Fix: Fixed a bug at ConfigTool.ConfigUI.xAllowSecurityCircumvention_CheckedChanged (#3181907, thanks to clhdrums87).
Fix: Fixed MCSharp map exporter mixing up map dimensions (#3159501, thanks to dogwatch).
*Fix: Fixed /winfo counting hidden players (#3237877, thanks to Hellenion).
Change: Improved the way fCraft project is built. Now all binaries are copied to /trunk/bin/Release or /trunk/bin/Debug.
*Fix: Fixed MCSharp map exporter mixing up map dimensions (#3159501, thanks to dogwatch).
Change: Improved error tolerance of Scheduler.EndShutdown().
*Change: Improved the way fCraft project is built. Now all binaries are copied to /trunk/bin/Release or /trunk/bin/Debug.
Change: Expanded Logger.CheckForCommonErrors().
*Change: Improved error tolerance of Scheduler.EndShutdown().
Change: Renamed config keys (old ones can still be loaded): IRCBot to IRCBotEnabled, AutomaticUpdates to UpdaterMode.
*Change: Expanded Logger.CheckForCommonErrors().
Change: Added /wadd as an alias for /wload.
*Change: Renamed config keys (old ones can still be loaded): IRCBot to IRCBotEnabled, AutomaticUpdates to UpdaterMode.
Change: Renamed Mcc namespace to fCraft.MapConversion.
*Change: Added /wadd as an alias for /wload.
Change: Decreased timeout for fCraft update check.
*Change: Renamed Mcc namespace to fCraft.MapConversion.
Change: Added a confirmation prompt to /rank when adding an unrecognized player name to the database.
*Change: Decreased timeout for fCraft update check.
Optimization: Sped up heartbeat sending and world-related operations, increased world saving interval to 90 seconds, reduced per-player idle CPU usage, halved CPU usage of draw commands.
*Change: Added a confirmation prompt to /rank when adding an unrecognized player name to the database.
*Optimization: Sped up heartbeat sending and world-related operations, increased world saving interval to 90 seconds, reduced per-player idle CPU usage, halved CPU usage of draw commands.


===0.506===
===0.506===
Feature: Added hollow ellipsoid drawing (/eh) and hollow sphere drawing (/sph), contributed by Conrad "Redshift" Morgan.
''11 February 2011 - r427''
Fix: Fixed a regression in 0.503 that caused some IP ban records to be lost. I am terribly sorry!
*Feature: Added hollow ellipsoid drawing (/eh) and hollow sphere drawing (/sph), contributed by Conrad "Redshift" Morgan.
Fix: Fixed a path-related error in Map.SaveBackup
*Fix: Fixed a regression in 0.503 that caused some IP ban records to be lost. I am terribly sorry!
Fix: Fixed a possible disconnect in Player.CheckBlockSpam is antigrief was not configured properly.
*Fix: Fixed a path-related error in Map.SaveBackup
Fix: Fixed a bug in ConfigTool.SaveWorldList.
*Fix: Fixed a possible disconnect in Player.CheckBlockSpam is antigrief was not configured properly.
Fix: Fixed "Limit the number of blocks that can be undone" checkbox misbehaving (thanks to ven000m for bug report).
*Fix: Fixed a bug in ConfigTool.SaveWorldList.
Change: By popular demand /sphere2 is now the default behavior of /sphere.
*Fix: Fixed "Limit the number of blocks that can be undone" checkbox misbehaving (thanks to ven000m for bug report).
Change: Removed "oldSalt" check for name verification, to avoid having the server write to config.xml unnecessarily.
*Change: By popular demand /sphere2 is now the default behavior of /sphere.
Change: Removed ".backup" file creation, by popular demand. It was kinda useless.
*Change: Removed "oldSalt" check for name verification, to avoid having the server write to config.xml unnecessarily.
*Change: Removed ".backup" file creation, by popular demand. It was kinda useless.


===0.505===
===0.505===
Feature: All draw commands now inform player if any blocks were skipped due to local permission issues (e.g. zones).
''8 February 2011 - r422''
Fix: Fixed a regression that caused backups to be saved in the wrong path. Backups were being saved to ./backups/ instead of ./maps/backups/
*Feature: All draw commands now inform player if any blocks were skipped due to local permission issues (e.g. zones).
Fix: Fixed a permission issue in /replace and /replacenot.
*Fix: Fixed a regression that caused backups to be saved in the wrong path. Backups were being saved to ./backups/ instead of ./maps/backups/
Fix: Fixed /info not displaying a list of players from same IP.
*Fix: Fixed a permission issue in /replace and /replacenot.
Fix: Addressed a security issue with salt generation.
*Fix: Fixed /info not displaying a list of players from same IP.
*Fix: Addressed a security issue with salt generation.


===0.504===
===0.504===
Fixed a crash bug related to SecurityController.MinRank
''3 February 2011 - r419''
*Fixed a crash bug related to SecurityController.MinRank


===0.503===
===0.503===
Feature: Added /deafen command. It temporarily blocks all incoming messages (makes you go "deaf"), to allow taking screenshots, recording videos, or just playing without the wall of text.
''3 February 2011 - r418''
Feature: Added ShowBannedConnectionMessages config key (default: true). When disabled, no "banned player tried to log in" messages are shown.
*Feature: Added /deafen command. It temporarily blocks all incoming messages (makes you go "deaf"), to allow taking screenshots, recording videos, or just playing without the wall of text.
Fix: Fixed PlayerInfo.frozenOn not being set.
*Feature: Added ShowBannedConnectionMessages config key (default: true). When disabled, no "banned player tried to log in" messages are shown.
Fix: Fixed kick messages for players affected by /banall
*Fix: Fixed PlayerInfo.frozenOn not being set.
Fix: Fixed /unbanall reason not being shown.
*Fix: Fixed kick messages for players affected by /banall
Fix: /where now shows what world you are on.
*Fix: Fixed /unbanall reason not being shown.
Fix: Fixed a couple minor bugs in /waccess and /wbuild.
*Fix: /where now shows what world you are on.
Fix: Fixed a NullReferenceException in SecurityController constructor.
*Fix: Fixed a couple minor bugs in /waccess and /wbuild.
Fix: Made several tweaks to improve the first-run experience.
*Fix: Fixed a NullReferenceException in SecurityController constructor.
*Fix: Made several tweaks to improve the first-run experience.


===0.502===
===0.502===
Fix: Adjusted for yet another change in the way minecraft.net replies to heartbeats (should fix all heartbeat issues for now).
''31 January 2011 - r411''
Fix: Added a check to /zremove to prevent players from deleting zones to gain access to areas from which they're barred.
*Fix: Adjusted for yet another change in the way minecraft.net replies to heartbeats (should fix all heartbeat issues for now).
Fix: Fixed being able to use /me or /staff to write empty messages.
*Fix: Added a check to /zremove to prevent players from deleting zones to gain access to areas from which they're barred.
Fix: Fixed frozen players not getting defrosted when kicked.
*Fix: Fixed being able to use /me or /staff to write empty messages.
Fix: Formatting fixes in "___ was previously frozen" message
*Fix: Fixed frozen players not getting defrosted when kicked.
Fix: Fixed a mini-bug in Map.ValidateHeader()
*Fix: Formatting fixes in "___ was previously frozen" message
Change: Renamed /wremove to /wunload for consistency. "/wremove" is still usable as an alias.
*Fix: Fixed a mini-bug in Map.ValidateHeader()
*Change: Renamed /wremove to /wunload for consistency. "/wremove" is still usable as an alias.


===0.501===
===0.501===
Feature: Added /sphere and /sphere2, based on code contributed by SystemX17.
''30 January 2011 - r408''
Feature: Added new config setting: ShowConnectedMessages (default: true)
*Feature: Added /sphere and /sphere2, based on code contributed by SystemX17.
Feature: Added a notification for players who logged in frozen.
*Feature: Added new config setting: ShowConnectedMessages (default: true)
Fix: Fixed frozen players twitching.
*Feature: Added a notification for players who logged in frozen.
Fix: Fixed IRC bot not stripping color codes in messages relayed from IRC to the game.
*Fix: Fixed frozen players twitching.
Fix: Fixed lastSeen and lastLoginDate not being set for first-time players who failed to log in (e.g. IP-banned).
*Fix: Fixed IRC bot not stripping color codes in messages relayed from IRC to the game.
Fix: Fixed /bring not working properly on frozen players.
*Fix: Fixed lastSeen and lastLoginDate not being set for first-time players who failed to log in (e.g. IP-banned).
Fix: Fixed a case where it was possible to add access restrictions to main map.
*Fix: Fixed /bring not working properly on frozen players.
Fix: Fixed per-world whitelists/blacklists being lost when editing worlds.xml via ConfigTool.
*Fix: Fixed a case where it was possible to add access restrictions to main map.
Fix: Fixed AutoRankAll showing wrong number of players promoted/demoted (just a formatting bug, no promotions were affected)
*Fix: Fixed per-world whitelists/blacklists being lost when editing worlds.xml via ConfigTool.
*Fix: Fixed AutoRankAll showing wrong number of players promoted/demoted (just a formatting bug, no promotions were affected)


===0.500===
===0.500===
Commands: Added /line drawing command, kindly contributed by SystemX17
''25 January 2011 - r399''
Commands: Added /restart command, to restart the server remotely (NOTE: does not work for fCraftWinService yet)
*Commands: Added /line drawing command, kindly contributed by SystemX17
Commands: Added /unmute command (same as "/mute name 0")
*Commands: Added /restart command, to restart the server remotely (NOTE: does not work for fCraftWinService yet)
Commands: Added an option to silently hide (no disconnect/connect message).
*Commands: Added /unmute command (same as "/mute name 0")
Commands: Added /ignore and /unignore commands to block chat from another player (for the duration of your visit).
*Commands: Added an option to silently hide (no disconnect/connect message).
Commands: /whide and /wunhide commands added to hide/unhide worlds from the list.
*Commands: Added /ignore and /unignore commands to block chat from another player (for the duration of your visit).
Commands: /worlds now takes an optional param: "/worlds all" lists visible+hidden worlds, and "/worlds hidden" lists hidden worlds only.
*Commands: /whide and /wunhide commands added to hide/unhide worlds from the list.
Commands: List of player names from the same IP is now shown in /info.
*Commands: /worlds now takes an optional param: "/worlds all" lists visible+hidden worlds, and "/worlds hidden" lists hidden worlds only.
Commands: /help now shows what rank you need to be to use a command (for most commands).
*Commands: List of player names from the same IP is now shown in /info.
Commands: /bring now works on frozen players.
*Commands: /help now shows what rank you need to be to use a command (for most commands).
Commands: /bring now takes an optional second name/parameter, to teleport someone to someone
*Commands: /bring now works on frozen players.
Commands: /info now shows whether a player is hidden (if the command caller has permission to see).
*Commands: /bring now takes an optional second name/parameter, to teleport someone to someone
Commands: Fixed a case where teleporting to a player who is currently changing worlds brings one to a wrong location.
*Commands: /info now shows whether a player is hidden (if the command caller has permission to see).
Commands: Fixed bindings (/water, /lava, /solid, and /bind) not being applied to draw commands.
*Commands: Fixed a case where teleporting to a player who is currently changing worlds brings one to a wrong location.
Commands: /wsave and /gen can now create directories if needed.
*Commands: Fixed bindings (/water, /lava, /solid, and /bind) not being applied to draw commands.
Commands: Fixed a bug in /roll
*Commands: /wsave and /gen can now create directories if needed.
Commands: Sped up /paste, /pastenot, /replace, and /replacenot slightly.
*Commands: Fixed a bug in /roll
ConfigTool: New "Chat" tab for controlling appearance and content of in-game chat.
*Commands: Sped up /paste, /pastenot, /replace, and /replacenot slightly.
ConfigTool: Added ability to customize MeColor (for /me messages, default: purple) and WarningColor (for major errors/warnings, default: red) in config.
*ConfigTool: New "Chat" tab for controlling appearance and content of in-game chat.
ConfigTool: AddWorldPopup can now show detailed info for maps of all supported formats.
*ConfigTool: Added ability to customize MeColor (for /me messages, default: purple) and WarningColor (for major errors/warnings, default: red) in config.
ConfigTool: Improved tooltips for several items in ConfigUI.
*ConfigTool: AddWorldPopup can now show detailed info for maps of all supported formats.
FrontEnd: Uncaught exceptions that happen while executing commands from fCraftUI console are now handled by the crash reporter (instead of actually crashing).
*ConfigTool: Improved tooltips for several items in ConfigUI.
FrontEnd: Added /clear command for fCraftUI and fCraftConsole - clears log screen.
*FrontEnd: Uncaught exceptions that happen while executing commands from fCraftUI console are now handled by the crash reporter (instead of actually crashing).
FrontEnd: The URL is no longer highlighted after first heartbeat, to avoid stealing focus from console.
*FrontEnd: Added /clear command for fCraftUI and fCraftConsole - clears log screen.
Generator: Fixed "flatgrass" template
*FrontEnd: The URL is no longer highlighted after first heartbeat, to avoid stealing focus from console.
Generator: Fixed alphabetical order in the list of templates
*Generator: Fixed "flatgrass" template
Generator: MapGenerator now embeds generation parameters into the map file metadata
*Generator: Fixed alphabetical order in the list of templates
Generator: Fixed several template loading bugs.
*Generator: MapGenerator now embeds generation parameters into the map file metadata
Generator: Optimized AddBeaches to be about 2x faster
*Generator: Fixed several template loading bugs.
Generator: Added a missing dimension check to /gen
*Generator: Optimized AddBeaches to be about 2x faster
IRC: Messages relayed from game to IRC now have color codes preserved.
*Generator: Added a missing dimension check to /gen
IRC: Kicks, Bans, unbans, promotions, and demotions can now be relayed to IRC.
*IRC: Messages relayed from game to IRC now have color codes preserved.
IRC: IRC bot now relays /say messages, and /me messages (both /me on IRC and /me on the server).
*IRC: Kicks, Bans, unbans, promotions, and demotions can now be relayed to IRC.
IRC: IRC Error handling is greatly improved.
*IRC: IRC bot now relays /say messages, and /me messages (both /me on IRC and /me on the server).
IRC: (Threaded) If one of the bots loses connection, one of the other bots take over parsing input.
*IRC: IRC Error handling is greatly improved.
IRC: Increased IRC reconnect delay to 15 seconds.
*IRC: (Threaded) If one of the bots loses connection, one of the other bots take over parsing input.
Maps: Switched to a new file format (FCMv3) that allows for future additions like block tracking and physics.
*IRC: Increased IRC reconnect delay to 15 seconds.
Maps: Much of MCC (map conversion) API was rewritten for better consistency and performance.
*Maps: Switched to a new file format (FCMv3) that allows for future additions like block tracking and physics.
Maps: Improved support for loading indev (pre-infinite) maps, including Omen-generated maps.
*Maps: Much of MCC (map conversion) API was rewritten for better consistency and performance.
Maps: Improved resilience for loading maps with unknown blocktypes. Instead of failing, it just replaces any unknown blocks with air.
*Maps: Improved support for loading indev (pre-infinite) maps, including Omen-generated maps.
Maps: Added consistent header validation to all map format loaders.
*Maps: Improved resilience for loading maps with unknown blocktypes. Instead of failing, it just replaces any unknown blocks with air.
Maps: Fixed maps not autosaving when zones are added or removed.
*Maps: Added consistent header validation to all map format loaders.
Maps: Zone definitions are now serialized to XML. Zones saved with this revision of fCraft will no longer be readable by older version of fCraft.
*Maps: Fixed maps not autosaving when zones are added or removed.
Maps: Fixed a bug when loading JTE's format maps.
*Maps: Zone definitions are now serialized to XML. Zones saved with this revision of fCraft will no longer be readable by older version of fCraft.
Maps: Fixed format of backup filenames.
*Maps: Fixed a bug when loading JTE's format maps.
PlayerDB: Added new fields: bannedUntil, frozenOn, frozenBy, mutedUntil, mutedBy, IRCPassword, online, leaveReason
*Maps: Fixed format of backup filenames.
PlayerDB: Fixed PlayerInfo.ID not being assigned for new players until sever restart / DB reload.
*PlayerDB: Added new fields: bannedUntil, frozenOn, frozenBy, mutedUntil, mutedBy, IRCPassword, online, leaveReason
PlayerDB: Fixed off-by-one error with PlayerInfo.timesVisited
*PlayerDB: Fixed PlayerInfo.ID not being assigned for new players until sever restart / DB reload.
PlayerDB: Fixed /me, /say, rank chat, and /staff not counting towards PlayerInfo.linesWritten
*PlayerDB: Fixed off-by-one error with PlayerInfo.timesVisited
PlayerDB: Made PlayerDB more resilient to errors. Reduced filesize slightly by omitting default values for more date fields, and removing milliseconds from "totalTime"
*PlayerDB: Fixed /me, /say, rank chat, and /staff not counting towards PlayerInfo.linesWritten
PlayerDB: Improved forwards compatibility of PlayerDB by removing maximum-field-count check.
*PlayerDB: Made PlayerDB more resilient to errors. Reduced filesize slightly by omitting default values for more date fields, and removing milliseconds from "totalTime"
Security: Worlds can now have player whitelists and blacklists (just like zones) for access and build permissions.
*PlayerDB: Improved forwards compatibility of PlayerDB by removing maximum-field-count check.
Security: Added a security check to /wsave, /wload, and /gen to prevent reading or overwriting files outside the map folder.
*Security: Worlds can now have player whitelists and blacklists (just like zones) for access and build permissions.
Security: Added a per-rank security option to prevent players from whitelisting themselves, removing themselves from blacklists, or lowering their rank's restrictions on worlds and zones.
*Security: Added a security check to /wsave, /wload, and /gen to prevent reading or overwriting files outside the map folder.
Security: /mute and /freeze are now persistent even if the player reconnects.
*Security: Added a per-rank security option to prevent players from whitelisting themselves, removing themselves from blacklists, or lowering their rank's restrictions on worlds and zones.
Security: Relaxed SetTile packet checks. Players will no longer be kicked due to Minecraft client bugs.
*Security: /mute and /freeze are now persistent even if the player reconnects.
Security: Fixed an exploit that allowed changing steps to doublesteps even inside zoned areas.
*Security: Relaxed SetTile packet checks. Players will no longer be kicked due to Minecraft client bugs.
Security: Improved consistency of permission dependencies.
*Security: Fixed an exploit that allowed changing steps to doublesteps even inside zoned areas.
Security: Fixed a security exploit in /wmain that allowed players with ManageWorlds permission to gain access to restricted worlds.
*Security: Improved consistency of permission dependencies.
Security: Fixed a bug that prevented banning players who were not yet in PlayerDB.
*Security: Fixed a security exploit in /wmain that allowed players with ManageWorlds permission to gain access to restricted worlds.
Security: Added an option to only allow paid players (PaidPlayersOnly)
*Security: Fixed a bug that prevented banning players who were not yet in PlayerDB.
Stability: Made crash reporting more reliable. A failed crash report will no longer prevent error message from being logged and displayed.
*Security: Added an option to only allow paid players (PaidPlayersOnly)
Stability: Fixed a crash in AddWorldPopup if dialog is closed while a map is still loading.
*Stability: Made crash reporting more reliable. A failed crash report will no longer prevent error message from being logged and displayed.
Stability: To improve compatibility with some bots, removed "almost there..." message on the loading screen
*Stability: Fixed a crash in AddWorldPopup if dialog is closed while a map is still loading.
Stability: Disabled error reporting of common non-fCraft-related errors (like wrong runtime versions, or wrong Mono permissions).
*Stability: To improve compatibility with some bots, removed "almost there..." message on the loading screen
Stability: Added "libMonoPosixHelper.so" and "UnauthorizedAccessException" to Logger.CheckForCommonErrors, and made "Could not load file or assembly" check locale-independent.
*Stability: Disabled error reporting of common non-fCraft-related errors (like wrong runtime versions, or wrong Mono permissions).
Stability: A backup file is now created whenever PlayerDB, IP ban list, config, or world list are saved (e.g. PlayerDB.txt.backup)
*Stability: Added "libMonoPosixHelper.so" and "UnauthorizedAccessException" to Logger.CheckForCommonErrors, and made "Could not load file or assembly" check locale-independent.
Stability: Crash reporter now sends last 25 lines of the log.
*Stability: A backup file is now created whenever PlayerDB, IP ban list, config, or world list are saved (e.g. PlayerDB.txt.backup)
Stability: Added a fallback overload for Player.Message() that bypasses string format, to make the whole thing less prone to format errors.
*Stability: Crash reporter now sends last 25 lines of the log.
System: fCraft now takes command-line arguments (at startup) to override the following:
*Stability: Added a fallback overload for Player.Message() that bypasses string format, to make the whole thing less prone to format errors.
- working directory (--path=/your/path/here)
*System: fCraft now takes command-line arguments (at startup) to override the following:
- log directory (--logpath=/your/path/here)
**working directory (--path=/your/path/here)
- map directory (--logpath=/your/path/here) - also overridable in a more user-friendly way via ConfigTool (MapPath key)
**log directory (--logpath=/your/path/here)
- config file location (--config=/your/path/and/filename.xml)
**map directory (--logpath=/your/path/here) - also overridable in a more user-friendly way via ConfigTool (MapPath key)
System: Added an option to change the name of Console pseudoplayer in the config.
**config file location (--config=/your/path/and/filename.xml)
System: Player.GetClassyName() and PlayerInfo.GetClassyName() now add an asterisk after banned players' names
*System: Added an option to change the name of Console pseudoplayer in the config.
System: Fixed hidden players remaining hidden in some cases.
*System: Player.GetClassyName() and PlayerInfo.GetClassyName() now add an asterisk after banned players' names
System: Fixed PacketWriter.MakeWrappedMessage ignoring uppercase hex colorcodes
*System: Fixed hidden players remaining hidden in some cases.
System: Implemented NoPartialPositionUpdates and RelayAllUpdates config keys.
*System: Fixed PacketWriter.MakeWrappedMessage ignoring uppercase hex colorcodes
System: Several little glitches and inefficiencies fixed in movement handling code.
*System: Implemented NoPartialPositionUpdates and RelayAllUpdates config keys.
System: Fixed "player connected" and other messages showing up too early in-game (before map loaded).
*System: Several little glitches and inefficiencies fixed in movement handling code.
System: Fixed kick message for players affected by /banall
*System: Fixed "player connected" and other messages showing up too early in-game (before map loaded).
System: Added HeartbeatEnabled config key (default: true)
*System: Fixed kick message for players affected by /banall
System: Fixed a case where heartbeat could be sent from a different IP than the listening port on systems with multiple NICs/IPs and no configured static IP.
*System: Added HeartbeatEnabled config key (default: true)
System: Increased the write buffer for writing out PlayerDB, reducing I/O time by ~20% on .NET, and ~35% on Mono
*System: Fixed a case where heartbeat could be sent from a different IP than the listening port on systems with multiple NICs/IPs and no configured static IP.
System: New Scheduler API.
*System: Increased the write buffer for writing out PlayerDB, reducing I/O time by ~20% on .NET, and ~35% on Mono
System: Modified /wload to avoid loading the map twice in case confirmation is needed.
*System: New Scheduler API.
System: Changes to AutoRankEnabled will now be applied when /reloadconfig is called.
*System: Modified /wload to avoid loading the map twice in case confirmation is needed.
System: Fixed unnecessary confirmation being asked when world name matches file name in /wload
*System: Changes to AutoRankEnabled will now be applied when /reloadconfig is called.
System: Eliminated the heartbeat thread by switching to async i/o.
*System: Fixed unnecessary confirmation being asked when world name matches file name in /wload
System: Improved startup and shutdown speed.
*System: Eliminated the heartbeat thread by switching to async i/o.
System: Added a "how to promote yourself" message for fresh installations of fCraft.
*System: Improved startup and shutdown speed.
System: Fixed Server.OnPlayerDisconnected event firing for unregistered sessions.
*System: Added a "how to promote yourself" message for fresh installations of fCraft.
System: Made Color.Parse() and Color.GetName() translate fCraft-specific color assignments (e.g "&S" for "System")
*System: Fixed Server.OnPlayerDisconnected event firing for unregistered sessions.
System: Added better detection for SMP/Alpha clients trying to connect.
*System: Made Color.Parse() and Color.GetName() translate fCraft-specific color assignments (e.g "&S" for "System")
System: Sped up AutoRankAll
*System: Added better detection for SMP/Alpha clients trying to connect.
*System: Sped up AutoRankAll


=0.4xx=
=0.4xx=
===0.499===
===0.499===
Feature: Added an option to disable name verification for players connecting from LAN.
''6 November 2010 - r311''
Feature: Added 'flat' template to MapGenerator, allowing to make flat maps with any theme.
*Feature: Added an option to disable name verification for players connecting from LAN.
Feature: Added 'grass' pseudotheme to /gen command, which is basically the 'Forest' theme with trees disabled.
*Feature: Added 'flat' template to MapGenerator, allowing to make flat maps with any theme.
Fix: Fixed /wflush leaving ghosts/clones behind.
*Feature: Added 'grass' pseudotheme to /gen command, which is basically the 'Forest' theme with trees disabled.
Fix: Fixed muted players being able to use /say and /staff
*Fix: Fixed /wflush leaving ghosts/clones behind.
Fix: Fixed /baninfo ignoring permission checks.
*Fix: Fixed muted players being able to use /say and /staff
Fix: Fixed "draw limit" checkbox getting disabled in ConfigTool if a player had 'CopyAndPaste' permission but no 'Draw' permission.
*Fix: Fixed /baninfo ignoring permission checks.
Fix: Fixed several off-by-1 errors involving random number generation, notably in MapGenerator and Server.GenerateSalt()
*Fix: Fixed "draw limit" checkbox getting disabled in ConfigTool if a player had 'CopyAndPaste' permission but no 'Draw' permission.
Fix: Fixed potential crash in MapGenerator.SealLiquids
*Fix: Fixed several off-by-1 errors involving random number generation, notably in MapGenerator and Server.GenerateSalt()
Fix: Fixed a potential crash in Map.SaveBackup() if the map filename contained brackets.
*Fix: Fixed potential crash in MapGenerator.SealLiquids
Fix: Fixed a forced disconnect when trying to feed /gen a theme or template with brackets in the name.
*Fix: Fixed a potential crash in Map.SaveBackup() if the map filename contained brackets.
*Fix: Fixed a forced disconnect when trying to feed /gen a theme or template with brackets in the name.


===0.498===
===0.498===
Change: Disabled zlib support due to more potential memory leaks. fffuuuuu....
''4 November 2010 - r308''
Fix: Fixed Island, Bay, and Ice templates broken by the last patch.
*Change: Disabled zlib support due to more potential memory leaks. fffuuuuu....
Fix: MapGeneratorArgs: snowTransition was interpreted as absolute (instead of relative) altitude, and marbledHeightmap incorrectly defaulted to 'true'.
*Fix: Fixed Island, Bay, and Ice templates broken by the last patch.
Change: Updated readme and changelog.
*Fix: MapGeneratorArgs: snowTransition was interpreted as absolute (instead of relative) altitude, and marbledHeightmap incorrectly defaulted to 'true'.
*Change: Updated readme and changelog.


===0.497===
===0.497===
Feature: Added accurate progress reporting from MapGenerator. Coming soon: cancellation.
''4 November 2010 - r306''
Feature: New MapGenerator options: BeachHeight, CliffSmoothing, LandSlope, UnderwaterSlope, MaxHeightVariation, MaxDepthVariation.
*Feature: Added accurate progress reporting from MapGenerator. Coming soon: cancellation.
Feature: Added UI controls for snow/cliff/beach settings to AddWorldPopup.
*Feature: New MapGenerator options: BeachHeight, CliffSmoothing, LandSlope, UnderwaterSlope, MaxHeightVariation, MaxDepthVariation.
Feature: Added a list of popular IRC networks to ConfigTool.
*Feature: Added UI controls for snow/cliff/beach settings to AddWorldPopup.
Change: Improved PlayerDB lookup performance by reducing locking.
*Feature: Added a list of popular IRC networks to ConfigTool.
Fix: Fixed MapGenerator calculating slope incorrectly at the water boundary.
*Change: Improved PlayerDB lookup performance by reducing locking.
Fix: Fixed "Add Ore" requiring "Add Caves" in MapGenerator.
*Fix: Fixed MapGenerator calculating slope incorrectly at the water boundary.
Fix: Fixed water/lava caves not sealing liquids properly.  
*Fix: Fixed "Add Ore" requiring "Add Caves" in MapGenerator.
Change: Set MapGenerator to default to 256x256x96
*Fix: Fixed water/lava caves not sealing liquids properly.  
Change: AddWorldPopup Generator tab layout overhaul
*Change: Set MapGenerator to default to 256x256x96
Change: Organized MapGeneratorArgs and added serialization/deserialization for all the new options.
*Change: AddWorldPopup Generator tab layout overhaul
*Change: Organized MapGeneratorArgs and added serialization/deserialization for all the new options.


===0.496===
===0.496===
Fix: Fixed File.Replace() failing if fCraft was set up on a partition/volume other than the one where temp folder is.
''3 November 2010 - r301''
Fix: Added missing tooltip for "Edit Greeting"
*Fix: Fixed File.Replace() failing if fCraft was set up on a partition/volume other than the one where temp folder is.
Fix: Fixed /sinfo including hidden players in the player count.
*Fix: Added missing tooltip for "Edit Greeting"
*Fix: Fixed /sinfo including hidden players in the player count.


===0.495===
===0.495===
Feature: Added a way to edit the greeting message, by editing "greeting.txt"
''2 November 2010 - r300''
Feature: When a player gets banned, any previously-banned accounts from same IP are listed.
*Feature: Added a way to edit the greeting message, by editing "greeting.txt"
Fix: Fixed renaming worlds from ConfigTool's "worlds" tab not always working.
*Feature: When a player gets banned, any previously-banned accounts from same IP are listed.
Fix: Fixed several filesystem-related errors on non-Windows systems by using Path.Combine() instead of string concatenation.
*Fix: Fixed renaming worlds from ConfigTool's "worlds" tab not always working.
Fix: Possible workaround for missing heartbeats.
*Fix: Fixed several filesystem-related errors on non-Windows systems by using Path.Combine() instead of string concatenation.
Fix: Fixed detached "default build rank" controls in ConfigTools.
*Fix: Possible workaround for missing heartbeats.
Fix: Fixed overwrite confirmation popping up for /wload when loading map into an unloaded world with the same name.
*Fix: Fixed detached "default build rank" controls in ConfigTools.
Fix: Fixed a case where Forester could get into an infinite loop when there's not enough room to place requested number of trees.
*Fix: Fixed overwrite confirmation popping up for /wload when loading map into an unloaded world with the same name.
*Fix: Fixed a case where Forester could get into an infinite loop when there's not enough room to place requested number of trees.


===0.494===
===0.494===
Feature: New map generator features:
''31 October 2010 - r297''
  - Adjustable water level.
*Feature: New map generator features:
  - Realistic trees (powered by Forester)
**Adjustable water level.
  - Snow on mountaintops
**Realistic trees (powered by Forester)
  - Realistic cliffs
**Snow on mountaintops
  - Beaches
**Realistic cliffs
  - New template (peninsula) and theme (swamp).
**Beaches
  - Option to delay heightmap bias until after marbling/inversion.
**New template (peninsula) and theme (swamp).
Feature: Added a way to load .mine maps.
**Option to delay heightmap bias until after marbling/inversion.
Feature: Added confirmation for potentially destructive commands: /importranks, /importbans, /massrank, /wload overwrites, /gen overwrites, /wsave overwrites, /zremove.
*Feature: Added a way to load .mine maps.
Feature: Added /staff chat and ReadStaffChat permission.
*Feature: Added confirmation for potentially destructive commands: /importranks, /importbans, /massrank, /wload overwrites, /gen overwrites, /wsave overwrites, /zremove.
Feature: Added wireframe cuboid (/cw)
*Feature: Added /staff chat and ReadStaffChat permission.
Feature: Added an optional second param for /ch (cuboid hollow) that specifies the blocktype of the "filling".
*Feature: Added wireframe cuboid (/cw)
Feature: Added a way to specify default build permission for new worlds.
*Feature: Added an optional second param for /ch (cuboid hollow) that specifies the blocktype of the "filling".
Fix: Fixed /info, /baninfo, and /banip not handling players whose name contain only digits.
*Feature: Added a way to specify default build permission for new worlds.
Fix: Fixed DoChangeRank mixing up RankChangeType.
*Fix: Fixed /info, /baninfo, and /banip not handling players whose name contain only digits.
Fix: Added missing fields to MapGeneratorArgs serializer.
*Fix: Fixed DoChangeRank mixing up RankChangeType.
Fix: Fixed per-rank draw limits not being calculated correctly in some cases.
*Fix: Added missing fields to MapGeneratorArgs serializer.
Fix: Replaced File.Delete/File.Move calls with a more reliable File.Replace call. This should slightly improve reliability of map/playerdb.txt/ipbans.txt/worlds.xml saving.
*Fix: Fixed per-rank draw limits not being calculated correctly in some cases.
Fix: Fixed a little ConfigTool bug that did not properly reset PatrolledRank after a rank deletion.
*Fix: Replaced File.Delete/File.Move calls with a more reliable File.Replace call. This should slightly improve reliability of map/playerdb.txt/ipbans.txt/worlds.xml saving.
Fix: Fixed terminal colors not resetting in fCraftConsole after a fatal crash under Mono.
*Fix: Fixed a little ConfigTool bug that did not properly reset PatrolledRank after a rank deletion.
Fix: Fixed detached "Play" button in fCraftUI.
*Fix: Fixed terminal colors not resetting in fCraftConsole after a fatal crash under Mono.
Fix: Added some basic error reporting to fCraftWinService.
*Fix: Fixed detached "Play" button in fCraftUI.
Change: Tweaked AddWorldPopup layout to accommodate more options.
*Fix: Added some basic error reporting to fCraftWinService.
*Change: Tweaked AddWorldPopup layout to accommodate more options.


===0.493===
===0.493===
Feature: /info now supports autocompletion, wildcards, and IP search.
''27 October 2010 - r290''
Feature: Experimental service wrapper for fCraft.
*Feature: /info now supports autocompletion, wildcards, and IP search.
Feature: Added more editable properties to /setinfo: RankChangeType, BanReason, UnbanReason, RankChangeReason, LastKickReason
*Feature: Experimental service wrapper for fCraft.
Feature: Various improvements to /info, including hide-aware "online" indicator.
*Feature: Added more editable properties to /setinfo: RankChangeType, BanReason, UnbanReason, RankChangeReason, LastKickReason
Feature: Made Player.NoAccessMessage() print the minimum required rank, instead of just permission name(s).
*Feature: Various improvements to /info, including hide-aware "online" indicator.
Feature: Added wootalyzer's chunk rendering code to IsoCat.
*Feature: Made Player.NoAccessMessage() print the minimum required rank, instead of just permission name(s).
Fix: Fixed ConfigTool not taking advantage of ZLibStream  
*Feature: Added wootalyzer's chunk rendering code to IsoCat.
Fix: Fixed a very improbable case of a thread getting spinlocked when calling IRC.Send() is preemptied, and if there are at least 2 IRC threads.
*Fix: Fixed ConfigTool not taking advantage of ZLibStream  
Fix: Fixed kick packets occasionally not being delivered due to a missing Flush() - thanks to wootalyzer for catching.
*Fix: Fixed a very improbable case of a thread getting spinlocked when calling IRC.Send() is preemptied, and if there are at least 2 IRC threads.
Fix: Excluded banned and inactive players from DumpStats
*Fix: Fixed kick packets occasionally not being delivered due to a missing Flush() - thanks to wootalyzer for catching.
Fix: Fixed PlayerDB.Save() not escaping LastKickReason  
*Fix: Excluded banned and inactive players from DumpStats
Fix: Cleaned up extra messages sent by /unhide.
*Fix: Fixed PlayerDB.Save() not escaping LastKickReason  
Fix: Fixed LastSeen not updating on-login (only on-logout).
*Fix: Cleaned up extra messages sent by /unhide.
Fix: Improved the way fCraft checks for ghost/leftover sessions. Thanks to wootalyzer.
*Fix: Fixed LastSeen not updating on-login (only on-logout).
Fix: If a player's name starts with a number, and you try to /tp to a coordinate that starts with the same number, you are no longer teleported to that player instead.
*Fix: Improved the way fCraft checks for ghost/leftover sessions. Thanks to wootalyzer.
Fix: Fixed hidden players being detectable by checking LastSeen in /info.
*Fix: If a player's name starts with a number, and you try to /tp to a coordinate that starts with the same number, you are no longer teleported to that player instead.
Fix: To avoid performance degradation, GC calls have been centralized, delayed, limited to 1/minute, and moved to the tasks thread.
*Fix: Fixed hidden players being detectable by checking LastSeen in /info.
Fix: Added delay between recurring calls to PlayerDB.Save, AutoRankAll, and DoGC - to balance load.
*Fix: To avoid performance degradation, GC calls have been centralized, delayed, limited to 1/minute, and moved to the tasks thread.
Fix: Fixed rankChangeType not being updated.
*Fix: Added delay between recurring calls to PlayerDB.Save, AutoRankAll, and DoGC - to balance load.
Fix: Fixed some typos reported by tvc.  
*Fix: Fixed rankChangeType not being updated.
Change: Added "/uf" as an alias for "/unfreeze", by popular demand.  
*Fix: Fixed some typos reported by tvc.  
Change: Modified PlayerDB not to use ReaderWriterLockSlim, to avoid Mono issues with recursion.
*Change: Added "/uf" as an alias for "/unfreeze", by popular demand.  
Change: Renamed /editplayerinfo to /setinfo
*Change: Modified PlayerDB not to use ReaderWriterLockSlim, to avoid Mono issues with recursion.
Change: Made enum values in AutoRank (CriterionType, ConditionField, ComparisonOperation, ConditionScopeType, RankChangeType) case-insensitive.
*Change: Renamed /editplayerinfo to /setinfo
Change: Added a reference to /baninfo in /info
*Change: Made enum values in AutoRank (CriterionType, ConditionField, ComparisonOperation, ConditionScopeType, RankChangeType) case-insensitive.
Change: Made DetectMovementPacketSpam warn players instead of kicking.
*Change: Added a reference to /baninfo in /info
*Change: Made DetectMovementPacketSpam warn players instead of kicking.


===0.492===
===0.492===
Feature: Added EditPlayerDB permission. This permission affects the upcoming AutoRank commands, /editplayerinfo, and ability to promote/demote/ban unrecognized players.
''19 October 2010 - r280''
Feature: When you kick a player, you are now shown the number of kicks they already have.
*Feature: Added EditPlayerDB permission. This permission affects the upcoming AutoRank commands, /editplayerinfo, and ability to promote/demote/ban unrecognized players.
Feature: More stats are now logged! RankType, TimeSinceLastKick, LastSeen, BlocksDrawn, LastKickBy, LastKickReason.
*Feature: When you kick a player, you are now shown the number of kicks they already have.
Feature: Added "MaxUndo" config key for changing the default undo limit of 2,000,000 blocks per player.
*Feature: More stats are now logged! RankType, TimeSinceLastKick, LastSeen, BlocksDrawn, LastKickBy, LastKickReason.
Feature: /info command is augmented with new stats (if available).
*Feature: Added "MaxUndo" config key for changing the default undo limit of 2,000,000 blocks per player.
Fix: Fixed ellipsoid command calculating volume incorrectly for draw limit checks.
*Feature: /info command is augmented with new stats (if available).
Fix: Fixed overflowing color code in "Player logged in from an IP previously used by banned players" message.
*Fix: Fixed ellipsoid command calculating volume incorrectly for draw limit checks.
Fix: Fixed PM recipient's name not getting logged properly.
*Fix: Fixed overflowing color code in "Player logged in from an IP previously used by banned players" message.
Fix: Previously-unseen players no longer have their FirstLoginDate, LastLoginDate, or TimesVisited set.
*Fix: Fixed PM recipient's name not getting logged properly.
Fix: /importranks now works correctly on players who are online at the time of import.
*Fix: Previously-unseen players no longer have their FirstLoginDate, LastLoginDate, or TimesVisited set.
Change: Added block aliases by popular demand: "bedrock" as an alias for admincrete, "cotton" as alias for "white", and "aire" as alias for "air"
*Fix: /importranks now works correctly on players who are online at the time of import.
Change: PlayerDB.txt format changes:
*Change: Added block aliases by popular demand: "bedrock" as an alias for admincrete, "cotton" as alias for "white", and "aire" as alias for "air"
  - MaxFieldCount raised to 36
*Change: PlayerDB.txt format changes:
  - New fields added: UID (Int32), RankChangeType (enum, serialized as Int32), LastKickDate (DateTime), LastSeen (DateTime), BlocksDrawn (Int64), LastKickBy (string), LastKickReason (string).
**MaxFieldCount raised to 36
  - RankChangeBy, BannedBy, UnbannedBy, BanReason, UnbanReason, and RankChangeReason now default to empty string instead of "-" or null.
**New fields added: UID (Int32), RankChangeType (enum, serialized as Int32), LastKickDate (DateTime), LastSeen (DateTime), BlocksDrawn (Int64), LastKickBy (string), LastKickReason (string).
  - If LastIP==IPAddress.None, empty string is saved instead of "255.255.255.255".
**RankChangeBy, BannedBy, UnbannedBy, BanReason, UnbanReason, and RankChangeReason now default to empty string instead of "-" or null.
  - DateTime and TimeSpan format shortened to exclude microseconds. See PlayerDB.ToCompactString() for details.
**If LastIP==IPAddress.None, empty string is saved instead of "255.255.255.255".
Change: AutoRank improvements (disabled in stable builds):
**DateTime and TimeSpan format shortened to exclude microseconds. See PlayerDB.ToCompactString() for details.
  - Added /editplayerinfo command for easy editing of PlayerDB.
*Change: AutoRank improvements (disabled in stable builds):
  - Made AutoRank check players in-login (to accelerate promotion).
**Added /editplayerinfo command for easy editing of PlayerDB.
  - AutoRank now runs on a scheduler.
**Made AutoRank check players in-login (to accelerate promotion).
  - Fixed ConditionPreviousRank crash for played with default rank.
**AutoRank now runs on a scheduler.
  - Fixed banned players getting promoted by AutoRank.
**Fixed ConditionPreviousRank crash for played with default rank.
  - Fixed several serialization/loading issues in AutoRank.
**Fixed banned players getting promoted by AutoRank.
  - New fields added to ConditionIntRange: LastSeen, BlocksDrawn, TimeSinceRankChange, TimeSinceLastKick
**Fixed several serialization/loading issues in AutoRank.
  - ConditionRankStatus renamed to ConditionRankChangeType
**New fields added to ConditionIntRange: LastSeen, BlocksDrawn, TimeSinceRankChange, TimeSinceLastKick
**ConditionRankStatus renamed to ConditionRankChangeType


===0.491===
===0.491===
Feature: Added ability to run multiple parallel IRC bots, to help high-traffic servers deal with IRC lag. This also makes it possible to connect to multiple networks in the future.
''17 October 2010 - r274''
Feature: Added new block aliases, by popular demand: "emerald"=teal, "fuchsia"=magenta, "cloth"=white, "lightgray"=gray, "lightgrey"=gray, "darkgray"=black, "darkgrey"=black, "brass"=gold
*Feature: Added ability to run multiple parallel IRC bots, to help high-traffic servers deal with IRC lag. This also makes it possible to connect to multiple networks in the future.
Fix: Temporarily disabled 64-bit zlib support while I track down memory leaks. Should fix OutOfMemoryException, I'm very sorry about overlooking that.
*Feature: Added new block aliases, by popular demand: "emerald"=teal, "fuchsia"=magenta, "cloth"=white, "lightgray"=gray, "lightgrey"=gray, "darkgray"=black, "darkgrey"=black, "brass"=gold
Fix: Fixed a bug in /info that displayed incorrect "total time on server".
*Fix: Temporarily disabled 64-bit zlib support while I track down memory leaks. Should fix OutOfMemoryException, I'm very sorry about overlooking that.
Fix: Per-rank permission checks for /freeze now apply as intended
*Fix: Fixed a bug in /info that displayed incorrect "total time on server".
Fix: Fixed several improbable (but not impossible) threading deadlocks/crashes. Thanks to wootalyzer for catching these.
*Fix: Per-rank permission checks for /freeze now apply as intended
Change: Added IRCThreads config key (default: 1, allowed range: 1-3)
*Fix: Fixed several improbable (but not impossible) threading deadlocks/crashes. Thanks to wootalyzer for catching these.
*Change: Added IRCThreads config key (default: 1, allowed range: 1-3)


===0.490===
===0.490===
Feature: Testing a new map compressor/decompressor: ZLibStream. It should provide 50-200% speed increase, smaller map sizes, lower bandwidth use, and faster map loading.
''14 October 2010 - r264''
Fix: Fixed /shutdown not waiting the right amount and mixing up seconds/milliseconds.
*Feature: Testing a new map compressor/decompressor: ZLibStream. It should provide 50-200% speed increase, smaller map sizes, lower bandwidth use, and faster map loading.
Fix: Fixed "No world found with the name..." showing player's own name.
*Fix: Fixed /shutdown not waiting the right amount and mixing up seconds/milliseconds.
Fix: Added a fail-safe exception handler to Player.WaitForKick() - a temporary fix.
*Fix: Fixed "No world found with the name..." showing player's own name.
Change: Previous verification salt is now stored, to allow players to validate even right after the server restarts.
*Fix: Added a fail-safe exception handler to Player.WaitForKick() - a temporary fix.
Change: Restructured SVN. Stable code is now always in /trunk/
*Change: Previous verification salt is now stored, to allow players to validate even right after the server restarts.
*Change: Restructured SVN. Stable code is now always in /trunk/


===0.487===
===0.487===
Feature: Added contextual help (tooltips) for all of ConfigTool. Help for "Add World" popup is coming in next version.
''12 October 2010 - r255''
Feature: Added rank limits for Freeze permission
*Feature: Added contextual help (tooltips) for all of ConfigTool. Help for "Add World" popup is coming in next version.
Fix: Fixed /mute being unusable from console.
*Feature: Added rank limits for Freeze permission
Change: Removed ViewOthersInfo requirement from /sinfo
*Fix: Fixed /mute being unusable from console.
Change: Added ViewOthersInfo requirement to /where
*Change: Removed ViewOthersInfo requirement from /sinfo
Change: Improvements to IRC tab layout in ConfigTool.
*Change: Added ViewOthersInfo requirement to /where
*Change: Improvements to IRC tab layout in ConfigTool.


===0.486===
===0.486===
Quick fix for IRC Bot bug that made server unconnectable.
''11 October 2010 - r250''
*Quick fix for IRC Bot bug that made server unconnectable.


===0.485===
===0.485===
Feature: Added optional "delay" parameter to /shutdown (default: 5)
''11 October 2010 - r249''
Feature: World names can now be autocompleted for many commands (like /join and /lock)
*Feature: Added optional "delay" parameter to /shutdown (default: 5)
Fix: Fixed /unhide failing to reveal the player in certain situations.
*Feature: World names can now be autocompleted for many commands (like /join and /lock)
Fix: Fixed /setspawn being usable on players from other worlds.
*Fix: Fixed /unhide failing to reveal the player in certain situations.
Fix: Fixed player names appearing white for all players.
*Fix: Fixed /setspawn being usable on players from other worlds.
Fix: Fixed a recursion loop in NoWorldMessage()
*Fix: Fixed player names appearing white for all players.
Fix: Fixed help entries for /setspawn and /shutdown
*Fix: Fixed a recursion loop in NoWorldMessage()
Fix: Fixed potential crash in Server.Shutdown() if called after failed initialization/startup.
*Fix: Fixed help entries for /setspawn and /shutdown
Fix: Fixed potential deadlock/freeze in fCraftUI on shutdown.
*Fix: Fixed potential crash in Server.Shutdown() if called after failed initialization/startup.
Change: Improved crash reporting for TargetInvokationException and TypeInitializerException errors.
*Fix: Fixed potential deadlock/freeze in fCraftUI on shutdown.
Change: All assemblies are now once again x86/x86_64/IA64 compatible.
*Change: Improved crash reporting for TargetInvokationException and TypeInitializerException errors.
Change: Server.OnPlayerConnected event now supports cancellation.
*Change: All assemblies are now once again x86/x86_64/IA64 compatible.
*Change: Server.OnPlayerConnected event now supports cancellation.


===0.484===
===0.484===
Feature: Added a way for IRC bot to use registered nicknames.
''10 October 2010 - r245''
Feature: /banall-related kicks are now announced in chat.
*Feature: Added a way for IRC bot to use registered nicknames.
Feature: /setspawn now actually changes player's spawn. Also, an optional PlayerName param allows temporarily changing other players' spawn point.
*Feature: /banall-related kicks are now announced in chat.
Feature: Several improvements to /info. Info now shows whether player's nick or IP was banned, and hides undefined information for players who haven't ever logged in.
*Feature: /setspawn now actually changes player's spawn. Also, an optional PlayerName param allows temporarily changing other players' spawn point.
Fix: Fixed crash in ConfigTool if announcements were disabled.
*Feature: Several improvements to /info. Info now shows whether player's nick or IP was banned, and hides undefined information for players who haven't ever logged in.
Fix: Fixed /banall not matching IPs properly, and not counting kicks towards PlayerInfo.
*Fix: Fixed crash in ConfigTool if announcements were disabled.
Fix: Fixed ConfigUI not shutting down properly if Server.Init() or Server.Start() failed.
*Fix: Fixed /banall not matching IPs properly, and not counting kicks towards PlayerInfo.
Fix: Fixed Config.LoadLogOptions() always leaving Debug enabled.
*Fix: Fixed ConfigUI not shutting down properly if Server.Init() or Server.Start() failed.
Fix: Added Process.GetCurrentProcess().Refresh() to ServerInfo to improve accuracy of /sinfo stat reporting.
*Fix: Fixed Config.LoadLogOptions() always leaving Debug enabled.
Fix: Improved /wsave and /wload path handling on non-Windows platforms.
*Fix: Added Process.GetCurrentProcess().Refresh() to ServerInfo to improve accuracy of /sinfo stat reporting.
Fix: Replaced some potentially unsafe string concatenation in Player.Message() with proper formatting.
*Fix: Improved /wsave and /wload path handling on non-Windows platforms.
Fix: Attempting a workaround for Mono memory leak in World.UnloadMap
*Fix: Replaced some potentially unsafe string concatenation in Player.Message() with proper formatting.
Fix: Fixed ranks from pre-0.480 configs being loaded in wrong order. Sorry!
*Fix: Attempting a workaround for Mono memory leak in World.UnloadMap
Change: Added a brief delay before reconnecting IRC bot after getting kicked from a channel.  
*Fix: Fixed ranks from pre-0.480 configs being loaded in wrong order. Sorry!
Change: PlayerDB is now saved every 60 seconds (instead of every 30).
*Change: Added a brief delay before reconnecting IRC bot after getting kicked from a channel.  
Change: Removed unused IRCBotQuitMsg config key, and added IRCRegisteredNick, IRCNickServ, and IRCNickServMessage keys.
*Change: PlayerDB is now saved every 60 seconds (instead of every 30).
Change: Added a popup with crash information to ConfigTool.
*Change: Removed unused IRCBotQuitMsg config key, and added IRCRegisteredNick, IRCNickServ, and IRCNickServMessage keys.
Change: Made announcements disabled by default.
*Change: Added a popup with crash information to ConfigTool.
*Change: Made announcements disabled by default.


===0.483===
===0.483===
Feature: Myne/MyneCraft/Hyvebuild/iCraft maps can now be loaded from ConfigTool's "Add World" dialog.
''8 October 2010 - r242''
Fix: Fixed incorrect range checks for AnnouncementInterval and SaveInterval config keys (thanks to Shcaap for reporting).
*Feature: Myne/MyneCraft/Hyvebuild/iCraft maps can now be loaded from ConfigTool's "Add World" dialog.
Fix: Fixed /hide showing a slightly different "player left" message compared to normal disconnect (thanks to Silverrock for reporting).
*Fix: Fixed incorrect range checks for AnnouncementInterval and SaveInterval config keys (thanks to Shcaap for reporting).
Change: Added MC#-style "/z" alias for cuboid, by popular demand.
*Fix: Fixed /hide showing a slightly different "player left" message compared to normal disconnect (thanks to Silverrock for reporting).
Change: Hidden players can now receive PMs. The sender still gets the "No player found" message, but PMs are actually sent.
*Change: Added MC#-style "/z" alias for cuboid, by popular demand.
*Change: Hidden players can now receive PMs. The sender still gets the "No player found" message, but PMs are actually sent.


===0.482===
===0.482===
Feature: Added new command aliases: "f" for "freeze", and "pat" for "patrol".
''7 October 2010 - r241''
Fix: Fixed typos in mute-related messages.
*Feature: Added new command aliases: "f" for "freeze", and "pat" for "patrol".
Fix: Added missing triggers for OnPlayerListChanged event.
*Fix: Fixed typos in mute-related messages.
Fix: Fixed /reloadconfig not changing several variables (like colors).
*Fix: Added missing triggers for OnPlayerListChanged event.
Fix: Fixed antigrief defaulting to 35/5 (instead of unmetered).
*Fix: Fixed /reloadconfig not changing several variables (like colors).
Fix: Fixed heartbeat counting hidden players.
*Fix: Fixed antigrief defaulting to 35/5 (instead of unmetered).
Fix: Fixed a rare ObjectDisposedException crash on shutdown when running fCraftUI.
*Fix: Fixed heartbeat counting hidden players.
Change: Added a more informative disconnect message to players connecting with Alpha client.
*Fix: Fixed a rare ObjectDisposedException crash on shutdown when running fCraftUI.
Change: Improved the way player disconnects are handled to be more reliable, and to drop disconnected players sooner.
*Change: Added a more informative disconnect message to players connecting with Alpha client.
Change: Improved the way PlayerDB saving is triggered. New schedule reduces overall disk use and reduces possible data loss in case of crashes.
*Change: Improved the way player disconnects are handled to be more reliable, and to drop disconnected players sooner.
*Change: Improved the way PlayerDB saving is triggered. New schedule reduces overall disk use and reduces possible data loss in case of crashes.


===0.481===
===0.481===
Fixed a bug in Rank deserializer that set antiGriefBlock=antiGriefSeconds (messing up antigrief permissions).
''2 October 2010 - r237''
Fixed a few more references to "player class" terminology instead of "rank".
*Fixed a bug in Rank deserializer that set antiGriefBlock=antiGriefSeconds (messing up antigrief permissions).
*Fixed a few more references to "player class" terminology instead of "rank".


===0.480===
===0.480===
Feature: Changed all "player classes" terminology to "ranks" for consistency with other servers. Several commands have been renamed to reflect that: /classes to /ranks, /user to /rank, /class to /rankinfo. All rank-related messages have also been updated.
''2 October 2010 - r236''
Feature: Added "Raise"/"Lower" buttons to Ranks tab in ConfigTool, and made some other adjustments to the tab. You no longer need to assign a "rank" number to reorder ranks.
*Feature: Changed all "player classes" terminology to "ranks" for consistency with other servers. Several commands have been renamed to reflect that: /classes to /ranks, /user to /rank, /class to /rankinfo. All rank-related messages have also been updated.
Fix: Fixed a crash in ConfigTool that happened if classes were added/renamed/deleted while PatrolledClass was not set.
*Feature: Added "Raise"/"Lower" buttons to Ranks tab in ConfigTool, and made some other adjustments to the tab. You no longer need to assign a "rank" number to reorder ranks.
Fix: Improved fCraftUI responsiveness on-startup.
*Fix: Fixed a crash in ConfigTool that happened if classes were added/renamed/deleted while PatrolledClass was not set.
Fix: Fixed several cases of Worlds tab going out-of-sync with the ranks tab.
*Fix: Improved fCraftUI responsiveness on-startup.
Fix: /wremove now always saves the map before unloading.
*Fix: Fixed several cases of Worlds tab going out-of-sync with the ranks tab.
Fix: Fixed Console being affected by chat spam/flood checks.
*Fix: /wremove now always saves the map before unloading.
Fix: Fixed /zinfo not showing any separators between player names.
*Fix: Fixed Console being affected by chat spam/flood checks.
Fix: Fixed an extra comma appearing in the log entries for /replace and /replacenot calls.
*Fix: Fixed /zinfo not showing any separators between player names.
Fix: Fixed Security and IRC tabs not being reset by "Reset All Defaults"
*Fix: Fixed an extra comma appearing in the log entries for /replace and /replacenot calls.
Fix: Fixed bugged error messages in /tp and /bring when world access permission check fails.
*Fix: Fixed Security and IRC tabs not being reset by "Reset All Defaults"
Fix: If any class limits were set to default/"(own class)", the setting is now preserved.
*Fix: Fixed bugged error messages in /tp and /bring when world access permission check fails.
Fix: Fixed a bug that didn't reset Hide limit if it was set to a deleted rank.
*Fix: If any class limits were set to default/"(own class)", the setting is now preserved.
Change: Removed legacy zone loading code for pre-0.420 maps (due to changes in rank definition format).
*Fix: Fixed a bug that didn't reset Hide limit if it was set to a deleted rank.
Change: Added a more informative disconnect message for players trying to connect with Minecraft Alpha clients.
*Change: Removed legacy zone loading code for pre-0.420 maps (due to changes in rank definition format).
Change: Improved rank-based coloring in world list to check both access and build permissions.
*Change: Added a more informative disconnect message for players trying to connect with Minecraft Alpha clients.
Change: Added "/fetch" as alias for /bring, and renamed "/save" to "/wsave".
*Change: Improved rank-based coloring in world list to check both access and build permissions.
Change: Deleted some obsolete/disabled controls from ConfigTool, removed PingInterval config key, and removed placeholder ControlPhysics and AddLandmarks permissions.
*Change: Added "/fetch" as alias for /bring, and renamed "/save" to "/wsave".
Change: Made several changes to improve disconnect detection:
*Change: Deleted some obsolete/disabled controls from ConfigTool, removed PingInterval config key, and removed placeholder ControlPhysics and AddLandmarks permissions.
  - Added occasional pings (every 5 seconds or so, depending on activity/inactivity).
*Change: Made several changes to improve disconnect detection:
  - Reduced socket send/receive timeout from 12 to 10 seconds.
**Added occasional pings (every 5 seconds or so, depending on activity/inactivity).
  - Increased socket polling interval to improve performance.
**Reduced socket send/receive timeout from 12 to 10 seconds.
Change: If a player tries to connect to a server twice, the FIRST connection is dropped instead of the LAST connection.
**Increased socket polling interval to improve performance.
Refactor: Major changes were made to the way ranks are stored, and to RankList (formerly ClassList) API.
*Change: If a player tries to connect to a server twice, the FIRST connection is dropped instead of the LAST connection.
Optimization: Made IsoCat rendering faster, and made draw commands use less CPU.
*Refactor: Major changes were made to the way ranks are stored, and to RankList (formerly ClassList) API.
*Optimization: Made IsoCat rendering faster, and made draw commands use less CPU.


===0.475===
===0.475===
Feature: /ztest now distinguishes between being allowed/denied by rank/class vs by whitelist/blacklist.
''17 September 2010 - r229''
Fix: Fixed being unable to change rank/class restrictions with /zedit
*Feature: /ztest now distinguishes between being allowed/denied by rank/class vs by whitelist/blacklist.
Fix: Fixed a bug that reported wrong average CPU usage
*Fix: Fixed being unable to change rank/class restrictions with /zedit
Fix: Fixed a crash on saving in ConfigTool, related to new PatrolledClass config key.
*Fix: Fixed a bug that reported wrong average CPU usage
*Fix: Fixed a crash on saving in ConfigTool, related to new PatrolledClass config key.


===0.474===
===0.474===
Feature: "/mute" command to temporarily stop players from chatting. A new class permission (Mute) is added, granted to op+ by default.
''16 September 2010 - r228''
Feature: "/shutdown" command to gracefully shutdown the server remotely. A new class permission (ShutdownServer) is added, granted to owner by default.
*Feature: "/mute" command to temporarily stop players from chatting. A new class permission (Mute) is added, granted to op+ by default.
Feature: Added CPU usage information and loaded world count to /sinfo.
*Feature: "/shutdown" command to gracefully shutdown the server remotely. A new class permission (ShutdownServer) is added, granted to owner by default.
Fix: Added a way to edit "PatrolledClass" from ConfigTool.
*Feature: Added CPU usage information and loaded world count to /sinfo.
Fix: Fixed zone whitelist/blacklist not updated correctly when edited.
*Fix: Added a way to edit "PatrolledClass" from ConfigTool.
Fix: Made teleporting to spawn (with /spawn or /tp, no parameters) accessible to all classes.
*Fix: Fixed zone whitelist/blacklist not updated correctly when edited.
Fix: Adjusted for Notch's errors in handling player positions in teleport packets. Slightly improves accuracy of /tp, /bring, initial spawning, /patrol, frozen players, and speedhack detection.
*Fix: Made teleporting to spawn (with /spawn or /tp, no parameters) accessible to all classes.
Fix: Removed "/tp" bounds check when used with typed-in coordinates numbers.
*Fix: Adjusted for Notch's errors in handling player positions in teleport packets. Slightly improves accuracy of /tp, /bring, initial spawning, /patrol, frozen players, and speedhack detection.
Fix: Fixed an extremely unlikely case of PlayerDB/IPBanList overwriting on shutdown if server initialization failed.
*Fix: Removed "/tp" bounds check when used with typed-in coordinates numbers.
Fix: Made "server shutting down" packets deliver more reliably (but still not guaranteed).
*Fix: Fixed an extremely unlikely case of PlayerDB/IPBanList overwriting on shutdown if server initialization failed.
Fix: Fixed Console possibly not seeing hidden players.
*Fix: Made "server shutting down" packets deliver more reliably (but still not guaranteed).
Change: Added a basic file check to AutoLauncher
*Fix: Fixed Console possibly not seeing hidden players.
Change: Added error logging and crash reporting to Server.Shutdown
*Change: Added a basic file check to AutoLauncher
API: Renamed Server.ShutdownStart to Server.ShutdownBegin (for consistency).
*Change: Added error logging and crash reporting to Server.Shutdown
*API: Renamed Server.ShutdownStart to Server.ShutdownBegin (for consistency).


===0.473===
===0.473===
Feature: Added zone coordinates to /zinfo
''15 September 2010 - r227''
Fix: Fixed cross-world /tp teleporting the wrong player.
*Feature: Added zone coordinates to /zinfo
Fix: Fixed odd date formatting in /zinfo
*Fix: Fixed cross-world /tp teleporting the wrong player.
*Fix: Fixed odd date formatting in /zinfo


===0.472===
===0.472===
Feature: Added /cut command
''15 September 2010 - r226''
Feature: Added a new /patrol command. It allows cycling through low-ranked players on a map (with teleportation). The order is determined by how long it's been since someone checked on a player. A "Patrol" permission and "PatrolledClass" config key were added.
*Feature: Added /cut command
Feature: Added a shorthand notation to /zone for making personal zones: "/zone +PlayerName" creates a zone named after the player, with rank limit just above player's, and with player whitelisted.
*Feature: Added a new /patrol command. It allows cycling through low-ranked players on a map (with teleportation). The order is determined by how long it's been since someone checked on a player. A "Patrol" permission and "PatrolledClass" config key were added.
Feature: Zone whitelist/blacklist now support player name autocompletion, and show rank colors.
*Feature: Added a shorthand notation to /zone for making personal zones: "/zone +PlayerName" creates a zone named after the player, with rank limit just above player's, and with player whitelisted.
Fix: Fixed server always binding to IPAddress.Any regardless of config settings.
*Feature: Zone whitelist/blacklist now support player name autocompletion, and show rank colors.
Fix: TP/Bring no longer allow teleporting to hidden players on other worlds.
*Fix: Fixed server always binding to IPAddress.Any regardless of config settings.
Fix: Server.GetPlayerList(string) now stops searching the list when it finds an exact match.
*Fix: TP/Bring no longer allow teleporting to hidden players on other worlds.
Fix: Fixed client-crash in /zedit when changing class.
*Fix: Server.GetPlayerList(string) now stops searching the list when it finds an exact match.
Fix: Fixed possible corruption of edited zones upon map saving.
*Fix: Fixed client-crash in /zedit when changing class.
Fix: Fixed a range of improbable synchronization issues in the way Zone whitelist/blacklist is updated. As a fortunate side-effect, significantly reduced Zone.CanBuild() overhead.
*Fix: Fixed possible corruption of edited zones upon map saving.
Fix: Temporarily added mainThread.Abort() to Server.Shutdown() that's kicked in if mainThread does not stop within 5s of being notified of shutdown. I am investigating the real cause of the hang.
*Fix: Fixed a range of improbable synchronization issues in the way Zone whitelist/blacklist is updated. As a fortunate side-effect, significantly reduced Zone.CanBuild() overhead.
Fix: Fixed hidden players being revealed by promotion/demotion.
*Fix: Temporarily added mainThread.Abort() to Server.Shutdown() that's kicked in if mainThread does not stop within 5s of being notified of shutdown. I am investigating the real cause of the hang.
Change: Added less threatening error messages to IRC bot on network errors (SocketException and IOException).
*Fix: Fixed hidden players being revealed by promotion/demotion.
Change: Disabled movement handling code while changing maps.
*Change: Added less threatening error messages to IRC bot on network errors (SocketException and IOException).
Refactor: Merged StandardCommands and ImportCommands into AdminCommands
*Change: Disabled movement handling code while changing maps.
*Refactor: Merged StandardCommands and ImportCommands into AdminCommands


===0.471===
===0.471===
Feature: Added ability to specify the server's IP (to bind to) manually, for machines with multiple NICs. A new config key "IP" (default: 0.0.0.0/automatic) is added. This will also fix problems with heartbeats being sent from a different IP.
''14 September 2010 - r224''
Fix: Fixed a bug with player ghosts being left behind when switching worlds.
*Feature: Added ability to specify the server's IP (to bind to) manually, for machines with multiple NICs. A new config key "IP" (default: 0.0.0.0/automatic) is added. This will also fix problems with heartbeats being sent from a different IP.
Fix: Fixed a case with kicked players' connections not being terminated at once (thanks to wootalyzer).
*Fix: Fixed a bug with player ghosts being left behind when switching worlds.
Fix: Fixed several bugs in hide/unhide functionality.
*Fix: Fixed a case with kicked players' connections not being terminated at once (thanks to wootalyzer).
Fix: Fixed a rare crash in AddWorldPopup related to missing maps for existing worlds.
*Fix: Fixed several bugs in hide/unhide functionality.
Fix: AddWorldPopup will no longer allow adding a world with a duplicate name.
*Fix: Fixed a rare crash in AddWorldPopup related to missing maps for existing worlds.
Fix: Capped maximum players at the newly-discovered protocol limit of 128 (thanks to wootalyzer).
*Fix: AddWorldPopup will no longer allow adding a world with a duplicate name.
Change: ConfigTool fields now provide better feedback if validation fails.
*Fix: Capped maximum players at the newly-discovered protocol limit of 128 (thanks to wootalyzer).
Change: Changed heartbeat interval to 40 seconds (down from 50).
*Change: ConfigTool fields now provide better feedback if validation fails.
Change: Added a special error handler for rare/impossible case of mainWorld not being joinable.
*Change: Changed heartbeat interval to 40 seconds (down from 50).
Change: Made fatal error messages in fCraftConsole print in red. Better color support coming soon.
*Change: Added a special error handler for rare/impossible case of mainWorld not being joinable.
*Change: Made fatal error messages in fCraftConsole print in red. Better color support coming soon.


===0.470===
===0.470===
Feature: Personal zones - per-zone whitelist and blacklist of individual players. The lists can now be defined with /zadd and edited with /zedit.
''13 September 2010 - r223''
Feature: Added cave/ore generator from Omen (BETA).
*Feature: Personal zones - per-zone whitelist and blacklist of individual players. The lists can now be defined with /zadd and edited with /zedit.
Feature: Added "/maps" and "/levels" as aliases for "/worlds".
*Feature: Added cave/ore generator from Omen (BETA).
Feature: Added a way to limit the "Hide" permission per-class. Now you can specify whom can a class hide from.
*Feature: Added "/maps" and "/levels" as aliases for "/worlds".
Feature: Zones now remember date/time of creation and last edit, and names of original creator and last editor.
*Feature: Added a way to limit the "Hide" permission per-class. Now you can specify whom can a class hide from.
Fix: Unauthorized players can no longer PM or use bring/freeze/unfreeze/kick/tp/where on hidden players. They get the standard "player not found" message.
*Feature: Zones now remember date/time of creation and last edit, and names of original creator and last editor.
Fix: Fixed hidden players being counter towards /players total.
*Fix: Unauthorized players can no longer PM or use bring/freeze/unfreeze/kick/tp/where on hidden players. They get the standard "player not found" message.
Fix: Fixed a potential crash in /wflush when using on unloaded maps.
*Fix: Fixed hidden players being counter towards /players total.
Fix: Doing /banip or /banall on unrecognized players no longer ip-bans 255.255.255.255. Old IPBanList entries relating to 255.255.255.255 will be automatically discarded.
*Fix: Fixed a potential crash in /wflush when using on unloaded maps.
Fix: Fixed /replace command uses not being logged.
*Fix: Doing /banip or /banall on unrecognized players no longer ip-bans 255.255.255.255. Old IPBanList entries relating to 255.255.255.255 will be automatically discarded.
Fix: Fixed /worlds command not showing world count.
*Fix: Fixed /replace command uses not being logged.
Fix: Fixed a client-disconnect when trying to unban a player who is not in the database.
*Fix: Fixed /worlds command not showing world count.
Fix: Fixed "/join PlayerName" not translating to "/tp PlayerName" correctly.
*Fix: Fixed a client-disconnect when trying to unban a player who is not in the database.
Fix: Fixed a very unlikely client-disconnect in ChangeClass if the entered class name contains curved braces.
*Fix: Fixed "/join PlayerName" not translating to "/tp PlayerName" correctly.
Change: Changed default name for "/flip" command to "/mirror", and fixed command's help. Either term still works.
*Fix: Fixed a very unlikely client-disconnect in ChangeClass if the entered class name contains curved braces.
Change: Added more block name aliases:
*Change: Changed default name for "/flip" command to "/mirror", and fixed command's help. Either term still works.
  - Air: delete, erase
*Change: Added more block name aliases:
  - Stone: cement, concrete
**Air: delete, erase
  - Grass: gras (common typo)
**Stone: cement, concrete
  - Obsidian: onyx
**Grass: gras (common typo)
Change: Improved formatting of /players, /worlds, and draw command messages.
**Obsidian: onyx
*Change: Improved formatting of /players, /worlds, and draw command messages.


===0.463===
===0.463===
Fix: Fixed special colors showing up even if ClassColorsInChat is disabled.
''9 September 2010 - r218''
Fix: Fixed potential client-crash in World.SendToAll(), and related client-crash in lock/unlock.
*Fix: Fixed special colors showing up even if ClassColorsInChat is disabled.
*Fix: Fixed potential client-crash in World.SendToAll(), and related client-crash in lock/unlock.


===0.462===
===0.462===
Fix: The "OK" button in AddWorldPopup no longer stays grayed out.
''8 September 2010 - r217''
Fix: Fixed "Error occured while loading" in the file information dialog for non-FCM files.
*Fix: The "OK" button in AddWorldPopup no longer stays grayed out.
Fix: Fixed a crash in /bring when used without any parameters.
*Fix: Fixed "Error occured while loading" in the file information dialog for non-FCM files.
Fix: Fixed Server.UrlEncode not escaping 0x00-0x0F characters properly.
*Fix: Fixed a crash in /bring when used without any parameters.
Change: Slightly reduced default tree density in MapGenerator.
*Fix: Fixed Server.UrlEncode not escaping 0x00-0x0F characters properly.
*Change: Slightly reduced default tree density in MapGenerator.


===0.461===
===0.461===
Feature: New EXPERIMENTAL "/reloadconfig" command, and associated ReloadConfig permission. Use with caution!
''8 September 2010 - r216''
Fix: Fixed a case where AddWorldPopup would allow clicking "OK" with a null map.
*Feature: New EXPERIMENTAL "/reloadconfig" command, and associated ReloadConfig permission. Use with caution!
Fix: Fixed player crash if /freeze or /unfreeze is used without arguments.
*Fix: Fixed a case where AddWorldPopup would allow clicking "OK" with a null map.
Fix: Fixed player crash on FormatException in /zones and Server.ShowPlayerConnectedMessage.
*Fix: Fixed player crash if /freeze or /unfreeze is used without arguments.
Fix: Fixed potential player crash if LimitOneConnectionPerIP is enabled.
*Fix: Fixed player crash on FormatException in /zones and Server.ShowPlayerConnectedMessage.
*Fix: Fixed potential player crash if LimitOneConnectionPerIP is enabled.


===0.460===
===0.460===
Feature: Added ShowPlayerConnectedMessage and ClassColorsInWorldNames settings to config.
''8 September 2010 - r214''
Feature: Added /measure command.
*Feature: Added ShowPlayerConnectedMessage and ClassColorsInWorldNames settings to config.
Feature: Class colors and prefixes are now applied consistently EVERYWHERE.
*Feature: Added /measure command.
Feature: Banned players now see their ban reason/memo when they get kicked.
*Feature: Class colors and prefixes are now applied consistently EVERYWHERE.
Feature: A special error message is shown to players trying to connect with Alpha/SMP client.
*Feature: Banned players now see their ban reason/memo when they get kicked.
Feature: IsoCat (ConfigTool isometric preview) rendering quality improved: better shadows and slight altitude-based gradient.
*Feature: A special error message is shown to players trying to connect with Alpha/SMP client.
Feature: Added new blocktype name aliases: "solid", "golden", "halfstep", "halfblock", "steps".
*Feature: IsoCat (ConfigTool isometric preview) rendering quality improved: better shadows and slight altitude-based gradient.
Feature: Added player count for each class in /classes
*Feature: Added new blocktype name aliases: "solid", "golden", "halfstep", "halfblock", "steps".
Fix: Fixed wrong "MaxBackupsSize" range in ConfigTool.
*Feature: Added player count for each class in /classes
Fix: MaxBackupsSize setting is now applied correctly.
*Fix: Fixed wrong "MaxBackupsSize" range in ConfigTool.
Fix: IRC color codes are now stripped from forwarded messages.
*Fix: MaxBackupsSize setting is now applied correctly.
Fix: IRC bot now uses ServerName for "real name".
*Fix: IRC color codes are now stripped from forwarded messages.
Fix: Formatting improved in many error messages.
*Fix: IRC bot now uses ServerName for "real name".
Fix: Commas in ban/unban/promote/demote reasons no longer cause problems with PlayerDB.
*Fix: Formatting improved in many error messages.
Fix: Removed extra comma from /worlds list that showed in place of hidden/inaccessible worlds.
*Fix: Commas in ban/unban/promote/demote reasons no longer cause problems with PlayerDB.
Change: Added 5-second delay between retries in AutoLauncher
*Fix: Removed extra comma from /worlds list that showed in place of hidden/inaccessible worlds.
Change: "Player connected" message condensed to a single line by absorbing "joined world" message.
*Change: Added 5-second delay between retries in AutoLauncher
Change: Removed ChangeName permission (and the ability to change names) due to possibility of abuse and confusion. Related /nick and /whois commands were also removed.
*Change: "Player connected" message condensed to a single line by absorbing "joined world" message.
Change: /tp can now fall back to behave like /join if player name is not found (for all those times when you mistype /tp instead of /join). Conversely, /join falls back to /tp if player was not found.
*Change: Removed ChangeName permission (and the ability to change names) due to possibility of abuse and confusion. Related /nick and /whois commands were also removed.
Optimization: Reduced bandwidth use with an adaptive movement packet skipping algorithm. Should reduced outbound traffic by at least 15%.
*Change: /tp can now fall back to behave like /join if player name is not found (for all those times when you mistype /tp instead of /join). Conversely, /join falls back to /tp if player was not found.
Optimization: BlockUpdate memory usage slightly reduced.
*Optimization: Reduced bandwidth use with an adaptive movement packet skipping algorithm. Should reduced outbound traffic by at least 15%.
*Optimization: BlockUpdate memory usage slightly reduced.


===0.455===
===0.455===
Feature: AutoLauncher (BETA) allows restarting the fCraftConsole server if it crashed. Although it honestly shouldn't crash at all!
''8 September 2010 - r213''
Fix: Allowed renaming worlds in cases where only capitalization is different.
*Feature: AutoLauncher (BETA) allows restarting the fCraftConsole server if it crashed. Although it honestly shouldn't crash at all!
Fix: If an ip-banned player has more than one connection, all connections are now terminated.
*Fix: Allowed renaming worlds in cases where only capitalization is different.
Fix: Fixed nonrectangular MCSharp maps getting messed up by the loader.
*Fix: If an ip-banned player has more than one connection, all connections are now terminated.
Fix: Increased the default timeout from 10 to 12 seconds, to help people with extremely laggy connections.
*Fix: Fixed nonrectangular MCSharp maps getting messed up by the loader.
Fix: When autocompletion finds more than one player name matching a pattern, server now prints the list of names (instead of "no player found" message) Affects PMs, tp, bring, freeze, unfreeze, kick.
*Fix: Increased the default timeout from 10 to 12 seconds, to help people with extremely laggy connections.
Change: Improved OS detection in crash reporter.
*Fix: When autocompletion finds more than one player name matching a pattern, server now prints the list of names (instead of "no player found" message). Affects PMs, {{cmd|TP}}, {{cmd|Bring}}, {{cmd|Freeze}}, {{cmd|Unfreeze}}, {{cmd|Kick}}.
*Change: Improved OS detection in crash reporter.


===0.454===
===0.454===
Feature: /replace, /replacenot, /paste, and /pastenot can now work with multiple blocks. See /help for details.
*Feature: /replace, /replacenot, /paste, and /pastenot can now work with multiple blocks. See /help for details.
Fix: Replace no longer behaves same as replacenot.
*Fix: Replace no longer behaves same as replacenot.
Fix: Spaces in IRC messages are now preserved.
*Fix: Spaces in IRC messages are now preserved.
Fix: Help entries for paste/pastenot corrected.
*Fix: Help entries for paste/pastenot corrected.
Fix: /cinfo (without parameters) now shows player's own class info.
*Fix: /cinfo (without parameters) now shows player's own class info.


===0.453===
===0.453===
Feature: It is now possible to reverse last /undo (by typing /undo again).
*Feature: It is now possible to reverse last /undo (by typing /undo again).
Change: IRC message colors are applied slightly differently now.
*Change: IRC message colors are applied slightly differently now.
Change: Added more automated crash reporting hooks - to MainLoop and Tasks.
*Change: Added more automated crash reporting hooks - to MainLoop and Tasks.
Change: More help messages improved.
*Change: More help messages improved.
Change: Added a more informative message for people running outdated versions of Mono and .Net runtime.
*Change: Added a more informative message for people running outdated versions of Mono and .Net runtime.
Optimization: Slightly reduced memory usage of /undo, /paste, and PlayerDB.Load()
*Optimization: Slightly reduced memory usage of /undo, /paste, and PlayerDB.Load()


===0.452===
===0.452===
Feature: New /replacenot command allows replacing all blocks EXCEPT the specified one.
*Feature: New /replacenot command allows replacing all blocks EXCEPT the specified one.
Feature: New /flip and /rotate commands to manipulate copied blocks.
*Feature: New /flip and /rotate commands to manipulate copied blocks.
Feature: /players list is now in alphabetical order.
*Feature: /players list is now in alphabetical order.
Fix: Trying to specify an unrecognized block type for draw commands (e.g. "/c ai" instead of "/c air") now shows a proper error message.
*Fix: Trying to specify an unrecognized block type for draw commands (e.g. "/c ai" instead of "/c air") now shows a proper error message.
Fix: Fixed /gen command crashing players if coordinates are typed in before theme/template.
*Fix: Fixed /gen command crashing players if coordinates are typed in before theme/template.
Fix: Fixed /e ellipsoids coming out crooked.
*Fix: Fixed /e ellipsoids coming out crooked.
Fix: "joined for the first time" messages are now shown correctly.
*Fix: "joined for the first time" messages are now shown correctly.
Fix: Fixed /replace not working correctly with /undo
*Fix: Fixed /replace not working correctly with /undo
Fix: Made IRC bot strip nonprintable characters from messages, and ignore empty messages.
*Fix: Made IRC bot strip nonprintable characters from messages, and ignore empty messages.
Fix: World permissions are no longer reset when doing /wload. Also a permission reminder is now shown when creating new worlds.
*Fix: World permissions are no longer reset when doing /wload. Also a permission reminder is now shown when creating new worlds.
Change: Improved some help messages.
*Change: Improved some help messages.
Change: Improved IRC error reporting.
*Change: Improved IRC error reporting.
Change: Added world name back to "Almost there..." join screen.
*Change: Added world name back to "Almost there..." join screen.
Change: /pasteonly is now called /paste, and /paste is now called /pastenot (for consistency with other custom servers)
*Change: /pasteonly is now called /paste, and /paste is now called /pastenot (for consistency with other custom servers)
Optimization: Slightly reduced memory usage of massive drawing commands (over undo limit).
*Optimization: Slightly reduced memory usage of massive drawing commands (over undo limit).


===0.451===
===0.451===
Feature: Improved the way fCraft handles fatal errors (crashes). Crash logs are now created more reliably.
*Feature: Improved the way fCraft handles fatal errors (crashes). Crash logs are now created more reliably.
Feature: Added automated crash reporting to fragmer.net (opt-out).
*Feature: Added automated crash reporting to fragmer.net (opt-out).
Feature: Added an announcement for players logging in from IPs associated with other previously-banned players.
*Feature: Added an announcement for players logging in from IPs associated with other previously-banned players.
Fix: Curved braces - "{}" - in server name no longer cause problems.
*Fix: Curved braces - "{}" - in server name no longer cause problems.
Fix: "Leaving the map" kick disabled temporarily, will be made configurable per-class soon.
*Fix: "Leaving the map" kick disabled temporarily, will be made configurable per-class soon.
Fix: banall/unbanall commands produce less chat spam.
*Fix: banall/unbanall commands produce less chat spam.
Fix: AFK kicks no longer count towards /info number-of-times-kicked.
*Fix: AFK kicks no longer count towards /info number-of-times-kicked.
Change: Added class colors to /info, and fixed formatting bug.
*Change: Added class colors to /info, and fixed formatting bug.
Change: Cleaned up "Advanced" tab in ConfigTool.
*Change: Cleaned up "Advanced" tab in ConfigTool.
  - Removed obsolete config keys: PolicyColorCodesInChat, PolicyIllegalCharacters, and RunOnStartup
**Removed obsolete config keys: PolicyColorCodesInChat, PolicyIllegalCharacters, and RunOnStartup
  - Added SubmitCrashReports and IRCDelay config keys.
**Added SubmitCrashReports and IRCDelay config keys.


===0.450===
===0.450===
Feature: IRC bot rewritten for better performance, flexibility, and safety.
''26 August 2010''
Feature: New IRC options: IRCBotAnnounceIRCJoins and IRCBotAnnounceServerJoins.
*Feature: IRC bot rewritten for better performance, flexibility, and safety.
Fix: Fixed messages containing only a single slash ('/') crashing client thread.
*Feature: New IRC options: IRCBotAnnounceIRCJoins and IRCBotAnnounceServerJoins.
Change: Removed obsolete IRCBotMsgs config key.
*Fix: Fixed messages containing only a single slash ('/') crashing client thread.
Change: Added OnPlayerSentMessage event to Server.
*Change: Removed obsolete IRCBotMsgs config key.
Change: IRC bot's commands (e.g. !status) are temporarily unavailable.
*Change: Added OnPlayerSentMessage event to Server.
*Change: IRC bot's commands (e.g. !status) are temporarily unavailable.


===0.445===
===0.445===
IMPORTANT! Please update ASAP, a security was identified in previous version.
''25 August 2010''
Fix: If you need to start message with a slash, you can now escape the slash (type "//")
*IMPORTANT! Please update ASAP, a security issue was identified in previous version.
Fix: Fixed endless update loop (if automatic updates were enabled)
*Fix: If you need to start message with a slash, you can now escape the slash (type "//")
Fix: Private messages with a space between '@' and the player name now work.
*Fix: Fixed endless update loop (if automatic updates were enabled)
Fix: Hacking-related kicks are not announced globally.
*Fix: Private messages with a space between '@' and the player name now work.
Fix: Fixed "/help" giving wrong message if help entry was not found.
*Fix: Hacking-related kicks are not announced globally.
Change: Minor changes in MapGenerator/Noise
*Fix: Fixed "/help" giving wrong message if help entry was not found.
*Change: Minor changes in MapGenerator/Noise


===0.444===
===0.444===
Feature: New stat command, /sinfo (server info).
''24 August 2010''
Fix: Ban reason/memo now shown for normal bans.
*Feature: New stat command, /sinfo (server info).
Fix: /cinfo for unlimited classes no longer shows "draw limit: 0"
*Fix: Ban reason/memo now shown for normal bans.
Fix: Fixed IRC message colors, and removed IRC color codes from log.
*Fix: /cinfo for unlimited classes no longer shows "draw limit: 0"
*Fix: Fixed IRC message colors, and removed IRC color codes from log.


===0.443===
===0.443===
FEATURE: New /wflush command. It allows finishing all in-progress draw commands at maximum speed (over 100k blocks/second) then forces a map rejoin.
''24 August 2010''
Feature: Added more customization options for colors: PrivateMessageColor and IRCMessageColor in Config.
*FEATURE: New {{cmd|WFlush}} command. It allows finishing all in-progress draw commands at maximum speed (over 100k blocks/second) then forces a map rejoin.
Feature: /players list is now sorted alphabetically.
*Feature: Added more customization options for colors: PrivateMessageColor and IRCMessageColor in Config.
Feature: Added "Check Port" button to ConfigTool to see if port is open. Uses www.utorrent.com/testport
*Feature: {{cmd|Players}} list is now sorted alphabetically.
Feature: Added "Play" button to fCraftUI to open server URL in the browser
*Feature: Added "Check Port" button to ConfigTool to see if port is open. Uses www.utorrent.com/testport
Feature: World names in /worlds list are now colored according to each world's build permission.  
*Feature: Added "Play" button to fCraftUI to open server URL in the browser
Feature: Added speedhack detection & prevention (BETA) and corresponding Permission.UseSpeedHack. All your classes will be granted this permission by default. Edit the config to customize it.
*Feature: World names in {{cmd|Worlds}} list are now colored according to each world's build permission.  
Fix: When using /mark outside of map boundaries, draw limits are no longer calculated incorrectly (thanks to Darnest).
*Feature: Added speedhack detection & prevention (BETA) and corresponding Permission.UseSpeedHack. All your classes will be granted this permission by default. Edit the config to customize it.
Fix: Fixed possible crash in Map.CheckZones() on maps created with /gen
*Fix: When using {{cmd|Mark}} outside of map boundaries, draw limits are no longer calculated incorrectly (thanks to Darnest).
Fix: Fixed compilation issue with "tileset.png" on case-sensitive filesystems.
*Fix: Fixed possible crash in Map.CheckZones() on maps created with {{cmd|Gen}}
Fix: Fixed class-wide messages not wrapping correctly.
*Fix: Fixed compilation issue with "tileset.png" on case-sensitive filesystems.
Optimization: antigrief and antispam checking overhead reduced.
*Fix: Fixed class-wide messages not wrapping correctly.
*Optimization: antigrief and antispam checking overhead reduced.


===0.442===
===0.442===
Fix: Addresses a security issue.
''22 August 2010''
Fix: "OK" button in AddWorldPopup is now always disabled if no map is set.
*Fix: Addresses a security issue.
Fix: "Feature size" label is now updater correctly when map dimensions are changed.
*Fix: "OK" button in AddWorldPopup is now always disabled if no map is set.
Fix: Added missing player notifications for /undo and /cancel commands.
*Fix: "Feature size" label is now updater correctly when map dimensions are changed.
Change: MapGenerator's default map size changed to 128x128x80
*Fix: Added missing player notifications for {{cmd|Undo}} and {{cmd|Cancel}} commands.
*Change: MapGenerator's default map size changed to 128x128x80


===0.441===
===0.441===
Feature: Added cuboid limits to /cinfo
''22 August 2010''
Fix: Fixed a bug in BoundingBox that made /paste and zones behave incorrectly
*Feature: Added cuboid limits to /cinfo
Fix: Fixed ban/unban commands not kicking the player if entered name capitalization did not match actual capitalization
*Fix: Fixed a bug in BoundingBox that made /paste and zones behave incorrectly
Fix: Fixed "flatgrass" being broken when using "/gen"
*Fix: Fixed ban/unban commands not kicking the player if entered name capitalization did not match actual capitalization
Fix: Fixed "/ban" rank checks affecting "/unban"
*Fix: Fixed "flatgrass" being broken when using {{cmd|Gen}}
Change: Optimized zone permission checks
*Fix: Fixed {{cmd|Ban}} rank checks affecting {{cmd|Unban}}
*Change: Optimized zone permission checks


===0.440===
===0.440===
FEATURE: New MapGenerator with tons of options. You can also save/load custom templates for it.
''22 August 2010''
FEATURE: AddWorldPopup interface overhaul.
*FEATURE: New MapGenerator with tons of options. You can also save/load custom templates for it.
FEATURE: JTE, D3, and Myne/Mynecraft/Hyvebuild/iCraft map format converters added.
*FEATURE: AddWorldPopup interface overhaul.
Feature: Improved syntax of the /gen command. See "/help gen" for details.
*FEATURE: JTE, D3, and Myne/Mynecraft/Hyvebuild/iCraft map format converters added.
Feature: Reason/memo is now shown publicly when someone gets banned, unbanned, or kicked.
*Feature: Improved syntax of the {{cmd|Gen}} command. See "{{cmd|Help|gen}}" for details.
Feature: Teleport and Bring work across worlds - world permissions still apply.
*Feature: Reason/memo is now shown publicly when someone gets banned, unbanned, or kicked.
Feature: Added 4 new Config keys: RequireBanReason, RequireClassChangeReason, AnnounceKickAndBanReasons, AnnounceClassChanges. By default "AnnounceKickAndBanReasons" and "AnnounceClassChanges" are enabled.
*Feature: Teleport and Bring work across worlds - world permissions still apply.
Feature: Added 5 new fields to PlayerDB: previousClass, classChangeReason, timesKicked, timesKickedOthers, timesBannedOthers.
*Feature: Added 4 new Config keys: RequireBanReason, RequireClassChangeReason, AnnounceKickAndBanReasons, AnnounceClassChanges. By default "AnnounceKickAndBanReasons" and "AnnounceClassChanges" are enabled.
Feature: Added a lot of new information to /info.
*Feature: Added 5 new fields to PlayerDB: previousClass, classChangeReason, timesKicked, timesKickedOthers, timesBannedOthers.
Feature: You can now save map preview images (isometric) from AddWorldPopup.
*Feature: Added a lot of new information to {{cmd|Info}}.
Feature: ConfigTool now shows warnings about any errors logged during Config.Load
*Feature: You can now save map preview images (isometric) from AddWorldPopup.
Fix: Yet another workaround for VerifyNames false negatives (thanks to SpaceManiac).
*Feature: ConfigTool now shows warnings about any errors logged during Config.Load
Fix: Fixed being able to paste admincrete/water/lava without permission (part of Player.CanPlace overhaul).
*Fix: Yet another workaround for VerifyNames false negatives (thanks to SpaceManiac).
Fix: Trying to go over class draw limit no longer causes "Another drawing command is in progress" error.
*Fix: Fixed being able to paste admincrete/water/lava without permission (part of Player.CanPlace overhaul).
Fix: Mcc.MapUtility.TryLoading() and Map.LoadHeaderOnly() now release file handles as soon as possible. This should fix some "file is being used by another process" errors.
*Fix: Trying to go over class draw limit no longer causes "Another drawing command is in progress" error.
Fix: Map spawn should be parsed correctly for MCSharp/MCZall maps
*Fix: Mcc.MapUtility.TryLoading() and Map.LoadHeaderOnly() now release file handles as soon as possible. This should fix some "file is being used by another process" errors.
Fix: If a map doesn't start with a gzip header, it no longer has a chance to abort the whole load process.
*Fix: Map spawn should be parsed correctly for MCSharp/MCZall maps
Fix: Fixed blocktype names being case-sensitive.
*Fix: If a map doesn't start with a gzip header, it no longer has a chance to abort the whole load process.
Fix: Added a more informative message when idle players are kicked.
*Fix: Fixed blocktype names being case-sensitive.
Fix: Fixed undo buffer not getting cleared when doing paste/pasteonly
*Fix: Added a more informative message when idle players are kicked.
Fix: Fixed /waccess exception kicking players.
*Fix: Fixed undo buffer not getting cleared when doing paste/pasteonly
Fix: 100% Empty maps no longer crash AddWorldPopup with OutOfMemoryException
*Fix: Fixed {{cmd|WAccess}} exception kicking players.
Fix: Fixed "player is already banned" message when doing /BanAll
*Fix: 100% Empty maps no longer crash AddWorldPopup with OutOfMemoryException
Fix: Fixed no public message appearing when doing /BanAll
*Fix: Fixed "player is already banned" message when doing {{cmd|BanAll}}
Fix: Fixed cuboid/ellipsoid/cuboidh logging blocktype code instead of blocktype name.
*Fix: Fixed no public message appearing when doing {{cmd|BanAll}}
Fix: Improved the message that's shown when idle players are kicked.
*Fix: Fixed cuboid/ellipsoid/cuboidh logging blocktype code instead of blocktype name.
Fix: Documented ability to /tp to specific coordinates.
*Fix: Improved the message that's shown when idle players are kicked.
Fix: AddWorldPopup no longer crashes if user closes "Load Map" dialog before selecting any file.
*Fix: Documented ability to {{cmd|TP}} to specific coordinates.
Fix: When drawing affects (in part or in full) a restricted zone, the zone is left untouched, and the rest of draw command finishes (part of Player.CanPlace overhaul).
*Fix: AddWorldPopup no longer crashes if user closes "Load Map" dialog before selecting any file.
Fix: Fixed crash in AddWorldPopup.AsyncLoad() if map loading failed.
*Fix: When drawing affects (in part or in full) a restricted zone, the zone is left untouched, and the rest of draw command finishes (part of Player.CanPlace overhaul).
Fix: LegacyRankMapping is now parsed correctly
*Fix: Fixed crash in AddWorldPopup.AsyncLoad() if map loading failed.
Fix: Renaming a class no longer causes "Worlds" tab dropdown menus to go out-of-sync.
*Fix: LegacyRankMapping is now parsed correctly
Change: AddWorldPopup preview image quality improved.
*Fix: Renaming a class no longer causes "Worlds" tab dropdown menus to go out-of-sync.
Change: Updated to newest version of NBTag library.
*Change: AddWorldPopup preview image quality improved.
Change: Frozen players can no longer build/delete.
*Change: Updated to newest version of NBTag library.
Change: Removed public "undo" message, added log message instead.
*Change: Frozen players can no longer build/delete.
Change: Removed AnnounceUnverifiedNames settings.
*Change: Removed public {{cmd|Undo}} message, added log message instead.
Change: When building/deleting permission is denied, the exact reason is given (instead of a vague "you cannot do that" message) (part of Player.CanPlace overhaul).
*Change: Removed AnnounceUnverifiedNames settings.
*Change: When building/deleting permission is denied, the exact reason is given (instead of a vague "you cannot do that" message) (part of Player.CanPlace overhaul).


===0.435===
===0.435===
Feature: Added /copy, /paste, and /pasteonly commands. Rotation coming soon.
''12 August 2010''
Feature: Added CopyAndPaste permission, granted to op and owner by default.
*Feature: Added {{cmd|Copy}}, {{cmd|Paste}}, and {{cmd|PasteOnly}} commands. Rotation coming soon.
Feature: Added MapGenType.Cliffs - similar to Mountains type, but with cliffs!
*Feature: Added {{perm|CopyAndPaste}} permission, granted to op and owner by default.
Fix: Fixed /paint command
*Feature: Added MapGenType.Cliffs - similar to Mountains type, but with cliffs!
Fix: Fixed /baninfo now showing any information if used without parameters.
*Fix: Fixed {{cmd|Paint}} command
Change: Replaced surface rocks in MapGenTheme.Hell with Obsidian.
*Fix: Fixed {{cmd|BanInfo}} now showing any information if used without parameters.
*Change: Replaced surface rocks in MapGenTheme.Hell with Obsidian.


===0.434===
===0.434===
Feature: new /bind command allows mapping any block to any other. Now you can place those unbuildable blocks (water, lava, grass, double-step) in any way you wish. For compatibility, old commands (/water, /solid, /lava, /grass) have been preserved.
''11 August 2010''
Change: "step" added as an alias for Stair block. "doublestep" added as an alias for DoubleStair.
*Feature: new {{cmd|Bind}} command allows mapping any block to any other. Now you can place those unbuildable blocks (water, lava, grass, double-step) in any way you wish. For compatibility, old commands ({{cmd|Water}}, {{cmd|Solid}}, {{cmd|Lava}}, {{cmd|Grass}}) have been preserved.
*Change: "step" added as an alias for Stair block. "doublestep" added as an alias for DoubleStair.


===0.433===
===0.433===
Feature: /winfo now shows who locked/unlocked the map, and how long ago.
''8 August 2010''
Fix: Fixed a error message that showed up when announcements.txt was blank.
*Feature: {{cmd|WInfo}} now shows who locked/unlocked the map, and how long ago.
Fix: Permission check added back to lock/unlock commands.
*Fix: Fixed a error message that showed up when announcements.txt was blank.
Fix: "mapinfo" added back as alias for /winfo
*Fix: Permission check added back to lock/unlock commands.
Fix: Fixed locked maps not getting unloaded when all players left
*Fix: "mapinfo" added back as alias for {{cmd|WInfo}}
*Fix: Fixed locked maps not getting unloaded when all players left


===0.432===
===0.432===
Fix: List of worlds printed by /worlds is now sorted alphabetically.
''6 August 2010''
Fix: Fixed an obscure half-disconnect bug that left players with id=0 who happened to be on the main world in a semi-disconnected state IF someone else was kicked halfway through the login process before it was assigned an id.
*Fix: List of worlds printed by {{cmd|Worlds}} is now sorted alphabetically.
*Fix: Fixed an obscure half-disconnect bug that left players with id=0 who happened to be on the main world in a semi-disconnected state IF someone else was kicked halfway through the login process before it was assigned an id.


===0.431===
===0.431===
Fix: Fixed still messed-up /worlds command.
''5 August 2010 - r146''
Change: Downgraded standard Session.IoLoop messages that occur on player disconnect from Warning to Debug.
*Fix: Fixed still messed-up {{cmd|Worlds}} command.
*Change: Downgraded standard Session.IoLoop messages that occur on player disconnect from Warning to Debug.


===0.430===
===0.430===
Fix: Fixed messed-up /worlds command. Sorry about that.
''4 August 2010 - r144''
Change: Downgraded standard Session.IoLoop messages that occur on player disconnect from Warning to Debug.
*Fix: Fixed messed-up {{cmd|Worlds}} command. Sorry about that.
*Change: Downgraded standard Session.IoLoop messages that occur on player disconnect from Warning to Debug.


===0.429===
===0.429===
Feature: Command-handler infrastructure has been redesigned. This will allow much more flexibility for devs and plugin makers later.
*Feature: Command-handler infrastructure has been redesigned. This will allow much more flexibility for devs and plugin makers later.
Feature: "/help commands" now only shows available commands by default. Type "/help commands all" to see all commands.
*Feature: "/help commands" now only shows available commands by default. Type "/help commands all" to see all commands.
Feature: /worlds command now only available worlds by default. Type "/worlds all" to include worlds inaccessible to you.
*Feature: /worlds command now only available worlds by default. Type "/worlds all" to include worlds inaccessible to you.
Feature: Help entries added for /zedit, /mark, /version, /rules, and /say.
*Feature: Help entries added for /zedit, /mark, /version, /rules, and /say.
Feature: ConfigTool World tab columns are now sortable.
*Feature: ConfigTool World tab columns are now sortable.
Fix: Fixed "max backups" in ConfigTool being limited to 100. Now it's at a more reasonable limit of 100000.
*Fix: Fixed "max backups" in ConfigTool being limited to 100. Now it's at a more reasonable limit of 100000.
Fix: Fixed Map.Backup() deleting the newest (instead of the oldest) backup if the total number of files was limited.
*Fix: Fixed Map.Backup() deleting the newest (instead of the oldest) backup if the total number of files was limited.
Fix: Fixed an ERROR that popped up if a player got disconnected during the login process (while player=null).
*Fix: Fixed an ERROR that popped up if a player got disconnected during the login process (while player=null).
Fix: FormatException crash fixed that caused whole server to go down instead of a player thread.
*Fix: FormatException crash fixed that caused whole server to go down instead of a player thread.
Fix: Several draw-related bugs and crashes fixed.
*Fix: Several draw-related bugs and crashes fixed.
Fix: Fixed crash in /winfo when used on unloaded worlds.
*Fix: Fixed crash in /winfo when used on unloaded worlds.
Fix: Fixed a bug in Config that caused antigrief to be re-enabled every load.
*Fix: Fixed a bug in Config that caused antigrief to be re-enabled every load.
Fix: Fixed a bug in ConfigTool that didn't update AntiGriefSeconds properly when changing between classes.
*Fix: Fixed a bug in ConfigTool that didn't update AntiGriefSeconds properly when changing between classes.
Change: Many /help entries have been improved.
*Change: Many /help entries have been improved.
Change: Split /class command into two: /classes (aka /ranks) shows a list of classes, and /class (aka /cinfo or /classinfo) shows permission list (missed from last release notes).
*Change: Split /class command into two: /classes (aka /ranks) shows a list of classes, and /class (aka /cinfo or /classinfo) shows permission list (missed from last release notes).
Change: Added /spawn as an alias for /tp (missed from last release notes).
*Change: Added /spawn as an alias for /tp (missed from last release notes).




===0.428===
===0.428===
Feature: Line wrapping. Yes, finally.
*Feature: Line wrapping. Yes, finally.
Feature: Per-class draw limits. Defaults are: owner unlimited, op unlimited, regular 4096 (16x16x16), guest 512 (8*8*8)
*Feature: Per-class draw limits. Defaults are: owner unlimited, op unlimited, regular 4096 (16x16x16), guest 512 (8*8*8)
Feature: Per-class antigrief detection. Defaults are: owner unmetered, op umetered, regular 45/6 (7.5 blocks/second), guest 35/5 (7 blocks/second)
*Feature: Per-class antigrief detection. Defaults are: owner unmetered, op umetered, regular 45/6 (7.5 blocks/second), guest 35/5 (7 blocks/second)
Feature: Memory usage of draw commands has been reduced by 6 bytes per block (37% improvement).
*Feature: Memory usage of draw commands has been reduced by 6 bytes per block (37% improvement).
Fix: Extra color codes fixed in /players command.
*Fix: Extra color codes fixed in /players command.
Fix: Fixed a bug with /undo that caused more than one command to be undone at once.
*Fix: Fixed a bug with /undo that caused more than one command to be undone at once.
Fix: Fixed maps generated with "Realistic terrain" (MapGenerator) having an empty layer at the bottom of the map.
*Fix: Fixed maps generated with "Realistic terrain" (MapGenerator) having an empty layer at the bottom of the map.
Change: Default classes have been tweaked:
*Change: Default classes have been tweaked:
        - regular can now use draw commands
**regular can now use draw commands
        - op can now lock/unlock
**op can now lock/unlock
Change: Improved arrangement of Permission list items.
*Change: Improved arrangement of Permission list items.
Change: Removed obsolete ConfigKey variables AntigriefBlockCount and AntigriefBlockInterval
*Change: Removed obsolete ConfigKey variables AntigriefBlockCount and AntigriefBlockInterval




===0.427===
===0.427===
Feature: Added /zedit command for changing zone permissions after creation
*Feature: Added /zedit command for changing zone permissions after creation
Feature: New aliases for drawing commands: /c /e /h /r /m
*Feature: New aliases for drawing commands: /c /e /h /r /m
Fix: Fix for cuboid command kicking players with "Block.Undefined" if called with no optional BlockType parameter
*Fix: Fix for cuboid command kicking players with "Block.Undefined" if called with no optional BlockType parameter
Fix: Fixed zone definitions getting corrupted.
*Fix: Fixed zone definitions getting corrupted.
Fix: Allowed /save command to be used from console and from remote worlds. Previously you had to join the world to save it.
*Fix: Allowed /save command to be used from console and from remote worlds. Previously you had to join the world to save it.
Fix: Fixed potential crash in /winfo when looking up unloaded worlds.
*Fix: Fixed potential crash in /winfo when looking up unloaded worlds.
Fix: Fixed /zone allowing duplicate names, then kicking the client.
*Fix: Fixed /zone allowing duplicate names, then kicking the client.
Fix: Fixed /ztest showing the standard "you are not allowed to build in this zone" message instead of the expected zone list.
*Fix: Fixed /ztest showing the standard "you are not allowed to build in this zone" message instead of the expected zone list.
Fix: Fixed incorrect description of draw log messages, and backup error messages
*Fix: Fixed incorrect description of draw log messages, and backup error messages
Fix: Fixed false triggering of "Player asked to be released from its world, but the world did not contain the player" error
*Fix: Fixed false triggering of "Player asked to be released from its world, but the world did not contain the player" error
Change: Fruitified fragmer's name  
*Change: Fruitified fragmer's name  




===0.426===
===0.426===
Feature: Announcements! You can define a list of announcements to show periodically. A random line from announcements.txt will be shown to all players at specified interval (in minutes).
*Feature: Announcements! You can define a list of announcements to show periodically. A random line from announcements.txt will be shown to all players at specified interval (in minutes).
Feature: /replace command.
*Feature: /replace command.
Feature: /undo command has been improved for more flexibility and better performance.
*Feature: /undo command has been improved for more flexibility and better performance.
Feature: /winfo (alias: /mapinfo) is added for displaying world name, player count, map dimensions, and access/build permissions.
*Feature: /winfo (alias: /mapinfo) is added for displaying world name, player count, map dimensions, and access/build permissions.
Fix: Fixed a bug that caused duplicate entries to be added to PlayerDB when doing /importranks or /importbans.
*Fix: Fixed a bug that caused duplicate entries to be added to PlayerDB when doing /importranks or /importbans.
Change: New ConfigKeys: AnnouncementColor (default: green) and AnnouncementInterval (default: 5 minutes).
*Change: New ConfigKeys: AnnouncementColor (default: green) and AnnouncementInterval (default: 5 minutes).
Change: Draw command stride increased to 16x16x16, for better theoretical performance.
*Change: Draw command stride increased to 16x16x16, for better theoretical performance.




===0.425===
===0.425===
Feature: Added hollow draw command (/cubh) and aliases (/cuboidh and /bhb)
*Feature: Added hollow draw command (/cubh) and aliases (/cuboidh and /bhb)
Feature: /players now shows class colors and a total number of players. Breakdown of /players by world is coming soon
*Feature: /players now shows class colors and a total number of players. Breakdown of /players by world is coming soon
Feature: Added "Joined world WorldName" message that shows when changing worlds
*Feature: Added "Joined world WorldName" message that shows when changing worlds
Fix: Improved several /help entries
*Fix: Improved several /help entries
Fix: Fixed a bug in Map.SaveBackup() that could cause a crash if MaxBackups was set
*Fix: Fixed a bug in Map.SaveBackup() that could cause a crash if MaxBackups was set
Fix: Fixed a bug in ConfigUI where "Delete World" button could leave the map file behind and/or cause an error
*Fix: Fixed a bug in ConfigUI where "Delete World" button could leave the map file behind and/or cause an error
Fix: Calling lock/unlock from console without a WorldName now shows a nicer error message
*Fix: Calling lock/unlock from console without a WorldName now shows a nicer error message
Change: Improved safety checks of /join command
*Change: Improved safety checks of /join command
Change: Added a catch-all exception handler into Server.MainLoop
*Change: Added a catch-all exception handler into Server.MainLoop
Change: Added exception handlers for EVERY single piece of code that requires file access
*Change: Added exception handlers for EVERY single piece of code that requires file access
Change: Added more thread safety in MapCommands.WorldRename that resolves a potential race condition with Map.Save
*Change: Added more thread safety in MapCommands.WorldRename that resolves a potential race condition with Map.Save
Change: Modified IPBanList to use the standard temp folder (instead of fCraft working path) for its temp files
*Change: Modified IPBanList to use the standard temp folder (instead of fCraft working path) for its temp files




===0.424===
===0.424===
Fix: Fixed /unhide and normal connection getting different messages
*Fix: Fixed /unhide and normal connection getting different messages
Fix: Fixed client crash when viewing /rules if the rule file has blank lines
*Fix: Fixed client crash when viewing /rules if the rule file has blank lines
Fix: Worlds with capital letters in the name are joinable again
*Fix: Worlds with capital letters in the name are joinable again
Fix: Potential crash in DoClassChange() if target player is already same rank AND is not currently on the server
*Fix: Potential crash in DoClassChange() if target player is already same rank AND is not currently on the server
Change: Moved the command list to /help commands
*Change: Moved the command list to /help commands
Change: Performance and thread-safety improvements to PlayerDB
*Change: Performance and thread-safety improvements to PlayerDB
Change: Disabled some more debugging code to avoid taking up unnecessary resources
*Change: Disabled some more debugging code to avoid taking up unnecessary resources




===0.423===
===0.423===
Feature: /importbans now also supports "banned-ip.txt"
*Feature: /importbans now also supports "banned-ip.txt"
Feature: Logs are now stored in /logs/ folder. Your fCraft.log file will be moved there automatically and renamed to "_OldLog.log"
*Feature: Logs are now stored in /logs/ folder. Your fCraft.log file will be moved there automatically and renamed to "_OldLog.log"
Feature: Log splitting now works by day or by session. Set "LogMode" key in config.xml or see Logging tab in ConfigTool.
*Feature: Log splitting now works by day or by session. Set "LogMode" key in config.xml or see Logging tab in ConfigTool.
Feature: All maps are now stored in /maps/ folder. Your map files will be moved automatically first time you start ConfigTool/fCraftConsole/fCraftUI
*Feature: All maps are now stored in /maps/ folder. Your map files will be moved automatically first time you start ConfigTool/fCraftConsole/fCraftUI
Feature: Reserved slots now work
*Feature: Reserved slots now work
Fix: Fixed a bug in fCraft.Server.LoadWorldListXML that could make all worlds hidden.
*Fix: Fixed a bug in fCraft.Server.LoadWorldListXML that could make all worlds hidden.
Fix: "player connected" message shown when someone connects, instead of just "player joined world"
*Fix: "player connected" message shown when someone connects, instead of just "player joined world"
Fix: "player left the server" message is not shown if the player got kicked before LoginSequence finished (e.g. if server was full)
*Fix: "player left the server" message is not shown if the player got kicked before LoginSequence finished (e.g. if server was full)
Fix: Added back IP logging for incoming connections
*Fix: Added back IP logging for incoming connections
Fix: Fixed ConfigTool-generated maps not having correct spawn point
*Fix: Fixed ConfigTool-generated maps not having correct spawn point
Fix: Fixed /user showing both promote and demote messages at once
*Fix: Fixed /user showing both promote and demote messages at once
Fix: Removed references to old "/drawundo" command name in "/undo" messages
*Fix: Removed references to old "/drawundo" command name in "/undo" messages
Fix: Fixed "Unrecognized entry ignored: LegacyRankMapping =" warning
*Fix: Fixed "Unrecognized entry ignored: LegacyRankMapping =" warning
Change: Made /importbans and /importranks save PlayerDB at once
*Change: Made /importbans and /importranks save PlayerDB at once
Change: fCraft now forcibly resets its working directory to the same path where the executable is
*Change: fCraft now forcibly resets its working directory to the same path where the executable is
Change: Removed "delete old file?" prompt when renaming worlds in AddWorldPopup. Now it just does it, to match tabWorlds' DataGridView behavior
*Change: Removed "delete old file?" prompt when renaming worlds in AddWorldPopup. Now it just does it, to match tabWorlds' DataGridView behavior
Change: Added additional error checks to Map.Backup()  
*Change: Added additional error checks to Map.Backup()  




===0.422===
===0.422===
Feature: Further improved network performance by introducing nonblocking (lock-free) data structure to packet output buffer
*Feature: Further improved network performance by introducing nonblocking (lock-free) data structure to packet output buffer
Fix: Fixed "world creation failed" error if worlds.xml defined a non-existing world to be main
*Fix: Fixed "world creation failed" error if worlds.xml defined a non-existing world to be main
Fix: Added back missing messages when doing /user on offline users
*Fix: Added back missing messages when doing /user on offline users
Fix: Fixed player name color not being updated when their class changes
*Fix: Fixed player name color not being updated when their class changes
Fix: Added missing /help entries for /importbans and /importranks
*Fix: Added missing /help entries for /importbans and /importranks
Change: Improved help messages for /lock, /unban, /unbanip, /undo, /wload, /wmain, and /wremove
*Change: Improved help messages for /lock, /unban, /unbanip, /undo, /wload, /wmain, and /wremove
Change: Tweaked default values of BlockUpdateThrottling and maxBlockUpdatesPerTick for maximum lag-free performance
*Change: Tweaked default values of BlockUpdateThrottling and maxBlockUpdatesPerTick for maximum lag-free performance




===0.421===
===0.421===
Feature: Added the ability to promote/demote offline and unseen (not in PlayerDB) players
*Feature: Added the ability to promote/demote offline and unseen (not in PlayerDB) players
Feature: Added the ability to ban unseen players
*Feature: Added the ability to ban unseen players
Feature: Added ability to import bans and ranks from MCSharp/MCZall formats. An associated "Import" permission was added. See "/help importbans" and "/help importranks" for more information. Importer for ip-bans and iCraft/Hyvebuild/Myne format are coming soon.
*Feature: Added ability to import bans and ranks from MCSharp/MCZall formats. An associated "Import" permission was added. See "/help importbans" and "/help importranks" for more information. Importer for ip-bans and iCraft/Hyvebuild/Myne format are coming soon.
Feature: Improved BlockUpdateQueue performance (faster drawing commands!) by switching to a lock-free data structure
*Feature: Improved BlockUpdateQueue performance (faster drawing commands!) by switching to a lock-free data structure
Fix: Fixed startup errors not being logged if config.xml has not been parsed yet
*Fix: Fixed startup errors not being logged if config.xml has not been parsed yet
Fix: Fixed ConfigUI input box not aligning properly when window is resized
*Fix: Fixed ConfigUI input box not aligning properly when window is resized
Fix: Fixed "flatgrass" generated maps being 1 block off vertically
*Fix: Fixed "flatgrass" generated maps being 1 block off vertically
Change: Updated PlayerDB and IPBanList to use standard temporary folder (instead of dumping temp files into fCraft directory)
*Change: Updated PlayerDB and IPBanList to use standard temporary folder (instead of dumping temp files into fCraft directory)
Change: Added "logging starts" marker that's written to console and log on-startup
*Change: Added "logging starts" marker that's written to console and log on-startup
Change: fCraftUI log now displays the last 2000 lines (up from 1000 lines)
*Change: fCraftUI log now displays the last 2000 lines (up from 1000 lines)




===0.420===
===0.420===
Feature: New "Worlds" tab in ConfigTool for managing your world list
*Feature: New "Worlds" tab in ConfigTool for managing your world list
Feature: Isometric map previews and map generation in ConfigTool
*Feature: Isometric map previews and map generation in ConfigTool
Feature: Implemented a class-ID system that allows adding/renaming/deleting classes without breaking compatibility. DeleteClassPopup was added for this
*Feature: Implemented a class-ID system that allows adding/renaming/deleting classes without breaking compatibility. DeleteClassPopup was added for this
Feature: Added LimitOneConnectionPerIP option to config & configtool
*Feature: Added LimitOneConnectionPerIP option to config & configtool
Feature: Worlds can now be hidden from the /worlds list
*Feature: Worlds can now be hidden from the /worlds list
Feature: Added /whois command for checking if a player is using real name or nickname. BE CAREFUL WITH "ChangeName" PERMISSION!
*Feature: Added /whois command for checking if a player is using real name or nickname. BE CAREFUL WITH "ChangeName" PERMISSION!
Feature: fCraft now generates crash.txt on unhandled fatal errors
*Feature: fCraft now generates crash.txt on unhandled fatal errors
Feature: Implemented theme support, and added 2 new terrain types (Coast and River) for MapGenerator. See "/help gen" for details, or use ConfigTool.
*Feature: Implemented theme support, and added 2 new terrain types (Coast and River) for MapGenerator. See "/help gen" for details, or use ConfigTool.
Feature: Pressing Up/Down keys in fCraftUI will show previously typed commands.
*Feature: Pressing Up/Down keys in fCraftUI will show previously typed commands.
Fix: Fixed a bug in /wmain and /wload that sometimes made the server unconnectable after changing map
*Fix: Fixed a bug in /wmain and /wload that sometimes made the server unconnectable after changing map
Fix: Limits on the /kick command now apply correctly
*Fix: Limits on the /kick command now apply correctly
Fix: Fixed /wbuild and /waccess showing wrong messages
*Fix: Fixed /wbuild and /waccess showing wrong messages
Fix: Fixed hidden players unable to build due to grief protection
*Fix: Fixed hidden players unable to build due to grief protection
Fix: Added /nick and /whois entries to /help
*Fix: Added /nick and /whois entries to /help
Fix: Removed the ability to call draw commands from console (caused crash)
*Fix: Removed the ability to call draw commands from console (caused crash)
Fix: Fixed /lava checking PlaceWater permission instead of PlaceLava
*Fix: Fixed /lava checking PlaceWater permission instead of PlaceLava
Fix: A debug message about "attempting to unregister an non-existent player" is no longer logged every time VerifyNames fails
*Fix: A debug message about "attempting to unregister an non-existent player" is no longer logged every time VerifyNames fails
Fix: When using /where command on other players, correct coordinates are now shown]
*Fix: When using /where command on other players, correct coordinates are now shown]
Fix: Player's classes are now updated in fCraftUI list when promoted/demoted
*Fix: Player's classes are now updated in fCraftUI list when promoted/demoted
Fix: PMs are now logged as LogType.PrivateChat (instead of generic LogType.WorldChat)
*Fix: PMs are now logged as LogType.PrivateChat (instead of generic LogType.WorldChat)
Fix: /hide and /unhide now use Color.Sys instead of hardcoded Color.Yellow
*Fix: /hide and /unhide now use Color.Sys instead of hardcoded Color.Yellow
Fix: Player's nicknames (as set by /nick) are applied correctly and preserved when changing worlds
*Fix: Player's nicknames (as set by /nick) are applied correctly and preserved when changing worlds
Fix: Added missing checks for "Chat" permissions
*Fix: Added missing checks for "Chat" permissions
Fix: Color buttons in ConfigTool now show correct background color under Mono
*Fix: Color buttons in ConfigTool now show correct background color under Mono
Fix: Fixed help entry to /freeze showing incorrect information
*Fix: Fixed help entry to /freeze showing incorrect information
Fix: Corrected tab order in all ConfigTool forms
*Fix: Corrected tab order in all ConfigTool forms
Change: Added /blb as another alias for /cuboid
*Change: Added /blb as another alias for /cuboid
Change: Removed ReservedSlotBehavior config key
*Change: Removed ReservedSlotBehavior config key
Change: Disabled word wrapping in rules.txt editor popup
*Change: Disabled word wrapping in rules.txt editor popup
Change: /unhide now resets the player's nick
*Change: /unhide now resets the player's nick
Change: Both player's real name and nickname (if any) are now recorded in the log
*Change: Both player's real name and nickname (if any) are now recorded in the log
Change: Added a warning to /info when looking up nicknames (instead of real names)
*Change: Added a warning to /info when looking up nicknames (instead of real names)
Change: Heartbeat salt generation (used to verify names) is now more secure
*Change: Heartbeat salt generation (used to verify names) is now more secure
Change: Removed CanPlaceHardenedBlocks from permission list
*Change: Removed CanPlaceHardenedBlocks from permission list
Change: All map generator terrain types have been tweaked for improved appearence
*Change: All map generator terrain types have been tweaked for improved appearence
Change: Centered all ConfigTool popup windows (AddWorldPopup, ColorPicker, DeleteClassPopup, TextEditorPopup)
*Change: Centered all ConfigTool popup windows (AddWorldPopup, ColorPicker, DeleteClassPopup, TextEditorPopup)
Change: Hid unneeded icons and buttons from ConfigTool popups
*Change: Hid unneeded icons and buttons from ConfigTool popups
Change: Changed the way zones store rank restriction (as part of the compatibility assurance), and added versioning to zone definitions
*Change: Changed the way zones store rank restriction (as part of the compatibility assurance), and added versioning to zone definitions
Change: Map.Save() now creates temporary files in the OS-specific temporary folder, not in same folder where fCraft is installed
*Change: Map.Save() now creates temporary files in the OS-specific temporary folder, not in same folder where fCraft is installed
Change: World permissions are now updated automatically when a class is deleted
*Change: World permissions are now updated automatically when a class is deleted
Refactor: Improved consistency in code naming conventions, especially in IRC code
*Refactor: Improved consistency in code naming conventions, especially in IRC code
Refactor: Improved code organization in many areas
*Refactor: Improved code organization in many areas




===0.410===
===0.410===
Implemented per-world access and build permissions.
*Implemented per-world access and build permissions.
Changed worlds.txt format to worlds.xml. Your old worlds.txt file will be converted automatically.
*Changed worlds.txt format to worlds.xml. Your old worlds.txt file will be converted automatically.
New world-related commands:
*New world-related commands:
  /wmain changes the main world
**/wmain changes the main world
  /waccess and /wbuild allow setting per-world permissions
**/waccess and /wbuild allow setting per-world permissions
  /wremove allows deleting worlds
**/wremove allows deleting worlds
  /wrename allows renaming worlds without reloading
**/wrename allows renaming worlds without reloading
/wload command is significantly improved (see /help wload for more info). The functionality of the old /load command has been merged with /wload. Now /load is an alias for /join, together with /l, /j, and /goto.
**/wload command is significantly improved (see /help wload for more info). The functionality of the old /load command has been merged with /wload. Now /load is an alias for /join, together with /l, /j, and /goto.
Removed SaveAndLoad permission - it became redundant with ManageWorlds. Please check your config to ensure that permissions remain consistent.
*Removed SaveAndLoad permission - it became redundant with ManageWorlds. Please check your config to ensure that permissions remain consistent.
Added new and previously-missing (/lockall, /unlockall, /where, /me, /rules, /setspawn) commands to /help.
*Added new and previously-missing (/lockall, /unlockall, /where, /me, /rules, /setspawn) commands to /help.
Disabled verify-names check for localhost (127.0.0.1) when running in Balanced mode.
*Disabled verify-names check for localhost (127.0.0.1) when running in Balanced mode.
When player is denied access to some command, server now names the specific permission that's needed.
*When player is denied access to some command, server now names the specific permission that's needed.
Fixed a potential desync issue when one player rejoins a world, and another joins it simultaneously.
*Fixed a potential desync issue when one player rejoins a world, and another joins it simultaneously.
Removed /genh command and /compass alias for the /where command.
*Removed /genh command and /compass alias for the /where command.
Added a fail-safe exception check when executing console commands. Now the server will stay up even if an exception occurs while executing console command.
*Added a fail-safe exception check when executing console commands. Now the server will stay up even if an exception occurs while executing console command.
Improved the way server reacts to fatal errors on startup. Now there is a clear indication that server cannot start.
*Improved the way server reacts to fatal errors on startup. Now there is a clear indication that server cannot start.
"default map" is now referred to as "main world" for consistency.  
*"default map" is now referred to as "main world" for consistency.  
Improved garbage collection.
*Improved garbage collection.
 


===0.405===
===0.405===
Added back support for vanilla (server_level.dat) maps.
*Added back support for vanilla (server_level.dat) maps.
Fixed MCSharp importer leaving nonstandard blocks in the map, causing client crashes. Now all MCSharp-specific blocks are converted to normal types.
*Fixed MCSharp importer leaving nonstandard blocks in the map, causing client crashes. Now all MCSharp-specific blocks are converted to normal types.
Fixed visual player list not updating in fCraftUI.
*Fixed visual player list not updating in fCraftUI.
Added /players command to list ALL players on the server (in all worlds)
*Added /players command to list ALL players on the server (in all worlds)
Made the BlockType parameter optional for /cuboid and /ellipsoid. Now it takes blocktype of the second click (or last-previously-used-blocktype when using /mark) in the absence of the optional parameter.
*Made the BlockType parameter optional for /cuboid and /ellipsoid. Now it takes blocktype of the second click (or last-previously-used-blocktype when using /mark) in the absence of the optional parameter.
ConfigTool: Added a new tab for IRC setting.
*ConfigTool: Added a new tab for IRC setting.
ConfigTool: Fixed a bug that prevented the last 2 checkboxes on the permission list from being saved properly.
*ConfigTool: Fixed a bug that prevented the last 2 checkboxes on the permission list from being saved properly.
IRC: Split IRCForwardAll into IRCForwardFromServer and IRCForwardFromIRC to make it easier to manage which messages you want to see.
*IRC: Split IRCForwardAll into IRCForwardFromServer and IRCForwardFromIRC to make it easier to manage which messages you want to see.
IRC: Added IRCBotQuitMsg to allow users to define their own quit message for the bot.  
*IRC: Added IRCBotQuitMsg to allow users to define their own quit message for the bot.  
IRC: Fixed a bug with infinite reconnects on receiving error 433 Nickname already in use.
*IRC: Fixed a bug with infinite reconnects on receiving error 433 Nickname already in use.
Zones: Changed behavior of overlapping zones:
*Zones: Changed behavior of overlapping zones:
  - Before: To touch a block, AT LEAST ONE zone has to allow it
**Before: To touch a block, AT LEAST ONE zone has to allow it
  - Now: To touch a block, ALL ZONES have to allow it
**Now: To touch a block, ALL ZONES have to allow it
Zones: Added /ztest command that lists all zones affecting a particular block. It can be used to detect and resolve zone overlaps.
*Zones: Added /ztest command that lists all zones affecting a particular block. It can be used to detect and resolve zone overlaps.
Zones: Added proper /help entries for /zone, /zones, /zremove, and /ztest, and contextual help for /zone and /zones.
*Zones: Added proper /help entries for /zone, /zones, /zremove, and /ztest, and contextual help for /zone and /zones.
Zones: Made zone commands inaccessible from console (it would cause a crash, since zones are world-specific).
*Zones: Made zone commands inaccessible from console (it would cause a crash, since zones are world-specific).
Fixed OnPlayerDisconnected and OnPlayerListChanged sometimes firing at the wrong time.
*Fixed OnPlayerDisconnected and OnPlayerListChanged sometimes firing at the wrong time.
Added better error handling to Map.Save() in case the target file is not writable.
*Added better error handling to Map.Save() in case the target file is not writable.
Updated /help entries for /lock, /unlock, and /load commands.
*Updated /help entries for /lock, /unlock, and /load commands.




===0.404===
===0.404===
Fixed zone borders being off by 1 block.
*Fixed zone borders being off by 1 block.
Fixed a rare crash on shutdown.
*Fixed a rare crash on shutdown.
Fixed heartbeat reporting incorrect port number to heartbeat if the port specified in config was not available.
*Fixed heartbeat reporting incorrect port number to heartbeat if the port specified in config was not available.
Adjusted default class permissions slightly, by popular demand:
*Adjusted default class permissions slightly, by popular demand:
- regulars can now place Water and Lava
**regulars can now place Water and Lava
- ops can now use draw commands
**ops can now use draw commands
IRC: Added a config option 'IRCMsgs' to toggle join/leave messages on/off. Default is disabled to prevent massive spam.
*IRC: Added a config option 'IRCMsgs' to toggle join/leave messages on/off. Default is disabled to prevent massive spam.
IRC: Fixed a possible crash in IRCComm, related to static initializers.
*IRC: Fixed a possible crash in IRCComm, related to static initializers.
ConfigTool: Fixed many bugs in permission checkbox list.
*ConfigTool: Fixed many bugs in permission checkbox list.
ConfigTool: Added visual editor for rules.txt
*ConfigTool: Added visual editor for rules.txt
ConfigTool: Added stub tab for IRC settings (coming soon).
*ConfigTool: Added stub tab for IRC settings (coming soon).
 


===0.403===
===0.403===
Fixed spawnpoint being read incorrectly when using /load.
*Fixed spawnpoint being read incorrectly when using /load.
Added a note to ban*/unban* commands that's shown when player name is not found: "Use the FULL player name for ban/unban commands."
*Added a note to ban*/unban* commands that's shown when player name is not found: "Use the FULL player name for ban/unban commands."
Fixed a thread crash (not server-wide crash) in Session.IoLoop that can be caused by corrupted or malicious handshake packets.
*Fixed a thread crash (not server-wide crash) in Session.IoLoop that can be caused by corrupted or malicious handshake packets.
Fixed a potential crash when using /info on offline players from console.
*Fixed a potential crash when using /info on offline players from console.
Fixed a potential crash when using /gen from console.
*Fixed a potential crash when using /gen from console.
Added more fail-safe checks that ensure that map spawn point is always within the map boundaries.
*Added more fail-safe checks that ensure that map spawn point is always within the map boundaries.
Started logging IPs of connections that try sending corrupted or malicious handshake packets.
*Started logging IPs of connections that try sending corrupted or malicious handshake packets.




===0.402===
===0.402===
Added back /load command, and hooked up MCC. Currenly supported: fCraft/fcm, MCSharp/lvl, indev/mclevel, MinerCPP and LuaCraft (dat). Vanilla support coming soon.
*Added back /load command, and hooked up MCC. Currenly supported: fCraft/fcm, MCSharp/lvl, indev/mclevel, MinerCPP and LuaCraft (dat). Vanilla support coming soon.
Fixed worlds being unloaded before all block updates are processed (thus aborting draw commands).
*Fixed worlds being unloaded before all block updates are processed (thus aborting draw commands).
Fixed several potential multiworld-related crashes and freezes.
*Fixed several potential multiworld-related crashes and freezes.
Made Server.UnregisterPlayer check ALL worlds to remove the player, not just most recent one.
*Made Server.UnregisterPlayer check ALL worlds to remove the player, not just most recent one.
IRC: Added an information message to notify users of the IRC Bot's online status when joining the server.
*IRC: Added an information message to notify users of the IRC Bot's online status when joining the server.
IRC: Added the ability to send NOTICES.
*IRC: Added the ability to send NOTICES.
IRC: !status/!help can both be sent to the bot in channel now and it will respond appropriately.
*IRC: !status/!help can both be sent to the bot in channel now and it will respond appropriately.
IRC: Added a check to see if the IRC Bot is actually enabled and online before sending a notification that it IS online.
*IRC: Added a check to see if the IRC Bot is actually enabled and online before sending a notification that it IS online.
Drawing-related state is now reset when changing worlds.
*Drawing-related state is now reset when changing worlds.
Added a limiter to the number of block updates that can be processed per tick (even if there are no players in a world). Fixes server becoming unresponsive when doing enormous drawing commands (millions of blocks).
*Added a limiter to the number of block updates that can be processed per tick (even if there are no players in a world). Fixes server becoming unresponsive when doing enormous drawing commands (millions of blocks).
Allowed players to /join the world that they are already on.
*Allowed players to /join the world that they are already on.




===0.401===
===0.401===
*IDLE/AFK CHECKING* This is configurable per-class.
*'''IDLE/AFK CHECKING''' This is configurable per-class.
Added /version command, and added revision to the version string.
*Added /version command, and added revision to the version string.
Added an option parameter to /lock and /unlock to target a specific world, and added global /lockall and /unlockall commands.  
*Added an option parameter to /lock and /unlock to target a specific world, and added global /lockall and /unlockall commands.  
Removed all references to the old pre-multiworld "map.fcm." Backups now work again.  
*Removed all references to the old pre-multiworld "map.fcm." Backups now work again.  
Fixed players not spawning in the right place when changing worlds.
*Fixed players not spawning in the right place when changing worlds.
IRC Bot will now handle terminations by the IRCd and restart itself upon any errors.  
*IRC Bot will now handle terminations by the IRCd and restart itself upon any errors.  
IRC Bot can now send from inside the server TO IRC! Use the prefix '#' in-game to send any message to IRC. Forwarding all server chat may be added if requested. To send from the bot to the server, use the bot's nickname and either ':', ',' or nothing, then your message.
*IRC Bot can now send from inside the server TO IRC! Use the prefix '#' in-game to send any message to IRC. Forwarding all server chat may be added if requested. To send from the bot to the server, use the bot's nickname and either ':', ',' or nothing, then your message.
Improved performance of the IRC bot and the task scheduler.
*Improved performance of the IRC bot and the task scheduler.
Fixed a bug with getting the server url from the externalurl.txt file crashing the IRC MessageHandler() when the file didn't exist. FORWARD_ALL is now enabled for both SERVER and IRC for 100% transparent chatting.
*Fixed a bug with getting the server url from the externalurl.txt file crashing the IRC MessageHandler() when the file didn't exist. FORWARD_ALL is now enabled for both SERVER and IRC for 100% transparent chatting.
Fixed a bug in the server-to-irc code that forwarded a blank message if there was nothing after '#' in server chat.
*Fixed a bug in the server-to-irc code that forwarded a blank message if there was nothing after '#' in server chat.
Handshake packet is now written when doing /join, to replace MOTD with a more informative "Now loading [worldname]".
*Handshake packet is now written when doing /join, to replace MOTD with a more informative "Now loading [worldname]".
 


===0.400===
===0.400===
*MULTIWORLD*. It's finally here. See /help for information on new commands: /worlds, /wload, /join
*'''MULTIWORLD''' It's finally here. See /help for information on new commands: /worlds, /wload, /join
Added a persistent world list, saved in worlds.txt - this is subject to change. The file contains a list of world names, each corresponding to an .fcm file. The first world listed at the top of worlds.txt is the default/main one.
*Added a persistent world list, saved in worlds.txt - this is subject to change. The file contains a list of world names, each corresponding to an .fcm file. The first world listed at the top of worlds.txt is the default/main one.
*IRC BOT*. Thanks to the efforts by Destroyer661, fCraft now has an optional IRC bot for relaying chat and commands.
*'''IRC BOT''' Thanks to the efforts by Destroyer661, fCraft now has an optional IRC bot for relaying chat and commands.
A field has been added in the config to allow forwarding ALL IRC CHANNEL TRAFFIC to the server. This will override the prefix and make it inactive. 'IRCBotForwardAll' is set to false by default.
*A field has been added in the config to allow forwarding ALL IRC CHANNEL TRAFFIC to the server. This will override the prefix and make it inactive. 'IRCBotForwardAll' is set to false by default.
*ZONES*. It is now possible to make guest zones and op zones (and anything in-between) on any map. See /help for information on new commands: /zones, /zone, /zremove.
*'''ZONES''' It is now possible to make guest zones and op zones (and anything in-between) on any map. See /help for information on new commands: /zones, /zone, /zremove.
Added 2 new permissions: ManageZones and ManageWorlds. You might need to update your config.xml to add these permissions to appropriate classes.
*Added 2 new permissions: ManageZones and ManageWorlds. You might need to update your config.xml to add these permissions to appropriate classes.
Added /compass command (aka /where).
*Added /compass command (aka /where).
Fixed players sometimes not seeing their /kick message.
*Fixed players sometimes not seeing their /kick message.
Added a way to teleport to specific coordinates (/tp x y h)
*Added a way to teleport to specific coordinates (/tp x y h)
Fixed heartbeats timing out when running fCraft under Mono.
*Fixed heartbeats timing out when running fCraft under Mono.
Fixed Config.ApplyConfig setting the wrong server throttling variables.
*Fixed Config.ApplyConfig setting the wrong server throttling variables.
Fixed air blocks appearing underwater when using /gen
*Fixed air blocks appearing underwater when using /gen
Tweaked /gen parameters to make "island" a bit less ugly.
*Tweaked /gen parameters to make "island" a bit less ugly.
Updated text in fCraftConsole.
*Updated text in fCraftConsole.


=0.3xx=
=0.3xx=
===0.330===
===0.330===
Added /cuboid and /ellipsoid drawing commands.
*Added /cuboid and /ellipsoid drawing commands.
Improved memory usage.
*Improved memory usage.
Added "Draw" permission, and made /draw check "DeleteAdmincrete" permission when replacing blocks, and removed unused "PlaceGlitchedSand" permission.
*Added "Draw" permission, and made /draw check "DeleteAdmincrete" permission when replacing blocks, and removed unused "PlaceGlitchedSand" permission.
Added "Port" and "BackupOnlyWhenChanged" config lines, and corresponding ConfigTool fields.
*Added "Port" and "BackupOnlyWhenChanged" config lines, and corresponding ConfigTool fields.
Fixed bug that deleted ALL backups when you check "don't delete old backups." That was embarrassing.
*Fixed bug that deleted ALL backups when you check "don't delete old backups." That was embarrassing.


===0.325===
===0.325===
Added an experimental low-latency mode (faster server response, but more bandwidth required).
*Added an experimental low-latency mode (faster server response, but more bandwidth required).
Improved hacking detection: added anti-chat-spam and anti-grief (block spam) checks.
*Improved hacking detection: added anti-chat-spam and anti-grief (block spam) checks.
New more aggressive anti-hacking checks for incoming movement and SetTile packets.
*New more aggressive anti-hacking checks for incoming movement and SetTile packets.
Fixed an issue with fCraftUI console log getting truncated in the wrong places.
*Fixed an issue with fCraftUI console log getting truncated in the wrong places.
Improved Mono compatibility (fixes HttpWebRequest failures).
*Improved Mono compatibility (fixes HttpWebRequest failures).


===0.324===
===0.324===
Added /me command.
*Added /me command.
Added step stacking.
*Added step stacking.
Fixed a case where disconnected players would leave a ghost behind.
*Fixed a case where disconnected players would leave a ghost behind.
Improved shutdown speed.
*Improved shutdown speed.
Implemented ProcessPriority setting.
*Implemented ProcessPriority setting.


===0.323===
===0.323===
Fixed players not being able to delete admincrete after promotion.
*Fixed players not being able to delete admincrete after promotion.
Fixed a bug that allowed players to noclip into walls when using /tp or /bring.
*Fixed a bug that allowed players to noclip into walls when using /tp or /bring.
Fixed a security issue with "VerifyNames: Balanced"
*Fixed a security issue with "VerifyNames: Balanced"
Added prototype of the security tab in ConfigTool (work in progress).
*Added prototype of the security tab in ConfigTool (work in progress).


===0.322===
===0.322===
Added a range check to Player.SetTile, to prevent certain types of grief bots.
*Added a range check to Player.SetTile, to prevent certain types of grief bots.
Fixed a bug where map spawnpoint did not change after doing /load.
*Fixed a bug where map spawnpoint did not change after doing /load.
Fixed some typos.
*Fixed some typos.


===0.321===
===0.321===
Fixed welcome messages not showing.
*Fixed welcome messages not showing.
Renamed /alias to /nick, and added a permission check.
*Renamed /alias to /nick, and added a permission check.


===0.320===
===0.320===
Finally last fix for the disconnect problem. Sorry about that.
*Finally last fix for the disconnect problem. Sorry about that.


===0.319===
===0.319===
Quick fix for disconnect problem.
*Quick fix for disconnect problem.


===0.318===
===0.318===
Fixed VerifyNames not saving properly when using ConfigTool.
*Fixed VerifyNames not saving properly when using ConfigTool.
Fixed several potential crashers in Session and World.
*Fixed several potential crashers in Session and World.
Fixed a bug that sometimes wrongly showed "class name not recognized".
*Fixed a bug that sometimes wrongly showed "class name not recognized".
Added class name autocompletion for class chat (@@classname blah)
*Added class name autocompletion for class chat (@@classname blah)
Started working on the new /load mode that allows loading different sized maps, and loading much faster (not done yet).
*Started working on the new /load mode that allows loading different sized maps, and loading much faster (not done yet).


===0.317===
===0.317===
Optimized handling of player movement and some block/tile updates, making servers more responsive and less laggy.
*Optimized handling of player movement and some block/tile updates, making servers more responsive and less laggy.
Fixed a possible crash that sometimes happened when server has 1 slot left and 2 people tried to join at once.
*Fixed a possible crash that sometimes happened when server has 1 slot left and 2 people tried to join at once.
Fixed a case where a Session object was not properly disposed.
*Fixed a case where a Session object was not properly disposed.
Fixed resizing issue in UpdateWindow and reduced connection timeout in Updater
*Fixed resizing issue in UpdateWindow and reduced connection timeout in Updater
Disabled ShowPrefixesInChat and ShowPrefixesInList by default (breaks skin support)
*Disabled ShowPrefixesInChat and ShowPrefixesInList by default (breaks skin support)
Added Player.Send, a safe wrapper for Player.session.Send
*Added Player.Send, a safe wrapper for Player.session.Send
Fixed /tp, /bring, and /setspawn commands that were broken in the last revision.
*Fixed /tp, /bring, and /setspawn commands that were broken in the last revision.
Fixed ConfigTool not saving "IsPublic" setting correctly.
*Fixed ConfigTool not saving "IsPublic" setting correctly.


===0.316===
===0.316===
Added partial class-name matching for /class and /user commands.
*Added partial class-name matching for /class and /user commands.
Fixed /banip and /banall not kicking the banned players immediately.
*Fixed /banip and /banall not kicking the banned players immediately.
Added /rules command. Create "rules.txt" in the server folder to specify.
*Added /rules command. Create "rules.txt" in the server folder to specify.
Fixed a bug where player movement sometimes got a little out of sync.
*Fixed a bug where player movement sometimes got a little out of sync.
Optimized /load speed a bit.
*Optimized /load speed a bit.
Added nicer application icons.
*Added nicer application icons.


===0.315===
===0.315===
Added visual color picker to ConfigTool
*Added visual color picker to ConfigTool
Added lightweight console interface for fCraft
*Added lightweight console interface for fCraft
Refactored the main update loop
*Refactored the main update loop


===0.314===
===0.314===
Added AutomaticUpdates option.
*Added AutomaticUpdates option.
Integrated the color picker to ConfigTool.
*Integrated the color picker to ConfigTool.
Improved hacking detection.
*Improved hacking detection.


===0.313===
===0.313===
Fixed a few glitches left after switching file formats.
*Fixed a few glitches left after switching file formats.
Improved memory usage when saving maps.
*Improved memory usage when saving maps.
Fixed an updater-related crash.
*Fixed an updater-related crash.


===0.312===
===0.312===
New map format (FCM v2) should provide faster loading times.
*New map format (FCM v2) should provide faster loading times.
server_level.dat loader is now functional.
*server_level.dat loader is now functional.
Fixed possible crash if the default port was not available.
*Fixed possible crash if the default port was not available.
Automatic updater should now work properly. More update options to come.
*Automatic updater should now work properly. More update options to come.


===0.311===
===0.311===
Preview version of automatic updater.
*Preview version of automatic updater.


===0.310===
===0.310===
Cleaned up some VC# crapfiles.
*Cleaned up some VC# crapfiles.
Added class prefixes and colors.
*Added class prefixes and colors.
Added PlaceWater and PlaceLava back to permissions.
*Added PlaceWater and PlaceLava back to permissions.
Fixed rank-limited permissions.
*Fixed rank-limited permissions.
Other assorted glitches fixed.
*Other assorted glitches fixed.


===0.305===
===0.305===
removed config.xml from svn.
*removed config.xml from svn.


===0.304===
===0.304===
More potential crashes fixed.
*More potential crashes fixed.


===0.303===
===0.303===
Fixed a couple potential crashes in ConfigTool and Config.DefineClass
*Fixed a couple potential crashes in ConfigTool and Config.DefineClass


===0.302===
===0.302===
Fixed a few minor ConfigTool bugs.
*Fixed a few minor ConfigTool bugs.


===0.301===
===0.301===
Forgot to save config from World.cs after parsing. Minor update.
*Forgot to save config from World.cs after parsing. Minor update.


===0.300===
===0.300===
ConfigTool finished. Note that some of the options do not have an effect yet.
*ConfigTool finished. Note that some of the options do not have an effect yet.


*version log was not kept before this point*
=Before 0.3xx=
*Version history was not kept before this point.

Latest revision as of 06:51, 30 April 2017

0.6xx

0.644

27 January 2014 - r2327

  • Fix: Fixed a bug that caused character '@' in player names to be treated same as '_' (thanks Dingus)
  • Fix: Fixed a rare crash in /ZEdit when using the command improperly.
  • Fix: Fixed a DataError being thrown in ConfigGUI's "Worlds" tab after toggling rank prefixes on/off.
  • Fix: Improved error reporting.
  • Change: Improved reliability of external IP checks.

0.643

15 October 2013 - r2234

  • Fix: Fixed sometimes wrapping last word of a chat message to the next line, when the whole message could fit on one line (thanks AndrewPH).
  • Fix: Installing updates no longer causes UAC prompts under Windows Vista.
  • Fix: Fixed IRC periodically crashing if someone quits with an empty message.
  • Fix: Fixed IRC-related crashes not being submitted to the crash reporter.

0.642

27 August 2013 - r2180

  • Feature: Added /Fill3D.
  • Feature: Added caret (^), tilde (~), and grave accent (`) to emotes.
  • Fix: Emotes work via IRC once again.
  • Fix: ConfigGUI: Fixed "Add world" and "Edit world" popups sometimes locking up.
  • Fix: Fixed PlayerDB not saving LastFailedLoginIP properly.
  • Change: Made it easy to switch heartbeat servers (minecraft.net to classicube or back) via ConfigGUI.
  • Change: Added an optional second parameter to /DumpStats, which allows specifying period of inactivity for filtering players.
  • Change: Improved startup and shutdown times, and reduced CPU use.
  • Change: /Hide and /Unhide now indicate when they are silent or not.

0.641

17 August 2013 - r2150

  • Feature: Improved the way /EllipsoidH works on flat surfaces. Instead of filled ellipses, it now makes rings.
  • Feature: Added /Reply (/re).
  • Feature: /Fill2D can now fill with any brush, not just solid color.
  • Feature: Added HeartbeatUrl config key, to allow alternative heartbeat/authentication services. Note: HeartbeatSaver only needs to be updated IF you plan on using something other than minecraft.net
  • Fix: Fixed a InvalidOperationException in ConfigGUI when re-drawing the map preview (thanks Jonty800).
  • Fix: Fixed "Realistic" MapGen help (thanks Jonty800).
  • Fix: Now correctly kicking custom premium-MC clients.
  • Fix: Fixed help messages in HeartbeatSaver and /MassRank.
  • Fix: Fixed a potential way of revealing hidden players by messaging them.
  • Change: ConfigGUI's port checker works again.
  • Change: IRC bot will now retry for its primary nick every 30 seconds (thanks Dankirk).

0.640

30 July 2013 - r2124

  • Feature: Mojang account (email) support. Added ViewEmails permission and a config option to disallow email users.
  • Feature: Overhauled map generation! Improved /Gen, new /SetGen command, more options, preset loading/saving, redesigned ConfigGUI interface, and two new map generation modes: Vanilla (from FemtoCraft) and FloatingIsland.
  • Feature: Optional RegEx filtering of filenames for MapRenderer and MapConverter, enabled by --regex flag.
  • Feature: Added "Player ___ logged in from an IP shared by frozen players..." announcement.
  • Feature: Added an optional parameter to toggle commands (grass, water, lava, solid, paint, static) — "on"/"1" or "off"/"0".
  • Feature: Added BackupOnMapChange config key, which automates backups when a world's map is replaced by /Gen or /WLoad (enabled by default).
  • Feature: Added /To as an alias of /TP, and /Flush as an alias for /WFlush.
  • Feature: MapRenderer is now much quicker, thanks to optimization and multithreading.
  • Feature: Added ability to change capitalization of player's name using /SetInfo.
  • Fix: Fixed MapGenerator sometimes locking up when working with tiny 16x16 maps (thanks 123DMWM).
  • Fix: Fixed world greetings not being saved between restarts (thanks Jonty800).
  • Fix: Fixed /WLoad showing incorrect map file names when prompting to replace files (thanks Smokeybacon).
  • Fix: Fixed online-only name prefix revealing hidden players in some commands (thanks Intertoothh and recon).
  • Fix: When a spectating player gets frozen, they are no longer stuck spectating (thanks ruggedbear and NuclearWaffle121).
  • Fix: IRC now handles two-number color codes and reset codes correctly (thanks Liam).
  • Fix: Fixed map changes sometimes leaving behind "ghost maps" for players with rank-specific main maps set (thanks Jonty800).
  • Fix: PlayerDB name autocompletion now correctly handles players with '.' in their names.
  • Fix: Timed backups no longer drift slightly every hour.
  • Fix: Players can now /Clear their chat even while deaf.
  • Fix: Fixed a rare serialization issue with PlayerDB's RankChangedBy field.
  • Fix: Players who were added to the database manually now correctly have FirstLoginDate and ID set on first login.
  • Change: MapRenderer/MapConverter: Now only allow either one directory, or one-or-more files to be specified. Multiple directories, and mixed directories/files are no longer allowed.
  • Change: MapRenderer/MapConverter: Disabled slow fallback conversion by default (which caused non-map files to take forever to skip in recursive mode). Old behavior can be reenabled with --tryhard flag.
  • Change: When auto-updating or restarting under Mono, fCraft no longer tries to use "mono-sgen", now just using "mono" and assuming that runtime is properly configured.
  • Change: /WBuild and /WAccess can optionally now take "@" in front of rank name.
  • Change: Removed BackupOnJoin config key.
  • Change: UpdateInstaller's --restart parameter is more flexible.
  • Change: Dropped Mono 2.6 support.
  • Change: Optimizations in player movement code, PlayerDB loading/saving, IP ban list loading, map generation, map rendering, /Ellipsoid, and /Sphere.

0.639

10 December 2012 - r1917

  • Feature: Added RankPrefixesOnDisplayedNames config key (default: false), which controls whether to prepend rank prefixes to names of players with a custom DisplayedName set.
  • Feature: Added BypassHttpsCertificateValidation config key (default: false), to ease HTTPS-related pains under Mono.
  • Feature: Added MoveEmoteDotToEndOfMessage config key (default: true), which slightly changes emote formatting, by BobKare's request.
  • Fix: Fixed a stability issue in the IRC bot.
  • Fix: Fixed incorrect runtime version detection for Mono versions older than 2.6.
  • Fix: Server now gives more informative messages when you try to do something disallowed to yourself (mute, unfreeze, ban, kick, etc).
  • Fix: Fixed being able to teleport to hidden players (thanks nope__avi).
  • Fix: Fixed /Unhide not faking a join message for hidden players (thanks ruggedbear).
  • Fix: Fixed IRC bot sending USER before NICK (fixes occasional error 451) (thanks Hellenion).
  • Change: Added ability to set players' BandwidthUseMode via /SetInfo.
  • Change: Improved /Env, /UndoAreaNot, and /Help messages.
  • Change: Players' connection messages in logs now include TimesVisited stat.
  • Change: /Help commands is no longer an alias for /Commands (thanks ruggedbear).

0.638

29 November 2012 - r1887

  • Feature: Emote keywords and their Unicode equivalents can now be included in announcement and rule files.
  • Feature: IRC bot now sends a quit message consisting of server name and shutdown reason.
  • Fix: Fixed a very small chance of PlayerInfo.TimeMutedLeft returning negative time spans.
  • Fix: Leading and trailing spaces are now trimmed from kick/ban/unban reasons.
  • Fix: Fixed some emotes getting trimmed from /Say, /Me, and /Staff (thanks Intertoothh)
  • Fix: Fixed RestartInterval starting two chat timers (thanks Hellenion)
  • Fix: Fixed ServerCLI using console colors for the first few messages even if --noconsolecolor command-line switch was given (thanks Hellenion)
  • Change: Added --noupdater command line switch, which stops fCraft from launching update installer binaries (although all other update-related behavior remains the same)
  • Change: Player's own name is no longer considered in autocompletion/searches for commands that are not applicable to self (e.g. /Ban, /Mute, /Ignore, /TP, etc)
  • Change: Logged global chat messages now have "(global)" prepended before player's name.
  • API: Updated trunk project files to VisualStudio 2010. Target runtime remains .NET 3.5 Client Profile.

0.637

16 October 2012 - r1847

  • Feature: Added /Emotes command, to list emotes and their keywords.
  • Fix: Fixed IRC bot cutting off very long messages.
  • Fix: Fixed /Info not working with some IP ranges (thanks _BjorN64_).
  • Fix: Fixed single-letter emote keywords not working (thanks Wundsalz).
  • Fix: Improved the way IRC bot handles nick conflicts (thanks Jonty800).
  • Fix: /DumpStats no longer dies when an invalid file name is given (thanks Hellenion).
  • Change: Added a new build configuration, DEBUG_NETWORKING, which traces all incoming and outgoing packets.
  • Change: IRC bot now logs all outgoing messages when built in DEBUG_IRC configuration.

0.636

10 October 2012 - r1832

  • Feature: Check your configs! New options were added to control display of colors and emotes to/from IRC.
  • Feature: Added {house} emote: ⌂ (0x7F).
  • Fix: Fixed newline codes %n/%N not being parsed properly.
  • Fix: Fixed a crash in Color.StripColors (thanks sukinorules).
  • Fix: Fixed random symbols appearing in stack traces in console (thanks sukinorules).
  • Fix: Fixed couple problems with Player.Moving event (thanks 00pol).
  • Fix: Spawn points of MCSharp map files are now loaded correctly (thanks 00pol).
  • Change: Players' DisplayedNames may no longer contains line breaks.

0.635

8 October 2012 - r1822

  • Feature: Added support for "emotes" (chat symbols). New permission (UseEmotes) and config key (IRCAllowEmotes) were added.
  • Fix: Fixed numbers sometimes being accepted as valid (e.g. by /Mute), although counted as 0-length time spans.
  • Fix: Fixed PlayerDB not saving strings with newlines properly.
  • Fix: Fixed IRC bot sometimes producing messages that are a couple characters over the IRC message size limit (512 chars).
  • Fix: Fixed players being able to use newline codes (&N/&n) on IRC.
  • Fix: Fixed problems with UpdaterMode and BackupOnStartup settings in ConfigGUI.
  • Fix: Fixed fCraft not building in DEBUG_IRC configuration.
  • Change: Added a workaround for TermInfoDriver-related exceptions under Mono (thanks Hellenion)
  • Change: Symbolic color codes (e.g. %S) can now be used in chat.
  • Change: Backslash can now be used to escape percent color codes (e.g. \%C).
  • Change: fCraft will now retry looking up the external IP up to 3 times.
  • Change: Lots of documentation, annotation, and API improvements.

0.634

30 September 2012 - r1796

  • Fix: Fixed an occasional InvalidOperationException when auto-updating in ServerGUI.
  • Fix: Fixed ConfigGUI showing misleading information in "unrecognized entry ignore" errors.
  • Fix: Fixed Logger trying to write to file in MapConverter and MapRenderer.
  • Fix: Fixed MapRenderer and MapConverter spamming zone-related errors (thanks Hellenion and AndrewPH)
  • Fix: Fixed /UndoPlayerNot help entry (thanks ruggedbear)
  • Change: Heartbeat code now uses HTTPS, as mandated by Mojang. If you use Mono, see http://www.mono-project.com/FAQ:_Security
  • Change: Removed support for the malfunctioning WoM Direct heartbeat service.
  • Change: RankChangeReason is now shown as a "Rank note" in /Info, even if no other data (PreviousRank/RankChangedBy/RankChangeDate) exists (thanks Wundsalz)

0.633

26 September 2012 - r1788

  • Feature: Added checkbox for HeartbeatEnabled config key to ConfigGUI, on the advanced tab.
  • Fix: Fixed heartbeat/verification issues caused by "no-www" changes made by Mojang at minecraft.net
  • Fix: Fixed VisualStudio designer being unable to load ConfigGUI.MainForm.
  • Fix: Fixed /ZMark being spammy (thanks ruggedbear).
  • Fix: Binding "air" block to something now works as expected (deleted blocks are replaced with the binding) (thanks Hellenion).
  • Fix: Added missing tooltips to "Data Backup" checkbox in ConfigGUI (thanks PhoneBook_).
  • Fix: Added HeartbeatSaver to UpdateInstaller and list of protected filenames.
  • Fix: Fixed occasional startup crash in HeartbeatSaver.
  • Change: /Reload Autorank now triggers a re-scan of the whole PlayerDB.
  • Change: Added code to BlockDB to recover misaligned .fbdb files. BlockDB files are supposed to be aligned to 20 bytes. Misalignment might happen if writing didn't finish properly - e.g. power outage, or ungraceful shutdown.
  • Change: Improved consistency of exit codes in HeartbeatSaver, MapConverter, and MapRenderer.

0.632

14 September 2012 - r1765

  • Feature: Added standalone HeartbeatSaver utility, a heartbeat-sending daemon.
  • Feature: Added a way to specify scale/turbulence/seed for cloudy brush.
  • Feature: Renamed "IRC" LogType to "IRCStatus", and added "IRCChat" LogType. Check your configs.
  • Fix: Fixed the updater. You'll have to update from version 0.631 manually (thanks nope__avi).
  • Fix: Fixed a bug related to multiple players trying to join an almost-full server at the same time.
  • Fix: Fixed a rare InvalidOperationException crash in ConfigGUI.
  • Fix: Fixed reversed order in /BlockInfo (thanks recon_).
  • Fix: Fixed a few formatting errors in feedback messages.
  • Fix: Fixed a rare disconnect related to a spectator trying to follow a spectatee to a full world.
  • Fix: Fixed /Hide not showing a fake disconnect message when needed.
  • Fix: Fixed /WRename prompting for file overwrite when changing capitalization in a world name.
  • Fix: Fixed UndoArea/UndoAreaNot and UndoPlayer/UndoPlayerNot messages occasionally getting mixed up.
  • Fix: Fixed players being unable to join the server if access restrictions prevent them from joining the rank-specific main world.
  • Fix: /WRemove now correctly handles removing rank-main worlds.
  • Fix: Fixed a case where newlines in PlayerInfo or IPBanInfo fields would cause record corruption.
  • Fix: Fixed reversed messages in /DoNotMark (thanks Hellenion).
  • Fix: Fixed ServerCLI sometimes staying open, waiting on console input, when it's supposed to shut down or restart.
  • Change: Sped up "cloudy" brush when working with large draw commands.
  • Change: Crash reporter now submits list of names and versions of all loaded assemblies, to help identify mismatched or missing dependencies.
  • Change: Added logging to every confirmation prompt, "/ok", /BlockDB enabling/disabling/clearing, /ZRemove, /InfoSwap, and /Env.
  • Change: Any pending confirmations are now reset on world change.
  • Change: Added /I as an alias for /Info, and /CS as an alias for /CopySlot.
  • Change: Removed "marbled" brush ("cloudy" works just as well) and FCMv4 map format support (development canceled).
  • Change: /Where command now only requires ViewOthersInfo permission to see other players' whereabouts. It can be used by anyone on self.
  • API: Many more documentation improvements.

0.631

5 September 2012 - r1741

  • Feature: Added a way to restrict commands to match online players' names only, by prefixing the name with an exclamation mark (!). See Command Tips for more.
  • Feature: Added /DoNotMark command. When toggled on, clicking on blocks does not cause marks to be added to a selection.
  • Fix: Included MapConverter.exe and MapRenderer.exe in list of protected filenames.
  • Fix: Fixed a potential crash in Paths.FileExists when working in case-sensitive mode in a root directory.
  • Fix: Fixed ConfigGUI not loading permission limits properly (thanks recon_).
  • Fix: Added missing fake connection message when using non-silent /Unhide (thanks Wundsalz).
  • Change: Improvements to fCraft's built-in crash reporter.
  • Change: Blocks redone with /Redo are now flagged as "Redone" in /BlockInfo (instead of "UndoneSelf"), painted blocks as "Painted" (instead of "Manual, Replaced").
  • API: Many more documentation improvements.

0.630

4 September 2012 - r1727

  • Feature: New permissions! FlushWorlds (previously part of ManageWorlds), UseTimers (previously part of Say), and UndoAll.
  • Feature: Added ability to undo multiple players' actions at once, or EVERYONE's actions at once, using /UndoPlayer and /UndoArea. Command syntax changed, see wiki.
  • Feature: /Info now shows whether minecraft.net accounts are free or paid.
  • Feature: Added special "skip"/"none" blocktype, usable with brushes and draw commands.
  • Feature: Added ability to clear world/zone whitelists and blacklists. Use "-*" in place of player name to clear whitelist, and "+*" to clear blacklist.
  • Feature: Added a way to remove all zones in a world, /ZRemove *.
  • Feature: Added /UndoAreaNot (/uan) and /UndoPlayerNot (/upn), which reverse changes made by everyone EXCEPT the given player(s).
  • Feature: Added MapConverter and MapRenderer utilities.
  • Feature: /CuboidW now supports optionally filling sides and center with different blocktypes, e.g. "/cw white blue red".
  • Fix: Fixed ServerCLI launching the wrong fCraft binary after running the updater.
  • Fix: Fixed a missing warning in /Gen when map height is not a multiple of 16.
  • Fix: Fixed a rare case of players receiving desynchronized copies of maps where draw commands are in progress.
  • Fix: Fixed a crash in /Commands <Category>
  • Fix: Fixed potential crashes when working with files in root directories (e.g. C:/)
  • Fix: Improved /BanEx logging.
  • Fix: Improved support for Myne/MyneCraft/HyveBuild/iCraft maps.
  • Fix: Fixed "Add World" dialog in ConfigGUI defaulting to 20 minutes, instead of "(default)".
  • Fix: Fixed SaveInterval and BackupInterval being limited to just 100 seconds/minutes in ConfigGUI (thanks Hellenion).
  • Fix: Improved consistency of timestamp format in logs (thanks Hellenion).
  • Fix: Fixed being unable to remove world greetings via /WSet (thanks Hellenion).
  • Fix: Fixed IRC bot cutting off long messages (thanks Hellenion).
  • Change: Improved performance of /Gen, /WLoad, world loading, and all BlockDB-related commands.
  • Change: Adjustments to block names and aliases, as well as command aliases.
  • Change: Merged /Cancel and /Nvm commands.
  • Change: "&N" is now usable as a "newline" constant in all configurable strings (rules, announcements, greetings, etc), and "%N" is usable by players with UseColorCode permissions.
  • Change: Made /Say, /Me, and /Staff usable by frozen players.
  • Change: Added a warning to /Colors regarding the minimum rank required to use colorcodes in chat (thanks Jonty800).
  • Change: Ignoring a player no longer prevents you from seeing /Say messages written by them.
  • Change: /Paint, /Solid, /Grass, /Water, and /Lava are no longer usable by players without Build permission, and dont show up in /Commands for them.
  • Change: Clarified /ZEdit messages when trying to remove self from blacklist, or add yourself to whitelist.
  • Change: /Mute, /Unmute, /Freeze, and /Unfreeze are now also usable on offline players.
  • Change: Session threads are no longer marked as "background", to prevent unexpected side effects from session threads being aborted on shutdown. This might slow down shutdown a bit, but there is less to go wrong.
  • Change: World greetings can now support constants.
  • Change: Ctrl+C/Ctrl+Break are intercepted in ConfigCLI, and result in a graceful shutdown.
  • Change: Process exit code is now set to match ShutdownReason.
  • API: Added ChatTimer.Started and ChatTimer.Stopped events, rewrote BlockDB, MapConversion, and IsoCat APIs.
  • API: Many documentation improvements.

0.624

16 July 2012 - r1636

  • Fix: Fixed BlockDB time-limiting code trimming too much data from the database.
  • Fix: CommandBook ban import now accepts any filename that ends with ".csv", not just "bans.csv".
  • Fix: ServerCLI no longer crashes upon receiving EOF from console.
  • Fix: Fixed a rare case of hidden players being revealed (briefly) when their rank is changed.
  • Fix: Fixed /Spectate leaving ghost players behind on world change (thanks Hellenion).
  • Fix: Fixed a couple typos in /WLock and /WUnlock (thanks ImNoobSoWhat).
  • Change: Added server name to /ServerInfo
  • Change: If opening a link fails (from ConfigGUI or ServerGUI), the URL is copied to clipboard, instead of crashing.
  • Change: "/Import bans" no longer prints a message for every player who's already banned, instead showing a total number of already-banned players at the end.
  • Change: Added a missing "Copy" context menu to the ServerGUI's log box (thanks to Jonty800).
  • Change: fCraft front-ends now check fCraft.dll's assembly version, and refuse to start if there is a mismatch (Thanks Zaneo).

0.623

9 July 2012 - r1624

  • Fix: Fixed a crash in /PasteX and /PasteNotX.
  • Fix: Fixed /BanInfo crash when given a non-banned IP address.
  • Fix: Fixed a crash in Player.DetectChatSpam if AntiSpam was supposed to be disabled.
  • Fix: Fixed typos in comments and messages (thanks Jonty800).
  • Fix: Fixed a crash in /ZAdd (thanks thelonedrummer18).

0.622

6 July 2012 - r1619

  • Feature: ServerGUI message log is now color-coded, easier to select/copy/paste, and featuring clickable links.
  • Fix: Fixed several regressions in /Hide and /Spectate that were introduced in 0.620-0.621 (thanks mark_b).
  • Fix: Fixed /Deafen being usable from console (thanks phonebookguy).
  • Fix: Fixed a crash in Paste/PasteNot/PasteX/PasteNotX (thanks Grant).
  • Misc: Updated some draw command messages, credits, help entries, warnings.

0.621

5 July 2012 - r1612

  • Feature: Added CommandBook banlist (bans.csv) support to /Import.
  • Feature: Added a way to list all players of a certain rank with "/Info @ClassName".
  • Feature: Added {PLAYER_LIST} variable, for use in greetings/announcements/rules.
  • Fix: Fixed changes to DefaultBackupInterval config key not being applied.
  • Fix: Fixed /BanInfo showing "players on same IP" for players without a recorded IP address.
  • Fix: Fixed fCraft occasionally using localized datetime and number formatting.
  • Fix: Fixed /Cut storing the selected blocks before checking player's draw limit (thanks ruggedbear).
  • Fix: Fixed /Fill2D starting a selection even if command parameters could not be parsed (thanks David00143).
  • Fix: Fixed /Copy and /Cut reporting incorrect origin information (thanks nope__avi).
  • Fix: Players who are spectating or being spectated by you are no longer hidden from the tab player list (thanks ruggedbear).
  • Change: If multiple players are spectating the same player, they no longer see each other (thanks Hellenion).
  • Change: Small improvements and fixes to /WSet and to AntiSpam functionality.
  • Change: Sped up PlayerDB loading on startup.
  • Change: Added shortcuts for /SetInfo field names.

0.620

17 June 2012 - r1592

  • Feature: WoM Direct description and flags can now be set from config, without the need to go to WoM Direct website.
  • Feature: Added a new /WSet command, that allows hiding worlds, changing backup settings, and setting greeting messages.
  • Feature: More /WInfo information is persisted across server restarts: IsLocked, LockedBy, UnlockedBy, LoadedBy, LoadedOn, MapChangedBy, MapChangedOn.
  • Feature: Added IRCStripMinecraftColors config key (default: true). It determines whether Minecraft colorcodes (ampersand codes) entered on IRC should be removed before showing the message in-game.
  • Fix: Fixed incorrect percentages occasional being printed by /Measure, /Cancel, and /Undo.
  • Fix: Locked worlds remain locked after server restart.
  • Fix: Addressed many flaws and glitches in the backup system.
  • Fix: Fixed a case where draw commands that affected no blocks caused division by zero
  • Fix: Fixed a PlayerDB record corruption bug that affected numbers over 100,000,000.
  • Fix: Fixed a stability issue related to LineWrapper (thanks Kevinsweijen and Mc_MrCat).
  • Fix: Fixed IRC markup codes being forwarded to the server in IRC's channel-kick messages.
  • Fix: Fixed /Unmute not checking rank limits (thanks Jonty800).
  • Fix: Fixed "/BanIP <IP>" and "/BanAll <PlayerName>" not checking ban exemptions when kicking players (thanks BobKare).
  • Fix: Fixed "/BanIP <PlayerName>" not kicking all the players from IP address.
  • Fix: Fixed Undo/Redo messages (thanks Jonty800).
  • Fix: Fixed compatibility with Mono 2.10.8.1 (thanks Hawkzeh).
  • Change: Removed /WHide and /WUnhide (obsoleted by /WSet).

0.618

22 April 2012 - r1568

  • Fix: Fixed a crash in ConfigGUI when trying to sort by map size and a map file is missing (thanks Moose).
  • Change: Ampersands are no longer allowed in chat, even escaped, due to unpredictable Minecraft client behavior.

0.617

21 April 2012 - r1564

  • Feature: /BInfo now accepts optional XYZ coordinates, like /Mark.
  • Fix: Added a workaround for "Internal error Flush" under Mono.
  • Fix: Fixed /WBring printing incorrect usage syntax (thanks recon_)
  • Fix: Fixed typo in /BlockDB (thanks xN8Gx)
  • Fix: Fixed IRC bots not binding to the specified local endpoint.
  • Fix: Fixed "PreviousRank" not getting updated by /SetInfo working (thanks nope__avi)
  • Fix: Fixed several rare stability issues (thanks Kevinsweijen).
  • Fix: Fixed /Undo and /Redo producing odd log messages if 0 blocks have been changed.
  • Change: Allowed '&' character (ampersand) to be entered in chat, which is now escaped.

0.616

10 March 2012 - r1498

  • Fix: Fixed /Import terminating when importing bans, if a player with the given name is already banned.
  • Fix: Fixed a formatting error in /Bring and /WBring confirmation messages.
  • Fix: Fixed mixed-up messages in /WAccess and /WBuild when removing players from blacklist/whitelist (thanks ruggedbear and xN8Gx)
  • Fix: Fixed /Static not turning off after switching worlds (thanks boblol0909)
  • Fix: Fixed /Rotate printing incorrect copyslot number (thanks Mc_MrCat)
  • Fix: Fixed a ServerGUI crash when pressing the down arrow key after typing in the first console message (thanks Jason)
  • Fix: /Me messages no longer count towards stats twice (thanks recon_)
  • Fix: /Mute and /Unmute now usable with "-" in place of player name (thanks thelonedrummer18)
  • Fix: Fixed README.txt typo (thanks Wolfmade)

0.615

2 February 2012 - r1445

  • Fix: Fixed /Patrol checking Spectate permission, and /SpecPatrol not checking it.
  • Fix: Fixed /WRename not updating player's last-used-world-name (thanks Hellenion)
  • Fix: Fixed colorcodes (%-codes) not getting applied consistently (thanks BobKare)
  • Fix: Fixed a rare name-verification issue that only affected players whose ranks have been imported (thanks Mc_MrCat)
  • Fix: ServerGUI now correctly interprets "Notify" and "Auto" updater settings.
  • Change: Data backups are now stored in ./databackups/ directory.

0.614

24 January 2012 - r1426

  • Fix: Fixed server crashing if PlayerDB.txt exists but is empty.
  • Fix: Fixed "/Join -" using player names, and "/TP -" using world names.
  • Fix: Solved File.Replace-related errors, which caused occasional save failures.
  • Fix: Fixed /SpecPatrol not checking caller's Spectate permission limit when selecting the next target.
  • Fix: Fixed "random" brush producing obvious repeating patterns.
  • Fix: Fixed auto-updater occasionally freezing when attempting to "Restart Now".
  • Fix: Added permission limit check to /Unfreeze (thanks Xb0x4d4m)
  • Fix: Improved the way /Bring and /WBring enforce access permissions (thanks Hellenion)
  • Change: Added more information about player connects/disconnects to log file.

0.613

11 January 2012 - r1401

  • Fix: Fixed ConfigGUI not saving changes to ShowConnectionMessages key.
  • Fix: Fixed a case where ConfigGUI could crash while attempting to rename a world.
  • Fix: All spectate permissions are now re-checked when someone gets promoted or demoted.
  • Fix: Fixed ConfigGUI Worlds tab crash when dealing with zoned maps.
  • Fix: Fixed IRC bot not retrying for desired nickname after reconnecting
  • Fix: Fixed a case where editing a world via ConfigGUI would clear security whitelists/blacklists.
  • Fix: Fixed spectating players not being treated as hidden (thanks Hellenion)
  • Fix: Fixed formatting in "Player ___ got auto-kicked" message (thanks BobKare)
  • Fix: Fixed auto-kick revealing hidden players (thanks BobKare)
  • Fix: Fixed RandomBrush-related /Undo artifacts in /Triangle (thanks Lunara_Noctis)

0.612

14 December 2011 - r1307

  • Fix: Fixed "/Worlds @Rank" not autocompleting rank names.
  • Fix: Fixed compatibility with legacy PlayerDB format versions. PlayerDB files created by fCraft 0.400+ will work again.
  • Fix: Fixed several syntax problems and crashes in /Gen.
  • Fix: Fixed a bug that reset a world's BackupInterval to default and IsLocked flag to false after changing the map (backport from 0.700).
  • Fix: Fixed a bug that prevented kicks/bans/promotions/demotions from being announced on IRC if no reason was given.
  • Change: Capped all user-entered time spans at 9999 days.
  • Change: Shortened and clarified some confirmation prompts (/Gen, /WLoad, /ZRemove, /Import, /MassRank).

0.611

3 December 2011 - r1282

  • Feature: Added information about periodic backups to /WInfo.
  • Fix: Fixed /Players not working properly if both world name and offset were given.
  • Fix: Fixed /WAccess, /WBuild, and /ZEdit not working with one-letter rank names.
  • Fix: Fixed /BanIP, /BanAll, /UnbanIP, and /UnbanAll treating fully numeric player names as IPs.
  • Fix: Fixed /SetInfo not resetting PlayerInfo.LastModified date.
  • Fix: Fixed "/Worlds populated" revealing worlds with hidden players.
  • Fix: Fixed /BringAll ignoring per-rank limits in some cases (thanks ferny530)
  • Fix: Fixed appearance of black and white blocks in /Env edges (thanks Jonty)
  • Fix: Fixed a bug in Position.Equals<Position>(), which may have caused unnecessary position updates in Player.UpdateVisibleEntities (thanks boblol0909)
  • Fix: Fixed a little crash in Chat.GetRawMessageType (thanks ruggedbear)
  • Fix: Fixed a case where Player.CanPlace checked permissions against the wrong world's BuildSecurity controller (thanks Xesdra)
  • Fix: Fixed "/Commands @Rank" showing hidden commands (thanks Hellenion)
  • Fix: Fixed a typo in /Worlds (thanks Kevinsweijen)
  • Fix: Fixed BlockDBAutoEnable and BlockDBAutoEnableRank config keys being placed in the "General" section.
  • Change: Improved config.xml format (now version 152). Configs created with fCraft 0.611+ will not be usable with older versions of fCraft.
  • Change: Rewrote ServerGUI startup code to make it more responsive (thanks to 800craft for the idea).
  • Change: Added information about command-line options to the README, and fixed some typos.
  • Change: MaxConnectionsPerIP restriction no longer applies to localhost.
  • Change: Increased block-ratio limit for "random", "cloudy", and "marbled" brushes from 1000 to 10,000.

0.610

18 November 2011 - r1240

  • Feature: Added /Fill2D (/f2d), /Triangle (/t), and /TriangleW (/tw) draw commands.
  • Feature: Added ability to filter /Worlds by rank.
  • Feature: Added /Static (a way to repeat selection commands).
  • Feature: Added MaxUndoStates config key (how many steps back can /Undo go), and ConfigGUI bindings.
  • Feature: Added experimental IP-range lookup to /Info (CIDR notation). Changed /Info pattern-matching single-character symbol from '.' to '?'
  • Feature: Added pagination to /Players.
  • Feature: /Spectate and /SpecPatrol now show what commands, PMs, and rank messages the target types in.
  • Feature: Added a way to change server salt without needing a restart, using /Reload Salt
  • Feature: /Measure now shows statistics about block types in the selection.
  • Feature: /Gen now has two new templates: "ocean" and "empty"
  • Fix: Many fixes in name-retyping functionality.
  • Fix: Addressed stability issues in LineWrapper and Undo/Redo.
  • Fix: Fixed /WLock not canceling all draw commands (as intended).
  • Fix: Fixed some outdated descriptions, links, and tooltips in ConfigGUI.
  • Fix: Fixed being able to BanIP/BanAll/UnbanIP/UnbanAll invalid IP addresses (0.0.0.0 and 255.255.255.255).
  • Fix: Fixed /Info printing a blank page (instead of the last page) if given offset is greater than the total number of matches.
  • Fix: Fixed rank prefixes being appended to players' names if DisplayedName is set.
  • Fix: Fixed a couple rare crashes/hangs in ServerGUI when parsing console commands.
  • Fix: Fixed /Ban and /Unban announcing when they're not supposed to.
  • Fix: Fixed a potential crash in /BanInfo when looking up an IP address directly (no player name).
  • Fix: Fixed another obscure way of revealing hidden players.
  • Fix: Fixed Beta client kick message (thanks Voziv).
  • Fix: Fixed /Commands defaulting to printing ALL commands.
  • Fix: Fixed /Undo trying to re-cancel canceled commands.
  • Fix: Fixed uncaught "Illegal characters in path." exception when trying to save a /Gen'erated map to an invalid filename.
  • Fix: Fixed typos in /ReplaceNot and /UndoArea.
  • Change: Added a warning on startup if name verification is disabled.
  • Change: Tweaks and improvements to /Info, /WInfo, /BanInfo, /SetInfo, and /Commands.
  • Change: Removed code that tries next port if the given one could not be used. Now fCraft either starts on the port specified in config, or dies.
  • Change: Commands now complain about being given too many parameters (in addition to complaining about too few parameters). This should help catch mistyped commands.
  • Change: Added an option to disable giant-tree generation in ConfigGUI's map generator.
  • Change: Changed log format for bans/kicks to include more information, and fixed log message format for "Player ____ logged in from an IP shared by banned players..."
  • Change: Included config.xml in the automated data backup.
  • Change: ConfigGUI tweaks and improvements.
  • Change: Changes some aliases:
    • Added /Whois and /WhoWas as aliases for /Info.
    • Set "/B" and "/About" to be aliases for /BInfo.
  • Change: Changed some ConfigKey defaults:
    • BlockDBEnabled defaults to "true"
    • WomEnableEnvExtensions defaults to "false"
    • IRCBotAnnounceServerEvents defaults to "true"
  • Change: Discontinued ServerWinService (formerly fCraftWinService) subproject.
  • API: Improved Vector3I, Vector3F, and Position classes a bit.
  • API: New events: DrawOperation.Beginning / Began / Ended
  • API: Changed the way PlayerInfo stores empty string fields. Instead of a 0-length string, it now uses nulls.
  • Optimization: Sped up PlayerDB loading/saving, and boolean ConfigKey lookup.

0.604

23 October 2011 - r1155

  • Feature: Added support for repeating previously-entered player and world names. Just put a dash (-) in place of the player/world name when using a command, and fCraft will fill in the most-recently-used name.
  • Fix: Fixed an occasional SecurityController-related crash in /Gen, /WLoad, and ConfigGUI world editor.
  • Fix: Fixed an very rare problem in shutdown/restart commands.
  • Fix: Fixed a rare crash that only happened if: MaxPlayers>128, MaxPlayersPerWorld=128, main is full, AND connecting player has a reserved slot.
  • Fix: Fixed naming of paste/pastenot and pastex/pastenotx
  • Fix: Fixed a permission exploit in /wbring (thanks to panda100123)
  • Fix: Fixed /Rules section finder accidentally being case-sensitive.
  • Fix: Fixed an issue with MCSharp/MCZall/MCLawl/MCQuai/MCStorm/MCForge/MCWhatever importer.
  • Change: Decreased shading strength in IsoCat renderer.
  • Change: Added /Who as an alias for /Players, by request.
  • Change: Clarified ConfigGUI description of name verification settings.
  • Change: Normalized command name capitalization. Command names must now start with an uppercase letter, for consistency.
  • API: Fixed inconsistencies in PlayerDB.txt header row format declaration.

0.603

20 October 2011 - r1142

  • Fix: /Cancel can no longer be repeated with "/" (no longer replaces previously-called command).
  • Fix: Fixed /Rotate and /Mirror messing up if a paste command is in progress.
  • Fix: Re-enabled crash interception and reporting.

0.602

18 October 2011 - r1135

  • Feature: One-click paste commands are now the default. Two-click aligned paste commands are now known as /PasteX (/PX) and /PasteNotX.
  • Feature: Added /ReplaceBrush (/RB) command (shortcut for /Brush ReplaceBrush + /Cuboid).
  • Feature: Added a way to change number of copy/paste slots per rank from ConfigGUI.
  • Fix: Fixed a few typos and missing help entries.
  • Fix: Fixed DrawOp completion message and log entry.
  • Fix: Fixed /Paste and /PasteNot not properly clipping against world boundaries.
  • Fix: Fixed ConfigGUI not preserving environment settings for worlds.
  • Fix: Fixed ConfigGUI losing some worlds and showing some errors when importing from 0.5xx.
  • Fix: Fixed /Bring not being usable from console.
  • Fix: Fixed /WRename crashing if invalid characters (from filesystem's point of view) are present in the new name.
  • Fix: Fixed /SpecPatrol not checking for Spectate permission.
  • Fix: Fixed /UndoArea'd and /UndoPlayer'ed blocks having "Restored" flag set in /bi
  • Fix: Fixed a detached checkbox on "Worlds" tab of ConfigGUI.
  • Fix: Fixed /Say, /Staff, and /Me getting logged twice.
  • Fix: Fixed per-world backup settings being cleared on server restart.
  • Fix: Fixed a rare NullReferenceException in WorldManager.LoadWorldList that occurred if the main world was missing, and the fallback world had access restrictions.
  • Fix: Fixed some issues with BlockDB settings in "Add World" and "Edit World" popups of ConfiGUI.
  • Fix: Fixed a rare ConfigGUI crash when resetting the rank tab whole one of the old ranks is selected.
  • Change: Sped up /EllipsoidH and /SphereH slightly (thanks to Redshift).
  • Change: Improved error handling in /Env when setting level.
  • Change: Double-buffered the preview on "Chat" tab of ConfigGUI, to get rid of flicker.
  • Change: Clarified auto-freeze message when trying to kick/ban someone without a required reason string.

0.601

15 October 2011 - r1135

  • Fixed several issues with /Undo and drawing commands.

0.600

14 October 2011 - r1107

See http://www.fCraft.net/0.600 for a summary of changes, and upgrade notes.
  • Chat: Added a /Timer command for creating publicly-announced countdowns/timers.
  • Chat: Added a way to cancel partial messages: /Nvm.
  • Chat: Removed "Banned player ___ tried to log in" and "Player ___ tried to log in from a banned IP" messages.
  • Chat: /Say, /Staff, and /Me commands can no longer repeated using "/" shortcut.
  • Chat: Added a warning when trying to PM deafened players.
  • Chat: Added a shortcut for chatting to same rank: "@@ Message"
  • Chat: Increased the number of blank lines sent by /Clear to 30, to accommodate players with smaller-than-normal font sizes.
  • Chat Fix: Fixed /Say, /Roll, /Staff, and /Me sometimes bypassing Chat permission, mute check, or spam detection check.
  • Chat Fix: Fixed rank chat being logged twice.
  • Chat Fix: Fixed some system messages getting through to deafened players.
  • Chat Fix: /Deafen now clears the screen when toggled on.
  • Commands: Rank and zone names now autocomplete.
  • Commands: Players can no longer freeze, mute, kick, ban, unban, promote, or demote themselves.
  • Commands: /Players can now be called with an optional WorldName parameter, to only list players in a particular world.
  • Commands: /WLoad now takes two more optional parameters: build rank and access rank names.
  • Commands: /Info now shows last leave reason, idle time, freeze/mute information, and ban exemption status.
  • Commands: Augmented /Rules to support several rule categories.
  • Commands: Added /Spectate and /SpecPatrol (/SPat) commands.
  • Commands: Added /WBring (brings target player to a world);
  • Commands: Added /Spawn command (brings you to spawn). Typing "/TP" no longer does the same thing, and /TP now always requires Teleport permission.
  • Commands: Algorithm that /Patrol uses to pick the next target was improved.
  • Commands: Renamed Lock/Unlock commands to /WLock//WUnlock, for consistency.
  • Commands: Merged /ReloadConfig and /AutoRankReload into /Reload command. Merged /ImportRanks and /ImportBans into /Import command. Combined functionality of /LockAll into /WLock, and functionality of /UnlockAll into /WUnlock.
  • Commands: /Info and /Worlds now support pagination.
  • Commands: When world access permissions are changed with /WAccess, players who lost ability to join the world will automatically be moved to main.
  • Commands: Frozen player can no longer call most commands, with exception of: /Clear, /Info, /BanInfo, /RankInfo, /ServerInfo, /Ranks, /Rules, /Where, /Help, /Commands, /Colors, /Worlds, /Zones, and /ZInfo.
  • Commands: /Bring and /WBring now give the option of overriding worlds' access minimum-rank. Explicitly blacklisted players will continue to be barred.
  • Commands: Added /InfoSwap command, for swapping two players' ranks and PlayerDB records.
  • Commands: Added a way to abort a server shutdown or restart ("/Shutdown abort" or "/Restart abort").
  • Commands: /RankInfo now shows copy/paste slots, idle kick time, and permission limits.
  • Commands: Most time-related commands now take the compact format (e.g. 1m30s, 45s, 24h, etc).
  • Commands: Color-coded /Commands.
  • Commands: Limited /Mute duration to range between 1 second and 700 days (100 weeks).
  • Commands: /SetInfo now allows changing players' DisplayedName.
  • Commands: A warning is now shown when a player is kicked/banned, and other players are still connected from the IP.
  • Commands: Added a way to add IP ban exemptions using /BanEx (banning all players from IP except a particular one).
  • Commands: Added automatic countdowns to /Shutdown and /Restart.
  • Commands: Added more stats to /ServerInfo.
  • Commands: /MassRank now defaults to silent, and takes a "reason" parameter.
  • Commands: Added "/St" as an alias for /Staff. Changed "/L" from being alias for /Join, to being alias for /Lava. Removed "/Cub" alias for /Cuboid.
  • Commands Fix: Fixed /UnbanIP and /UnbanAll not announcing the unban reason.
  • Commands Fix: Fixed /Info not formatting names of offline players.
  • Commands Fix: Fixed /Restart breaking under Mono if working path contains spaces.
  • Commands Fix: Fixed freeze/unfreeze printing wrong ranks in "You can only freeze players ranked ____ or lower" messages.
  • Commands Fix: Fixed a rare crash in /Rules when used from console.
  • Commands Fix: /BanIP and /BanAll no longer allow to ban the IP if it's shared by any players whom caller is not allowed to ban.
  • Commands Fix: Fixed /Ignore and /Unignore printing all matches at once on autocompletion.
  • Commands Fix: Fixed a case where /BringAll could reveal hidden players.
  • Commands Fix: Fixed a few bugs in /DumpStats, expanded player listing to top-5/bottom-5, and added "BlocksDrawn" stat.
  • Commands Fix: Fixed /Rank and /TP commands showing up in /Commands for ALL players.
  • Commands Fix: Fixed a couple rare bugs in /Roll.
  • Commands Fix: Fixed broken /BringAll support for bringing multiple ranks at once.
  • Commands Fix: Fixed several obscure ways of revealing presence of hidden players via commands like /ServerInfo and /Worlds.
  • Config: New config keys: BackupDataOnStartup (default: true), RestartInterval (default: 0), HeartbeatToWoMDirect (default: true), BlockDBEnabled (default: true), BlockDBAutoEnable (default: true), and BlockDBAutoEnableRank (default: DefaultRank), WoMEnableEnvExtensions (default: false).
  • Config: Added Spectate permission that covers /Spectate and /SpecPatrol.
  • Config: Added DrawAdvanced permission that covers /Brush, {{cmd|Sphere, /SphereH, /Torus, and /Restore commands.
  • Config: Added ManageBlockDB permission that covers /BlockDB.
  • Config: Added UndoOthersActions permission that covers /UndoPlayer and /UndoArea.
  • Config: /Reload can now update more config keys without needing a restart: AutoRankEnabled, BandwidthUseMode, ConsoleName, DefaultRank, DefaultBuildRank, PatrolledRank.
  • Config: Removed obsolete ShowBannedConnectionMessages config key.
  • Config Fix: Fixed DefaultRank/DefaultBuildRank/PatrolledRank settings not being applied.
  • ConfigGUI: Added BlockDB settings to "Worlds" tab and "Add/Edit World" dialog.
  • ConfigGUI: Reorganized Rank tab.
  • ConfigGUI: Relaxed restrictions on rank prefixes.
  • ConfigGUI: Added "Insert Color" and "Insert Keyword" buttons to announce/rule/greeting editors in ConfigGUI, and a "Reset" button to revert edits.
  • ConfigGUI: Any errors/warnings that are produced while loading worlds.xml in ConfigGUI are now displayed at startup.
  • ConfigGUI Fix: ConfigGUI no longer loses worlds' whitelists/blacklists.
  • ConfigGUI Fix: Fixed several bugs related to renaming worlds.
  • ConfigGUI Fix: Fixed several "Reset" bugs.
  • ConfigGUI Fix: Fixed "Enable colors in IRC" checkbox remaining disabled in ConfigTool.
  • ConfigGUI Fix: Fixed ConfigTool's Chat tab not updating to reflect changes in rank colors/prefixes.
  • ConfigGUI Fix: Fixed sort order in Worlds tab when sorting by world size.
  • ConfigGUI Fix: Fixed some rank dropdown menus in ConfigGUI showing "(lowest rank)" instead of "(default rank)" as the default option.
  • Drawing: Introduced a brush/pattern system for draw commands. Rewrote (almost) all existing draw commands to take advantage of that new infrastructure. Brushes are: Normal (default), Checkered, Random, Cloudy, Marbled, Replace, ReplaceNot, ReplaceBrush.
  • Drawing: Added a way to /Undo up to five commands back. Use {{cmd|Redo to reverse it.
  • Drawing: Added /Torus drawing command, written and contributed by M1_Abrams.
  • Drawing: Added support for multiple copy/paste slots, using /CopySlot. Number of slots of configurable per-rank.
  • Drawing: /Replace and /ReplaceNot can now take just one blocktype. The replacement type is inferred from the type of block player is holding when clicking.
  • Drawing: /Undo now cancels the last drawing commands.
  • Drawing: Added a new block name aliases: "g" for grass, "w" for water, "a" for air.
  • Drawing Fix: Added a missing volume check to /Line, and fixed /CuboidW volume calculations.
  • Drawing Fix: Fixed /Copy and /Cut reporting incorrect orientation.
  • FrontEnd: Colored ConfigCLI log messages: red for errors, yellow for warnings, dark gray for debug, default (gray) for everything else. Call with "--noconsolecolor" parameter to disable.
  • FrontEnd: ServerCLI now handles all updater modes properly, and downloads updater/restarts if needed.
  • FrontEnd: Improved window titles.
  • FrontEnd Fix: Fixed ServerCLI writing errors to stdout instead of stderr.
  • Misc: Players who log out hidden will now log in silently, still hidden.
  • Misc: More keywords are now usable in announcements, rules, and greeting files: {SERVER_NAME}, {MOTD}, {RANK}, {PLAYER_NAME}, {TIME}, {WORLD}, {PLAYERS}, and {WORLDS}
  • Misc: Kicked or disconnected players no longer have their TotalTime increased for the time idled.
  • Misc: fCraft will refuse to start up if running old versions of mono (2.4 or earlier).
  • Misc: Crash reporter now prints a reference number for submitted reports.
  • Misc: AutoRank now only evaluates online players on a timer. A full database sweep will only be done on startup or on-demand. This should notably reduce average CPU use on large databases.
  • Misc: Added AutoRank pseudoplayer (similar to Console), who is now credited with all autorank promotions/demotions.
  • Misc: Increased the allowed clicking distance when manually clicking blocks, to account for lag.
  • Misc: IRC bot now announces channel kicks and nick changes.
  • Misc: When a player with a reserved slot tries to join a full world, the longest-idle player will be kicked to make room.
  • Misc: Frozen, demoted, and banned players are now automatically unhidden. Frozen players are undeafened. Banned players are also automatically unfrozen and unmuted.
  • Misc: When a player's rank is changed, their bindings are now reset (to avoid issues with /Water, /Lava, and /Solid), and any in-progress selection is canceled (draw commands, /Zone, /ZTest, /BInfo, /Measure, etc)
  • Misc: Frozen players now have a little blue star appended to their names, similar to the red star for banned players.
  • Misc: Moved all heartbeat-related operations to the background thread (fixes lag spikes when minecraft.net times out).
  • Misc: Added a dynamically updated compass at the top-right of the screen, visible to players who use WoM 1.8.8+
  • Misc: Added a check for libMonoPosix on server startup. This allows catching misconfigured Mono setups early.
  • Misc: Ranks now default to "white" color ("&f") instead of "none" color ("").
  • Misc: Edited the "failed to load main world" message to sound less menacing, since it's usually caused just by main world filling up.
  • Misc: Sped up /PruneDB, /MassRank, map generation. Reduced memory use of draw commands, undo buffers, and ConfigGUI.
  • Misc Fix: Fixed "duplicate metadata key" warning in FCMv3 maps.
  • Misc Fix: Fixed a zone-related race condition when exporting to Opticraft map format.
  • Misc Fix: Fixed fCraft being unable to start if fCraft.dll is in the root directory of a drive (e.g. in "C:/")
  • Misc Fix: Fixed a bug that caused bandwidth to sometimes be wasted on needlessly updating position of non-moving players.
  • Misc Fix: Fixed a clock drift problem in periodic SchedulerTasks.
  • Misc Fix: Fixed a case where, in some rank configurations, players would see themselves as offline when hidden (in /Info, /BInfo, /Players, etc).
  • PlayerDB: Added 46th column: PlayerInfo.IsHidden ('h' if hidden, otherwise blank).
  • PlayerDB: Added 47th column: PlayerInfo.LastModified (UTC unix timestamp). Accuracy is not yet guaranteed.
  • PlayerDB: Added 48th column: PlayerInfo.DisplayedName (string or blank). Overrides "Name" field for purposes of displaying formatted name (ClassyName).
  • PlayerDB: Removed 14th column (FailedLoginCount) due to disuse.
  • PlayerDB: PlayerDB now writes out changes to TotalTime incrementally for online players, instead of applying the change on-logout.
  • Worlds: Added a way to change some environment and texture settings per-map, using /Env.
  • Worlds: Per-world settings on backup intervals now work.
  • Worlds: Added BlockDB - a system for tracking edits per-block. Added related /BlockDB and /BInfo commands.
  • Worlds: Added /UndoPlayer and /UndoArea commands for undoing players' actions using BlockDB.
  • Worlds: If a world has a missing map file, a warning is now shown, and a default flatgrass map is created.
  • Worlds: Added a way to set per-rank main world, using /WMain.
  • Worlds: Added /Restore command, inspired by good old MinerCPP. Selectively loads a map from another file or backup.
  • Worlds: Allowed non-standard dimensions (neither multiples of 16, nor powers of 2). Added a warning about glitches when using nonstandard dimensions.
  • Worlds: Added LoadedBy, LoadedOn, MapChangedBy, and MapChangedOn to /WInfo and to worlds.xml.
  • Worlds: MapGenerator tweaks: "default" template is now known as "random," "mountains" template now has more cliffs and snow on mountaintops, "island" template is less rough and has nice beaches, and water is now automatically removed from "desert" maps.
  • Worlds Fix: Fixed a crash that occurred if worlds.xml existed but contained no worlds.
  • Worlds Fix: Fixed an exploit that allowed players to bypass world access permissions in certain rank configurations.
  • Worlds Fix: Fixed some rare crashes in /WLoad.
  • Worlds Fix: Fixed /WAccess and /WBuild occasionally not saving the world list after adding players to the access/build whitelists.
  • Worlds Fix: Fixed being unable to change just the capitalization when renaming worlds from ConfigGUI, under Windows.
  • Zones: Added /ZRename command to rename zones.
  • Zones: Added /ZMark command to use zone boundaries for drawing or making selections.
  • Zones Fix: Fixed /ZAdd crash when adding more than one personal zone for the same player (/ZAdd +Name).
  • Zones Fix: Fixed a rare case where two players could simultaneously create a zone with the same name on the same world, which would crash one of the players.
  • Zones Fix: /Zones no longer crashes if used on a world with a missing or corrupt map file.
  • Zones Fix: Tightened security checks of /ZAdd and /ZRemove to prevent a permission exploit.
  • API: Added specialized MetadataCollection class to manage per-map and per-player metadata, and ZoneCollection for zones.
  • API: Added ReSharper-compatible annotations and more argument checks throughout the codebase.
  • API: fCraft now consistently uses [X,Y,Z] for coordinates (where X/Y are horizontal, and Z is vertical), and [Width,Length,Height] for dimensions (Width/Length horizontal, Height vertical).
  • API: Merged Session and Player classes. All session-related functionality is in Player.Networking.cs file.
  • API: New line-wrapping algorithm provides better performance and safety. Now using "\n" instead of "&N" to force a newline.
  • API: Renamed World.PlayerList to World.Players, Server.PlayerList to Server.Players, and added PlayerDB.PlayerInfoList
  • API: New LINQ-style API for working with sets of players. This API is now used for all messaging and packet-sending. Old API (Server.Send* and World.Send*) was removed.
  • API: New unified API for handling player-generated chat (Chat static class), and new events (Chat.Sending and Chat.Sent).
  • API: All cancellable events now implement ICancellableEvent.
  • API: MapDAT and MapNBT now implement IMapConverter.LoadHeader.
  • API: Converted IClassy.GetClassyName(), Rank.GetFullName(), and Player.GetListName() to properties.
  • API: Renamed ConfigKey.GetBool() to ConfigKey.Enabled(). Added ConfigKey.TryGetInt() and ConfigKey.TryGetBool() methods.
  • API: CommandManager.RegisterCommand() now checks for reserved command names (currently "ok" and "nvm"), and does a better job at handling command name capitalization differences.
  • API: Added ability to override Player.MaxBlockPlacementRange, Player.SocketTimeout, Heartbeat.Delay, and Heartbeat.Timeout.
  • API: Renamed RankManager.ParseRank(string) to Rank.Parse(string)
  • API: All draw/undo/copy/paste commands have been moved to fCraft.Drawing namespace.
  • API: Added support for multiple /Help sections per command.
  • API: Added CommandCategory.Debug, removed CommandDescriptor.HelpHander and HelpHandler delegate.
  • API: Moved Server.Player* events to Player.* and Server.PlayerInfo* to PlayerInfo.*
  • API: Expanded the confirmation system (/OK) to allow custom callbacks, decoupled from the command system.
  • API Fix: "Bad heartbeat" reply from minecraft.net no longer triggers UrlChanged event.
  • API Fix: Fixed a couple bugs in BoundingBox.GetIntersection and BoundingBox.Contains.
  • API Fix: Fixed /Replace and /ReplaceNot not firing Player.PlacedBlock
  • events.
  • API Fix: Uncaught exceptions that occur while parsing player messages no longer send crash reports when in DEBUG configuration.

0.5xx

0.537

14 September 2011 - r991

  • Fixed another heartbeat-related issue caused by minecraft.net updates.

0.536

14 September 2011 - r988

  • Fix: Fixed a rare crash in DoChangeRank when promoting/demoting offline players.
  • Fix: Fixed a case where world access/build whitelist additions were not immediately saved.
  • Fix: Fixed several errors in the way time spans were displayed.
  • Fix: Unhandled exceptions in background task callbacks will no longer take down the server
  • Change: Changed the heartbeat handler to use GET instead of POST (workaround for minecraft.net problems).
  • Change: Removed AutoLauncher.

0.535

1 July 2011 - r702

  • Workaround for minecraft.net heartbeat changes.

0.534

18 June 2011 - r668

  • Feature: Added <RestartInterval> config key (in seconds). It should help people who are suffering from Mono memory leaks. This setting can only currently be modified by editing config.xml
  • Fix: Fixed /wload and /gen resetting the world's hidden status.
  • Fix: Fixed "Apply" button not getting enabled in ConfigTool when world list is changed.
  • Fix: Fixed /cw reporting incorrect volume (fixes #3308137).
  • Fix: Added a confirmation when /wrename will result in overwriting a map file, and fixed a related crash (fixes #3311994).
  • Fix: Fixed FormatException in error handling code in World.AcceptPlayer
  • Fix: Fixed /info not showing formatted names for players who appear offline.
  • Fix: Fixed several issues with renaming worlds from ConfigTool.
  • Fix: Fixed /restart breaking under Mono if path contains spaces.
  • Fix: Fixed /staff, /me, and /roll commands not requiring the Chat permission.
  • Fix: Fixed "Use IRC colors" checkbox remaining disabled in ConfigTool.
  • Change: Allowed all printable ASCII characters in chat except '&'.
  • Change: Heartbeat tweaks to prevent "Bad heartbeat" from popping up.
  • Optimization: ConfigTool starts up faster, and uses much less memory.

0.533

24 May 2011 - r614

  • Fix: Fixed a regression in 0.530 that erased some strings in PlayerInfo and IPBanInfo objects, such as ban reasons.
  • Change: Increased heartbeat interval to 27.5 seconds.
  • Change: Reduced jitter of player movement.

0.532

23 May 2011 - r611

  • Feature: Added "/worlds loaded" command.
  • Fix: Fixed a bug that prevented worlds from accepting any block changes after a map change (/wload or /gen)
  • Fix: Fixed "Player _____ joined main." displaying twice when players connect.
  • Change: Added /colours as an alias to /colors
  • Change: Adjusted /dumpstats security checks, and made it require EditPlayerDB permission (instead of Import).

0.531

20 May 2011 - r603

  • Feature: /SInfo now shows bandwidth use, fCraft version, and .NET/Mono version.
  • Feature: Added ability to use coordinates with mark (e.g. "/Mark 0 0 0").
  • Fix: Fixed non-default rank settings not saving properly from ConfigTool.
  • Fix: Fixed a serialization bug in IPBanList that happened if a ban reason was not given, or if an IP address was not associated with any player.
  • Fix: Fixed a few minor bugs in /WMain.
  • Change: Allowed the caret (^) in chat messages.
  • Change: Reduced movement lag.
  • Change: /version command has been removed due to redundancy with /sinfo.
  • Change: Detailed reasons of player disconnects are now logged better.
  • Change: Increased Minecraft.net heartbeat interval slightly.
  • API: Added new events: Scheduler.TaskAdded, Scheduler.TaskExecuting, Scheduler.TaskExecuted, and Scheduler.TaskRemoved. These events are only available when fCraft.dll is built with DEBUG_SCHEDULER flag because of their performance impact.
  • Optimization: Removed the scheduler overhead from having unloaded worlds.
  • Optimization: Sped up MapGenerator by about 10%.

0.530

7 May 2011 - r583

  • Feature: New adaptive bandwidth-saving mechanism for updating player positions, controlled by the new BandwidthUseMode config key.
  • Feature: Added OptiCraft blocktype names and blocks' numeric IDs as aliases.
  • Fix: Fixed block bindings not being applied to drawing commands.
  • Fix: Fixed fCraft getting confused if worlds.xml contains duplicates.
  • Fix: Fixed "/" (repeat last command) not rewinding the command, which caused some issues with command arguments.
  • Fix: Fixed "Max connections per IP" setting not saving in ConfigTool.
  • Fix: Fixed AnnounceRankChangeReasons checkbox being erroneously tied to RequireRankChangeReasons key in ConfigTool.
  • Fix: Added some missing tooltips to ConfigTool.
  • Fix: Marked 10.0.0.0/8 IP range as LAN.
  • Fix: Fixed an issue with balanced name verification (thanks wootalyzer).
  • Fix: Fixed server announcing hidden players' departure (#3292633). Thanks to Hellenion.
  • Fix: Fixed /bring not checking per-rank permissions (#3292303). Thanks to Denny
  • Fix: Fixed some header bugs in the D3 map converter.
  • Fix: Fixed /wload crashing instead of printing an error message under Mono if the path was malformed.
  • Fix: Fixed /banip not recognizing invalid IPs (e.g. broadcast).
  • Fix: Fixed antispam resetting players' mute time.
  • Fix: Fixed Scheduler being able to add tasks after the shutdown process started.
  • Fix: Reduced problems associated with players trying to connect while the server is shutting down.
  • Fix: Added autorank.xml to the list of protected files.
  • Fix: Fixed a crash in backup system that happened if two backups ran simultaneously and the total size or number of backup files was limited.
  • Fix: Fixed a case where duplicate worlds could be created.
  • Change: When players rejoin a world (e.g. /wflush or /wload), "joined world" message is no longer shown.
  • Change: /mute no longer allows shortening players' mute time, only to extend it.
  • Change: Allowed player names with periods.
  • Change: Removed SaveOnShutdown config key, tweaked range checks on some keys, grouped key tags into section tags.
  • Change: When saving config.xml, keys with default values are now commented out.
  • API: New events! PlayerHideChanged, PlayerInfoCreating, PlayerInfoCreated, PlayerInfoRankChanging, and PlayerInfoRankChanged.
  • API: Server.StartServer() now throws specific exceptions on failure, instead of returning false.
  • API: Removed some obsolete Server events.
  • API: Switched to 100% Utc dates/times internally. PlayerDB now uses UTC Unix timestamps to serialize all dates/times.
  • Optimization: Sped up map generation.
  • Optimization: Reduced PlayerDB saving interval, reduced PlayerDB filesize, reduced CPU and memory use of PlayerDB saving, reduced memory footprint of loaded PlayerDB, improved IPAddress lookup performance in PlayerDB.

0.522

16 April 2011 - r546

  • Feature: Added more functionality to hollow ellipsoid and sphere, thanks to Redshift. Now it is possible to define outer/inner blocktypes.
  • Feature: Added OptiCraft map format support, courtesy of LgZ-optical
  • Fix: Fixed a serious error that caused a crash when main world became full. This bug affected 0.520 and 0.521.
  • Fix: Fixed AutoLauncher not working under Mono (thanks to ven000m for spotting).
  • Fix: Fixed "Add World" dialog crashing if closed while generating a world.
  • Fix: Fixed /restart using ShutdownReason.ShuttingDown (instead of ShutdownReason.Restarting)
  • Fix: Fixed a crash in ConfigTool if MaxPlayers was set to be less than MaxPlayersPerWorld.
  • Fix: When loading old configs (pre-0.520), MaxPlayersPerWorld is automatically set to match MaxPlayers, to avoid unexpected side effects.
  • API: Added WorldCreating and WorldCreated events.
  • API: Moved world-related commands from Server to a new class, WorldManager.
  • API: Renamed RankList to RankManager, and CommandList to CommandManager, for consistency.

0.521

12 April 2011 - r534

  • Feature: Added a /Clear command, to clear in-game chat. Also works from fCraftConsole and fCraftUI.
  • Fix: Added missing chat commands.
  • Fix: Cosmetic fixes in /ZRemove.

0.520

12 April 2011 - r532

  • Feature: Removed the server-wide 128 player limit. Now the limit is per-world.
  • Feature: You can now repeat the last command by typing "/"
  • Feature: Added a way to use color codes in chat (with % instead of &), a UseColorCodes permission, and a /colors command.
  • Feature: Added support for multi-line messages or commands. Add " /" to the end of a line to continue typing it.
  • Feature: Added "/commands", to replace "/help commands". It allows filtering commands by rank, category, permissions, etc. Aliases: /cmdlist, /cmds
  • Feature: New permissions: ViewPlayerIPs, BringAll
  • Feature: New config switches: AnnounceRankChangeReasons and RequireKickReason.
  • Feature: Replaced LimitOneConnectionPerIP config key (boolean) with a more flexible MaxConnectionsPerIP (int).
  • Feature: Added /bringall command, for moving everyone (or only certain ranks) from your world (or optionally all worlds, or a list of other worlds) to your location.
  • Feature: /bring can be limited per-rank
  • Feature: When file is not found on case-sensitive filesystems, fCraft tries to syggest similar filenames.
  • Feature: Added new constants to use in greeting.txt: {TIME}, {PLAYER_NAME}, {WORLD}, {PLAYERS}, {WORLDS}, {MOTD}
  • Feature: Improved compatibility with SurvivalTest clients.
  • Fix: Fixed /banip not kicking other players from the same IP (besides the named player)
  • Fix: Added missing blocktype validation to MapFCMv2, MapFCMv3, MapMyne, and MapNBT.
  • Fix: Fixed a rare shutdown crash in fCraftUI.
  • Fix: Improved the way PlayerDB.Load handles errors in individual records. A single corrupted entry will no longer prevent the rest from loading.
  • Fix: Fixed fCraftUI abruptly quitting on crash / failure to start, instead of showing the error message. Use "--exitoncrash" command-line switch to reproduce old behavior.
  • Fix: Fixed ConfigTool's World tab not prompting to delete map files when deleting worlds.
  • Fix: Fixed a bug in MCSharp importer (#3281305)
  • Fix: Fixed a list of permissions in /rinfo not being sorted.
  • Fix: Fixed /mute rank limit dropdown sometimes getting out of sync.
  • Fix: Fixed IRC bot redundantly announcing kicks when someone has been banned.
  • Fix: Fixed a bug where fCraft would fail to start if PlayerDB.txt was truncated/empty.
  • Change: Moved "IP" config key from General to Advanced.
  • Change: Added /spin as an alias to /rotate (for MCLawl users)
  • API: New events: PlayerClicking, PlayerClicked, PlayerPlacingBlock, PlayerPlacedBlock, PlayerListChanged, PlayerBeingKicked, PlayerKicked
  • Optimization: Reduced CPU use of draw commands by ~30%. Sped up PlayerDB loading by ~8%, and reduced memory use when saving. Also reduced PlayerDB filesize by about 15%

0.512

2 April 2011 - r508

  • Feature: /zones can now be used from console, and can be used on any world (active or inactive).
  • Feature: Improved D3 map importer.
  • Fix: Added missing filename sanity/safety checks to /dumpstats (#3267362, thanks to Hellenion)
  • Fix: Fixed mixed up messages shown in /waccess and /wbuild (#3179189)
  • Fix: Fixed crash reports sometimes failing to submit.
  • Fix: Fixed /dumpstats crashing if a rank had 0 players.
  • Fix: Made Mono version detection less crashy (#3267476, thanks to Hellenion again)
  • Fix: Fixed MapUtility.LoadHeader terminating early, before going through all fallback converters.
  • Fix: Fixed ConfigTool tab order.
  • Fix: Fixed fCraft reporting inaccurate CPU usage figures.
  • Fix: Fixed a NullReferenceException in /rank if an invalid player name was given.
  • Fix: Fixed fCraft project not building under Windows if path contains spaces.
  • Change: Added "/serverreport" as an alias for "/sinfo"
  • Change: Improved the way fCraft handles and reports map loading errors.
  • API Change: Moved all filename constants (e.g. "PlayerDB.txt") to Paths class.

0.511

31 March 2011 - r497

  • Feature: Further improvements to Mono support. fCraft will now utilize mono-sgen whenever possible.
  • Fix: Fixed fCraftUI ignoring command-line arguments.
  • Fix: Fixed broken /paste and /pastenot volume checks.
  • Fix: Fixed crash reports failing to submit.
  • Fix: Fixed a timezone-related bug that messed up players' "total time on server" stat.
  • Change: Added a warning if running on old versions of Mono (2.6 or lower).

0.510_r489

29 March 2011 - r489

  • Fix: Fixed unnecessary GDI+ dependence in fCraftConsole under Mono
  • Fix: Fixed EnumKeyAttribute not taking blank values (as in case of ProcessPriority config key).

0.510

29 March 2011 - r488

  • Feature: The fCraft updater has been rewritten and expanded. It now works under all OSes, and provides more features.
  • Feature: fCraft now handles differences between case-sensitive and case-insensitive filesystems much better. /wrename and /wload are also aware of the filesystem.
  • Feature: fCraft now checks presence, filename capitalization, and integrity of all map files on the world list at startup.
  • Feature: New ConfigTool settings for updater, checkbox for showing "player connected/left" messages, and "/mute" permission settings.
  • Feature: Added "/credits" command to ConfigUI.
  • Feature: Implemented "--norestart" and "--exitoncrash" command-line switches for fCraft.
  • Feature: fCraft event system is being rewritten with modding support in mind.
  • Feature: Improved MCSharp/MCZall/MCLawl map support.
  • Fix: Software errors that happen while parsing player and console commands will no longer cause disconnects/crashes.
  • Fix: IPBanList will attempt to recover records lost due to a recent regression in 0.505.
  • Fix: Fixed /wrename errors in cases where names differ only in capitalization.
  • Fix: Fixed "Copy Existing World" showing the current world on the list in AddWorldPopup.
  • Fix: Fixed "Chat" tab preview not updating when settings are reset.
  • Fix: Fixed per-world whitelist/blacklist not saving when worlds are edited with AddWorldPopup.
  • Fix: Fixed non-verified connections that get kicked from affecting that name's PlayerInfo.
  • Fix: Server.GenerateSalt() now uses a cryptographically secure PRNG.
  • Fix: Fixed verification problems on servers with HeartbeatEnabled=false.
  • Fix: Fixed a wrong message being shown by /rank if the target is already same or higher/lower rank.
  • Fix: Fixed /winfo showing incorrect information for last lock/unlock event.
  • Fix: Fixed tabbing order on ConfigUI.
  • Fix: Improved the way Server.InitLibrary and Logger.Log errors are handled.
  • Fix: Added missing validation checks to LoadHeader in several map converters.
  • Fix: Fixed players being able to complete a draw command or /zadd, if they were demoted before clicking for the second time.
  • Fix: Added missing /paste and /pastenot volume checks.
  • Fix: Fixed a bug in /zinfo that showed incorrect creation/editing times.
  • Fix: Better error messages for unrecognized block names in command parameters.
  • Fix: /restart now works from ConfigUI under Mono (but still broken in fCraftConsole).
  • Fix: Fixed handling of command-line arguments surrounded with quotes.
  • Fix: Fixed a bug at ConfigTool.ConfigUI.xAllowSecurityCircumvention_CheckedChanged (#3181907, thanks to clhdrums87).
  • Fix: Fixed /winfo counting hidden players (#3237877, thanks to Hellenion).
  • Fix: Fixed MCSharp map exporter mixing up map dimensions (#3159501, thanks to dogwatch).
  • Change: Improved the way fCraft project is built. Now all binaries are copied to /trunk/bin/Release or /trunk/bin/Debug.
  • Change: Improved error tolerance of Scheduler.EndShutdown().
  • Change: Expanded Logger.CheckForCommonErrors().
  • Change: Renamed config keys (old ones can still be loaded): IRCBot to IRCBotEnabled, AutomaticUpdates to UpdaterMode.
  • Change: Added /wadd as an alias for /wload.
  • Change: Renamed Mcc namespace to fCraft.MapConversion.
  • Change: Decreased timeout for fCraft update check.
  • Change: Added a confirmation prompt to /rank when adding an unrecognized player name to the database.
  • Optimization: Sped up heartbeat sending and world-related operations, increased world saving interval to 90 seconds, reduced per-player idle CPU usage, halved CPU usage of draw commands.

0.506

11 February 2011 - r427

  • Feature: Added hollow ellipsoid drawing (/eh) and hollow sphere drawing (/sph), contributed by Conrad "Redshift" Morgan.
  • Fix: Fixed a regression in 0.503 that caused some IP ban records to be lost. I am terribly sorry!
  • Fix: Fixed a path-related error in Map.SaveBackup
  • Fix: Fixed a possible disconnect in Player.CheckBlockSpam is antigrief was not configured properly.
  • Fix: Fixed a bug in ConfigTool.SaveWorldList.
  • Fix: Fixed "Limit the number of blocks that can be undone" checkbox misbehaving (thanks to ven000m for bug report).
  • Change: By popular demand /sphere2 is now the default behavior of /sphere.
  • Change: Removed "oldSalt" check for name verification, to avoid having the server write to config.xml unnecessarily.
  • Change: Removed ".backup" file creation, by popular demand. It was kinda useless.

0.505

8 February 2011 - r422

  • Feature: All draw commands now inform player if any blocks were skipped due to local permission issues (e.g. zones).
  • Fix: Fixed a regression that caused backups to be saved in the wrong path. Backups were being saved to ./backups/ instead of ./maps/backups/
  • Fix: Fixed a permission issue in /replace and /replacenot.
  • Fix: Fixed /info not displaying a list of players from same IP.
  • Fix: Addressed a security issue with salt generation.

0.504

3 February 2011 - r419

  • Fixed a crash bug related to SecurityController.MinRank

0.503

3 February 2011 - r418

  • Feature: Added /deafen command. It temporarily blocks all incoming messages (makes you go "deaf"), to allow taking screenshots, recording videos, or just playing without the wall of text.
  • Feature: Added ShowBannedConnectionMessages config key (default: true). When disabled, no "banned player tried to log in" messages are shown.
  • Fix: Fixed PlayerInfo.frozenOn not being set.
  • Fix: Fixed kick messages for players affected by /banall
  • Fix: Fixed /unbanall reason not being shown.
  • Fix: /where now shows what world you are on.
  • Fix: Fixed a couple minor bugs in /waccess and /wbuild.
  • Fix: Fixed a NullReferenceException in SecurityController constructor.
  • Fix: Made several tweaks to improve the first-run experience.

0.502

31 January 2011 - r411

  • Fix: Adjusted for yet another change in the way minecraft.net replies to heartbeats (should fix all heartbeat issues for now).
  • Fix: Added a check to /zremove to prevent players from deleting zones to gain access to areas from which they're barred.
  • Fix: Fixed being able to use /me or /staff to write empty messages.
  • Fix: Fixed frozen players not getting defrosted when kicked.
  • Fix: Formatting fixes in "___ was previously frozen" message
  • Fix: Fixed a mini-bug in Map.ValidateHeader()
  • Change: Renamed /wremove to /wunload for consistency. "/wremove" is still usable as an alias.

0.501

30 January 2011 - r408

  • Feature: Added /sphere and /sphere2, based on code contributed by SystemX17.
  • Feature: Added new config setting: ShowConnectedMessages (default: true)
  • Feature: Added a notification for players who logged in frozen.
  • Fix: Fixed frozen players twitching.
  • Fix: Fixed IRC bot not stripping color codes in messages relayed from IRC to the game.
  • Fix: Fixed lastSeen and lastLoginDate not being set for first-time players who failed to log in (e.g. IP-banned).
  • Fix: Fixed /bring not working properly on frozen players.
  • Fix: Fixed a case where it was possible to add access restrictions to main map.
  • Fix: Fixed per-world whitelists/blacklists being lost when editing worlds.xml via ConfigTool.
  • Fix: Fixed AutoRankAll showing wrong number of players promoted/demoted (just a formatting bug, no promotions were affected)

0.500

25 January 2011 - r399

  • Commands: Added /line drawing command, kindly contributed by SystemX17
  • Commands: Added /restart command, to restart the server remotely (NOTE: does not work for fCraftWinService yet)
  • Commands: Added /unmute command (same as "/mute name 0")
  • Commands: Added an option to silently hide (no disconnect/connect message).
  • Commands: Added /ignore and /unignore commands to block chat from another player (for the duration of your visit).
  • Commands: /whide and /wunhide commands added to hide/unhide worlds from the list.
  • Commands: /worlds now takes an optional param: "/worlds all" lists visible+hidden worlds, and "/worlds hidden" lists hidden worlds only.
  • Commands: List of player names from the same IP is now shown in /info.
  • Commands: /help now shows what rank you need to be to use a command (for most commands).
  • Commands: /bring now works on frozen players.
  • Commands: /bring now takes an optional second name/parameter, to teleport someone to someone
  • Commands: /info now shows whether a player is hidden (if the command caller has permission to see).
  • Commands: Fixed a case where teleporting to a player who is currently changing worlds brings one to a wrong location.
  • Commands: Fixed bindings (/water, /lava, /solid, and /bind) not being applied to draw commands.
  • Commands: /wsave and /gen can now create directories if needed.
  • Commands: Fixed a bug in /roll
  • Commands: Sped up /paste, /pastenot, /replace, and /replacenot slightly.
  • ConfigTool: New "Chat" tab for controlling appearance and content of in-game chat.
  • ConfigTool: Added ability to customize MeColor (for /me messages, default: purple) and WarningColor (for major errors/warnings, default: red) in config.
  • ConfigTool: AddWorldPopup can now show detailed info for maps of all supported formats.
  • ConfigTool: Improved tooltips for several items in ConfigUI.
  • FrontEnd: Uncaught exceptions that happen while executing commands from fCraftUI console are now handled by the crash reporter (instead of actually crashing).
  • FrontEnd: Added /clear command for fCraftUI and fCraftConsole - clears log screen.
  • FrontEnd: The URL is no longer highlighted after first heartbeat, to avoid stealing focus from console.
  • Generator: Fixed "flatgrass" template
  • Generator: Fixed alphabetical order in the list of templates
  • Generator: MapGenerator now embeds generation parameters into the map file metadata
  • Generator: Fixed several template loading bugs.
  • Generator: Optimized AddBeaches to be about 2x faster
  • Generator: Added a missing dimension check to /gen
  • IRC: Messages relayed from game to IRC now have color codes preserved.
  • IRC: Kicks, Bans, unbans, promotions, and demotions can now be relayed to IRC.
  • IRC: IRC bot now relays /say messages, and /me messages (both /me on IRC and /me on the server).
  • IRC: IRC Error handling is greatly improved.
  • IRC: (Threaded) If one of the bots loses connection, one of the other bots take over parsing input.
  • IRC: Increased IRC reconnect delay to 15 seconds.
  • Maps: Switched to a new file format (FCMv3) that allows for future additions like block tracking and physics.
  • Maps: Much of MCC (map conversion) API was rewritten for better consistency and performance.
  • Maps: Improved support for loading indev (pre-infinite) maps, including Omen-generated maps.
  • Maps: Improved resilience for loading maps with unknown blocktypes. Instead of failing, it just replaces any unknown blocks with air.
  • Maps: Added consistent header validation to all map format loaders.
  • Maps: Fixed maps not autosaving when zones are added or removed.
  • Maps: Zone definitions are now serialized to XML. Zones saved with this revision of fCraft will no longer be readable by older version of fCraft.
  • Maps: Fixed a bug when loading JTE's format maps.
  • Maps: Fixed format of backup filenames.
  • PlayerDB: Added new fields: bannedUntil, frozenOn, frozenBy, mutedUntil, mutedBy, IRCPassword, online, leaveReason
  • PlayerDB: Fixed PlayerInfo.ID not being assigned for new players until sever restart / DB reload.
  • PlayerDB: Fixed off-by-one error with PlayerInfo.timesVisited
  • PlayerDB: Fixed /me, /say, rank chat, and /staff not counting towards PlayerInfo.linesWritten
  • PlayerDB: Made PlayerDB more resilient to errors. Reduced filesize slightly by omitting default values for more date fields, and removing milliseconds from "totalTime"
  • PlayerDB: Improved forwards compatibility of PlayerDB by removing maximum-field-count check.
  • Security: Worlds can now have player whitelists and blacklists (just like zones) for access and build permissions.
  • Security: Added a security check to /wsave, /wload, and /gen to prevent reading or overwriting files outside the map folder.
  • Security: Added a per-rank security option to prevent players from whitelisting themselves, removing themselves from blacklists, or lowering their rank's restrictions on worlds and zones.
  • Security: /mute and /freeze are now persistent even if the player reconnects.
  • Security: Relaxed SetTile packet checks. Players will no longer be kicked due to Minecraft client bugs.
  • Security: Fixed an exploit that allowed changing steps to doublesteps even inside zoned areas.
  • Security: Improved consistency of permission dependencies.
  • Security: Fixed a security exploit in /wmain that allowed players with ManageWorlds permission to gain access to restricted worlds.
  • Security: Fixed a bug that prevented banning players who were not yet in PlayerDB.
  • Security: Added an option to only allow paid players (PaidPlayersOnly)
  • Stability: Made crash reporting more reliable. A failed crash report will no longer prevent error message from being logged and displayed.
  • Stability: Fixed a crash in AddWorldPopup if dialog is closed while a map is still loading.
  • Stability: To improve compatibility with some bots, removed "almost there..." message on the loading screen
  • Stability: Disabled error reporting of common non-fCraft-related errors (like wrong runtime versions, or wrong Mono permissions).
  • Stability: Added "libMonoPosixHelper.so" and "UnauthorizedAccessException" to Logger.CheckForCommonErrors, and made "Could not load file or assembly" check locale-independent.
  • Stability: A backup file is now created whenever PlayerDB, IP ban list, config, or world list are saved (e.g. PlayerDB.txt.backup)
  • Stability: Crash reporter now sends last 25 lines of the log.
  • Stability: Added a fallback overload for Player.Message() that bypasses string format, to make the whole thing less prone to format errors.
  • System: fCraft now takes command-line arguments (at startup) to override the following:
    • working directory (--path=/your/path/here)
    • log directory (--logpath=/your/path/here)
    • map directory (--logpath=/your/path/here) - also overridable in a more user-friendly way via ConfigTool (MapPath key)
    • config file location (--config=/your/path/and/filename.xml)
  • System: Added an option to change the name of Console pseudoplayer in the config.
  • System: Player.GetClassyName() and PlayerInfo.GetClassyName() now add an asterisk after banned players' names
  • System: Fixed hidden players remaining hidden in some cases.
  • System: Fixed PacketWriter.MakeWrappedMessage ignoring uppercase hex colorcodes
  • System: Implemented NoPartialPositionUpdates and RelayAllUpdates config keys.
  • System: Several little glitches and inefficiencies fixed in movement handling code.
  • System: Fixed "player connected" and other messages showing up too early in-game (before map loaded).
  • System: Fixed kick message for players affected by /banall
  • System: Added HeartbeatEnabled config key (default: true)
  • System: Fixed a case where heartbeat could be sent from a different IP than the listening port on systems with multiple NICs/IPs and no configured static IP.
  • System: Increased the write buffer for writing out PlayerDB, reducing I/O time by ~20% on .NET, and ~35% on Mono
  • System: New Scheduler API.
  • System: Modified /wload to avoid loading the map twice in case confirmation is needed.
  • System: Changes to AutoRankEnabled will now be applied when /reloadconfig is called.
  • System: Fixed unnecessary confirmation being asked when world name matches file name in /wload
  • System: Eliminated the heartbeat thread by switching to async i/o.
  • System: Improved startup and shutdown speed.
  • System: Added a "how to promote yourself" message for fresh installations of fCraft.
  • System: Fixed Server.OnPlayerDisconnected event firing for unregistered sessions.
  • System: Made Color.Parse() and Color.GetName() translate fCraft-specific color assignments (e.g "&S" for "System")
  • System: Added better detection for SMP/Alpha clients trying to connect.
  • System: Sped up AutoRankAll

0.4xx

0.499

6 November 2010 - r311

  • Feature: Added an option to disable name verification for players connecting from LAN.
  • Feature: Added 'flat' template to MapGenerator, allowing to make flat maps with any theme.
  • Feature: Added 'grass' pseudotheme to /gen command, which is basically the 'Forest' theme with trees disabled.
  • Fix: Fixed /wflush leaving ghosts/clones behind.
  • Fix: Fixed muted players being able to use /say and /staff
  • Fix: Fixed /baninfo ignoring permission checks.
  • Fix: Fixed "draw limit" checkbox getting disabled in ConfigTool if a player had 'CopyAndPaste' permission but no 'Draw' permission.
  • Fix: Fixed several off-by-1 errors involving random number generation, notably in MapGenerator and Server.GenerateSalt()
  • Fix: Fixed potential crash in MapGenerator.SealLiquids
  • Fix: Fixed a potential crash in Map.SaveBackup() if the map filename contained brackets.
  • Fix: Fixed a forced disconnect when trying to feed /gen a theme or template with brackets in the name.

0.498

4 November 2010 - r308

  • Change: Disabled zlib support due to more potential memory leaks. fffuuuuu....
  • Fix: Fixed Island, Bay, and Ice templates broken by the last patch.
  • Fix: MapGeneratorArgs: snowTransition was interpreted as absolute (instead of relative) altitude, and marbledHeightmap incorrectly defaulted to 'true'.
  • Change: Updated readme and changelog.

0.497

4 November 2010 - r306

  • Feature: Added accurate progress reporting from MapGenerator. Coming soon: cancellation.
  • Feature: New MapGenerator options: BeachHeight, CliffSmoothing, LandSlope, UnderwaterSlope, MaxHeightVariation, MaxDepthVariation.
  • Feature: Added UI controls for snow/cliff/beach settings to AddWorldPopup.
  • Feature: Added a list of popular IRC networks to ConfigTool.
  • Change: Improved PlayerDB lookup performance by reducing locking.
  • Fix: Fixed MapGenerator calculating slope incorrectly at the water boundary.
  • Fix: Fixed "Add Ore" requiring "Add Caves" in MapGenerator.
  • Fix: Fixed water/lava caves not sealing liquids properly.
  • Change: Set MapGenerator to default to 256x256x96
  • Change: AddWorldPopup Generator tab layout overhaul
  • Change: Organized MapGeneratorArgs and added serialization/deserialization for all the new options.

0.496

3 November 2010 - r301

  • Fix: Fixed File.Replace() failing if fCraft was set up on a partition/volume other than the one where temp folder is.
  • Fix: Added missing tooltip for "Edit Greeting"
  • Fix: Fixed /sinfo including hidden players in the player count.

0.495

2 November 2010 - r300

  • Feature: Added a way to edit the greeting message, by editing "greeting.txt"
  • Feature: When a player gets banned, any previously-banned accounts from same IP are listed.
  • Fix: Fixed renaming worlds from ConfigTool's "worlds" tab not always working.
  • Fix: Fixed several filesystem-related errors on non-Windows systems by using Path.Combine() instead of string concatenation.
  • Fix: Possible workaround for missing heartbeats.
  • Fix: Fixed detached "default build rank" controls in ConfigTools.
  • Fix: Fixed overwrite confirmation popping up for /wload when loading map into an unloaded world with the same name.
  • Fix: Fixed a case where Forester could get into an infinite loop when there's not enough room to place requested number of trees.

0.494

31 October 2010 - r297

  • Feature: New map generator features:
    • Adjustable water level.
    • Realistic trees (powered by Forester)
    • Snow on mountaintops
    • Realistic cliffs
    • Beaches
    • New template (peninsula) and theme (swamp).
    • Option to delay heightmap bias until after marbling/inversion.
  • Feature: Added a way to load .mine maps.
  • Feature: Added confirmation for potentially destructive commands: /importranks, /importbans, /massrank, /wload overwrites, /gen overwrites, /wsave overwrites, /zremove.
  • Feature: Added /staff chat and ReadStaffChat permission.
  • Feature: Added wireframe cuboid (/cw)
  • Feature: Added an optional second param for /ch (cuboid hollow) that specifies the blocktype of the "filling".
  • Feature: Added a way to specify default build permission for new worlds.
  • Fix: Fixed /info, /baninfo, and /banip not handling players whose name contain only digits.
  • Fix: Fixed DoChangeRank mixing up RankChangeType.
  • Fix: Added missing fields to MapGeneratorArgs serializer.
  • Fix: Fixed per-rank draw limits not being calculated correctly in some cases.
  • Fix: Replaced File.Delete/File.Move calls with a more reliable File.Replace call. This should slightly improve reliability of map/playerdb.txt/ipbans.txt/worlds.xml saving.
  • Fix: Fixed a little ConfigTool bug that did not properly reset PatrolledRank after a rank deletion.
  • Fix: Fixed terminal colors not resetting in fCraftConsole after a fatal crash under Mono.
  • Fix: Fixed detached "Play" button in fCraftUI.
  • Fix: Added some basic error reporting to fCraftWinService.
  • Change: Tweaked AddWorldPopup layout to accommodate more options.

0.493

27 October 2010 - r290

  • Feature: /info now supports autocompletion, wildcards, and IP search.
  • Feature: Experimental service wrapper for fCraft.
  • Feature: Added more editable properties to /setinfo: RankChangeType, BanReason, UnbanReason, RankChangeReason, LastKickReason
  • Feature: Various improvements to /info, including hide-aware "online" indicator.
  • Feature: Made Player.NoAccessMessage() print the minimum required rank, instead of just permission name(s).
  • Feature: Added wootalyzer's chunk rendering code to IsoCat.
  • Fix: Fixed ConfigTool not taking advantage of ZLibStream
  • Fix: Fixed a very improbable case of a thread getting spinlocked when calling IRC.Send() is preemptied, and if there are at least 2 IRC threads.
  • Fix: Fixed kick packets occasionally not being delivered due to a missing Flush() - thanks to wootalyzer for catching.
  • Fix: Excluded banned and inactive players from DumpStats
  • Fix: Fixed PlayerDB.Save() not escaping LastKickReason
  • Fix: Cleaned up extra messages sent by /unhide.
  • Fix: Fixed LastSeen not updating on-login (only on-logout).
  • Fix: Improved the way fCraft checks for ghost/leftover sessions. Thanks to wootalyzer.
  • Fix: If a player's name starts with a number, and you try to /tp to a coordinate that starts with the same number, you are no longer teleported to that player instead.
  • Fix: Fixed hidden players being detectable by checking LastSeen in /info.
  • Fix: To avoid performance degradation, GC calls have been centralized, delayed, limited to 1/minute, and moved to the tasks thread.
  • Fix: Added delay between recurring calls to PlayerDB.Save, AutoRankAll, and DoGC - to balance load.
  • Fix: Fixed rankChangeType not being updated.
  • Fix: Fixed some typos reported by tvc.
  • Change: Added "/uf" as an alias for "/unfreeze", by popular demand.
  • Change: Modified PlayerDB not to use ReaderWriterLockSlim, to avoid Mono issues with recursion.
  • Change: Renamed /editplayerinfo to /setinfo
  • Change: Made enum values in AutoRank (CriterionType, ConditionField, ComparisonOperation, ConditionScopeType, RankChangeType) case-insensitive.
  • Change: Added a reference to /baninfo in /info
  • Change: Made DetectMovementPacketSpam warn players instead of kicking.

0.492

19 October 2010 - r280

  • Feature: Added EditPlayerDB permission. This permission affects the upcoming AutoRank commands, /editplayerinfo, and ability to promote/demote/ban unrecognized players.
  • Feature: When you kick a player, you are now shown the number of kicks they already have.
  • Feature: More stats are now logged! RankType, TimeSinceLastKick, LastSeen, BlocksDrawn, LastKickBy, LastKickReason.
  • Feature: Added "MaxUndo" config key for changing the default undo limit of 2,000,000 blocks per player.
  • Feature: /info command is augmented with new stats (if available).
  • Fix: Fixed ellipsoid command calculating volume incorrectly for draw limit checks.
  • Fix: Fixed overflowing color code in "Player logged in from an IP previously used by banned players" message.
  • Fix: Fixed PM recipient's name not getting logged properly.
  • Fix: Previously-unseen players no longer have their FirstLoginDate, LastLoginDate, or TimesVisited set.
  • Fix: /importranks now works correctly on players who are online at the time of import.
  • Change: Added block aliases by popular demand: "bedrock" as an alias for admincrete, "cotton" as alias for "white", and "aire" as alias for "air"
  • Change: PlayerDB.txt format changes:
    • MaxFieldCount raised to 36
    • New fields added: UID (Int32), RankChangeType (enum, serialized as Int32), LastKickDate (DateTime), LastSeen (DateTime), BlocksDrawn (Int64), LastKickBy (string), LastKickReason (string).
    • RankChangeBy, BannedBy, UnbannedBy, BanReason, UnbanReason, and RankChangeReason now default to empty string instead of "-" or null.
    • If LastIP==IPAddress.None, empty string is saved instead of "255.255.255.255".
    • DateTime and TimeSpan format shortened to exclude microseconds. See PlayerDB.ToCompactString() for details.
  • Change: AutoRank improvements (disabled in stable builds):
    • Added /editplayerinfo command for easy editing of PlayerDB.
    • Made AutoRank check players in-login (to accelerate promotion).
    • AutoRank now runs on a scheduler.
    • Fixed ConditionPreviousRank crash for played with default rank.
    • Fixed banned players getting promoted by AutoRank.
    • Fixed several serialization/loading issues in AutoRank.
    • New fields added to ConditionIntRange: LastSeen, BlocksDrawn, TimeSinceRankChange, TimeSinceLastKick
    • ConditionRankStatus renamed to ConditionRankChangeType

0.491

17 October 2010 - r274

  • Feature: Added ability to run multiple parallel IRC bots, to help high-traffic servers deal with IRC lag. This also makes it possible to connect to multiple networks in the future.
  • Feature: Added new block aliases, by popular demand: "emerald"=teal, "fuchsia"=magenta, "cloth"=white, "lightgray"=gray, "lightgrey"=gray, "darkgray"=black, "darkgrey"=black, "brass"=gold
  • Fix: Temporarily disabled 64-bit zlib support while I track down memory leaks. Should fix OutOfMemoryException, I'm very sorry about overlooking that.
  • Fix: Fixed a bug in /info that displayed incorrect "total time on server".
  • Fix: Per-rank permission checks for /freeze now apply as intended
  • Fix: Fixed several improbable (but not impossible) threading deadlocks/crashes. Thanks to wootalyzer for catching these.
  • Change: Added IRCThreads config key (default: 1, allowed range: 1-3)

0.490

14 October 2010 - r264

  • Feature: Testing a new map compressor/decompressor: ZLibStream. It should provide 50-200% speed increase, smaller map sizes, lower bandwidth use, and faster map loading.
  • Fix: Fixed /shutdown not waiting the right amount and mixing up seconds/milliseconds.
  • Fix: Fixed "No world found with the name..." showing player's own name.
  • Fix: Added a fail-safe exception handler to Player.WaitForKick() - a temporary fix.
  • Change: Previous verification salt is now stored, to allow players to validate even right after the server restarts.
  • Change: Restructured SVN. Stable code is now always in /trunk/

0.487

12 October 2010 - r255

  • Feature: Added contextual help (tooltips) for all of ConfigTool. Help for "Add World" popup is coming in next version.
  • Feature: Added rank limits for Freeze permission
  • Fix: Fixed /mute being unusable from console.
  • Change: Removed ViewOthersInfo requirement from /sinfo
  • Change: Added ViewOthersInfo requirement to /where
  • Change: Improvements to IRC tab layout in ConfigTool.

0.486

11 October 2010 - r250

  • Quick fix for IRC Bot bug that made server unconnectable.

0.485

11 October 2010 - r249

  • Feature: Added optional "delay" parameter to /shutdown (default: 5)
  • Feature: World names can now be autocompleted for many commands (like /join and /lock)
  • Fix: Fixed /unhide failing to reveal the player in certain situations.
  • Fix: Fixed /setspawn being usable on players from other worlds.
  • Fix: Fixed player names appearing white for all players.
  • Fix: Fixed a recursion loop in NoWorldMessage()
  • Fix: Fixed help entries for /setspawn and /shutdown
  • Fix: Fixed potential crash in Server.Shutdown() if called after failed initialization/startup.
  • Fix: Fixed potential deadlock/freeze in fCraftUI on shutdown.
  • Change: Improved crash reporting for TargetInvokationException and TypeInitializerException errors.
  • Change: All assemblies are now once again x86/x86_64/IA64 compatible.
  • Change: Server.OnPlayerConnected event now supports cancellation.

0.484

10 October 2010 - r245

  • Feature: Added a way for IRC bot to use registered nicknames.
  • Feature: /banall-related kicks are now announced in chat.
  • Feature: /setspawn now actually changes player's spawn. Also, an optional PlayerName param allows temporarily changing other players' spawn point.
  • Feature: Several improvements to /info. Info now shows whether player's nick or IP was banned, and hides undefined information for players who haven't ever logged in.
  • Fix: Fixed crash in ConfigTool if announcements were disabled.
  • Fix: Fixed /banall not matching IPs properly, and not counting kicks towards PlayerInfo.
  • Fix: Fixed ConfigUI not shutting down properly if Server.Init() or Server.Start() failed.
  • Fix: Fixed Config.LoadLogOptions() always leaving Debug enabled.
  • Fix: Added Process.GetCurrentProcess().Refresh() to ServerInfo to improve accuracy of /sinfo stat reporting.
  • Fix: Improved /wsave and /wload path handling on non-Windows platforms.
  • Fix: Replaced some potentially unsafe string concatenation in Player.Message() with proper formatting.
  • Fix: Attempting a workaround for Mono memory leak in World.UnloadMap
  • Fix: Fixed ranks from pre-0.480 configs being loaded in wrong order. Sorry!
  • Change: Added a brief delay before reconnecting IRC bot after getting kicked from a channel.
  • Change: PlayerDB is now saved every 60 seconds (instead of every 30).
  • Change: Removed unused IRCBotQuitMsg config key, and added IRCRegisteredNick, IRCNickServ, and IRCNickServMessage keys.
  • Change: Added a popup with crash information to ConfigTool.
  • Change: Made announcements disabled by default.

0.483

8 October 2010 - r242

  • Feature: Myne/MyneCraft/Hyvebuild/iCraft maps can now be loaded from ConfigTool's "Add World" dialog.
  • Fix: Fixed incorrect range checks for AnnouncementInterval and SaveInterval config keys (thanks to Shcaap for reporting).
  • Fix: Fixed /hide showing a slightly different "player left" message compared to normal disconnect (thanks to Silverrock for reporting).
  • Change: Added MC#-style "/z" alias for cuboid, by popular demand.
  • Change: Hidden players can now receive PMs. The sender still gets the "No player found" message, but PMs are actually sent.

0.482

7 October 2010 - r241

  • Feature: Added new command aliases: "f" for "freeze", and "pat" for "patrol".
  • Fix: Fixed typos in mute-related messages.
  • Fix: Added missing triggers for OnPlayerListChanged event.
  • Fix: Fixed /reloadconfig not changing several variables (like colors).
  • Fix: Fixed antigrief defaulting to 35/5 (instead of unmetered).
  • Fix: Fixed heartbeat counting hidden players.
  • Fix: Fixed a rare ObjectDisposedException crash on shutdown when running fCraftUI.
  • Change: Added a more informative disconnect message to players connecting with Alpha client.
  • Change: Improved the way player disconnects are handled to be more reliable, and to drop disconnected players sooner.
  • Change: Improved the way PlayerDB saving is triggered. New schedule reduces overall disk use and reduces possible data loss in case of crashes.

0.481

2 October 2010 - r237

  • Fixed a bug in Rank deserializer that set antiGriefBlock=antiGriefSeconds (messing up antigrief permissions).
  • Fixed a few more references to "player class" terminology instead of "rank".

0.480

2 October 2010 - r236

  • Feature: Changed all "player classes" terminology to "ranks" for consistency with other servers. Several commands have been renamed to reflect that: /classes to /ranks, /user to /rank, /class to /rankinfo. All rank-related messages have also been updated.
  • Feature: Added "Raise"/"Lower" buttons to Ranks tab in ConfigTool, and made some other adjustments to the tab. You no longer need to assign a "rank" number to reorder ranks.
  • Fix: Fixed a crash in ConfigTool that happened if classes were added/renamed/deleted while PatrolledClass was not set.
  • Fix: Improved fCraftUI responsiveness on-startup.
  • Fix: Fixed several cases of Worlds tab going out-of-sync with the ranks tab.
  • Fix: /wremove now always saves the map before unloading.
  • Fix: Fixed Console being affected by chat spam/flood checks.
  • Fix: Fixed /zinfo not showing any separators between player names.
  • Fix: Fixed an extra comma appearing in the log entries for /replace and /replacenot calls.
  • Fix: Fixed Security and IRC tabs not being reset by "Reset All Defaults"
  • Fix: Fixed bugged error messages in /tp and /bring when world access permission check fails.
  • Fix: If any class limits were set to default/"(own class)", the setting is now preserved.
  • Fix: Fixed a bug that didn't reset Hide limit if it was set to a deleted rank.
  • Change: Removed legacy zone loading code for pre-0.420 maps (due to changes in rank definition format).
  • Change: Added a more informative disconnect message for players trying to connect with Minecraft Alpha clients.
  • Change: Improved rank-based coloring in world list to check both access and build permissions.
  • Change: Added "/fetch" as alias for /bring, and renamed "/save" to "/wsave".
  • Change: Deleted some obsolete/disabled controls from ConfigTool, removed PingInterval config key, and removed placeholder ControlPhysics and AddLandmarks permissions.
  • Change: Made several changes to improve disconnect detection:
    • Added occasional pings (every 5 seconds or so, depending on activity/inactivity).
    • Reduced socket send/receive timeout from 12 to 10 seconds.
    • Increased socket polling interval to improve performance.
  • Change: If a player tries to connect to a server twice, the FIRST connection is dropped instead of the LAST connection.
  • Refactor: Major changes were made to the way ranks are stored, and to RankList (formerly ClassList) API.
  • Optimization: Made IsoCat rendering faster, and made draw commands use less CPU.

0.475

17 September 2010 - r229

  • Feature: /ztest now distinguishes between being allowed/denied by rank/class vs by whitelist/blacklist.
  • Fix: Fixed being unable to change rank/class restrictions with /zedit
  • Fix: Fixed a bug that reported wrong average CPU usage
  • Fix: Fixed a crash on saving in ConfigTool, related to new PatrolledClass config key.

0.474

16 September 2010 - r228

  • Feature: "/mute" command to temporarily stop players from chatting. A new class permission (Mute) is added, granted to op+ by default.
  • Feature: "/shutdown" command to gracefully shutdown the server remotely. A new class permission (ShutdownServer) is added, granted to owner by default.
  • Feature: Added CPU usage information and loaded world count to /sinfo.
  • Fix: Added a way to edit "PatrolledClass" from ConfigTool.
  • Fix: Fixed zone whitelist/blacklist not updated correctly when edited.
  • Fix: Made teleporting to spawn (with /spawn or /tp, no parameters) accessible to all classes.
  • Fix: Adjusted for Notch's errors in handling player positions in teleport packets. Slightly improves accuracy of /tp, /bring, initial spawning, /patrol, frozen players, and speedhack detection.
  • Fix: Removed "/tp" bounds check when used with typed-in coordinates numbers.
  • Fix: Fixed an extremely unlikely case of PlayerDB/IPBanList overwriting on shutdown if server initialization failed.
  • Fix: Made "server shutting down" packets deliver more reliably (but still not guaranteed).
  • Fix: Fixed Console possibly not seeing hidden players.
  • Change: Added a basic file check to AutoLauncher
  • Change: Added error logging and crash reporting to Server.Shutdown
  • API: Renamed Server.ShutdownStart to Server.ShutdownBegin (for consistency).

0.473

15 September 2010 - r227

  • Feature: Added zone coordinates to /zinfo
  • Fix: Fixed cross-world /tp teleporting the wrong player.
  • Fix: Fixed odd date formatting in /zinfo

0.472

15 September 2010 - r226

  • Feature: Added /cut command
  • Feature: Added a new /patrol command. It allows cycling through low-ranked players on a map (with teleportation). The order is determined by how long it's been since someone checked on a player. A "Patrol" permission and "PatrolledClass" config key were added.
  • Feature: Added a shorthand notation to /zone for making personal zones: "/zone +PlayerName" creates a zone named after the player, with rank limit just above player's, and with player whitelisted.
  • Feature: Zone whitelist/blacklist now support player name autocompletion, and show rank colors.
  • Fix: Fixed server always binding to IPAddress.Any regardless of config settings.
  • Fix: TP/Bring no longer allow teleporting to hidden players on other worlds.
  • Fix: Server.GetPlayerList(string) now stops searching the list when it finds an exact match.
  • Fix: Fixed client-crash in /zedit when changing class.
  • Fix: Fixed possible corruption of edited zones upon map saving.
  • Fix: Fixed a range of improbable synchronization issues in the way Zone whitelist/blacklist is updated. As a fortunate side-effect, significantly reduced Zone.CanBuild() overhead.
  • Fix: Temporarily added mainThread.Abort() to Server.Shutdown() that's kicked in if mainThread does not stop within 5s of being notified of shutdown. I am investigating the real cause of the hang.
  • Fix: Fixed hidden players being revealed by promotion/demotion.
  • Change: Added less threatening error messages to IRC bot on network errors (SocketException and IOException).
  • Change: Disabled movement handling code while changing maps.
  • Refactor: Merged StandardCommands and ImportCommands into AdminCommands

0.471

14 September 2010 - r224

  • Feature: Added ability to specify the server's IP (to bind to) manually, for machines with multiple NICs. A new config key "IP" (default: 0.0.0.0/automatic) is added. This will also fix problems with heartbeats being sent from a different IP.
  • Fix: Fixed a bug with player ghosts being left behind when switching worlds.
  • Fix: Fixed a case with kicked players' connections not being terminated at once (thanks to wootalyzer).
  • Fix: Fixed several bugs in hide/unhide functionality.
  • Fix: Fixed a rare crash in AddWorldPopup related to missing maps for existing worlds.
  • Fix: AddWorldPopup will no longer allow adding a world with a duplicate name.
  • Fix: Capped maximum players at the newly-discovered protocol limit of 128 (thanks to wootalyzer).
  • Change: ConfigTool fields now provide better feedback if validation fails.
  • Change: Changed heartbeat interval to 40 seconds (down from 50).
  • Change: Added a special error handler for rare/impossible case of mainWorld not being joinable.
  • Change: Made fatal error messages in fCraftConsole print in red. Better color support coming soon.

0.470

13 September 2010 - r223

  • Feature: Personal zones - per-zone whitelist and blacklist of individual players. The lists can now be defined with /zadd and edited with /zedit.
  • Feature: Added cave/ore generator from Omen (BETA).
  • Feature: Added "/maps" and "/levels" as aliases for "/worlds".
  • Feature: Added a way to limit the "Hide" permission per-class. Now you can specify whom can a class hide from.
  • Feature: Zones now remember date/time of creation and last edit, and names of original creator and last editor.
  • Fix: Unauthorized players can no longer PM or use bring/freeze/unfreeze/kick/tp/where on hidden players. They get the standard "player not found" message.
  • Fix: Fixed hidden players being counter towards /players total.
  • Fix: Fixed a potential crash in /wflush when using on unloaded maps.
  • Fix: Doing /banip or /banall on unrecognized players no longer ip-bans 255.255.255.255. Old IPBanList entries relating to 255.255.255.255 will be automatically discarded.
  • Fix: Fixed /replace command uses not being logged.
  • Fix: Fixed /worlds command not showing world count.
  • Fix: Fixed a client-disconnect when trying to unban a player who is not in the database.
  • Fix: Fixed "/join PlayerName" not translating to "/tp PlayerName" correctly.
  • Fix: Fixed a very unlikely client-disconnect in ChangeClass if the entered class name contains curved braces.
  • Change: Changed default name for "/flip" command to "/mirror", and fixed command's help. Either term still works.
  • Change: Added more block name aliases:
    • Air: delete, erase
    • Stone: cement, concrete
    • Grass: gras (common typo)
    • Obsidian: onyx
  • Change: Improved formatting of /players, /worlds, and draw command messages.

0.463

9 September 2010 - r218

  • Fix: Fixed special colors showing up even if ClassColorsInChat is disabled.
  • Fix: Fixed potential client-crash in World.SendToAll(), and related client-crash in lock/unlock.

0.462

8 September 2010 - r217

  • Fix: The "OK" button in AddWorldPopup no longer stays grayed out.
  • Fix: Fixed "Error occured while loading" in the file information dialog for non-FCM files.
  • Fix: Fixed a crash in /bring when used without any parameters.
  • Fix: Fixed Server.UrlEncode not escaping 0x00-0x0F characters properly.
  • Change: Slightly reduced default tree density in MapGenerator.

0.461

8 September 2010 - r216

  • Feature: New EXPERIMENTAL "/reloadconfig" command, and associated ReloadConfig permission. Use with caution!
  • Fix: Fixed a case where AddWorldPopup would allow clicking "OK" with a null map.
  • Fix: Fixed player crash if /freeze or /unfreeze is used without arguments.
  • Fix: Fixed player crash on FormatException in /zones and Server.ShowPlayerConnectedMessage.
  • Fix: Fixed potential player crash if LimitOneConnectionPerIP is enabled.

0.460

8 September 2010 - r214

  • Feature: Added ShowPlayerConnectedMessage and ClassColorsInWorldNames settings to config.
  • Feature: Added /measure command.
  • Feature: Class colors and prefixes are now applied consistently EVERYWHERE.
  • Feature: Banned players now see their ban reason/memo when they get kicked.
  • Feature: A special error message is shown to players trying to connect with Alpha/SMP client.
  • Feature: IsoCat (ConfigTool isometric preview) rendering quality improved: better shadows and slight altitude-based gradient.
  • Feature: Added new blocktype name aliases: "solid", "golden", "halfstep", "halfblock", "steps".
  • Feature: Added player count for each class in /classes
  • Fix: Fixed wrong "MaxBackupsSize" range in ConfigTool.
  • Fix: MaxBackupsSize setting is now applied correctly.
  • Fix: IRC color codes are now stripped from forwarded messages.
  • Fix: IRC bot now uses ServerName for "real name".
  • Fix: Formatting improved in many error messages.
  • Fix: Commas in ban/unban/promote/demote reasons no longer cause problems with PlayerDB.
  • Fix: Removed extra comma from /worlds list that showed in place of hidden/inaccessible worlds.
  • Change: Added 5-second delay between retries in AutoLauncher
  • Change: "Player connected" message condensed to a single line by absorbing "joined world" message.
  • Change: Removed ChangeName permission (and the ability to change names) due to possibility of abuse and confusion. Related /nick and /whois commands were also removed.
  • Change: /tp can now fall back to behave like /join if player name is not found (for all those times when you mistype /tp instead of /join). Conversely, /join falls back to /tp if player was not found.
  • Optimization: Reduced bandwidth use with an adaptive movement packet skipping algorithm. Should reduced outbound traffic by at least 15%.
  • Optimization: BlockUpdate memory usage slightly reduced.

0.455

8 September 2010 - r213

  • Feature: AutoLauncher (BETA) allows restarting the fCraftConsole server if it crashed. Although it honestly shouldn't crash at all!
  • Fix: Allowed renaming worlds in cases where only capitalization is different.
  • Fix: If an ip-banned player has more than one connection, all connections are now terminated.
  • Fix: Fixed nonrectangular MCSharp maps getting messed up by the loader.
  • Fix: Increased the default timeout from 10 to 12 seconds, to help people with extremely laggy connections.
  • Fix: When autocompletion finds more than one player name matching a pattern, server now prints the list of names (instead of "no player found" message). Affects PMs, /TP, /Bring, /Freeze, /Unfreeze, /Kick.
  • Change: Improved OS detection in crash reporter.

0.454

  • Feature: /replace, /replacenot, /paste, and /pastenot can now work with multiple blocks. See /help for details.
  • Fix: Replace no longer behaves same as replacenot.
  • Fix: Spaces in IRC messages are now preserved.
  • Fix: Help entries for paste/pastenot corrected.
  • Fix: /cinfo (without parameters) now shows player's own class info.

0.453

  • Feature: It is now possible to reverse last /undo (by typing /undo again).
  • Change: IRC message colors are applied slightly differently now.
  • Change: Added more automated crash reporting hooks - to MainLoop and Tasks.
  • Change: More help messages improved.
  • Change: Added a more informative message for people running outdated versions of Mono and .Net runtime.
  • Optimization: Slightly reduced memory usage of /undo, /paste, and PlayerDB.Load()

0.452

  • Feature: New /replacenot command allows replacing all blocks EXCEPT the specified one.
  • Feature: New /flip and /rotate commands to manipulate copied blocks.
  • Feature: /players list is now in alphabetical order.
  • Fix: Trying to specify an unrecognized block type for draw commands (e.g. "/c ai" instead of "/c air") now shows a proper error message.
  • Fix: Fixed /gen command crashing players if coordinates are typed in before theme/template.
  • Fix: Fixed /e ellipsoids coming out crooked.
  • Fix: "joined for the first time" messages are now shown correctly.
  • Fix: Fixed /replace not working correctly with /undo
  • Fix: Made IRC bot strip nonprintable characters from messages, and ignore empty messages.
  • Fix: World permissions are no longer reset when doing /wload. Also a permission reminder is now shown when creating new worlds.
  • Change: Improved some help messages.
  • Change: Improved IRC error reporting.
  • Change: Added world name back to "Almost there..." join screen.
  • Change: /pasteonly is now called /paste, and /paste is now called /pastenot (for consistency with other custom servers)
  • Optimization: Slightly reduced memory usage of massive drawing commands (over undo limit).

0.451

  • Feature: Improved the way fCraft handles fatal errors (crashes). Crash logs are now created more reliably.
  • Feature: Added automated crash reporting to fragmer.net (opt-out).
  • Feature: Added an announcement for players logging in from IPs associated with other previously-banned players.
  • Fix: Curved braces - "{}" - in server name no longer cause problems.
  • Fix: "Leaving the map" kick disabled temporarily, will be made configurable per-class soon.
  • Fix: banall/unbanall commands produce less chat spam.
  • Fix: AFK kicks no longer count towards /info number-of-times-kicked.
  • Change: Added class colors to /info, and fixed formatting bug.
  • Change: Cleaned up "Advanced" tab in ConfigTool.
    • Removed obsolete config keys: PolicyColorCodesInChat, PolicyIllegalCharacters, and RunOnStartup
    • Added SubmitCrashReports and IRCDelay config keys.

0.450

26 August 2010

  • Feature: IRC bot rewritten for better performance, flexibility, and safety.
  • Feature: New IRC options: IRCBotAnnounceIRCJoins and IRCBotAnnounceServerJoins.
  • Fix: Fixed messages containing only a single slash ('/') crashing client thread.
  • Change: Removed obsolete IRCBotMsgs config key.
  • Change: Added OnPlayerSentMessage event to Server.
  • Change: IRC bot's commands (e.g. !status) are temporarily unavailable.

0.445

25 August 2010

  • IMPORTANT! Please update ASAP, a security issue was identified in previous version.
  • Fix: If you need to start message with a slash, you can now escape the slash (type "//")
  • Fix: Fixed endless update loop (if automatic updates were enabled)
  • Fix: Private messages with a space between '@' and the player name now work.
  • Fix: Hacking-related kicks are not announced globally.
  • Fix: Fixed "/help" giving wrong message if help entry was not found.
  • Change: Minor changes in MapGenerator/Noise

0.444

24 August 2010

  • Feature: New stat command, /sinfo (server info).
  • Fix: Ban reason/memo now shown for normal bans.
  • Fix: /cinfo for unlimited classes no longer shows "draw limit: 0"
  • Fix: Fixed IRC message colors, and removed IRC color codes from log.

0.443

24 August 2010

  • FEATURE: New /WFlush command. It allows finishing all in-progress draw commands at maximum speed (over 100k blocks/second) then forces a map rejoin.
  • Feature: Added more customization options for colors: PrivateMessageColor and IRCMessageColor in Config.
  • Feature: /Players list is now sorted alphabetically.
  • Feature: Added "Check Port" button to ConfigTool to see if port is open. Uses www.utorrent.com/testport
  • Feature: Added "Play" button to fCraftUI to open server URL in the browser
  • Feature: World names in /Worlds list are now colored according to each world's build permission.
  • Feature: Added speedhack detection & prevention (BETA) and corresponding Permission.UseSpeedHack. All your classes will be granted this permission by default. Edit the config to customize it.
  • Fix: When using /Mark outside of map boundaries, draw limits are no longer calculated incorrectly (thanks to Darnest).
  • Fix: Fixed possible crash in Map.CheckZones() on maps created with /Gen
  • Fix: Fixed compilation issue with "tileset.png" on case-sensitive filesystems.
  • Fix: Fixed class-wide messages not wrapping correctly.
  • Optimization: antigrief and antispam checking overhead reduced.

0.442

22 August 2010

  • Fix: Addresses a security issue.
  • Fix: "OK" button in AddWorldPopup is now always disabled if no map is set.
  • Fix: "Feature size" label is now updater correctly when map dimensions are changed.
  • Fix: Added missing player notifications for /Undo and /Cancel commands.
  • Change: MapGenerator's default map size changed to 128x128x80

0.441

22 August 2010

  • Feature: Added cuboid limits to /cinfo
  • Fix: Fixed a bug in BoundingBox that made /paste and zones behave incorrectly
  • Fix: Fixed ban/unban commands not kicking the player if entered name capitalization did not match actual capitalization
  • Fix: Fixed "flatgrass" being broken when using /Gen
  • Fix: Fixed /Ban rank checks affecting /Unban
  • Change: Optimized zone permission checks

0.440

22 August 2010

  • FEATURE: New MapGenerator with tons of options. You can also save/load custom templates for it.
  • FEATURE: AddWorldPopup interface overhaul.
  • FEATURE: JTE, D3, and Myne/Mynecraft/Hyvebuild/iCraft map format converters added.
  • Feature: Improved syntax of the /Gen command. See "/Help gen" for details.
  • Feature: Reason/memo is now shown publicly when someone gets banned, unbanned, or kicked.
  • Feature: Teleport and Bring work across worlds - world permissions still apply.
  • Feature: Added 4 new Config keys: RequireBanReason, RequireClassChangeReason, AnnounceKickAndBanReasons, AnnounceClassChanges. By default "AnnounceKickAndBanReasons" and "AnnounceClassChanges" are enabled.
  • Feature: Added 5 new fields to PlayerDB: previousClass, classChangeReason, timesKicked, timesKickedOthers, timesBannedOthers.
  • Feature: Added a lot of new information to /Info.
  • Feature: You can now save map preview images (isometric) from AddWorldPopup.
  • Feature: ConfigTool now shows warnings about any errors logged during Config.Load
  • Fix: Yet another workaround for VerifyNames false negatives (thanks to SpaceManiac).
  • Fix: Fixed being able to paste admincrete/water/lava without permission (part of Player.CanPlace overhaul).
  • Fix: Trying to go over class draw limit no longer causes "Another drawing command is in progress" error.
  • Fix: Mcc.MapUtility.TryLoading() and Map.LoadHeaderOnly() now release file handles as soon as possible. This should fix some "file is being used by another process" errors.
  • Fix: Map spawn should be parsed correctly for MCSharp/MCZall maps
  • Fix: If a map doesn't start with a gzip header, it no longer has a chance to abort the whole load process.
  • Fix: Fixed blocktype names being case-sensitive.
  • Fix: Added a more informative message when idle players are kicked.
  • Fix: Fixed undo buffer not getting cleared when doing paste/pasteonly
  • Fix: Fixed /WAccess exception kicking players.
  • Fix: 100% Empty maps no longer crash AddWorldPopup with OutOfMemoryException
  • Fix: Fixed "player is already banned" message when doing /BanAll
  • Fix: Fixed no public message appearing when doing /BanAll
  • Fix: Fixed cuboid/ellipsoid/cuboidh logging blocktype code instead of blocktype name.
  • Fix: Improved the message that's shown when idle players are kicked.
  • Fix: Documented ability to /TP to specific coordinates.
  • Fix: AddWorldPopup no longer crashes if user closes "Load Map" dialog before selecting any file.
  • Fix: When drawing affects (in part or in full) a restricted zone, the zone is left untouched, and the rest of draw command finishes (part of Player.CanPlace overhaul).
  • Fix: Fixed crash in AddWorldPopup.AsyncLoad() if map loading failed.
  • Fix: LegacyRankMapping is now parsed correctly
  • Fix: Renaming a class no longer causes "Worlds" tab dropdown menus to go out-of-sync.
  • Change: AddWorldPopup preview image quality improved.
  • Change: Updated to newest version of NBTag library.
  • Change: Frozen players can no longer build/delete.
  • Change: Removed public /Undo message, added log message instead.
  • Change: Removed AnnounceUnverifiedNames settings.
  • Change: When building/deleting permission is denied, the exact reason is given (instead of a vague "you cannot do that" message) (part of Player.CanPlace overhaul).

0.435

12 August 2010

  • Feature: Added /Copy, /Paste, and /PasteOnly commands. Rotation coming soon.
  • Feature: Added CopyAndPaste permission, granted to op and owner by default.
  • Feature: Added MapGenType.Cliffs - similar to Mountains type, but with cliffs!
  • Fix: Fixed /Paint command
  • Fix: Fixed /BanInfo now showing any information if used without parameters.
  • Change: Replaced surface rocks in MapGenTheme.Hell with Obsidian.

0.434

11 August 2010

  • Feature: new /Bind command allows mapping any block to any other. Now you can place those unbuildable blocks (water, lava, grass, double-step) in any way you wish. For compatibility, old commands (/Water, /Solid, /Lava, /Grass) have been preserved.
  • Change: "step" added as an alias for Stair block. "doublestep" added as an alias for DoubleStair.

0.433

8 August 2010

  • Feature: /WInfo now shows who locked/unlocked the map, and how long ago.
  • Fix: Fixed a error message that showed up when announcements.txt was blank.
  • Fix: Permission check added back to lock/unlock commands.
  • Fix: "mapinfo" added back as alias for /WInfo
  • Fix: Fixed locked maps not getting unloaded when all players left

0.432

6 August 2010

  • Fix: List of worlds printed by /Worlds is now sorted alphabetically.
  • Fix: Fixed an obscure half-disconnect bug that left players with id=0 who happened to be on the main world in a semi-disconnected state IF someone else was kicked halfway through the login process before it was assigned an id.

0.431

5 August 2010 - r146

  • Fix: Fixed still messed-up /Worlds command.
  • Change: Downgraded standard Session.IoLoop messages that occur on player disconnect from Warning to Debug.

0.430

4 August 2010 - r144

  • Fix: Fixed messed-up /Worlds command. Sorry about that.
  • Change: Downgraded standard Session.IoLoop messages that occur on player disconnect from Warning to Debug.

0.429

  • Feature: Command-handler infrastructure has been redesigned. This will allow much more flexibility for devs and plugin makers later.
  • Feature: "/help commands" now only shows available commands by default. Type "/help commands all" to see all commands.
  • Feature: /worlds command now only available worlds by default. Type "/worlds all" to include worlds inaccessible to you.
  • Feature: Help entries added for /zedit, /mark, /version, /rules, and /say.
  • Feature: ConfigTool World tab columns are now sortable.
  • Fix: Fixed "max backups" in ConfigTool being limited to 100. Now it's at a more reasonable limit of 100000.
  • Fix: Fixed Map.Backup() deleting the newest (instead of the oldest) backup if the total number of files was limited.
  • Fix: Fixed an ERROR that popped up if a player got disconnected during the login process (while player=null).
  • Fix: FormatException crash fixed that caused whole server to go down instead of a player thread.
  • Fix: Several draw-related bugs and crashes fixed.
  • Fix: Fixed crash in /winfo when used on unloaded worlds.
  • Fix: Fixed a bug in Config that caused antigrief to be re-enabled every load.
  • Fix: Fixed a bug in ConfigTool that didn't update AntiGriefSeconds properly when changing between classes.
  • Change: Many /help entries have been improved.
  • Change: Split /class command into two: /classes (aka /ranks) shows a list of classes, and /class (aka /cinfo or /classinfo) shows permission list (missed from last release notes).
  • Change: Added /spawn as an alias for /tp (missed from last release notes).


0.428

  • Feature: Line wrapping. Yes, finally.
  • Feature: Per-class draw limits. Defaults are: owner unlimited, op unlimited, regular 4096 (16x16x16), guest 512 (8*8*8)
  • Feature: Per-class antigrief detection. Defaults are: owner unmetered, op umetered, regular 45/6 (7.5 blocks/second), guest 35/5 (7 blocks/second)
  • Feature: Memory usage of draw commands has been reduced by 6 bytes per block (37% improvement).
  • Fix: Extra color codes fixed in /players command.
  • Fix: Fixed a bug with /undo that caused more than one command to be undone at once.
  • Fix: Fixed maps generated with "Realistic terrain" (MapGenerator) having an empty layer at the bottom of the map.
  • Change: Default classes have been tweaked:
    • regular can now use draw commands
    • op can now lock/unlock
  • Change: Improved arrangement of Permission list items.
  • Change: Removed obsolete ConfigKey variables AntigriefBlockCount and AntigriefBlockInterval


0.427

  • Feature: Added /zedit command for changing zone permissions after creation
  • Feature: New aliases for drawing commands: /c /e /h /r /m
  • Fix: Fix for cuboid command kicking players with "Block.Undefined" if called with no optional BlockType parameter
  • Fix: Fixed zone definitions getting corrupted.
  • Fix: Allowed /save command to be used from console and from remote worlds. Previously you had to join the world to save it.
  • Fix: Fixed potential crash in /winfo when looking up unloaded worlds.
  • Fix: Fixed /zone allowing duplicate names, then kicking the client.
  • Fix: Fixed /ztest showing the standard "you are not allowed to build in this zone" message instead of the expected zone list.
  • Fix: Fixed incorrect description of draw log messages, and backup error messages
  • Fix: Fixed false triggering of "Player asked to be released from its world, but the world did not contain the player" error
  • Change: Fruitified fragmer's name


0.426

  • Feature: Announcements! You can define a list of announcements to show periodically. A random line from announcements.txt will be shown to all players at specified interval (in minutes).
  • Feature: /replace command.
  • Feature: /undo command has been improved for more flexibility and better performance.
  • Feature: /winfo (alias: /mapinfo) is added for displaying world name, player count, map dimensions, and access/build permissions.
  • Fix: Fixed a bug that caused duplicate entries to be added to PlayerDB when doing /importranks or /importbans.
  • Change: New ConfigKeys: AnnouncementColor (default: green) and AnnouncementInterval (default: 5 minutes).
  • Change: Draw command stride increased to 16x16x16, for better theoretical performance.


0.425

  • Feature: Added hollow draw command (/cubh) and aliases (/cuboidh and /bhb)
  • Feature: /players now shows class colors and a total number of players. Breakdown of /players by world is coming soon
  • Feature: Added "Joined world WorldName" message that shows when changing worlds
  • Fix: Improved several /help entries
  • Fix: Fixed a bug in Map.SaveBackup() that could cause a crash if MaxBackups was set
  • Fix: Fixed a bug in ConfigUI where "Delete World" button could leave the map file behind and/or cause an error
  • Fix: Calling lock/unlock from console without a WorldName now shows a nicer error message
  • Change: Improved safety checks of /join command
  • Change: Added a catch-all exception handler into Server.MainLoop
  • Change: Added exception handlers for EVERY single piece of code that requires file access
  • Change: Added more thread safety in MapCommands.WorldRename that resolves a potential race condition with Map.Save
  • Change: Modified IPBanList to use the standard temp folder (instead of fCraft working path) for its temp files


0.424

  • Fix: Fixed /unhide and normal connection getting different messages
  • Fix: Fixed client crash when viewing /rules if the rule file has blank lines
  • Fix: Worlds with capital letters in the name are joinable again
  • Fix: Potential crash in DoClassChange() if target player is already same rank AND is not currently on the server
  • Change: Moved the command list to /help commands
  • Change: Performance and thread-safety improvements to PlayerDB
  • Change: Disabled some more debugging code to avoid taking up unnecessary resources


0.423

  • Feature: /importbans now also supports "banned-ip.txt"
  • Feature: Logs are now stored in /logs/ folder. Your fCraft.log file will be moved there automatically and renamed to "_OldLog.log"
  • Feature: Log splitting now works by day or by session. Set "LogMode" key in config.xml or see Logging tab in ConfigTool.
  • Feature: All maps are now stored in /maps/ folder. Your map files will be moved automatically first time you start ConfigTool/fCraftConsole/fCraftUI
  • Feature: Reserved slots now work
  • Fix: Fixed a bug in fCraft.Server.LoadWorldListXML that could make all worlds hidden.
  • Fix: "player connected" message shown when someone connects, instead of just "player joined world"
  • Fix: "player left the server" message is not shown if the player got kicked before LoginSequence finished (e.g. if server was full)
  • Fix: Added back IP logging for incoming connections
  • Fix: Fixed ConfigTool-generated maps not having correct spawn point
  • Fix: Fixed /user showing both promote and demote messages at once
  • Fix: Removed references to old "/drawundo" command name in "/undo" messages
  • Fix: Fixed "Unrecognized entry ignored: LegacyRankMapping =" warning
  • Change: Made /importbans and /importranks save PlayerDB at once
  • Change: fCraft now forcibly resets its working directory to the same path where the executable is
  • Change: Removed "delete old file?" prompt when renaming worlds in AddWorldPopup. Now it just does it, to match tabWorlds' DataGridView behavior
  • Change: Added additional error checks to Map.Backup()


0.422

  • Feature: Further improved network performance by introducing nonblocking (lock-free) data structure to packet output buffer
  • Fix: Fixed "world creation failed" error if worlds.xml defined a non-existing world to be main
  • Fix: Added back missing messages when doing /user on offline users
  • Fix: Fixed player name color not being updated when their class changes
  • Fix: Added missing /help entries for /importbans and /importranks
  • Change: Improved help messages for /lock, /unban, /unbanip, /undo, /wload, /wmain, and /wremove
  • Change: Tweaked default values of BlockUpdateThrottling and maxBlockUpdatesPerTick for maximum lag-free performance


0.421

  • Feature: Added the ability to promote/demote offline and unseen (not in PlayerDB) players
  • Feature: Added the ability to ban unseen players
  • Feature: Added ability to import bans and ranks from MCSharp/MCZall formats. An associated "Import" permission was added. See "/help importbans" and "/help importranks" for more information. Importer for ip-bans and iCraft/Hyvebuild/Myne format are coming soon.
  • Feature: Improved BlockUpdateQueue performance (faster drawing commands!) by switching to a lock-free data structure
  • Fix: Fixed startup errors not being logged if config.xml has not been parsed yet
  • Fix: Fixed ConfigUI input box not aligning properly when window is resized
  • Fix: Fixed "flatgrass" generated maps being 1 block off vertically
  • Change: Updated PlayerDB and IPBanList to use standard temporary folder (instead of dumping temp files into fCraft directory)
  • Change: Added "logging starts" marker that's written to console and log on-startup
  • Change: fCraftUI log now displays the last 2000 lines (up from 1000 lines)


0.420

  • Feature: New "Worlds" tab in ConfigTool for managing your world list
  • Feature: Isometric map previews and map generation in ConfigTool
  • Feature: Implemented a class-ID system that allows adding/renaming/deleting classes without breaking compatibility. DeleteClassPopup was added for this
  • Feature: Added LimitOneConnectionPerIP option to config & configtool
  • Feature: Worlds can now be hidden from the /worlds list
  • Feature: Added /whois command for checking if a player is using real name or nickname. BE CAREFUL WITH "ChangeName" PERMISSION!
  • Feature: fCraft now generates crash.txt on unhandled fatal errors
  • Feature: Implemented theme support, and added 2 new terrain types (Coast and River) for MapGenerator. See "/help gen" for details, or use ConfigTool.
  • Feature: Pressing Up/Down keys in fCraftUI will show previously typed commands.
  • Fix: Fixed a bug in /wmain and /wload that sometimes made the server unconnectable after changing map
  • Fix: Limits on the /kick command now apply correctly
  • Fix: Fixed /wbuild and /waccess showing wrong messages
  • Fix: Fixed hidden players unable to build due to grief protection
  • Fix: Added /nick and /whois entries to /help
  • Fix: Removed the ability to call draw commands from console (caused crash)
  • Fix: Fixed /lava checking PlaceWater permission instead of PlaceLava
  • Fix: A debug message about "attempting to unregister an non-existent player" is no longer logged every time VerifyNames fails
  • Fix: When using /where command on other players, correct coordinates are now shown]
  • Fix: Player's classes are now updated in fCraftUI list when promoted/demoted
  • Fix: PMs are now logged as LogType.PrivateChat (instead of generic LogType.WorldChat)
  • Fix: /hide and /unhide now use Color.Sys instead of hardcoded Color.Yellow
  • Fix: Player's nicknames (as set by /nick) are applied correctly and preserved when changing worlds
  • Fix: Added missing checks for "Chat" permissions
  • Fix: Color buttons in ConfigTool now show correct background color under Mono
  • Fix: Fixed help entry to /freeze showing incorrect information
  • Fix: Corrected tab order in all ConfigTool forms
  • Change: Added /blb as another alias for /cuboid
  • Change: Removed ReservedSlotBehavior config key
  • Change: Disabled word wrapping in rules.txt editor popup
  • Change: /unhide now resets the player's nick
  • Change: Both player's real name and nickname (if any) are now recorded in the log
  • Change: Added a warning to /info when looking up nicknames (instead of real names)
  • Change: Heartbeat salt generation (used to verify names) is now more secure
  • Change: Removed CanPlaceHardenedBlocks from permission list
  • Change: All map generator terrain types have been tweaked for improved appearence
  • Change: Centered all ConfigTool popup windows (AddWorldPopup, ColorPicker, DeleteClassPopup, TextEditorPopup)
  • Change: Hid unneeded icons and buttons from ConfigTool popups
  • Change: Changed the way zones store rank restriction (as part of the compatibility assurance), and added versioning to zone definitions
  • Change: Map.Save() now creates temporary files in the OS-specific temporary folder, not in same folder where fCraft is installed
  • Change: World permissions are now updated automatically when a class is deleted
  • Refactor: Improved consistency in code naming conventions, especially in IRC code
  • Refactor: Improved code organization in many areas


0.410

  • Implemented per-world access and build permissions.
  • Changed worlds.txt format to worlds.xml. Your old worlds.txt file will be converted automatically.
  • New world-related commands:
    • /wmain changes the main world
    • /waccess and /wbuild allow setting per-world permissions
    • /wremove allows deleting worlds
    • /wrename allows renaming worlds without reloading
    • /wload command is significantly improved (see /help wload for more info). The functionality of the old /load command has been merged with /wload. Now /load is an alias for /join, together with /l, /j, and /goto.
  • Removed SaveAndLoad permission - it became redundant with ManageWorlds. Please check your config to ensure that permissions remain consistent.
  • Added new and previously-missing (/lockall, /unlockall, /where, /me, /rules, /setspawn) commands to /help.
  • Disabled verify-names check for localhost (127.0.0.1) when running in Balanced mode.
  • When player is denied access to some command, server now names the specific permission that's needed.
  • Fixed a potential desync issue when one player rejoins a world, and another joins it simultaneously.
  • Removed /genh command and /compass alias for the /where command.
  • Added a fail-safe exception check when executing console commands. Now the server will stay up even if an exception occurs while executing console command.
  • Improved the way server reacts to fatal errors on startup. Now there is a clear indication that server cannot start.
  • "default map" is now referred to as "main world" for consistency.
  • Improved garbage collection.

0.405

  • Added back support for vanilla (server_level.dat) maps.
  • Fixed MCSharp importer leaving nonstandard blocks in the map, causing client crashes. Now all MCSharp-specific blocks are converted to normal types.
  • Fixed visual player list not updating in fCraftUI.
  • Added /players command to list ALL players on the server (in all worlds)
  • Made the BlockType parameter optional for /cuboid and /ellipsoid. Now it takes blocktype of the second click (or last-previously-used-blocktype when using /mark) in the absence of the optional parameter.
  • ConfigTool: Added a new tab for IRC setting.
  • ConfigTool: Fixed a bug that prevented the last 2 checkboxes on the permission list from being saved properly.
  • IRC: Split IRCForwardAll into IRCForwardFromServer and IRCForwardFromIRC to make it easier to manage which messages you want to see.
  • IRC: Added IRCBotQuitMsg to allow users to define their own quit message for the bot.
  • IRC: Fixed a bug with infinite reconnects on receiving error 433 Nickname already in use.
  • Zones: Changed behavior of overlapping zones:
    • Before: To touch a block, AT LEAST ONE zone has to allow it
    • Now: To touch a block, ALL ZONES have to allow it
  • Zones: Added /ztest command that lists all zones affecting a particular block. It can be used to detect and resolve zone overlaps.
  • Zones: Added proper /help entries for /zone, /zones, /zremove, and /ztest, and contextual help for /zone and /zones.
  • Zones: Made zone commands inaccessible from console (it would cause a crash, since zones are world-specific).
  • Fixed OnPlayerDisconnected and OnPlayerListChanged sometimes firing at the wrong time.
  • Added better error handling to Map.Save() in case the target file is not writable.
  • Updated /help entries for /lock, /unlock, and /load commands.


0.404

  • Fixed zone borders being off by 1 block.
  • Fixed a rare crash on shutdown.
  • Fixed heartbeat reporting incorrect port number to heartbeat if the port specified in config was not available.
  • Adjusted default class permissions slightly, by popular demand:
    • regulars can now place Water and Lava
    • ops can now use draw commands
  • IRC: Added a config option 'IRCMsgs' to toggle join/leave messages on/off. Default is disabled to prevent massive spam.
  • IRC: Fixed a possible crash in IRCComm, related to static initializers.
  • ConfigTool: Fixed many bugs in permission checkbox list.
  • ConfigTool: Added visual editor for rules.txt
  • ConfigTool: Added stub tab for IRC settings (coming soon).

0.403

  • Fixed spawnpoint being read incorrectly when using /load.
  • Added a note to ban*/unban* commands that's shown when player name is not found: "Use the FULL player name for ban/unban commands."
  • Fixed a thread crash (not server-wide crash) in Session.IoLoop that can be caused by corrupted or malicious handshake packets.
  • Fixed a potential crash when using /info on offline players from console.
  • Fixed a potential crash when using /gen from console.
  • Added more fail-safe checks that ensure that map spawn point is always within the map boundaries.
  • Started logging IPs of connections that try sending corrupted or malicious handshake packets.


0.402

  • Added back /load command, and hooked up MCC. Currenly supported: fCraft/fcm, MCSharp/lvl, indev/mclevel, MinerCPP and LuaCraft (dat). Vanilla support coming soon.
  • Fixed worlds being unloaded before all block updates are processed (thus aborting draw commands).
  • Fixed several potential multiworld-related crashes and freezes.
  • Made Server.UnregisterPlayer check ALL worlds to remove the player, not just most recent one.
  • IRC: Added an information message to notify users of the IRC Bot's online status when joining the server.
  • IRC: Added the ability to send NOTICES.
  • IRC: !status/!help can both be sent to the bot in channel now and it will respond appropriately.
  • IRC: Added a check to see if the IRC Bot is actually enabled and online before sending a notification that it IS online.
  • Drawing-related state is now reset when changing worlds.
  • Added a limiter to the number of block updates that can be processed per tick (even if there are no players in a world). Fixes server becoming unresponsive when doing enormous drawing commands (millions of blocks).
  • Allowed players to /join the world that they are already on.


0.401

  • IDLE/AFK CHECKING This is configurable per-class.
  • Added /version command, and added revision to the version string.
  • Added an option parameter to /lock and /unlock to target a specific world, and added global /lockall and /unlockall commands.
  • Removed all references to the old pre-multiworld "map.fcm." Backups now work again.
  • Fixed players not spawning in the right place when changing worlds.
  • IRC Bot will now handle terminations by the IRCd and restart itself upon any errors.
  • IRC Bot can now send from inside the server TO IRC! Use the prefix '#' in-game to send any message to IRC. Forwarding all server chat may be added if requested. To send from the bot to the server, use the bot's nickname and either ':', ',' or nothing, then your message.
  • Improved performance of the IRC bot and the task scheduler.
  • Fixed a bug with getting the server url from the externalurl.txt file crashing the IRC MessageHandler() when the file didn't exist. FORWARD_ALL is now enabled for both SERVER and IRC for 100% transparent chatting.
  • Fixed a bug in the server-to-irc code that forwarded a blank message if there was nothing after '#' in server chat.
  • Handshake packet is now written when doing /join, to replace MOTD with a more informative "Now loading [worldname]".

0.400

  • MULTIWORLD It's finally here. See /help for information on new commands: /worlds, /wload, /join
  • Added a persistent world list, saved in worlds.txt - this is subject to change. The file contains a list of world names, each corresponding to an .fcm file. The first world listed at the top of worlds.txt is the default/main one.
  • IRC BOT Thanks to the efforts by Destroyer661, fCraft now has an optional IRC bot for relaying chat and commands.
  • A field has been added in the config to allow forwarding ALL IRC CHANNEL TRAFFIC to the server. This will override the prefix and make it inactive. 'IRCBotForwardAll' is set to false by default.
  • ZONES It is now possible to make guest zones and op zones (and anything in-between) on any map. See /help for information on new commands: /zones, /zone, /zremove.
  • Added 2 new permissions: ManageZones and ManageWorlds. You might need to update your config.xml to add these permissions to appropriate classes.
  • Added /compass command (aka /where).
  • Fixed players sometimes not seeing their /kick message.
  • Added a way to teleport to specific coordinates (/tp x y h)
  • Fixed heartbeats timing out when running fCraft under Mono.
  • Fixed Config.ApplyConfig setting the wrong server throttling variables.
  • Fixed air blocks appearing underwater when using /gen
  • Tweaked /gen parameters to make "island" a bit less ugly.
  • Updated text in fCraftConsole.

0.3xx

0.330

  • Added /cuboid and /ellipsoid drawing commands.
  • Improved memory usage.
  • Added "Draw" permission, and made /draw check "DeleteAdmincrete" permission when replacing blocks, and removed unused "PlaceGlitchedSand" permission.
  • Added "Port" and "BackupOnlyWhenChanged" config lines, and corresponding ConfigTool fields.
  • Fixed bug that deleted ALL backups when you check "don't delete old backups." That was embarrassing.

0.325

  • Added an experimental low-latency mode (faster server response, but more bandwidth required).
  • Improved hacking detection: added anti-chat-spam and anti-grief (block spam) checks.
  • New more aggressive anti-hacking checks for incoming movement and SetTile packets.
  • Fixed an issue with fCraftUI console log getting truncated in the wrong places.
  • Improved Mono compatibility (fixes HttpWebRequest failures).

0.324

  • Added /me command.
  • Added step stacking.
  • Fixed a case where disconnected players would leave a ghost behind.
  • Improved shutdown speed.
  • Implemented ProcessPriority setting.

0.323

  • Fixed players not being able to delete admincrete after promotion.
  • Fixed a bug that allowed players to noclip into walls when using /tp or /bring.
  • Fixed a security issue with "VerifyNames: Balanced"
  • Added prototype of the security tab in ConfigTool (work in progress).

0.322

  • Added a range check to Player.SetTile, to prevent certain types of grief bots.
  • Fixed a bug where map spawnpoint did not change after doing /load.
  • Fixed some typos.

0.321

  • Fixed welcome messages not showing.
  • Renamed /alias to /nick, and added a permission check.

0.320

  • Finally last fix for the disconnect problem. Sorry about that.

0.319

  • Quick fix for disconnect problem.

0.318

  • Fixed VerifyNames not saving properly when using ConfigTool.
  • Fixed several potential crashers in Session and World.
  • Fixed a bug that sometimes wrongly showed "class name not recognized".
  • Added class name autocompletion for class chat (@@classname blah)
  • Started working on the new /load mode that allows loading different sized maps, and loading much faster (not done yet).

0.317

  • Optimized handling of player movement and some block/tile updates, making servers more responsive and less laggy.
  • Fixed a possible crash that sometimes happened when server has 1 slot left and 2 people tried to join at once.
  • Fixed a case where a Session object was not properly disposed.
  • Fixed resizing issue in UpdateWindow and reduced connection timeout in Updater
  • Disabled ShowPrefixesInChat and ShowPrefixesInList by default (breaks skin support)
  • Added Player.Send, a safe wrapper for Player.session.Send
  • Fixed /tp, /bring, and /setspawn commands that were broken in the last revision.
  • Fixed ConfigTool not saving "IsPublic" setting correctly.

0.316

  • Added partial class-name matching for /class and /user commands.
  • Fixed /banip and /banall not kicking the banned players immediately.
  • Added /rules command. Create "rules.txt" in the server folder to specify.
  • Fixed a bug where player movement sometimes got a little out of sync.
  • Optimized /load speed a bit.
  • Added nicer application icons.

0.315

  • Added visual color picker to ConfigTool
  • Added lightweight console interface for fCraft
  • Refactored the main update loop

0.314

  • Added AutomaticUpdates option.
  • Integrated the color picker to ConfigTool.
  • Improved hacking detection.

0.313

  • Fixed a few glitches left after switching file formats.
  • Improved memory usage when saving maps.
  • Fixed an updater-related crash.

0.312

  • New map format (FCM v2) should provide faster loading times.
  • server_level.dat loader is now functional.
  • Fixed possible crash if the default port was not available.
  • Automatic updater should now work properly. More update options to come.

0.311

  • Preview version of automatic updater.

0.310

  • Cleaned up some VC# crapfiles.
  • Added class prefixes and colors.
  • Added PlaceWater and PlaceLava back to permissions.
  • Fixed rank-limited permissions.
  • Other assorted glitches fixed.

0.305

  • removed config.xml from svn.

0.304

  • More potential crashes fixed.

0.303

  • Fixed a couple potential crashes in ConfigTool and Config.DefineClass

0.302

  • Fixed a few minor ConfigTool bugs.

0.301

  • Forgot to save config from World.cs after parsing. Minor update.

0.300

  • ConfigTool finished. Note that some of the options do not have an effect yet.

Before 0.3xx

  • Version history was not kept before this point.