www.IRC-Junkie.org Forum Index
Menu
» Home
» Forum
» Articles
» Interviews
» Reviews
» Links


» Memberlist
» FAQ
» Search

» About this Website
» Syndicate
» Link to Us
» Contact Us
» #www.IRC-Junkie.org

We Value:
Usefulfreesoftware.com - Your guide to opensource software for Windows


mIRC Resources
Download mIRC Scripts, Bots, and Addons
French language mIRC scripting site

Download mIRC scripts, mIRC addons and mIRC bots.


Klient IRC client - may 2003


On windows, the undisputed king of IRC clients has to be mIRC. It will take a lot before this client will be thrown of its throne. It has excellent scripting support, and because it is so widely spread, there are a lot of ready made scripts available on the Internet which extend it quickly and easily.

Ofcourse there are obvious downsides to this too. The market leader in any product is also the most vulnerable for exploits. The number of people who fell prey to the $decode trick must be running in the thousands, with new people being tricked daily to copy/paste the dreaded line, to find out they loose their ops on their channel, or worse. It is only natural for those who want to do harm to others to pick a client that is used by the vast majority of users. This can be a very valid reason to use a alternative to mIRC.

The desire to go against the flow can be a motive to use a different IRC client. And different is a good description for Klient. Be warned, those who like to keep IRC as simple as possible are better off sticking to mIRC. Diving into Klient and one of its scripting languages head-first is required; but if you do, the rewards can be big, and very fulfilling.

Like mIRC, Klient is a commercial product, but unlike mIRC, after the trial period Klient will stop working all together. Beware, if you start scripting heavily, and havent decided to spend $24.95 on a license, you might be stuck with scripts for a non-working client. Something that should be mentioned; a friend of mine tried Klient out and reported it stopped working after only 1 week of use. Must have been a bug...

installing and configuring
Klient is being installed with a MSI installer. Recent Windows version have support for this installer build in the OS, but older versions might need a additional download if you haven't done so before. The install itself is pretty straight forward, and with version 2.0.15 and higher you don't need to do a complete reinstall either when upgrading, something not taken mildly if you have a large bunch of scripts and very specific settings (although a "exporter" function was available to export settings).

On configuring something very basically different from mIRC becomes imminent soon. A large section of your basic configuration settings are network dependent. This means a lot of flexibility, and lets you configure Klient exactly how you want it to behave per network. This way you don't have to include a check if the current network is Undernet, so you can send your login to X, or for example have different usermodes to set on connection. Further network specific settings include DCC, CTCP, Away, Highlight and many others.
Some options are not configurable per network, but a popup will warn you in those cases. And if you prefer to have the same setting on all your networks, or are just active on 1 network, leaving it to "default" wont bother you with network specific settings at all then.

One of the things I really like about Klient is the possibility to change the entire output the client is passing to you easily. In a drop down box you select the event, like for example "Own Action", "Private Message", "Server Ping" or "Topic change" after which you can type in how you want it to look like with a easy editor to change colors and all. A save option is ofcourse provider to share your "theme" easily with your friends, or for backup purposes.

Interface
The interface of Klient is definitely one of it's strongest points. You simply have to love the looks and feel of it. And the tree based view of the networks/channels/queries/chats is marvelous too, although maybe a little space consuming. The animated menu popups where a bit too much for me, but luckily that all is configurable, so it wont keep me waiting to see it sliding open before I can get to the entries I need.

The use of Icons on nick and channel popups were at first sight a little niche to me. But once I got the hang of it I quickly adapted to them, and made my own icons for the popup entries I added in my own scripts.

Scripting
Everyone who uses IRC wants to make scripts, or will at some point at least use some made by others. The nature of the people trying Klient are most likely to be of the first category, and they will not be disappointed inside Klient. Klient does not use, like mIRC, use a custom scripting language, but accepts any scripting language installed in the Windows Scripting Host. Main supported is VBscript (the default script is in VBScript, and it seems most users are using VBscript), but also other scripting languages are available like VBscript, JScript, Perl, Python, and TCL. All that is required is for you to have installed the scripting environment on your computer.

Ofcourse I took things a little different, and choose Perl Active Scripting (distributed by Active State) as the language I would use to make my scripts on. As you would do learning scripting or programming, I started with making a alias that would make the famous "hello world!" message. I added a new alias "/test" in the script editor, and selecting Perlscript as the language. The top of the editor screen showed me some standard variables I can use;

#Params: Server, Window, Params

So I started typing:

$Server("msg ".$Window." Hello world!");

Which the idea of is to message to the server the command "msg #channel" (the window I typed it in) the message "hello world!". OK, time to type it in the channel; But, yikes error;

[11:09:27] * PerlScript Runtime Error
[11:09:27] * Description: Undefined subroutine &main::KlientMethod_383 called
[11:09:27] * While Processing: alias "test"
[11:09:27] * File Name: E:\Klient\test.ksf

So.. the above "variables" turned out to not be variables at all. They are in fact objects, and you need to tell Perl further what you want from that object. To get the above working you would need to use:

$Server->Command("msg ".$Window->Name." Hello world!");

If your only scripting knowledge is mIRC scripting (like me, *g*), your in a world of change. The scripting in Klient is object based, which is just a totally different way of handling things. I am pretty confident inside mIRC, but using a object oriented way of handling things was new to me. This ofcourse has nothing to do with Klient, but everything with me who simply never had any previous experience with object based scripting. Luckily for me there are a few very nice souls around in the Klient support channel #Klient (which is linked with a relay bot over several networks), who where able to help me out with a few scripts, after which I got the hang of things pretty soon.

Once you get the hang of it, you will get used to it fast enough, and the power you have with a language which is full Windows Scripting Host based is just so much more powerful then for example mIRC scripting would be that the benefits of doing it this way are great. And if you already know one of the supported languages, your up and running in no-time adding your scripts in Klient. And if you don't know any scripting language, starting to learn one that can benefit you outside of your IRC client as well is a big Plus if you ask me. Hence my choice for Perl which I can also use on Windows, Linux, and in website development.

On working in the script editor, which is easily accessible on the main toolbar with a click on a icon, in VBScript a popup window would appear when typing out a object. If you would for example type out the above example, you will get a popup window with all possibilities to select from one you reach a "." which is the standard separator on VBScript This sure speeds up your scripting. Unfortunately, this was not working inside Perl, where the separator is ->

One thing I really miss now is the possibility to make proper dialogs. The only thing you can do right now in Klient is make input boxes for a single parameter, or open file dialogs. That's not really covering the cases where you want to make a complex script, and have the users of it the possibility to set multiple options to configure your script. This feature however is in the works right now, and someone told me might be part of the 2.1 release. And it will include a editor to design your dialogs in, saving you to having to type in coordinates to position your GUI elements such as buttons, input text fields, etc. You ofcourse will be able to use any GUI development supported by your scripting language.

Conclusion
I was asking about some basic features which should be in a IRC client by default IMO, and asking where these features might be hidden I got a "script it" answer regularly from the default place to get help from, #Klient on EFNet. Now this is not a bad thing in any way, since it gives you full control over the event, and Klient's scripting is very flexible, and allows you to accomplish practically all you want. But it IS something you need to be aware of if you would choose this client as your standard IRC client to use. If you want a standard out of the box client for which you can easily find scripts, then go for mIRC. If you like to play around though, and maybe know already one of the supported scripting languages, then Klient is definitely an option you should take a look at.

I love Klient, it has a sexy interface, supports a host of scripting languages, and has a lot of standard objects you can start scripting with immediately. Some things are standard build in that you would expect to see in mIRC, but aren't. One of them is a extensive away dialog with options to log incoming messages when you are away. Also the self-flood protection when you paste large amount of text is something you would expect in a client like mIRC. For the rest you should be able to script anything yourself in a reasonable amount of time. Some people on #Klient are really helpful to anyone with questions, so if something is misty, you should be able to get some help there. Don't be put off with the single grumpy op in #Klient who isn't doing much good to the rest of the people in there, since I got great help to get me up and going there.

With scripting I really missed two things.. Good documentation on the objects, and dialogs! Making scripts you write available to others would really benefit from proper dialogs, where users can update channels to join, etc. Also for yourself, since a dialog is just that tad more friendly to look at then code. The next version of Klient (2.0.16) will have a updated help file with a complete Object Reference section in the help file, with over 1600 pages, which should help explaining the possibilities of Klient's extensive Object based scripting possibilities. Regarding the dialogs I got assured by the coder of Klient that it will be coming up in the near future as well.

Usefull links
www.klient.com - the homepage of the cient itself.
kdg.klient.com - Klient Development Group, group of people who script for Klient.
#klient - the client's base channel.



? Discuss This Article here.

JJ Benitez | Christian Dating Services | Honda Motorcycles | Mobile Phones | Vinos tintos