Skip to content

Commit 31e5425

Browse files
Mudlet UI and Mapper support (#369)
This adds support for the GoMud UI for the Mudlet client. The UI is split in two parts, the actual UI and a mapper script. If anyone wants to write their own UI, they can use the mapper script by itself. This update also adds a mudletui command to the game, as well as a few other functions to enable detection, installation, removal and updating the Mudlet UI directly with in-game commands. Also added is support for an ENV variable CONSOLE_GMCP_OUTPUT to enable/disable GMCP console output. Still to do: Add Discord Rich Presence support for Mudlet (I did not want to make this PR too big) Add support for sending messages back to the game engine form the UI using GMCP Add support for re-sending GMCP messages on request from the UI Several additions to the UI and mapper script will be forthcoming, but they will auto-update as they are released. And much more to come... Changes Added mudletui game command to install/remove/update Mudlet UI Added checkclient game command (sends login message about detecting Mudlet) Added special UI supported GMCP messages (for removal and update) Added auto-install of custom mapper script (non user controllable) Added small default map of some of Frostfang to get the player started Added helpfiles for everything Changed GMCP console output to using ENV variable CONSOLE_GMCP_OUTPUT (0/1) to control if admin user GMCP messages are sent to console. Defaults to off (0).
1 parent bbe6cbb commit 31e5425

File tree

9 files changed

+492
-4
lines changed

9 files changed

+492
-4
lines changed

_datafiles/config.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ Server:
5959
- print
6060
- inbox check
6161
- print
62+
- mudletmap
63+
- checkclient
6264
# - Motd -
6365
# Message of the day. This is displayed when the motd command is run.
6466
Motd: '{{ t "Motd" }}'
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Help keywords for Mudlet and client-related commands
2+
# These will be merged with the main keywords.yaml by the help system
3+
4+
help:
5+
command:
6+
interface:
7+
- client
8+
- checkclient
9+
- mudletmap
10+
- mudletui
11+
12+
# Aliases for keywords when typing: help <keyword>
13+
help-aliases:
14+
mudletui: [mudlet, mudletgui, mudlet-ui, mudlet ui]
15+
mudletmap: [mudlet-map, mudlet map]
16+
checkclient: [client-check, clientcheck]
17+
client: [clients, mud-client, mudclient]
18+
19+
# Command aliases for Mudlet-related commands
20+
command-aliases:
21+
mudletui: [mudlet, mgui]
22+
mudletmap: [mudlet-map]
23+
checkclient: [clientcheck]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Mudlet client configuration
2+
3+
# Mapper configuration
4+
mapper_version: "1"
5+
mapper_url: "https://github.com/GoMudEngine/MudletMapper/releases/latest/download/GoMudMapper.mpackage"
6+
7+
# UI configuration
8+
ui_version: "1"
9+
ui_url: "https://github.com/GoMudEngine/MudletUI/releases/latest/download/GoMudUI.mpackage"
10+
11+
# Map data configuration
12+
map_version: "1"
13+
map_url: "https://github.com/GoMudEngine/MudletMapper/releases/latest/download/gomud.dat"
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<ansi fg="black-bold">.:</ansi> <ansi fg="magenta">Help for </ansi><ansi fg="command">checkclient</ansi>
2+
3+
The <ansi fg="command">checkclient</ansi> command displays information about client-specific features available to you.
4+
5+
<ansi fg="yellow">Usage: </ansi>
6+
7+
<ansi fg="command">checkclient</ansi> - Shows details about detected client features and available enhancements
8+
9+
<ansi fg="yellow-bold">NOTES:</ansi>
10+
- This command is particularly useful for Mudlet users to see what special features are available
11+
- It will detect if you're using Mudlet and show relevant package information
12+
- The command runs automatically when you log in to provide helpful information
13+
14+
<ansi fg="magenta-bold">See also:</ansi> <ansi fg="command">help mudletui</ansi>, <ansi fg="command">mudletmap</ansi>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<ansi fg="black-bold">.:</ansi> <ansi fg="magenta">Help for </ansi><ansi fg="command">client</ansi>
2+
3+
This game supports various MUD clients with special features to enhance your gameplay experience.
4+
5+
<ansi fg="yellow">Supported Clients: </ansi>
6+
7+
<ansi fg="white-bold">Mudlet</ansi> - Full support with custom UI, mapping, and GMCP features
8+
Use <ansi fg="command">help mudletui</ansi> and <ansi fg="command">help mudletmap</ansi> for more information.
9+
10+
<ansi fg="white-bold">Other Clients</ansi> - Basic support with standard MUD protocol features
11+
For the best experience, we recommend using a client that supports GMCP.
12+
13+
<ansi fg="subtitle">GMCP FEATURES:</ansi>
14+
- Character information and status updates
15+
- Room and environment data
16+
- Communication channels
17+
- Party information
18+
- Custom UI elements (Mudlet only)
19+
- Client Mapping support (Mudlet only)
20+
21+
<ansi fg="magenta-bold">See also:</ansi> <ansi fg="command">help mudletui</ansi>, <ansi fg="command">help mudletmap</ansi>, <ansi fg="command">checkclient</ansi>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<ansi fg="black-bold">.:</ansi> <ansi fg="magenta">Help for </ansi><ansi fg="command">mudletmap</ansi>
2+
3+
The <ansi fg="command">mudletmap</ansi> command sends map data to Mudlet clients for enhanced navigation.
4+
5+
<ansi fg="yellow">Usage: </ansi>
6+
7+
<ansi fg="command">mudletmap</ansi> - Sends or refreshes map data to your Mudlet client
8+
9+
<ansi fg="subtitle">NOTES:</ansi>
10+
- This command only works if you are using a Mudlet client
11+
- The map data helps with navigation and visualization of the game world
12+
- This command runs automatically when you log in with Mudlet
13+
- If your map isn't displaying properly, you can run this command to refresh it
14+
15+
<ansi fg="magenta-bold">See also:</ansi> <ansi fg="command">help mudletui</ansi>, <ansi fg="command">checkclient</ansi>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<ansi fg="black-bold">.:</ansi> <ansi fg="magenta">Help for </ansi><ansi fg="command">mudletui</ansi>
2+
3+
The <ansi fg="command">mudletui</ansi> command allows Mudlet client users to manage UI packages that enhance the gameplay experience.
4+
5+
<ansi fg="yellow">Usage: </ansi>
6+
7+
<ansi fg="command">mudletui</ansi> - Shows status information and available commands
8+
<ansi fg="command">mudletui install</ansi> - Installs the GoMud UI package in your Mudlet client
9+
<ansi fg="command">mudletui remove</ansi> - Removes the GoMud UI package from your Mudlet client
10+
<ansi fg="command">mudletui update</ansi> - Manually check for updates to the GoMud UI package
11+
<ansi fg="command">mudletui hide</ansi> - Hides automatic Mudlet UI prompts when logging in
12+
<ansi fg="command">mudletui show</ansi> - Re-enables automatic Mudlet UI prompts when logging in
13+
14+
<ansi fg="subtitle">NOTES:</ansi>
15+
- These commands only work if you are using a Mudlet client
16+
- The UI package enhances your gameplay experience with custom windows and controls
17+
- If the installation doesn't work automatically, check for prompts in your Mudlet client
18+
- You'll automatically see a message about this feature when you log in with Mudlet
19+
- Using <ansi fg="command">mudletui hide</ansi> or <ansi fg="command">mudletui install</ansi> will hide the automatic prompts
20+
- Using <ansi fg="command">mudletui show</ansi> will re-enable the automatic prompts
21+
- Running <ansi fg="command">mudletui</ansi> without arguments shows current status and available commands
22+
23+
<ansi fg="magenta-bold">See also:</ansi> <ansi fg="command">help client</ansi>, <ansi fg="command">checkclient</ansi>

0 commit comments

Comments
 (0)