KildClient Manual

Version 3.1.0

Eduardo M Kalinowski

Table of Contents
I. KildClient User's Guide
1. Introduction
2. Running KildClient
3. Basic Usage
3.1. Connecting to a MUD
3.2. Interacting with the MUD
3.3. Closing Worlds and Exiting KildClient
3.4. Reviewing and Searching Text
4. Editing a World
4.1. General
4.2. Display settings
4.2.1. Main Window
4.2.2. Colors
4.2.3. Status Bar
4.3. Input
4.4. Logging
4.5. Automation
4.5.1. Scripting
4.6. Protocols
4.7. Advanced
5. Configuring KildClient
5.1. Appearance
5.2. Sending
5.3. External Programs (Linux)
5.4. Proxy
6. Menu Reference
6.1. World menu
6.1.1. Open
6.1.2. Reconnect
6.1.3. Disconnect
6.1.4. Connect to Another
6.1.5. Close
6.1.6. Edit
6.1.7. Save
6.1.8. Statistics
6.1.9. Previous and Next
6.1.10. Quit
6.2. Edit Menu
6.2.1. Cut
6.2.2. Copy
6.2.3. Paste
6.2.4. Delete
6.2.5. Find and Find Next
6.3. Input Menu
6.3.1. Clear
6.3.2. Previous and Next
6.3.3. Find Previous and Find Next
6.3.4. Command History
6.3.5. Multi-line Send
6.3.6. Test Triggers
6.4. Preferences Menu
6.4.1. Disable Triggers, Aliases, Macros or Timers
6.4.2. Debug Matches
6.4.3. Preferences
6.4.4. Edit Default World
6.5. Diplay Menu
6.5.1. Split screen
6.6. Help Menu
6.6.1. Help
6.6.2. About
7. Using Perl in KildClient
7.1. The Basics
7.2. Echoing and Sending Text
7.2.1. Paths and Speed-Walking
7.3. Playing Sounds
7.4. Saving Variables Permanently
7.4.1. Permanent Variables in the Command Line
7.5. Controlling Worlds with Perl
8. Triggers
8.1. Creating and Editing Triggers
8.1.1. Adding Triggers
8.1.2. Editing Triggers
8.2. Basic Triggers
8.3. Changing the Style of the Matched Text
8.4. Gags
8.5. Other trigger features
8.5.1. Rewriter Triggers
8.6. Defining Triggers in the Command Line
8.6.1. Editing Triggers
8.6.2. Assigning Names to Triggers
8.6.3. Reordering Triggers
8.7. Importing and Exporting
8.8. Testing Triggers
9. Aliases
9.1. Creating and Editing Aliases
9.1.1. Adding Aliases
9.1.2. Editing Aliases
9.2. Using Aliases
9.2.1. Advanced Features
9.2.2. Using Perl in Aliases
9.3. Defining Aliases in the Command Line
9.3.1. Editing Aliases
9.3.2. Assigning Names to Aliases
9.3.3. Reordering Aliases
10. Macros
10.1. Creating and Editing Macros
10.1.1. Adding Macros
10.1.2. Editing Macros
10.2. Defining Macros in the Command Line
10.2.1. Editing Macros
10.2.2. Assigning Names to Macros
10.2.3. Reordering Macros
11. Timers
11.1. Creating and Editing Timers
11.1.1. Adding Timers
11.1.2. Editing Timers
11.2. Defining Timers in the Command Line
11.2.1. Editing Timers
11.2.2. Assigning Names to Timers
11.2.3. Reordering Timers
12. Hooks
12.1. Creating and Editing Hooks
12.1.1. Adding Hooks
12.1.2. Editing Hooks
12.2. Defining Hooks in the Command Line
12.2.1. Editing Hooks
12.2.2. Assigning Names to Hooks
13. Plugins
13.1. Loading Plugins from the Command Line
13.1.1. Enabling and Disabling Plugins
13.2. Getting Information About Plugins
13.3. Standard Plugins
13.3.1. easypath
13.3.2. keypad
13.3.3. notes
13.3.4. kc256
13.3.5. channels
13.3.6. Other Plugins
14. Logging the Output
15. Using the Chat
15.1. Basic Usage
15.2. Advanced Features
15.3. Chat Functions
16. Out-of-band server data
16.1. Receiving server data
16.1.1. GMCP data
16.2. Sending server data
16.2.1. MSDP data
II. KildClient Programmer's Reference
A. Global Function Reference
A.1. colorize
A.2. getclientname
A.3. getversion
A.4. getworld
A.5. gotow
A.6. help
A.7. play
A.8. quit
A.9. stripansi
A.10. stripcolorize
B. $window Reference
B.1. $window->getsize
B.2. $window->minimize
B.3. $window->settitle
B.4. $window->seturgencyhint
C. $world Reference
C.1. $world->{SILENT}
C.2. $world->alias
C.3. $world->aliasenabled
C.4. $world->close
C.5. $world->cmdseparator
C.6. $world->commandecho
C.7. $world->connectother
C.8. $world->dc
C.9. $world->delalias
C.10. $world->delhook
C.11. $world->delmacro
C.12. $world->deltimer
C.13. $world->deltrigger
C.14. $world->disalias
C.15. $world->dishook
C.16. $world->dismacro
C.17. $world->displugin
C.18. $world->distimer
C.19. $world->distrigger
C.20. $world->echo
C.21. $world->echonl
C.22. $world->echonlandlog
C.23. $world->enaalias
C.24. $world->enahook
C.25. $world->enamacro
C.26. $world->enaplugin
C.27. $world->enatimer
C.28. $world->enatrigger
C.29. $world->expandalias
C.30. $world->gag
C.31. $world->getaliasnumber
C.32. $world->getcharacter
C.33. $world->getconntime
C.34. $world->getentryfont
C.35. $world->gethooknumber
C.36. $world->getidletime
C.37. $world->getinput
C.38. $world->getkeycode
C.39. $world->getline
C.40. $world->getlogfile
C.41. $world->getmacronumber
C.42. $world->getmainfont
C.43. $world->getname
C.44. $world->getpluginversion
C.45. $world->gettimernumber
C.46. $world->gettriggernumber
C.47. $world->hook
C.48. $world->hookenabled
C.49. $world->interpret
C.50. $world->ispermanent
C.51. $world->listalias
C.52. $world->listhook
C.53. $world->listmacro
C.54. $world->listpermanent
C.55. $world->listplugin
C.56. $world->listtimer
C.57. $world->listtrigger
C.58. $world->loadplugin
C.59. $world->logfile
C.60. $world->macro
C.61. $world->macroenabled
C.62. $world->makepermanent
C.63. $world->maketemporary
C.64. $world->mlsend
C.65. $world->movealias
C.66. $world->movehook
C.67. $world->movemacro
C.68. $world->movetimer
C.69. $world->movetrigger
C.70. $world->next
C.71. $world->path
C.72. $world->prev
C.73. $world->reconnect
C.74. $world->requireplugin
C.75. $world->save
C.76. $world->send
C.77. $world->sendecho
C.78. $world->sendfile
C.79. $world->sendlines
C.80. $world->sendmsdpcommand
C.81. $world->sendnoecho
C.82. $world->sendserverdata
C.83. $world->setinput
C.84. $world->setstatus
C.85. $world->silentdisalias
C.86. $world->silentdishook
C.87. $world->silentdismacro
C.88. $world->silentdistimer
C.89. $world->silentdistrigger
C.90. $world->silentenaalias
C.91. $world->silentenahook
C.92. $world->silentenamacro
C.93. $world->silentenatimer
C.94. $world->silentenatrigger
C.95. $world->timer
C.96. $world->timerenabled
C.97. $world->trigger
C.98. $world->triggerenabled
C.99. $world->writetolog
D. Using KCWin for Input/Output Windows
D.1. Changes from Previous Versions
D.2. KCWin::get_text
D.3. KCWin::set_text
D.4. KCWin::feed
E. Writing Plugins
E.1. The File Format
E.2. A Sample Plugin
E.3. Disposing Data When the Plugin Is Unloaded
E.4. Enabling and Disabling Plugins
E.5. Conditional Loading of Plugins
E.5.1. Plugins That Require Other Plugins
E.6. Using GTK+ From Plugins
E.7. Plugin Conventions
List of Figures
3.1. When KildClient is first started, you are asked to connect to a world
3.2. A typical KildClient session with two open Worlds
3.3. A typical KildClient session with two open Worlds
4.1. The General section of the World Editor
4.2. The Main Window section of the World Editor
4.3. The Colors section of the World Editor
4.4. The Status Bar section of the World Editor
4.5. The Input section of the World Editor
4.6. The Logging section of the World Editor
4.7. The Scripting section of the World Editor
4.8. The Protocols section of the World Editor
4.9. The Advanced section of the World Editor
5.1. The Appearance section of the Preferences dialog
5.2. The Sending section of the Preferences dialog
5.3. The External Programs section of the Preferences dialog
5.4. The Proxy section of the Preferences dialog
6.1. Command History Dialog
6.2. Multi-Line Send
7.1. Permanent Variables
8.1. The graphical Trigger editor
8.2. The window to edit triggers
8.3. The window to configure style
8.4. The test triggers window
9.1. The graphical Alias editor
9.2. The window to edit aliases
10.1. The graphical Macro editor
10.2. The window to edit macros
11.1. The graphical Timer editor
11.2. The window to edit timers
12.1. The graphical Hook editor
12.2. The window to edit hooks
13.1. The Plugin list
E.1. The Plugin Header
List of Examples
8.1. A very simple trigger
8.2. A trigger which captures part of the received line and uses it in the action
8.3. A trigger with an action in Perl
8.4. A trigger that calls a sub-routine
8.5. A simple gag
8.6. A gag with no action
8.7. Rewriting a line with gags
8.8. A profanity filter that does not work
8.9. A profanity filter using a rewriter trigger
8.10. A very simple trigger defined in the command line
8.11. A simple gag (in the command line)
8.12. A gag with no action (in the command line)
8.13. A shortcut function to define gags
8.14. A case-insensitive trigger
8.15. Changing several attributes at once
8.16. A very simple trigger, in another way
8.17. Disabling a trigger, the long way
8.18. Disabling a trigger, the short way
8.19. Creating a trigger with a name
9.1. A simple alias
9.2. A slightly more complex alias
9.3. An alias that uses bracketed expressions
9.4. An alias whose substitution is evaluated:
9.5. A simple alias defined in the command line
9.6. An alias whose substitution is evaluated (in the command line)
9.7. Disabling an alias, the long way
9.8. Disabling an alias, the short way
9.9. Creating an alias with a name
10.1. Defining a macro
10.2. Disabling a macro, the long way
10.3. Disabling a macro, the short way
10.4. Creating a macro with a name
11.1. A simple timer
11.2. A timer that executes only five times
11.3. A one-shot timer
11.4. Changing the interval of a timer
11.5. Changing the interval of a timer
11.6. Disabling a timer, the short way
11.7. Creating a timer with a name
12.1. Connecting a hook
12.2. Disabling a hook, the long way
12.3. Disabling a hook, the short way
12.4. Creating a hook with a name
13.1. Loading a plugin
13.2. Loading a plugin specifying the full filename
13.3. Getting help about a plugin
14.1. Enabling logging
16.1. A GMCP request
16.2. A MSDP request
16.3. Message sent via MSDP
A.1. Quitting from another world
C.1. Changing styles with triggers
E.1. A Sample Plugin
E.2. Conditional loading of plugins
E.3. A plugin that requires another
E.4. A plugin that uses gtk3-perl