[Home] [Downloads] [Search] [Help/forum]

Release notes for MUSHclient version 3.78

Version 3.78

Released on 09 Aug 2006

1. Increased the maximum size of an XML document that can be parsed from 1,024,000 bytes to 5,120,000 bytes. This applies to utils.xmlread (Lua script function), reading in MUSHclient world files, plugin files, plugin "state" files, and any other documents saved in XML format.

2. Added Lua script function: utils.multilistbox.

This behaves similarly to utils.listbox, however it allows for multiple selections. Because of this the calling interface is slightly different:

result = utils.multilistbox ( msg, title, t, defaults )

The only required arguments are the message text and the table of choices (t).

* msg = message to display (max 1000 characters)
* title = title of box - if nil, defaults to "MUSHclient" (max 100 characters)
* t = table of key/value pairs, as described below
* defaults = table of default keys, or nil if no defaults

Return value = a table of keys of what was selected, or nil if cancelled

If not cancelled, the return value is a table. This table may be empty if nothing was selected. If one or more items were selected they will be in the table in the form: key = true

The third argument is a table of key/value pairs. The value is displayed, however the corresponding key is returned. The values are automatically sorted into ascending alphabetic order.

The fourth argument is a table of keys (string or number) which corresponds to the wanted default selection(s). Items in the key/value pairs table (3rd argument) which have an entry in the defaults table (4th argument) will be selected by default.

Example of use:

t = {
fruit = "apple",
vegetable = "potato",
spice = "pepper",
herb = "parsley",

defaults = {
fruit = true,
spice = true,

result = utils.multilistbox (
"Choose a food",
"Foods ...",

In this example the listbox will display: apple / potato / pepper / parsley

However the selected items (defaults) will be: apple / pepper.

This is because the keys (fruit / spice) of those items are in the defaults table.

If the defaults were accepted then this table would be returned:

{ fruit = true, spice = true }

If nothing was selected, then this table would be returned:

{ }

If the user cancelled the listbox dialog, then nil would be returned.

3. Added new selector (304) to GetInfo. This returns the current date/time.

4. Added new plugin callback: OnPluginSent.

This is called after every plugin has a chance to reject a line of text being sent to the MUD by implementing OnPluginSend. If every plugin allows the line through, then OnPluginSent is called so that a script can note what was actually sent to the MUD.

In other words, when a line of text is about to be sent to the MUD:

* Every plugin is checked for OnPluginSend. If any plugin returns false then the line is not sent.

* Once every plugin has a chance to reject the line, if it is still going to be sent to the MUD, then every plugin is now checked for OnPluginSent. This gives them a chance to set flags to note something (eg. we went north).

Inside OnPluginSent you are not allowed to send things to the MUD, directly or indirectly. That is, functions like world.Send will be disabled, and return an error code if called. This also applies to similar functions like SendImmediate. This is to stop loops (one send causing another) and also confusion, if one plugin noted that "A" was sent to the MUD, but another plugin also sent "B".

5. Added more tips to the "tip of the day" file (tips.txt).

6. Fixed bug in the plugins dialog (list of installed plugins) where if the highlighted plugin did not have a description, the "Show Description" button would still be active.

7. In the plugins dialog, if a plugin raises an error when you try to install it (eg. syntax error in a script) then the plugin is automatically opened in the inbuilt notepad, or your designated text editor. This is designed to assist plugin authors fix problems in their plugins.

8. Fixed bug where if you had a trigger/timer/alias script function in the form a.b.c.d (for Lua users only) and any of the intermediate items (a, b, or c) were not a table, MUSHclient would crash.

View all MUSHclient release notes

Quick links: MUSHclient. MUSHclient help. Forum shortcuts. Posting templates. Lua modules. Lua documentation.

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.


Written by Nick Gammon - 5K   profile for Nick Gammon on Stack Exchange, a network of free, community-driven Q&A sites   Marriage equality

Comments to: Gammon Software support
[RH click to get RSS URL] Forum RSS feed ( https://gammon.com.au/rss/forum.xml )

[Best viewed with any browser - 2K]    [Hosted at FutureQuest]