3. Maybe EIRC class needs to be splited in front and back-end. I've gotten "Martyr", which is an IRC protocol implementation in Java; I'll give it a try.
4. Thoroughly comment the source using JavaDoc specs.
18. Support for rc file which would be run instead of method EIRC.pos_login().
21. A palette of text attributes should be accessible to the user. (Suggested by Marc Packenius). (Depends on #27.)
22. Nickname completion (on tab and end key.)
24. MIRC text attributes should be parsed and displayed. (Done except background color.) (Depends on #27.)
26. Implement {a,de}ttachable windows, ala X-Chat.
27. Add text area that allows colored text, hyperlinks and graphics. (Partially done, colored text and hyperlinks are implemented.)
28. Auto-replace emoticons by tiny graphical icons. (Depends on #27.)
31. Replies sent from the server on respose to user commands should be displayed in the window where the command was issued.
33. NN threw a security exception when a command was given from the command-line. I had to change the processing scheme, but the compromise solution makes the code ugly in method invokeCommand from class EIRC. Old code is still there if someone wants to try to make it work.
34. Channnel list should be able to be pre-fed with rooms that have special significance ("official rooms"), those have to be colored and sorted to the top. (See #53.)
40. Show the channel modes right to the topic TextField.
41. Possibility to select from a list of port numbers.
48. Add the following message to private windows on NickServ enabled servers:
if (nickserv.whois == NOTEXISTS) "user has not registered."
else if (nickserv.whois == REGISTERED) "user has registered and identified."
else "user has not registered, YET. Danger, Will Robinson!"
57. Client side of HTTP configuration saving. Provide a simple server-side example. Look into serialization.
58. Make the number of both scrollback and entry history lines user configurable. (Depends on #77).
60. The channel topic box should be 'disabled' unless you're opped or the channel isn't +t. (Suggested by Skold.)
61. Automatically identifying the nick when Nickserv requests it, either with the given password, or after requesting one from the user, and offering assistence changing the nick if it is registered by another user. (Suggested by Marc Packenius).
How does NickServ request the user for identification? Skold suggests:
identifytext="*you*have*60*seconds*
identifynick="NickServ"
identifyto="NickServ@services.network.net"
The last two are needed to stop people from just noticing them 'you have 60 seconds to comply'. You'd do privmsg NickServ@services.network.net IDENTIFY password.
63. Add image bullets to nick list, so simple color or symbol identification can be used. This kind of functionality is easy to add with the code in the GNU Free.fr patch I've written.
67. Move Color schemes from PARAM's to EIRC-gfx.jar. This will need new configuration options for the colors, which in instance would require that set{Text,}{Fore,Back}ground methods in class EIRC propagate color changes to other windows. Then it will be nice to have a ColorPicker.
69. Make an "Ignore" GUI dialog.
70. Write a HOW-TO on using EIRC to connect to external servers.
71. Messages triggered by others should be shown in the channel/query windows where they belong. (Suggested by Skold)
74. A few suggestions for the /list dialog: (Suggested by Skold)
 * Shorten the spacing on it. There's too much between individual lines.
 * Make it resizable.
 * Buttons might look better in one cluster on the left.
76. Have another config section to select where messages belonging to a category go. Like:
dest.328=active
dest.s9=common,status
dest.s10=status

eirc.s10 (you were kicked) would go in status. eirc.s9 (quit) would go in status and any channels common to the user ({0}). and eirc.328 (channel url) would go to the active window (which is probably the channel it's for unless services are lagged.) (Suggested by Skold)
77. NumberField widget (with up and down button arrows).
78. Support unknown numeric messages that have eirc.### translation keys supplied.
79. Add ConfigurationListener interface and related classes, and provide facilities so objects can "stay tuned" for configuration changes.
82. A /ctcp command for sending CTCP's to other clients. (Requested by Meglio.)
83. Possibly something like mIRC's channel central (dbl click in the channel window and a dialog with mode control etc is displayed), replacing the listing bans in the nick list (some people may be confused by that). (Suggested by Meglio)
84. Restore lost functionality, modifying com.lyrisoft.awt package might be needed to implement TextListener interface, and getText method. An alternative to implementing getText method is modifying trimHistory implementations in {Channel,Private}Window.java to support the current interface, if possible.
87. Make use of HtmlLayout in Configurator, not let it break anything.
88. Make the nicklist colors customizable.
89. Make the tab's height configurable.
90.

Held or WIP items:
39. Choose a nice scripting language that's already been implemented and used in the Java world.
I have found a language owned by Sun, it's called Pnuts. Pnuts is powerful, but it's big for a chat applet, only its core is 100 kB. If it's strongly needed, it'll be included.
53. A completely revamped room list that shows all kinds of rooms in categories:

[+]-Official rooms    <--- e.g. fed by a regular expression like
 |---#Betatest             "(#Betatest|#freenet|...)"
 |---#freenet
 |---...
[-]-ABC rooms    <--- e.g. matching pattern "#foobar.*-.*"
[-]-Private rooms     <--- rooms not matching a pattern above
[+]-Query windows     <--- list of open query windows
 |---betamarc
 |---...
(Suggested by Marc Packenius. Christian Bucks has reported to be working on this one.)
