Manual:GMCP Extensions

From Mudlet
Revision as of 06:52, 16 June 2021 by Kebap (talk | contribs) (→‎updating: explicitly mention allowed version formats)
Jump to navigation Jump to search

Automatic package installation

Mudlet supports automatic download and setup of Mudlet packages should the MUD server offer it. These packages could consist of graphical additions to your game or anything else you'd like your players to have loaded on their Mudlet profiles by default. This setup is automatic and carefree on part of the user, and handles package updates in a transparent manner as well.

setup

After GMCP is negotiated, the server should send a string with raw telnet in the format of:

 Client.GUI <package version>\n<url>

or alternatively, send the message with GMCP

Client.GUI {
  "version": "<package version>",
  "url": "<url>"
}

And Mudlet will make it happen. If the user does not have a package, it will be downloaded and installed from the <url>, and if they do, but of an older version - it'll be upgraded. If they're already on the latest, nothing happens. Ensure that the zip name is the same as the package name.

For example:

 Client.GUI 1562626892\nhttps://mudlet.reinosdeleyenda.es/RLMud_Config.zip

(observe no quotes)

or with GMCP:

Client.GUI {
  "version": "39",
  "url": "http://www.stickmud.com/mudwww/StickMUDv39.mpackage"
}

demonstration

Enable GMCP in settings, connect to Midnight Sun 2 (midnightsun2.org on port 3000) and create a character. A GUI will automatically install over GMCP once you finish character creation, and an overview of it is available here - a good idea to consider to make your MUD more visually appealing.

For an ATCP demo, connect to godwars2.org on port 3000. Mudlet will download the GW2 interface and set it up automatically.

Sample string sent by GodWars 2:

 "Client.GUI 1\nhttp://www.godwars2.org/download/mudlet/GW2_GUI.mpackage"

updating

If you change the package version to any other text than what it previously was, Mudlet will consider it an update - it'll uninstall the old package and install the new package. This happens without prompting the user (since it can be kind of tricky if they decline), thus any modifications they would have done would be wiped - encourage users to make any modifications outside of the package and provide hooks for doing so.

For package versioning you can use any text you seem appropriate. Simple version numbers (start with 1, then 2, then 3) will do, as well as minor and/or patch versions like 1.2 and 1.2.3 or even 1.2.3-alpha (see https://semver.org/ for inspiration). You could also easily use the current date of release (like 2021-06-17 now - but make sure to indicate if you happen to release multiple versions on the same day), or even fancy special names for each release (how about http://sentimentalversioning.org/ for inspiration?)

Automatic map download

Mudlet can download a map for the user as soon they open the mapper for the first time, as well as re-download the map from the Mapper tab in settings:

Start own map.png

The map can be either in the MMP standard or one exported from Mudlet.

setup

To let Mudlet know where it can download your map, send the following after GMCP has been enabled:

Client.Map {
  "url": "https://..."
}