KildClient Git
KildClient is a powerful MUD client with a built-in Perl interpreter
Brought to you by:
ekalin
Changes in version 2.3.0
------------------------
- Added a feature to search the buffer for a given string.
- The input bar can now have more than one line, to ease typing long
commands.
- Added the "Edit" menu with the usual Cut, Copy, Paste and Delete.
- When you have a prompt and some command echoes text in the screen,
this text is printed above the command and not after the prompt.
- Triggers and aliases can now match case-insensitively.
- The play() function has been added. This function allows you to
play WAV files.
- It is now possible to export triggers, aliases, macros, timers,
permanent variables and hooks and import them in other worlds.
- The order of permanent variables can now be changed (but this is
only for grouping of realted variables, there is no real effect in
the world).
- The entry boxes in the Multi Line Send dialog are now 80
characters wide.
- In the editors for triggers, aliases, etc., you can now select
more than one item and delete all selected items at once.
- You can display items defined by plugins in the editors for
triggers, aliases, etc. The changes, however, are NOT made in the
plugin file.
- KildClient can now connect with SSL to servers that support Telnet
Over SSL, and the MUD session will be encrypted. (Note: this
feature can be disabled at compilation time.)
- Added the functions $world->triggerenabled(),
$world->aliasenabled(), $world->macroenabled(),
$world->timerenabled() and $world->hookenabled() to check if a -
given trigger, alias, etc. is enabled. These functions can also be
used to check for existence of triggers, aliases, etc.
- Plugins can define two functions ENABLE and DISABLE to be called
when the plugin is to be enabled or disabled, if this action
requires some extra functionality that the default actions are not
enough.
- Fixed a bug that caused macros not to be run when non-English
keymaps are used. (Thanks to Sergey Bogdanov.)
- Fixed a bug that caused the wrong number of lines that fit in the
window to be calculated (and sent to the server if NAWS is being
used) under some circunstances.
- Fixed a bug that caused a segfault when a recursive alias
definition was found. Now alias processing stops after the command
line gets too big.
- Fixed a bug that caused a segfault after a world was closed.
Changes in version 2.2.2
------------------------
- In colorize(), you can now use && and ^^ to insert a literal & or
^ character.
- URLs with username and password for authenticated login are now
detected correctly and made clickable.
- Removed some big memory leaks that caused KildClient's memory
comsumption to get very high in long sessions.
- Fixed a security bug that caused a segmentation fault when a very
long ANSI sequence was receveived.
- Fixed a bug that caused a crash when a connection was broken
abruptly (ie, not in a tidy way, generally because of a network
failure).
- Fixed a bug that caused a segfault in the Windows version when
$world->listtrigger was used and there was a trigger without an
action.
- Fixed a bug that caused text to be displayed in the wrong colors
or attributes when non-recognized ANSI sequences were received.
Changes in version 2.2.1
------------------------
- Fixed a bug that caused a crash (segfault) when trying to connect
to a World. This bug affects the Windows version.
Changes in version 2.2.0
------------------------
- KildClient has now much more complete support for ANSI codes: if
you mud server uses it, KildClient can display text underlined
(singly and doubly), in italics, striked through, in reverse video
and in hidden mode. The colorize() function has been extended to
include codes to turn on these attributes.
- KildClient now supports vt100's line-drawing mode, which allows
tables to be built with proper characters (and not +, - and |)
that look really nice. (But the server must use these characters,
naturally.)
- KildClient now supports xterm's sequences to access a 256-colour
mode instead of only the default 16. The colorize() function has
been extended to allow a way to access these additional colors so
you can use them in echoed text even if you mud server does not
use them.
- You can set some world parameters (such as fonts, colors, and
others) as defaults, and all new worlds will use these defaults
when they are created.
- You can now have more than one character for auto-login. When a
World has more than one character defined for auto-login, its
entry in the World Selector can be expanded to show all
characters and you can select which one to use for auto-login.
- Added the hability to test triggers and see how they would react
to lines sent from the MUD.
- The line count in the status bar now displays the total number of
lines received for that session, and not the number of lines in
the scrollback buffer (which never increases, once the limit is
reached).
- The Reconnect and Connect to Another menu itens now have shortcuts
(CTRL+R and CTRL+SHIFT+R, respectively).
- You can now set default values for the command group size and
delay between sending command groups (used in the Multi-line Send
and Command History dialogs) in the Preferences dialog.
- In the editors for triggers, aliases, etc, you can now delect a
line by selecting it and pressing the DEL key.
- When you connect to a world that uses MCCP, that information is
now displayed in the status bar.
- Fixed a bug that caused an infinite loop when there was an
OnSentCommand hook and two triggers matched and caused commands to
be sent.
- Fixed a bug that sometimes caused segfaults when "Connect to
Another World" was selected.
Changes in version 2.1.0
------------------------
- KildClient now records the time at which each line of the MUD
output was received. You can see this time by leaving the mouse
over a line of output for a brief time.
- A new dialog has been added in which you can review the command
history, send commands again, find commands, etc.
- The shortcut for moving to the next or previous world is not
CTRL+Page Up or CTRL+Page Down, respectively, but the old ones
(ALT+Right or Left arrow) still work. There are also new
shortcuts: ALT+<num> where <num> is a number from 1 to 9 will move
to the corresponding world.
- There's an option in the Advanced section of the World Editor that
allows you to skip the confirmation dialog when deleting a
trigger, alias, etc.
- The Reconnect menu item (and the $world->reconnect function) now
work even if you are connected, closing the connection and trying
to reconnect.
- Added a new hook, OnDisconnect, triggered after you are
disconnected from a World.
- Fixed a bug that caused a newline to be sent when a pure gag
trigger (one without an action) matched.
- Fixed a bug that caused you to be disconnected if a very long line
was sent by the mud.
- Fixed a bug that caused the first line of output not to be
correcty displayed in some circunstances.
Changes in version 2.0.0
------------------------
- It is now possible to add, edit, remove, plugins, triggers,
aliases, macros, timers, hooks and permanent variables using a
Graphical User Interface, accessible from the World Editor.
Dealing with Perl is not necessary anymore for that.
- Having the World Editor open does not prevent you from using the
program anymore.
- URLs in the MUD window are now more clearly marked, and pressing
the left mouse button opens them automatically. The right mouse
button still pops up a menu with an option to open it or copy the
URL's address.
- Dialog windows (especially the World Selector) now appear in the
center of the screen, and not in awkward places.
- The output from the MUD is not shown anymore in a vte widget, but
in a TextView. This should not bring any big changes, things
should still work as before with small modifications. The only
thing that has been removed is the hability to have a transparent
or image background.
- KCWin's now use a TextView also. Gnome2::Vte::Terminal is not
necessary anymore. If you used the ->{VTE} widget directly, you
will need to make some changes to you plugins. The other functions
(especially feed()) still work as before.
- Added the $world->movetrigger() function to reorder triggers, and
similar functions for aliases, times, macros and hooks.
- Fixed a bug that attributed an invalid name to some hooks.
- Bug fixed: macro names are displayed in $world->listmacro().
- Bug fixed: attempting to edit an offline World no longer crashes
KildClient.
- Corrected some problems that caused build failures for some
versions of the Perl library.
Changes in version 1.3.2
------------------------
- Bug fixed: KildClient does not segfault anymore when opening a new
world for the first time.
- Bug fixed: & and < can be used in the command separator and this
does not cause the world to stop being recognized anymore.
Changes in version 1.3.1
------------------------
- This version fix a library dependency problem. It brings no new
features and bugfixes, but if you had problems building version
1.3.0, try using this version.
Changes in version 1.3.0
------------------------
- You can now specify one or more world names in the command line,
and these worlds will be automatically opened.
- The status bar is more informative and more configurable: it can
display the time connected and/or idle, and the font can be
changed.
- When you are disconnected from a world, there is another option
you can select: Offline, to keep that window open, so that you can
review the screen, run Perl commands, etc.
- Two new function: $world->reconnect() reconnects to the world that
was open, when in offline mode. $world->connectanother() closes
the current connection (if one is open) and allows you to select
another world to connect to, using the same tab.
- The command history is now more functional, behaving similary to
the command history used in the Bash shell and other programs
using the same library. The most noticeable feature is that if you
start typing something and move to another command, the partially
typed command is not lost.
- More parts of KildClient appear translated (if there is a
translation for that language, naturally).
- The substitution of aliases can now be evaluated as a Perl
statement (using the s//e construct). See the manual for more
details.
- KildClient now identifies itself using the Telnet TERMINAL TYPE
option.
- KildClient now supports the Telnet NAWS option to inform the
server of the current window size.
- A new menu has been added: Debug Matches in the Preferences menu.
When this option is selected, information about matched triggers
and alises will be output to stderr.
- The enaXXX, disXXX and listXXX functions now support several
arguments, for example: $world->distrigger(1, 3).
- Bug fixed: when sending something to the server that contains the
Telnet IAC character, that character is now correctly escaped.
- Bug fixed: timers with names now have this name loaded correctly
upon loading a world.
Changes in version 1.2.0
------------------------
- The list of save worlds is now displayed sorted alphabetically.
- It is now possible to temporarily disable all trigger (or all
macros, or all aliases, or all timers) via the Preferences menu.
- The command separator can now be configured instead of having to
be %;. (But %; is still the default.)
- KildClient now supports MCCP (Mud Client Compression Protocol)
version 1 and 2. This protocol, supported by several servers,
compresses that sent by the server, thus reducing greatly the
bandwidth used. And this happens transparently, so the user
doesn't need to do anything.
- A new trigger mode: rewriter triggers. Rewriter triggers run
before normal triggers and can change the received line, so that
further triggers work on the changed line.
- Hooks work now more similary to triggers, aliases, etc: for each
event, you can connect any number of hooks, and later edit them,
disable them, etc. This is mainly for the use of plugins that want
to define hooks. There have been some changes in the functions
that deal with hooks. Also, a new hook has been added:
OnSentCommand, run after each sent command.
- When a plugin is unloaded (that is, when the world that loaded it
is closed, KildClient will call the plugin's UNLOAD function
automatically.
- New functions, $world->getname(), $world->getmainfont() and
$world->getentryfont() that return the name of the world, the main
window font, and the command entry font, respectively.
- New functions, getversion() and $world->getpluginversion() to
return the version of KildClient or of a given plugin.
- A new stardard helper plugin, KCWin, meant to be used in other
plugins that require a little window for input and output.
- A new standard plugin, notes, to associate notes with a world.
- A new standard plugin, easypath, makes using paths easier.
- A new plugin allows peer to peer chat with other users or
KildClient or of other compatible clients that implement the
MudMaster or zChat protocols.
- Fixed a bug when it was not possible to connect to the first world
tried when the program was started. (It used to pop two World
Selector dialogs).
- Fixed a bug that caused a crash when the user tried to enable or
disable a plugin that was not loaded.
Changes in version 1.1.2
------------------------
- Bug fixed: pressing up arrow to retrieve the last command now
correctly retrieves it in all cases.
- Bug fixed: the anti-flood mechanism now works correctly even with
multiple open worlds.
- Bug fixed: some worlds were marked with new text and not be
unmarked when focused, this does not happen anymore.
- Bug fixed: the Preferences dialog now displays correctly when
opened.
- Bug fixed: avoided duplicate creation of plugin timers when the
plugin is loaded from a script file.
- Bug fixed: when the MUD sends lot of text at once, KildClient does
not lock until all the text has been received, and does not show
it all at once anymore.
- Bug fixed: $world->setstatus() now correctly works even if the
window does not have the focus when the function is called.
- Bug fixed: when deleting a world, all its files are deleted, not
only the .wrl file.
- Bug fixed: when the last world is disconnected, "Connect to
another world is selected" and then "Cancel" is clicked, the
program now exits correctly instead of keeping an open window.
- The check for trigger (done for each received line) and for
aliases (done for each typed command) should be faster now, as
some optimizations regarding that have been done.
Changes in version 1.1.1
------------------------
- Some changes regarding plugins:
* The format for the plugin file has been slightly changed (there
is no need to enclose the file in a block now). Plugins will
have to be changed, but this change should be very easy to do.
* If the plugin cannot be loaded by some reason (syntax error, it
requires a non-existent Perl module, etc), loadplugin() will not
consider the plugin as loaded anymore.
* Similar to the above, if die() is called in a BEGIN block in the
plugin file, the loading of the plugin can be aborted. This can
be used to test for some condition and abort the loading if that
is not met.
* A function has been added, $world->requireplugin, that is
similar to loadplugin(), but first checks if the plugin is
already loaded. If it is, it returns successfully. If not, it
tries loading the plugin (silently). If this succeeds, the
function returns successfully, if not, it die()'s. This function
is useful in plugins that require other plugins, and is meant to
be called in a BEGIN block of a plugin that requires another.
- Hyperlinks that appear in the MUD window can now be open in a web
browser (or other program), or have they URLs copied, by clicking
the right mouse button over them.
- The keys for moving between worlds are now Alt+Left or Right
arrow, because Ctrl+these arrows is used to move between words in
the command entry box.
- Corrected bug that caused the About dialog to be displayed only in
the first time it was requested.
Changes in version 1.1.0
------------------------
- There is now support for plugins, which are Perl scripts that add
new functionality to the client. Plugins can define functions,
triggers, timers, macros, aliases, etc.
- Triggers, aliases, macros and timers can be given names. These
names can be used when enabling, disabling and deleting them.
Several triggers (or aliases, macros, timers) can have the same
name. In this case, a group is formed, and operations for
enabling, disabling and deleting them work on all of them at once.
- The World Selector dialog now starts with the last open world
selected.
- There are menu entries for moving between worlds. The shortcuts
Ctrl+Left Arrow and Ctrl+Right Arrow can also be used.
- Added the getwindowsize() function to return the size of the
window, in characters.
- Added the $world->commandecho() function to set or get the value
of the command echo option of the world.
- Added the $world->sendecho() and $world->sendnoecho() functions
that behave just as $world->send(), but which never or always,
respectively, echo the sent commands.
- Added the Esperanto translation.
- Some bugs fixed.
Changes in version 1.0.0
------------------------
- This is the first public release.