Monday, March 24, 2008

Kon version 1.0.6 release

Hey all. I'm not quite dead yet. And I really haven't been working on anything major. I decided to just go ahead and release what I had of Kon 1.0.6 to the public. You can download the binary by clicking here or the source files by clicking right here.

Here's what I did for this version:

  • Changed "brain.kon" to "kon.brain" in order to keep consistency later on (with new brain additions).
  • Updated AIML dll by myself in order to try and improve memory management. The new dll MUST be used in order for this version of Kon to work correctly (it is included in the zip and in both src folders).
  • Improved and fixed the PING/PONG so that it finally sends the correct information back
  • Improved most of the IRC code. The ReceiveData() method now uses a combination of IF/ELSE and SWITCH statements to determine what the server messages are showing up (for example "PING" or "PRIVMSG", etc). This was changed from pure IF/ELSE.
  • Added multiple methods to handle various messages (QUIT method, PRIVMSG method, etc)
  • Added a reconnect() method. ** It is in testing stages right now and may not work completely right.
  • Added try/catch to the logger method to try and prevent certain errors
  • Changed the way the log file works slightly to try and prevent exceptions and to just improve it
  • Added an authorize() method and made it so that submitting the user and nick are now in that method
  • Fixed an exception that kept being thrown when quitting
  • Removed the "full path" stuff from the main function when generating and reading the config file. This will hopefully stop a bug that keeps appearing.
  • Changed Kon's AI line grabbing method to include a seed based on the computer's time instead of letting the computer do it manually.
  • Changed Kon's AI filter a little bit to not include lines that are less than 5 characters in length.
  • Added the ability for Kon to address random channel users instead of just the person talking to him.
  • Changed the location of the replace emoticon functions from AI.cs to filter.cs.
  • Added the very first version of "LB Brain" -- a brain that's based on BishounenNightBird (from Esper.net)'s "Language Bot" (LB). Mine isn't 100% like his, but it's close enough.
  • Changed "UNNAMED USER" to "UNNAMED_USER" to resolve conflicting problems in LB Brain.
  • Added a /raw console command that sends things directly to the server
  • Changed the way it replaces UNNAMED_USER so that if it's UNNAMED_USER: it will address the person talking to the bot. Other UNNAMED_USERs will still be replaced with a random person.
What's missing? Well I still haven't added any kind of user list to allow certain access to commands. As a result, the bot owner is still set to me and my nick is the only one that will allow it to be closed using the internal command. I'm also not done with all of the IRC commands and making them look good in the console window. When I get the urge to work on Kon again, those two things will probably take priority over everything else.

Also, as mentioned above, reconnect may be a little buggy. It seems to work most of the time, but occasionally it decides to stop working. If that happens just shut the bot down and restart it.

Enjoy!