New in 1.2.10.0 (Beta) Monitors and buttons are now placed on moveable toolbars. This requires migration code from previous versions, which is why it is in beta. The settings window has an updated look and has a new section for hide/showing different sections of the main window. Add support for an in-menu hp/mana/move display. Move the connection timer into the menu bar, can now be clicked to connect/disconnect. Add ability for advanced triggers to determine whether an external/temp variable already exists. Probably more. New in 1.2.9.4 Improve main display and trigger windows to behave more like real textboxes - fixed the scrolling when mouse goes outside the window while selecting, and fixed cursor blink when switching applications. Also improved the look of the border on the main display and trigger window text boxes. New in 1.2.9.3 Bug fix - some buttons didn't move correctly when resizing the match maker screen. New in 1.2.9.2 Added a border to the main textbox, also changed update window to show minor version numbers - and not to close before having completed download. New in 1.2.9.1 Added fallback ports - this allows us to ship with a set of port numbers, all of which will be tried until one works. Useful for telling people what to do when they don't know if they have firewall issues. New in 1.2.9 Critical fix, people who installed 1.2.8 fresh without upgrade were not able to save settings. This was because between 1.2.5 and 1.2.8 safety was added to protect loss of settings due to failures during save by making a backup. But with a fresh install, there is no file to make a backup of which itself was causing a failure. New in 1.2.8.2 Add more details to the error message on failed to save settings so I can get rid of it once and for all. New in 1.2.8.1 Significant improvements in telnet compatability. Number of garbage characters shown in muds other than DoN should be significantly lower. Also now supports terminal type, status, binary, end of record and suppress go ahead options. Fixed a bug where DoNClient would send a garbage response if sent a telnet option negotiation while running MCCP2. Correctly ignore unrecognized telnet suboption negotiations. New in 1.2.8 New release copy - its about time we got some bug reports from the front edge. This version also makes minor changes to make auto-upgrading a slightly smoother process in future. New in 1.2.7.2 MSP - actually does work as opposed to only looking like it. New in 1.2.7 TOTALLY UNTESTED, MSP support. The code looks like it might work! New in 1.2.6.3 Support for Indexers in AELF Better protection against bad settings files, make copies so you can recover rather then losing everything. New in 1.2.6 Fixed a long standing issue where the spell checker in the compose form was actually useless. Fixed a few issues with the media player. Added playlist capability to media player. New in 1.2.5 Changed autoupdate to check on startup as well as on command. Add two new settings Dont check version on startup and Dont automatically connect on startup. Added mod operator to AELF. Released a new installer so that people can get the new auto upgrade options. New in 1.2.4 Several regressions had slipped in in the last couple of versions. This version is a bug fixing release. Fixed some issues with variable substitution in AELF where the last letter of the variable name was sent as well as the variable itself. The @@ escaping should be fixed as well. Fixed the match selector bug where if you used 'use as match' to select your string, it would show as a working match in the match selector, but then not function when you try and use it as your actual match. Changed newline handling to accept a variety of newlines from muds as well as the telnet standard protocol newline. Fix the new trigger button, which broke in 1.2.3 - now works again! New in 1.2.3 Changed the behaviour of the checked listbox on the triggers and aliases page to more check when you click on the check marks, and not otherwise. New in 1.2.2 Improved support for renaming DoNClient.exe. Added a TypeWizard which provides descriptions of what each of the most commonly used trigger and alias types are. Added description text to ensure people are aware they are choosing an expert-only option. New in 1.2.1 Added media player - capable of both audio and video playback if your computer supports DirectShow. Wave file plaback if not. New in 1.2.0 Added ability to change white and black color settings. Added ability to use tab character. Tab size can be set in settings. Added dynamic search to the copy tool. Decided at random to call this 1.2 and put off mxp/msp to 1.3 Context sensitive help is still a work in progress. New since 1.1.3 release (will be in 1.2.0 and in current 1.1.3 refreshes) Improved match creator window significantly. Significantly, now lets you test your match and see what #{1} #{2} will mean. Started adding context sensitive help throughout. New in 1.1.3 Added match creator window, first version, may have bugs and doesn't have all the functionality I want yet, but it is started at least. Added AELFAlias and Alias trigger/alias types which are the same as AELF and Trigger but don't send the match string onwards. Fixed @wait in AELF triggers and aliases. Make sure ansi color settings get pushed to additional windows as well as the main window. Adjust the click position for selecting text slightly. Change the mouse cursor to be the text cursor when over a text entry area. Change command history behaviour on the basis of several requests. It now forgets edits you have made to the history once you submit your final edit, thus keeping the history pristine. Pressing the down key immediately after sending text goes to the entry after the one you last sent, rather then the begining of the list. Once you have entered the command history, it behaves normally. New in 1.1.2 Fix some bugs with AELF commands @sendnow @send and @senddirrect Changed settings page to use a tree rather than tab page system. Added customization for keypad and ansi colors. Change timestamp format to a consistant 24 hour format with minutes and seconds. Fix a bug when minimizing additional windows. Track selection point with respect to mouse cursor in a method which is more like other windows controls. New in 1.1.1 Added MCCP v2 support. Appears to even work. New in 1.1.0 Changed the new button in settings pages to remove entries if the user clicks cancel on the subpage. Changed filter and colorline triggers to be more reliable in their behaviour. Fixed exception if typing stuff with echo enabled and no connection up. Fixed error with filter trigger if an empty simplified match was provided. New in 1.0.9 Fix timestamps option to be more useful. Change the trigger/freeze buttons return focus to the text input area when you release the mouse button. Added an installer. New in 1.0.8 Removed licensing, decided to make DoNClient free. Did a little bit of work on the input text areas to add support for ctrl-left and ctrl-right to move word at a time. Also made it so that when you click, the cursor blinking is reset, so it doesnt look like you've clicked and the cursor has disappeared for half a second. Also extended the time before triggers are killed for taking to long, since when computer is under load some relatively simple triggers will time out. New in 1.0.7 Added characters option. For now what this lets you do is associate a trigger group with a character, so that on connection if you have more than one character it will present you with a selection. Which ever one you select, all characters will have their trigger group disabled, and then the selected character will have their trigger group enabled. Trigger/alias groups page is now capable off adding/removing without the tree collapsing back to the original. Always on top windows have been tweaked again, to be made even more reliable at not staying always on top when you change away from the program. Added the timestamps feature requested. It kind of adds more timestamps then you might want at the moment, but it works. New in 1.0.6 Extensive changes to AELF to support methods and properties and constructors and complex types and lots of stuff. Documentation will be updated ... not now. Also some reworking behind the scenes which means some FullDefinition/PartDefinition triggers are not backwards compatible. All other trigger types are backwards compatible just fine. Added variable monitors. For now bargraph is just var/var2 - no pretty picture. Added trigger groups. This allows you to more easily enable disable triggers/aliases enmasse. This feature is not complete yet, but it works well enough for the basics. New in 1.0.5 Added some more autocomplete options. FilteredHistory means you only see things which start with what you typed as you scroll through. Ignore Trailing Selection, this setting is pretty much needed if you want to use autocomplete effectively. Since on muds, shorter commands are more frequently used then longer ones, ignore trailing selection lets you send what you type, when the auto suggest is suggesting something longer. To actually send what the auto suggest suggests, press right arrow first. Changed the textbox over to a custom input box. This should result in cleaner operation in the long run. Added a Echo ColorLine Filter setting. You can place colors and styles in the colorline trigger format into this box, and they will get applied to all echoing which occurs. Thus if you want orange echos you put #{orange} in this box. Made home/end keys work in the custom textboxes. New in 1.0.4 Added an autocomplete option, will suggest things based on the previous 1000 command history entries as you type. Made it so you can double click on the split-bar in split scroll mode to automatically scroll back to the bottom. Changed most of the remove buttons to leave something selected after you remove a trigger/alias/button/shortcut. Changed new triggers to not have a type set, and force you to pick one in order to progress. New in 1.0.3 A couple of bug fixes which were in later releases of 1.0.2 already, was a crash when you tried to open a connection and it failed to open. Was a crash if you closed the about box before it had finished updating. New this version is a absolutely massive performance increase in the display area. Factor of 10 at least. Paging up and down no longer uses 100% cpu on my machine. I think I might be able to do better, but this will do for now. Also fixed a few cases where the screen wouldn't update. New in 1.0.2 The first version of a replacement texbox has been placed on the action field in triggers/aliases. It currently does most textboxy stuff, but is designed so I can do coloring and autoindenting and all kinds of fancy stuff. For now it does auto-indenting in part/full definition modes. It may be a bit buggy still, I've tried to give it a thorough workout, and theres still areas where the performance can improve. AELF syntax has been extended to allow @(bracketed expression) in the middle of outputlines. AELF has also had its design changed internally a bit to allow it to grow towards a very powerful trigger language. Changed the triggers/aliases forms so that they don't compile each trigger which is enabled when the form loads the first time, now only checks whether it compiles when you change the enabled status by hand. This results in much faster loading. Changed the about box to be asynchronous, it now loads instantly and retrieves the latest version in the background. Also added a couple of links to DoN web pages. Lots of small changes made to the display while implementing the editdisplay over the top, should have alot less bugs. Also much closer to being able to change the split. New in 1.0.1 If you have multiple triggers which all get compiled on the same line the total time can exceed 1 second, which was causing triggers to get disabled. Extended time if triggers have to be compiled. New in 1.0 Changed version number to be reported correctly in file properties. Added protection against trigger/aliases running in infinite loops and hanging the connection forever. It is still possible to get into a situation where your aliases cause infinite output to the mud, but the UI should still be responsive and you can disable triggers/close the client. New in 0.9.92 (1.0 RC3) Changed so when in 'leave text selected on input' mode, empty lines leave empty lines behind. Fixed some bugs related to connection handling not keeping track of connections properly, one aspect of this was that when you logged out of the mud when you tried to shutdown it would tell you you are still connected. Fixed a vast range of bugs with respect to having multiple windows. You can now have multiple floating windows open, plus the settings editors open at the same time and not experience bugs when switching from one application and back again. Fixed an issue where colors specified using the coFFFFFF notation wern't showing up as expected (They had been set to be transparent) New in 0.9.91 (1.0 RC2) Added pageup/pagedown scrolling. Fixed scrolling to scroll much more sensibly when split on scroll is selected. New in 0.9.90 (1.0 RC1) Added open buttons to windows where previously you had to double click to open. Added customizable buttons on the right hand side. Added the t option to #{1} so you can now do #{1t} to get a trimmed copy of the first wildcard. Trimmed means whitespace removed from each side. Also changed scroll bar during split screen so that page at a time doesnt miss 1/3rd of each page. New in 0.9.19 Added AELF - Advanced Elf-Like Format triggers. May look familiar to anyone who has used ELF, but is actually quite a bit different. Far superior to ELF triggers in my opinion :P. Added more Utils functions, primarily for AELF to use. Changed password hiding mechanism to be hidden text rather than using the standard windows password text box style, due to it causing some issues. New in 0.9.18 Added split screen scrolling on displays. The split is a fixed 2-1 ratio, will make this adjustable at some point in the future. Made it so that if you click on the splitter to adjust the height of the text input area, focus does not remain on the splitter after you have released the mouse button. New in 0.9.17 Bug fixes, changed trigger/alias architecture to significantly improve boot time when you have multiple triggers. New in 0.9.16 Bug fixes and internal cleanup and internal documentation. Mouswheel now works if focus is on lock display or enable triggers. Refactor aliases code to be a bit safer. New in 0.9.15 A few bug fixes, mostly in the new display code, Color red was showing up black for instance, selections wern't working correctly with respect to multiple colored lines. Also removed some legacy code which would have slightly impacted speed. New in 0.9.14 A few more tweaks in the performance department. Fixed so if you have floating windows and exit while connection open, you can see the close request. Corrected the handling of the Dark ansi code and correspondingly #{dark} New in 0.9.13 Telnet negotiation support, which allows the recognition of when the text area should change to password style. Also a couple of bug fixes in the stuff to avoid locking up the UI in aliases. New in 0.9.12 Added autoupgrade system. Check the about box when a newer version is released. New in 0.9.11 Changed version numbering in preparation for autoupdate. Changed Sending so that complex aliases don't hang the UI. (They do stop output from reaching the mud in a timely fashion of course.) Changed internals of the main display to be more efficent (potentially, if not just yet) and be ready for adding mxp/split screen. New in 0.9j Fixed a rare crashbug. Added ctrl-c to work on display when the display has focus. Changed defaults to match current voting on the defaults polls. New in 0.9i Fix bug introduced while changing aliases to exact match. Added an error message if the config file is locked while trying to save. New in 0.9h Added a warning if you try to close the window while you are still connected. Changed aliases to be an exact match, no implicit wildcard on the end. New in 0.9g Fixed bug with sending output to a dead connection. New in 0.9f Fixed bug with spellchecker not actually replacing text (i think) Fixed select/copy giving errors when selection of part of a line doesnt start from the begining of the line. New in 0.9e Dont let the timer go on activating the app over and over and over. New in 0.9d Fixed missing actions for the font/text color/background color buttons in the settings page. New in 0.9c Fix potential error dialog showing up on startup if timer goes off before settings are finished being loaded. New in 0.9b Fix erors if you try to send something while disconnected. Fixed down not respecting the new history selection setting. New in 0.9a Fixed bug where speed walking character was copied from the stack character when saving settings. Fixed a large number of cases of deadlocks and race conditions. There is one left that is known, but can only occur when a trigger invokes an alias which does something related to windows/displays. So ... don't do that for now. Fixed a bug where additional windows didnt have the right font color/wrapping style until after opening/closing a configuration window. Fixed a bug in copy/paste where wrapped lines copied with funny characters where the line wraps were. New in 0.9 Rearranged the settings dialog box as it was getting too many settings on the one screen. Added setting to control whether the text box is selected when you go back and forth between your history items, or whether the cursor is simply placed at the end of the text. Added setting to control whether when DoNClient is not the active application, all input causes its taskbar to flash. Added displays.MainForm.Flash(); to cause the taskbar flashing when run from a trigger. Added speed walking, speed walking character by default is '.', speedwalking can be turned off by setting the character to empty. Speedwalking uses the same syntax as trigger type path. Added import/export of individual triggers and aliases. Added selection and copy from displays. Fixed bug where w in path aliases was actually sending east. New in 0.8e Fix responsiveness in connection. New in 0.8d Fix focus not being set correctly. New in 0.8c Fix some more bugs relating to using windows in triggers. New in 0.8b Fixed some bugs related to minimizing/closing windows. New in 0.8a Fixed annoying issue where client would eat characters typed while enter was still slightly depressed. Added a flash on activity, may make this an option later. This causes the task bar entry to flash if the mud receives text while you are minimized or in another window. Changed additional windows to only hide when switching away from application, when using configuration windows they now just loose their always on top status. Fixed bug where error messages about triggers being disabled were swallowed. New in 0.8 Added the window trigger type, for very easy to use additional windows. The action can take any of the following 1 per line. Show Hide Start Stop Capture - sends the current line to the window if its shown CaptureIf Added an about box. Added a UI to edit persistant variables. Added window wrap mode, which wraps the screen at the size of the window if it is smaller than the current wrap size. Disabled close log if there is no open log. Added displays["name"].AddLine(string) function which puts newline characters on the end for you. Added state.UnsetVar(string name) which completely removes a perminant variable. New in 0.7e Added ability to go straight from other trigger types to part type rather than via full type. Added ColorLine type, which you just put the properties you wish to apply to the line, like #{lightblue}, and it colors the entire line that color if a match occurs. Added string Utils.NameToCode(string name) which converts a name into a style code. This allows you to write the same color and style names as in filter/colorline triggers in your own part/full definition triggers without having to know the code names. New in 0.7d Added part definition trigger type. This lets you just write the body of the function which gets run with a match occurs, which is more then enough for a wide range of triggers, without distracting you with the rest of the .net required using namespace function declaration stuff. New in 0.7c Fixed a bug with simplified match. Simplified match was not correctly requiring the start and end of line matched. This affects aliases, where this meant the alias could be anywhere in the string to trigger, rather than having to be at the start as it should. If you are Not using simplified matches you should be putting ^ at the start and $ at the end of each match string to indicate the start and end of the line. New in 0.7b Added licencing support. With a valid licence you can now specify a host other than DoN. New in 0.7a Added display lock and disable triggers checkboxes. Not really happy with their current location in the UI, they may move later. Fixed a bug where changing away from application and back didnt put focus on the main window if you have multiple windows. Added a high-speed 'matchall' for when you need a trigger which runs on everyline. Use simplified match and leave the match line blank to use it. Changed input area font to match display, looked really peculiary with the two fonts next to each other. Changed displays["display"].Add(string) function to replace existing line rather then always add a newline. The results in more expected behaviour, since any current partial line will be reprinted when it becomes a full line. Note, you will want to end your strings added to display with a newline character. New in 0.7 Changed UI font to Tahoma, which is more readable. Changed triggers action box to be in a fixed width font - courier new. Changed triggers action box to keep current indent on newline if in full definition mode. (Currently not very pretty, but it works). Added filtered matching, removes colors from input sent to the match check. Added case sensitive matching, which is good to use if you can. Added partial matching, lets you match on incomplete lines (like the prompt) as they arive. Note, unless you remove the input, you may match multiple times. Fixed bug where if your filtered string was equal to the received text, it wouldnt remove the partial lines which had been received just previously. Added persitant variables. state.GetVar and state.SetVar look just like GetTemp and SetTemp, but they save the variables into your configuration. They also check to ensure the type you are attempting to add is supported for saving. Current types supported for saving are string, int, double, int[], double[], List, List. Additional types will be considered on a case by case basis. Fixed bug with hiding floating windows with shorcuts and settings windows. Fixed bug where moving entries up and down in the triggers list didn't change which was selected to follow the move. Fixed bug where floating windows didn't have the DoN icon. They also use Tahoma font for window titles and tab titles. New in 0.6d Massive performance increases in opening/closing configuration windows. Small performance improvement with the display of incomming text. New in 0.6c Dialogs dont show up in taskbar now. New in 0.6b Fix bug where stop if matched causes unexpected behaviour if it is not set to eat the input. Made displays resistant to being given null lines to display. Fixed bug in clearing where next attempt to send text to a cleared display will sometimes crash. New in 0.6a Fix bug where if an alias attempted to send text via the displays.MainForm.Send() (which invokes aliases) would hang client. Hide floating windows while in dialogs, so they don't get in the way. Save maximised vs not so next start up does the same. New in 0.6 Shorcuts, let you cause a set of input to be typed using shortcut keys. Added a ClearDisplay function to the displays object - takes the name of the display. Added the ability to reference a much greater array of .net functionality. Added the ability to rename the DoNClient executable and still use triggers. A few bugs were fixed. New in 0.5f Fixed bug with font height in display area if font wasnt 10point. Fixed bug with letter positions being off marginally if sections were colorised. Fixed bug where an empty command could not be sent to the mud. New in 0.5e Added a large list of color names, with bg in front for background. If that is not enough then CoFFFFFF and bgCoFFFFFF will get you any specifiable color by giving the exact R G B components in 2 hexidecimal characters. Added a connection clock, which can be disabled if you wish. New in 0.5d Added dark/bright/bold/italics/underline/strikethrough to the options in filter/etc. Apply dark/light After choosing your color. New in 0.5c Added ability to disable command echo. Changed simplified match to not add implicitly have a * on the front if you have a * on the front yourself. This helps with whole line coloring. New in 0.5b Fixed splitter getting focus when program starts on main window. Fixed missing CONNETION OPENED/CONNETION CLOSED messages. Added error diagnosis when loading config. Added copy button to triggers page. Fixed filters so they didn't remove the last line if it was finished. Fixed display drawing to draw backgrounds then foregrounds, rather than both at the same time. This fixes backgrounds being drawn over the top of letters. Added support for ANSI italics/underscore/strikethrough/dark/light/ bold(instead of blink). Not available in filter type triggers yet. Fixed major issue saving config files which would affect people doing ANSI colors in full definition mode. New in 0.5a Fixed missing vertical scroll on compose window. Made main window a split so you can enlarge the size of the text entry area. New in 0.5 Fixed additional windows so they arent always always on top. Fixed additional windows so they dont show up in the task bar. Added compose window, with spell checker. Added temporary copy centre (until the main text display can be selected) Ability to change default foreground and background colors. Added word wrap. Actually fixed remembering window positions. Several bug fixes which I've forgotten already. New in 0.4b Fix aliases which were broken. Fix remembering window positions if user closes the window. New in 0.4a Fix sending trigger disabled due to runtime error message. Fix run delayed with invalid arguments crashing program. New in 0.4 Triggers can now create additional windows, which will have their screen positions remembered based on unique name. Added stop if match which is the default for aliases. Added numpad walking (can be disabled if you like typing numbers on numpad). Added timed callbacks to triggers. Fixed line wrapping to account for color codes. Fixed filtering.