-
Notifications
You must be signed in to change notification settings - Fork 8
/
CHANGELOG.txt
1960 lines (1780 loc) · 140 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
0.644
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
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: Running UpdateInstaller 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
Feature: Added /Fill3D command.
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
Feature: Improved the way /EllipsoidH works on flat surfaces. Instead of filled ellipses, it now makes rings.
Feature: Added a /Reply (/re) command.
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
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 caret (^) and tilde (~) emotes.
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.
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
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
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 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
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 filename 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
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
Feature: Added support for "emotes" (chat symbols). New permission (UseEmotes) and config key (IRCAllowEmotes) were added.
Fix: Fixed ParseMiniTimespan/TryParseMiniTimespan accepting numbers as valid 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: 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: Server.StartServer will now retry looking up the external IP up to 3 times.
Change: Added a workaround for TermInfoDriver-related exceptions under Mono (thanks Hellenion)
Change: Lots of documentation, annotation, and API improvements.
0.634
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
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
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
Feature: Added a way to restrict commands to match online players' names only, by prefixing the name with an exclaimation mark (!).
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
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
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/WUnlock (thanks ImNoobSoWhat).
Change: Added server name to /SInfo
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
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
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
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
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
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
Feature: /BInfo (/bi) 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 to be entered in chat, which is now escaped.
0.616
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
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: ConfigGUI now correctly interprets "Notify" and "Auto" updater settings.
Change: Data backups are now stored in ./databackups/ directory.
0.614
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
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
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.
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
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
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
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 and /Restart commands.
Fix: Fixed a rare crash that only happened 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
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
Feature: One-click paste commands are now the default. Two-click aligned paste commands are now known as pastex/pastenotx (or px/pnx)
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 /BInfo
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
Fixed several issues with /Undo and drawing commands.
0.600
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 next target was improved.
Commands: Renamed Lock/Unlock 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, /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 /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: Made fCraft.sln default to "Release" configuration when loaded.
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 ConfigTool.
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 ConfigTool, 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.537
Fixed another heartbeat-related issue caused by minecraft.net updates.
0.536
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
Workaround for minecraft.net heartbeat changes.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Fixed a crash bug related to SecurityController.MinRank
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.
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
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
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
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