News: 11 March 2016 - Forum Rules

Author Topic: Rhys's IRC Client  (Read 3307 times)

Kiyoshi Aman

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 2262
  • Browncoat Captain
    • View Profile
    • Aerdan's Blog
Rhys's IRC Client
« on: November 30, 2011, 07:10:28 pm »
(Posted a new thread here so as to not disrupt the Game Front End thread in Personal Projects.)

You can do some very nice things with WPF - here's an example of a themed IRC client I'm working on:

(themed IRC client screenshot

That's pretty nice. However, I would offer two suggestions, along with some feature requests to consider:

  • First, replace the tab bar with a treeview; as someone who's in ~40 channels, tab bars are really inefficient for large numbers of channels.
  • Second, make the userlist toggleable and format /NAMES output; the userlist may be nice for quick glances, but it's woefully inadequate for larger (50+ users) channels. (One channel I'm in has 500-600 users. They don't all talk, mind you.)

Feature-wise, you should support CAP sasl at the very least, as well as CAP account-notify and CAP extended-join. Support should be trivial, assuming you designed your client's protocol handling properly.

You should also make extensive use of RPL_ISUPPORT (numeric 005); it tells you a lot about any given server's nonnegotiable features, such as user prefixes (like @ and +). If you have any questions about IRC in general or certain IRC daemons in particular, please feel free to ask and I'll answer to the best of my ability. (Realtime communications may be better for this, in which case I would suggest #xkcd-compsci on irc.foonetic.net; the channel owner was influential in ircd development back in the 90s, and of course I've experience with more modern IRC daemons. I'm Aerdan there, so you know.)

Rhys

  • Hero Member
  • *****
  • Posts: 710
    • View Profile
    • CN
Re: Rhys's IRC Client
« Reply #1 on: December 01, 2011, 05:08:59 pm »
woah I completely didn't see this earlier XD

I'm using SmartIrc4Net for my IRC implementation, as far as extensions to the IRC protocol I haven't really looked into them too far beyond DCC, but I do intend on supporting all of the common ones.

I'm not exactly sure what /NAMES output means :huh: I'm an IRC user but not heavily, more a light user, so some things I may not be aware of. The library I'm using seems to state that it supports the IRC protocol in its' entirety, so as far as RPL_ISUPPORT goes it's just a matter of displaying it in the UI :)

I suppose I could do a hierarchical list in the left column to display joined channels and their users, that'd free up a bit of vertical space without too many deficits.

Kiyoshi Aman

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 2262
  • Browncoat Captain
    • View Profile
    • Aerdan's Blog
Re: Rhys's IRC Client
« Reply #2 on: December 01, 2011, 06:20:02 pm »
Oh, well. The first thing to know about SmartIrc4Net is that it's a pile of shit (seriously, I looked; I was not impressed by how poorly designed it was).

The /NAMES command is typically used to display a list of users, and some clients use it as a cue to update the userlist as well. It's a space-separated list, with user prefixes on those users which have them. (This may include multiple prefixes on servers which announce NAMESX in RPL_ISUPPORT.

Rhys

  • Hero Member
  • *****
  • Posts: 710
    • View Profile
    • CN
Re: Rhys's IRC Client
« Reply #3 on: December 02, 2011, 04:18:47 pm »
I've been doing well with it so far, it might be sorely lacking in documentation but it seems to be implemented well behind the scenes