2.14.1 * Added a "Crampled Paper" board pattern. * Added new piece sets from Maurizio Monge (http://linuz.sns.it/~monge/wiki/index.php/Chess_pieces). * Mac OS X: You can now quickly respond to the last person who sent you a tell by hitting the F8 key in the console. Previously, this didn't work on Mac OS X because the default key used for this (F9) is taken by Expose. * The "Actions" window is no longer resizable. * A bunch of minor UI adjustments to make Jin look better under Mac OS X (and, hopefully, not worse on other platforms). * Merged the "Move highlight" and "Move input" board preferences panels into one panel - "Moves". * Command-W on Mac OS X and Alt-W on other platforms will now close Jin windows in SDI mode. * Mac OS X: Some graphics were drawn badly, such as vector pieces, square highlight and arrow. All pretty (and antialiased) now. * Mac OS X: The keyboard shortcuts for moving through an examined game are now Command-Left (one ply backward), Command-Right (one ply forward), Command-Home (beginning of game) and Command-End (end of game). * Mac OS X: The keyboard shortcut for entering board fullscreen mode is now Command-Enter. * Replaced ugly board icons (game previous/next/start/end and fullscreen) with pretty icons taken from the Tango Desktop Project at http://tango.freedesktop.org/ * Unix/Linux: The default Look and Feel is now Metal, since GTK is still awful. * Mac OS X: Jin is now distributed as a compressed .dmg file (instead of a .dmg.gz). 2.14 * Fixed a bug which would reset the board to the initial position when a game played by the user became examined. * The "GameEnd" sound was not being played when a game played by the user became examined. * Most of the piece sets are now much better looking - they sport a border and a translucent shadow. * Removed the Cases piece set (the black rook is broken at some sizes) and added the Utrecht piece set. * Worked around a Java bug which caused Jin windows to be restored to a slightly smaller size than the saved size under Linux/KDE (and maybe other window managers). It's still isn't perfect, but better than nothing. * Fixed a problem with resizing Jin's windows in MDI mode. The problem was specific to Java 1.4. * Fixed the game logger not saving a game if the user has examine=1. See bug 1327781 for more information. * Got rid of the jregex library - now using java.util.regex. * Due to the above, Jin will now run only on Java 1.4 or later. * Jin is now almost fully internationalized. See http://www.jinchess.com/wiki/index.php/Localization for instructions on localizing (translating) Jin. * Added support for selecting the charset/encoding used for chat in the console. This allows chatting in languages other than English on ICC. * In an effort to make Jin prettier (and slower), did the following: - The default piece set is now "Alpha". - The default board on FICS is now Pale Wood (on ICC still Light Wood). - The default move display mode is to show pieces while they're being dragged. - In MDI mode, the windows will now show their contents while dragging and resizing, instead of showing the outline only. * Added new, useful variables like "win" and "userWhite" for the logging condition in the Game Logger. * Unix releases now come with a nice icon (icon.png) to use with a desktop shortcut. * Fixed a bug causing premoves not to work in Kriegspiel games (and make the board stuck). * In JinApplet, piece and board images will now load asynchronously. While they are being loaded, the plain color board and eboard piece set will be displayed. * FICS: Jin will now set autoflag to 1 (on login) the first time it is used with some account. 2.13.1 * ICC: Fixed a bug which caused text ending with a bell to not be displayed until the next line of text arrived. * Fixed a bug which caused the move highlighting style to revert to "none" after a restart of Jin, if you selected the "Target square only" mode. * Reverted to the normal method of playing audio, which is to avoid closing the audio data line after each played clip (closing it every time caused problems under some OS X and Windows systems). This will cause Jin to hog the audio device on some Linux systems. You can use the non-hogging version by setting the environment variable $JAVA_OPTS to: -Dfree.util.audio.player=free.util.audio.NonBlockingJavaxSampledAudioPlayer * Page up and page down in the console will now scroll about 2 lines less than the visible height to make it easier to follow the text when scrolling page up/down. * ICC: Removed the hack to get specially formatted finger notes on ICC to wrap properly because the server does it by itself now (02.06.2005). * When creating a new internal frame in MDI mode, Jin will now force at least a small portion of it to be visible (to avoid various situations where a window becomes unreachable). * When a JinApplet user changes his password during a session, the password remembered by the applet (for preferences upload purposes) becomes invalid. When the user would end the session, he would get a "wrong password" error. This is now fixed by displaying a dialog allowing the user to enter his new password. * Fixed mexamine - Jin didn't "react" to the user being mexamined in a game (didn't allow moving pieces, didn't add playback controls). * In MDI mode, the seek graph can no longer be resized smaller than the smallest size at which it looks ok. * Significantly improved board painting performance. * Fixed a performance issue with the console - it should no longer paint much more slowly when containing a lot of text. * FICS: Questions asked in channel 1 via the "Ask a Question..." dialog will now include the name and version of the interface. * Fixed fullscreen board mode - it was causing Jin to freeze when either the resign confirmation dialog or promotion piece selection dialogs were displayed. Fullscreen board mode, however, is no longer available under Java versions earlier than 1.4. 2.13 * Again, fiddled with sound under Linux. There should now no longer be delay between dropping a piece and the piece-move sound. On the other hand, you will not get sound from Jin while audio device is taken. On the yet another hand Jin will release the audio device when not using it. * The origin square is now highlighted too in "Highlight target square" move visualization mode. * The format of piece sets and board patterns (the way they are packaged in the zip/jar file) has changed. See http://www.jinchess.com/docs/customart/ and the piece set/board pattern specific pages for more information. * Jin can now run as an applet - see the websites of the relevant chess servers. * Changed the Event field in logged PGN files to "(un)rated [category] game". * Changed the default color of links to be a bit brighter. * Added a new mechanism for extending Jin: Actions. An Action is smaller than a plugin, and is easier to implement. It implements a single operation, which is made available to plugins, and which they can use. Also, implemented an Actions plugin, which lets the user run the available Actions from either a menu or with buttons appearing in a window. * Implemented 3 Actions: - Get Server Help: Shows server related help. - Ask a Question: Lets the user type in a question, which is then sent to the server help channel. - Find an Opponent: Lets the user select seek options and issue a seek. * Rewrote the entire startup mechanism, mainly to avoid some code duplication. * Fixed a bug which prevented the board from painting at all in Kriegspiel. * Fixed a bug which prevented an error message from being displayed in case connecting to the ICC failed. See bug 1049036 for more details. * The chess board options "Piece follows mouse cursor" and "Highlight the squares of the move currently being made" are now separate, so that you can choose either, both or none. Previously you were only able to select either one or the other. * Moved the Look and Feel selection to a dialog invoked from the Preferences menu instead of having a whole menu just for Look and Feel selection. * Jin no longer sets the server bell variable to 0 on ICC. * The login dialog will now allow you to switch between the supported servers, existing (remembered) accounts or create a new account. This is crucial for the upcoming SDI mode, where there is no other way to achieve these options. * Disbanded the console menu - the "clear console" menu item is now a button to the right of the console's input field and the preferences are in their own (new) tab under Preferences->Main Console. * Removed the option to create or run user invoked scripts until a better way to use them is written. * Setting sound on/off is now done from the Preferences menu. * Added a "Windows" menu which allows showing/hiding certain windows (like the sought graph and the actions window) and also lists currently open windows. * Implemented SDI (Single Document Interface) mode! YAY! The windowing mode can be selected from Preferences->User Interface. The default is SDI on Mac OS and MDI on all other platforms. * Fixed the "weird looking queen" bug which sometimes ocurred when you promoted a piece while using any of the vector piece sets. See bug 1073175 for more details. * The default release now comes with all the extra piece sets. 2.12.1 * Fixed a bug in the main console preferences dialog which prevented users from changing (almost) any of the settings there. * Vastly improved piece loading time and memory usage by not preloading all the images of the piece set; duh. * On OS X version 10.2 Jin will use the inside-the-window menubar due to bugs in the native OS X menubar with Java. * Added the JGoodies Looks: Windows, Plastic, Plastic 3D and Plastic XP. * Fixed a bug which may have caused problems if more than 5 people sent you a tell during a single session. * Fixed a bug on OS X where if you closed Jin with the main window maximized, the next time you ran it, the main window would not show at all. * The clock's text is now drawn in gray on "inactive" boards (either the game has finished or you are looking at an isolated position from some game). * Added a "Download Extras" button on the board preferences panel (the "Board Looks" tab) which currently sends the user's browser to http://www.jinchess.com/extras/ * Jin's output and error streams are now written into ~/.jin/log in addition to stdout and stderr. * Made the size of the font for the board buttons a bit smaller. * Updated the arrows-circles script example on the website to work with Jin 2.12.1 * ICC: Implemented proper response to the unarrow and uncircle commands on ICC. Also, (right) dragging another arrow where one already exists or (right) clicking where a circle already exists will now remove the arrow or circle (and send the corresponding unarrow/uncircle command to the server). * Trying to capture your own piece in standard chess will now be rejected immediately, instead of sending to the server. * ICC: Fixed a bug where your clock would not resume ticking if you tried to make an illegal move. * Move legality checking (which is still incomplete) is now applied to regular moves too (in addition to premoves). * The "Moving in Advance" section on the move input panel for board preferences will no longer be disabled during games (this was broken anyway). Instead, it will give an error if you try to modify its settings while playing a game. 2.12 * Jin now allows the user to add custom piece sets and board patterns. The specific details are documented at http://www.jinchess.com/docs/customart/. * ICC: Implemented a hack to get specially formatted out text like in "finger Live" on ICC to display properly. * ICC: Both framed and embedded game lists display styles were fairly broken - now fixed. * Fixed the console preferences dialog taking forever to display. * Fixed focus problems in the console under JDK 1.4 and later. * Implemented square coordinates for the board, in 3 styles: "On the Rim" (like xboard), "Outside the Board" and "In Every Square". You can also change the text color of the coordinates. * The clock now has three modes: 1. With more than 20 minutes, the clock displays "hours:minutes". 2. With less than 20 minutes but more than 10 seconds displays "minutes.seconds" 3. With less than 10 seconds displays "00.seconds.tenths" * FICS: Now parsing out bughouse holdings lines like game 175 white [NNBQ] black [PPNBQ] instead of dumping them to the console. * Added alt+(RIGHT,LEFT,HOME,END) shortcuts to move through an examined game. * Added mnemonics to the Abort, Adjourn, Draw and Resign buttons on a played board panel. * Added two new buttons to the board panel - "Takeback" and "Takeback 2". The "2" changes to the appropriate number if you offer or are offered a takeback with a different amount of plies. * All the offer buttons on a played game board panel now become disabled once you make the offer. * The console input text field now uses a monospaced font. * Somewhat improved sound under Linux although it's still very fragile and doesn't always work. * Fixed sluggishness in the sought graph. * The size of move highlighting (arrows, circles) is now proportional to the size of the board. * Added a move highlighting mode where only the target square is highlighted. * The arrow in arrow move highlighting mode is now a bit shorter so that the target piece isn't obscured by it. * Wrote a completely new board preferences selection GUI, available under Preferences->Chess Board. Removed the old, menu based, one. * Added several new board patterns. * Fixed a bug causing things to break if a game was started when the board was already in fullscreen mode (for example by matching someone or seeking a game, then starting an examine board before the game started). * Added a context menu (right-click popup) for the console text field with cut, copy and paste menu items. * Added a hack which halts the console (no text is added) during the time the user is making a move on the board. This is done to prevent jerkiness when dragging a piece on the board. * On login, the title of Jin's main frame now changes to reflect the username and server with which the user logged in. * The promotion piece selection dialog is now displayed near the mouse cursor, with the default promotion piece (queen, usually) appearing right under the mouse cursor, so that it can be selected quickly. * Removed the 3D look and feel and added the Liquid look and feel. Removed all extra look and feels from the OS X version. * Fixed a bug where scrolling to some position in the middle of an examined game and then using forward/backward broke the position scrollbar - it would stop changing the current position. 2.11b * Added audio notification for draw, abort, adjourn and takeback offers. * Added visual notification for draw, abort and adjourn offers by setting a green border around the appropriate button on the board. * Now setting the movecase var on by xivarmy's request. It shouldn't change anything currently, but might even be required in the future (for example to unambiguate pgn uploads). * FICS: Added parsing and coloring of tourney tells. Tourney tells are qtells that look like this: :AlexTheGreat(T9): Hello World! * FICS: wname and bname will now work properly. * FICS: The radio button setting the sending mode to premove is now disabled when the user is playing a game. * Fixed a bug causing an en-passant premove to be recognized as such one move after it was made. * Implemented very primitive legality checking for premoves. It currently only checks if the piece with which you're trying to move still exists (hasn't been taken yet). If the move is illegal, it won't be sent to the server at all, to save time. * Implemented fullscreen mode for the board. You can enter/exit the mode with a new button on the board panel, or by pressing alt+enter when the board is selected. * Added the Metouia look and feel (works only if you're running Java 2). * Reimplemented all of the startup and plugin management framework. Plugins can now be added simply by dropping them into the appropriate directory. A lot of code has changed with very few visible changes to the user, but quite a few bugs were probably introduced by this change. * Jin will now try to connect on additional ports if the default port doesn't work (useful for people who are behind a firewall that blocks the regular chess server port(s) but allows connections on port 23). 2.1u1 (applies to all nonstable releases starting with 2.11 as well) * Fixed a bug causing the scripter to fail to run game event scripts for games not played by the user. * Fixed the scripter not setting the type of the player variable properly when creating in a "Clock Update" script (the type was Player instead of a String). * Fixed kibitzes/whispers from unrated players which appeared like this: GuestMZLW(U)(-1)[52] kibitzes: foo * Fixed a bug which caused the board window to break (display wrong title, become unclosable and other problems) if a minimized board window was being reused as a new game started. * Fixed a bug which (sometimes) caused the board to break if you were giving a simul and attempted to make an illegal move. * Fixed a bug causing the board to break if you made several moves in bsetup mode and then set the position with "bsetup fen ...". * Fixed a bug causing the seek graph plugin to fail the next time if you closed it when it was maximized. * Fixed a bug causing a board to become blank and unclosable if you closed it when it was maximized. 2.1 * Worked around the server timeseal problem where premoved moves would take more than minmove time (usually 0.1s). * The internal windows will now defend themselves against users doing stupid/hostile things to them, such as making them larger than the main window or moving them out of the screen. 2.07rc4 * FICS: Changed the default piece set to the eboard vector pieces - they paint faster than the xboard pieces. * Changed the default move sending mode to "predrag", since the previous default, "legal chess" seems confusing (you can't start dragging your piece when it's not your turn). * FICS: bsetup mode seemed to be completely broken - fixed now. * FischerRandom and other variants with nonstandard castling rules were broken. They are now fixed, and as long as the castling move isn't ambiguous, you can make it on the board instead of typing it in. Thanks to xivarmy for noticing the bug and assisting with testing the fix. 2.07rc3: * Fixed a bug causing the seek graph plugin to fail starting the next time if you closed a session when the seek graph was minimized (iconified). * Fixed a bug which broke auto-scroll sometimes if you minimized the console. * FICS: Added Atomic support. * Observing a game of an unsupported variant should no longer cause a board to be displayed when a move is made. * Choosing a new move highlighting color for the board didn't properly change/save it. 2.07rc2: * FICS: Fixed a bug which prevented users from resuming adjourned games. * Kriegspiel support was broken - fixed now. * Fixed blanking/special commands - hitting shift+enter on the console "commandline" will now hide your command and not add it to history, ctrl+enter issues "special" (interface) commands, such as "cls". * Changed the internal window resize/drag mode to "outline" (where only the outline of the resized/dragged window is shown), now that Sun have fixed the bug that caused slow XORed drawing in JDK 1.4.2. If you're bothered by this problem, download the latest Java version from http://java.sun.com/j2se/downloads.html 2.07rc1: * Worked around a server bug causing "ghost" seeks (seeks that are shown after they've actually been removed). * Fixed a bug which would sometimes cause the wrong clock to be "highlighted" on the board. * Fixed a bug which caused the seek graph plugin to fail to start on some systems. * Hopefully finally nailed the premove bug (which was completely unrelated to the premove code). The problem was that sometimes commands would not be sent to the server due to synchronization issues in timeseal, so this might have fixed a lot of other bugs. This bug couldn't have been fixed without the generous help of Alexandre Smadja - many thanks to him. * Added keybindings so that ctrl+tab, ctrl+backquote (the key above the tab key on most keyboards) and ctrl+F6 switch to next internal frame. Holding down shift when using the above keybindings will switch to the previous internal frame instead. * Fixed a bug which caused the board to lock if you made a move, then quickly made a premove and hit ESCAPE before the first move got echoed to you. * Only left clicking a console "link" will activate it now (right and middle clicking disabled). * Right clicking (or double left-clicking) in the console was awfully slow the first time (especially under Linux). This is now fixed. * Fixed triple clicking in the console under MS VM (triple clicking selects the whole line, or several lines if the original line is wrapped). * Fixed the console flashing when it's being resized. It used to momentarily show the text at its very top (the server's ASCII logo, usually). * The Game Logger will now log ratings too. * FICS: Qtells are now parsed too. They are also available as Chat Event subtype in the scripter. * There are now 3 move sending modes: - Legal Chess: You can't touch or move pieces when it's not your move. - Predrag: You are allowed to make moves when it's not your turn to move, but they are sent to the server immediately after you drop the piece. - Premove: A move made when it isn't your turn is saved and is sent when it becomes your turn to move. The premove variable on FICS is set to 1 in premove mode and to 0 otherwise. * Added credits for Denis DesLauriers, who designed the Jin logo in Help->Licensing and Copyrights... * FICS: The move number in the move list will now be correct even if Jin doesn't have the entire move list. This only applies to FICS - on ICC Jin always has the complete move list. * Playing a simul now works. * FICS: Now doing "iset nohighlight 1" on login. This is needed to work properly on accounts with highlight set to 1. * Fixed a bug where sometimes closing an internal frame didn't cause a different one to pick up the focus. * Shift+Insert will now paste into the console's textfield as well. * Seems like most wilds didn't work due to a typo in Jin's code. * Command-C, Command-V and Command-X now work on Macs for all Look and Feels. * Fixed the bug that made the console break (background becomes gray and the text becomes garbled) when it became taller than 32767 pixels under Windows 95, Windows 98 and Solaris with Java 1.1. * Fixed a bug causing the link to be run if you right clicked the console and then clicked on one of the items in the popup while the mouse was directly over a link. 2.07b2: * Fixed a bug where flipping the board would only make the board itself flip, not the nicknames or clocks. * Fixed a bug where the password wouldn't be sent to the server unless you chose the "Save Password" option. * Fixed the sought games graph so that it doesn't respond to right clicks. * The cursor will now change to "hand cursor" when over a seek in the sought games graph. * Most of the "examine foo bar" forms are now "linked" as well. * Guest preferences are now *properly* saved and the login dialog uses those preferences properly. * The overhead of running BeanShell scripts has been significantly reduced. * Jin will now properly handle and report login errors. * Fixed a datagram setting problem which (for example) caused seeks not to be shown if you made the sought games graph visible while Jin was logging in to the server. * The primary game is now set to the game of the most recent active board frame. * The move list for examined games on FICS is now also displayed, as far as is possible with the information sent by the server. * The click'n'click move input style was broken under all Java versions except Microsoft VM. * Hitting ESCAPE while dragging/moving a piece now cancels the drag/move and puts the piece to its original square. * Hitting ESCAPE after making a "pre"-move will now cancel it and bring the moved piece back to its original square. * The piece of the queued (premove) move is now shaded (a little grayed out) until the move is sent to the server. * Significantly reduced the time it takes the board to display when you start playing or observing a game. * Removed the custom board image caching. This should speed up board painting on Java 1.2 and later versions. * Fixed a bug which caused the board to break (specifically, the move list became out-of-date, but could've caused other problems as well) if the board changed drastically during a game, for example by using the "loadfen" command. * Fixed a bug where selecting a script type (in the script type selector dialog) and then closing the dialog with the 'X' button would do the same thing as if you selected the script type and hit "Next". * Added a "Server's Website" button on the server choice dialog. The button displays the website of the currently selected server in a browser window. * Fixed the syncing between moves and move sounds. Note: this works on my (Windows 2000) system but might still be broken under Windows 98. At least now Jin doesn't itself contribute to the delay. * Fixed a bug which would sometime make the board disabled during an examined game (it wouldn't allow making any moves). 2.07b: * Fixed a bug which caused a thread to be leaked for each FICS connection. This might have caused a significant memory leak if you kept connecting and disconnecting from the server. * There is now a "Close Connection" menu item on the "Connection" menu. * Fixed a small bug causing the console textfield not to get focus immediately when the console internal frame gets selected (you had to click it again) under J2SE 1.4. * Fixed a small bug causing the selected image to be used for the background even if you pressed the "Cancel" button on the image file chooser dialog (in Preferences->Background->Pick Image). * On FICS, the annoying messages telling you what variables and ivariables Jin sets on logon will no longer be showed. * Fixed a problem which caused arrows/circles to appear on all open boards when they were added to one of them (on ICC). * Right clicking (or whatever your popup trigger is) on non selected text will now move the selection to the clicked word and then show the popup. Previously, if some text was already selected, the selection would stay until you unselected it. * Fixed a bug which caused the board to become corrupted if moves were made on it while it was obscured by some other component. * Fixed a bug which caused the empty area of a multiline link to be clickable. For example, "help intro" can span over two lines if the line ends before the word "intro" can be fit. The bug would then cause the area between the word "help" and the end of the line to be clickable. * Fixed a bug which caused the queued (premoved) move to be sent when the server echoed our own last move, instead of the opponent's move. This happened if you tried to premove before the server echoed your last move to you. * Implemented a game logging plugin. You can now have Jin log your games in PGN format. You can also specify rules which will tell Jin which games should be logged into which files (and which games shouldn't be logged). * The dragging mode for internal frames is now "live" and not "outline" to work around the Sun's JDK1.4 bug which causes the outline to be drawn very slowly. * Potentially expensive antialiasing and dithering rendering hints are no longer disabled for OS X. * Added the option to enable/disable text antialiasing for the console. * Fixed a bug which would make Jin not recognize the next move after a castling in Fischer Random. * Most of the FICS wild variants are now supported, except for Bughouse and Crazyhouse. * Fixed the problem that caused many move sounds to be played when you started observing an ongoing game or forwarded. * Removed the "Open Connection" menu item under the "Connection" menu since it didn't make sense and wasn't very useful anyway. * Pressing Page Up or Page Down in the console will now scroll the text as expected. To scroll a single line, use Ctrl+PageUp or Ctrl+PageDown. To scroll to the beginning or the end of the console, use Ctrl+Home and Ctrl+End respectively. * Fixed a lock-up on-login problem on some Linux distros. See https://sourceforge.net/tracker/index.php?func=detail&aid=670523&group_id=5038 6&atid=459537 for details. * Fixed a bug which caused the board to break if you started observing a game and then a takeback would occur which took back more moves than you received while observing the game (Reported by PCM at FICS). * Fixed a bug where the player making a move was determined by the current player of the board instead of the color of the piece - I don't know of any specific problems it caused but it certainly could create a lot of them. * Implemented a scripter plugin which allows writing small scripts that are run when a specified event occurs (such as a game start/end, tells etc.) * Untimed games on FICS are now supported. * Changed the login and disconnect sounds. * Added support for properly laying out the board panel even when its width is smaller than its height. * Guest's preferences are now saved as well. 2.06b: * Fixed a bug where unused boards didn't change the board or piece style when you changed those from the board menu. * Fixed a bug where when the clock went negative, starting the clock would throw an IllegalArgumentException since when setting the initial delay of the Timer to time%delay, I forgot to check whether time is positive. * Disabled swing double buffering for Mac OS X, since it does it by itself. * Explicitly disabled all the expensive Java2D rendering hints (only under Java 2). * Fixed a bug which caused NPEs to be thrown in the paintComponent() method of the board causing Jin to stop repainting normally and generally break. The problem would manifest itself if you tried to make an illegal move, then immediately picked up the piece again and waited for the server to tell you it was illegal. Since now the piece that was being dragged is gone, the board would get confused. * Fixed a bug which made copying from the console when "copy-on-select" is disabled impossible. The focus was being transferred to the input text field too soon. * Fixed a bug where the move list on the board window would display black moves in the white column and vice versa if the first move was made by black (by using "tomove black" for example). * Fixed the login dialog so that the widths of the username and password fields are the same under all look and feels. * The keystroke used to traverse the teller ring in reverse order is now shift+F9 instead of alt+F9. * The label describing the game will now display the rating category if the wild variant is w0. Otherwise, it will display the wild variant name. * Fixed a bug where bad things could happen if the user attempted to enter illegal moves manually. * Fixed some inefficiencies in the board (re)painting. * Added a label to the board preferences panel warning about the fact that the color preferences only affect vector pieces and the solid board. * When you create a new user, the wording of the question asking you whether you want to keep it is now "Would you like to save your "username" profile?". It was "Would you like to create a new user named "username"?" before. * Fixed a bug which caused embedded and framed lists to be a little too small, making the list completely invisible if it was of length 1. The bug and fix are described at https://sourceforge.net/tracker/index.php?fun c=detail&aid=602496&group_id=50386&atid=459537. * If the currently displayed position is not the last position in a game and a new move is made, the displayed position will no longer jump to the latest position. The bug/feature request is described at https://sourceforge.net/trac ker/index.php?func=detail&aid=609686&group_id=50386&atid=459537. * Fixed a small bug which made it sometimes impossible to go to the current (last) position in a game by dragging the position scrollbar to its rightmost position. * Right clicking inside the console when there is no selection will now select the word under the mouse cursor and then display an appropriate popup. * Fixed a bug which caused the "Auto Queen" check box menu item not to be selected on startup even if you previously selected it. Note that the option itself would still be on, but the check box wouldn't reflect it. * Fixed a bug where BoardPanel.positionChanged(PositionChangedEvent) didn't check that the event it got is for its game (as opposed to some other game). This caused a bug where if you observed a game that had changed drastically (with the "loadfen" command, for example), all the other boards would get that same position. The bug was reported at https://sourceforge.net/tracker/?func=d etail&atid=459537&aid=630511&group_id=50386. * When closing the game window, you will no longer get asked for a confirmation for observed games. For your games, the question is now worded better (making it clear that for played games, clicking "yes" resigns the game). * Jin now supports FICS - the Free Internet Chess Server at http://www.freechess.org. 2.05b: * Jin now implements "smart" history. If you type a string and hit up/down, only history items starting with the typed string will be traversed. * F9 now traverses between the last n people who told something to the user (n is 5 by default). So now if you hit F9 a second time, your command line will be set to tell to the 2nd last person who told you something. * The main console used to jump to weird locations in the text when you resized it. This is now fixed - it continues to show the same location. The anchor is the last visible character before the resize operation. * Jin now uses a different regular expressions library, http://jregex.sourceforge.net/ published under the BSD license. The one Jin used before (http://www.javaregex.com/) was proprietary at the time of the switch, although it is now LGPL, thanks to the responsiveness of the author to my request. * Dragging pieces should be somewhat smoother now, especially in the case where the board obscures the console, when the latter keeps being repainted because text is added to it. The change is to force painting after each mouse event. * Changed the text in the "Auto Promote" menu item to "Auto Queen". * Fixed a bug where the result explanation string in all the game lists (history, liblist, etc.) would show up wrong if black won (or it was black's action that ended the game). * Previously if a sound were to be played before an already playing sound finished playing, the 2nd play request would be dropped. This caused problems when two sounds are supposed to be played very close to each other, such as in the case of an illegal move (move sound and then illegal move sound) or a checkmate (move and then a game-end sound). This has now been fixed by queueing up to two sounds before starting to drop play requests. * Jin now makes a fitebell sound when a game starts. * Jin now supports chessclub.com arrows and circles on the board. * Jin now has a user interface to select the main frame's background color, image and image layout style (center, tile or stretch). * Replaced the coffee cup frame icons in the console, board and seek graph internal frames with pretty, meaningful icons. * Fixed a bug: when you closed the seek graph, it wouldn't remove all the seeks. But since when you reopen it, you get all the seeks again, you would get duplicate seeks. * DG_QTELL and DG_CHANNEL_QTELL were disabled and not handled for some reason. They are now enabled and handled properly. The visible effect is that channel qtells will now start with the channel number, for example "46>Tomato whitewasp(2326) v DavidBarnsley(1859) 1-0" and personal qtells will start with ":", for example ":Tomato 'jinclient' doesn't match any players". * Jin will no longer ask you whether you want to save your settings when you close the connection. I think it was useless in the first place. * Added a panel which allows modifying the main console's settings, such as fonts and colors for the various text types. * Jin will now try to include the Kunststoff and 3D look and feels in the look and feel menu, if it finds them (and it will, since I will create downloads with them included). * Added a panel which allows modifying the board's settings, such as the colors of the pieces and the board. * Removed the useless "Save settings" button from the chessclub.com connection dialog. * Added the xboard piece set. * Added all the non 3D piece sets from blitzin (bookup, dyche1, dyche2, dyche3), with permission from Daniel Sleator (Darooha). * Added 4 boards, wooden2 and marble from blitzin and two more (a wooden one and a slate one) I've made myself. * Worked around the IBM JDK 1.3.1 bug, so now Jin will work under it as well. * Jin will now produce sounds when "friends" (on your notify list) log on and off the server. * Added a background image and pretty seek images for the sought graph. Yay, I can now actually look at it without disqust. The graph, however, is no longer resizeable. * The zero rating will no longer be showed on examine boards. * The clock on the board used to continue running even after you unobserved/unexamined a game - no more. * Jin no longer asks new users where to save their settings file. * Added a "Clear Console" menu item to the console menu. * Added a "Help" menu with 3 items - "Jin Website", "Licensing and Copyright", and "About". * The plugin menus no longer sit inside a "Plugins" menu, they now reside directly on the menubar. * Jin will now use the metal look and feel by default instead of the system look and feel. * Added a JDK1_2AudioPlayer, which uses the 1.2 Applet.newAudioClip(URL) API to play audio clips. This should solve various sound problems on newer JDKs. * Fixed a bug where I forgot to call super.processFocusEvent(FocusEvent) from JinFrame.processFocusEvent(FocusEvent) this might have caused many problems, including the console locking bug. 2.04b: * If there was more than one "clickable" item in a single message (tell, channel tell etc.), when clicking on any of them, the command that was executed was always the command of the first item. This problem didn't exist for clickable URLs or emails, only things like "finger AlexTheGreat". * Fixed the email address detecting regular expression to exclude trailing commas and periods. * Fixed a bug which caused the first character you type to be ignored if the output area has the focus under JDK 1.4. * Modified the readme file for the unix installation to list more JRE downloads and to better explain the difference between JRE 1.1.x and later ones. * Jin no longer throws NullPointerExceptions if you try to play/observe/examine an unsupported wild variant. You will instead receive a message in the console informing you that your version of Jin doesn't support the wild variant. * Fixed a small bug which caused part of the piece not to be drawn if you pressed (without moving) in the top or left half of a square with a piece (which you can move). * Fixed the datagram parser to handle datagrams containing strings with curly braces properly. The last fix (in 2.03) broke it for strings like "a {b} a". * Implemented most of the chess variants supported by chessclub.com, except Bughouse, Crazyhouse and Shatranj. * The various internal frames (console, seek graph, board) will now revert to their default location when a new connection is started if they don't fit into the main frame. This can happen either if the user moves them out of the screen himself or if the resolution of the screen is lowered. * Fixed a bug which caused wild seeks on the sought graph to appear as regular ones. They now properly appear in red. * Fixed starting up maximized internal frames. The effect of the bug was that if the board internal frame(s) was saved as "maximized", creating it would throw an exception and it would not come up. In the case of the main frame and the seek graph frame, it did come up but then restoring it to normal state made it dissapear. I believe this was the effect people saw in the "the board doesn't come up" bug (needs verification). * Fixed starting up minimized internal frames. The effect of the bug was that if a frame was saved as "minimized" and then created again trying to restore it to normal state, would cause it to dissapear. Note that the current behaviour is still not perfect in the sense that the location of the minimized internal frame is not always restored correctly. * Fixed the method that compares User objects for equality. It would previously throw a NullPointerException if you tried to compare a guest (null username) with some other User objects. At least one way in which this bug was visible was that if you had at least one "saved" account and then logged on as a guest via Connection->New Connection->Connect as guest, Jin would not close after that (The closing connection method would fail with a NPE and then the exiting method would try closing it again, obviously failing to stop already stopped plugins). * Fixed a bug which caused Jin to think you were logged in as the user suggested in the login dialog (the one whose username appears in the text field on startup or if you choose Connection->[username]) even if you pressed the "Connect as guest" button. You would still login as guest, but inherit all the settings of that user and if you modified them, Jin would ask you whether you wanted to save them. * Jin no longer prints an exception on a normal (user invoked) disconnection. * Fixed a very bad bug in the timestamping handshake. It used to read a packet up to 16 bytes instead of exactly 16 bytes. This fails when the 16 byte packet sent by the server gets broken on the way. Although this is quite unlikely to happen, it's a serious bug nonetheless. * Made Jin more unix friendly. It no longer requires to be run when the current directory is the Jin directory. It also writes all user settings files under the user home directory instead of into the current directory. * SoundManager now has a menu item to allow enabling/disabling sound. * Fixed a bug where the connection was marked as connected only after the reader thread was started. If the reader thread started too quickly it would see that the connection is not connected and quietly die. * The title of the board frame and the label describing the game on the game panel (the one just below the opponent's clock) will now display the name of the wild variant instead of the rating type which the game affects. * The console will now display tooltips for non obvious links (such as the ones displayed on the output of a 'tell tomato games' command). * The first time Jin starts, it will no longer size itself to take the entire screen, but 3/4 of it instead, centered. * On Linux, Jin now tries to use the BROWSER environment variable to determine which executable to use to run the user's default browser. If you don't have this set properly, Jin will not be able to open URLs when you click them. Type "man 5 environ" for information about these environment variables. Likewise, Jin will try to use the value of the MAILER environment variable to determine which mailer to run when you click an email address in Jin. 2.03_1b: * Email addresses are now also links, which under Windows open the default mailer when clicked and under unix/MacOS try to use the netscape mailer. * The new datagram parser code was broken in Sun's JDK 1.3 because they fixed a bug in StringTokenizer which made it backwards incompatible. I have now modified the datagram parser code not to rely on the bug or the fix. See http://developer.java.sun.com/developer/bugParade/bugs/4338282.html for details on the bug. * Fixed a bug where if someone "mexamined" a Jin user, Jin would not recognize that the user is now in examine mode. 2.03b: * Implemented a "target drag style", where no piece is shown during a piece move/drag, instead the cursor changes to "crosshair" and a blue rectangle surrounds the square over which the mouse cursor is. * Added "history", "liblist" and "stored" commands to the console popup menu. * Removed "finger -c" from the console popup menu. * Added the value of the system property "os.version" to the interface var. * Reimplemented timestamping to be more readable and more importantly, solved the TCP_NODELAY issue, making Jin's timestamping work even faster than blitzin. You can expect 'ping' responses to be as fast as in blitzin and maybe even slightly faster. * If you try to observe/examine/play a game of a wild variant not supported by Jin, you will now get a message informing you of that. Previously, Jin silently ignored it. * Changed the "info" style (the red bold italic text saying "Trying to connect to chessclub.com on port 5000..." at the beginning of a session) not to be italic because it breaks (making ALL the text italic) when you try to use some weird font like FixedsysTTF. * Added an "exit" menu item under the "Connection" menu. * Reimplemented the datagram parser to be more robust - it used to break on weird datagrams like DG_DUMMY_RESPONSE or if the server put in extra spaces between datagram arguments. * Added support for multiple piece sets, and added the "eboard" piece set. * Popups should now work on MacOS too, where you only have one mouse button and the popup trigger is not right-click. * Changed the format of how you specify popup commands in /plugins/ChessclubConsoleManager.plugin * Fixed a bug where if you spositioned a game in which no moves were made, Jin would display it as an observed game. * Fixed a bug where you could get the console popup to display partially out of the screen if you right-clicked at the bottom of the console when the console was scrolled up at least the size of the popup. * Implemented game lists embedded in the text console. 2.02b: * Fixed a bug which caused Jin whenever you logged off as a guest to ask you whether you want to save the settings under "null". * Added a button in the picture frame (for ICC) which opens the browser on the page where you can upload your picture. * Changed the url recognizing regular expression which determines the strings that are considered a URL link to recognize "www..." and "https://" links too. * Added "observe" and "follow" to the console popup. * Changed the url recognizing regular expression to stop at the following characters too: <>" * The "Join ICC" button on the login dialog now sends you to http://www.chessclub.com/from/AlexTheGreat instead of logging on with the handle "register". * Fixed a bug where if you changed a setting from within Jin and then chose not to save it, Jin would continue to bug you about saving it every time you closed a connection until you restarted Jin. * Added menu check boxes (and a user property) to control the move input style (drag'n'drop or click'n'click). * Implemented "Auto Promote" - promotes to the default promotion piece (queen usually) without prompting the user (Equivalent to "Auto Queen" in blitzin). * In some builds of MS JVM, adding to a BorderLayout without specifying a constraint, causes the layout not to work. Added specifying a constraint explicitly throughout the code. * Implemented a workaround for a very weird bug where Jikes would create invalid bytecode (and MS VM would crash on it, instead of throwing a VerifierError, like Sun's VM). * a1, the square, was light, sigh. * The board that appears on "spos" now correctly considers the game "ended" once all the moves have been made. processSendMoves fires a GameEndEvent if the game is of type ISOLATED_BOARD and numMovesToFollow is 0. * The board no longer breaks when in drag'n'drop mode you try to drag an empty square into a piece. * Jin used to show "Examining " in the title of the board frame if you observed an examined game - fixed.