Skip to content

Detect MXP issues and offer self-healing options #7896

@mpconley

Description

@mpconley

Description of requested feature:

Add logic to Mudlet to detect a condition where output is no longer displaying due to malformed content parsed as MUD Extension Protocol (MXP) tags and either recover within the same connection, or prompt the user with an option to automatically toggle off the MXP protocol with this client and reconnect to get back to gameplay quickly.

Reasons for adding feature:

While MUDs advertise support of MXP they often rely on scripting created by others to implement it, and have acquired MXP compliance issues overtime due to years of development from various programmers where the special characters used by MXP such as <, >, and & are not properly handled. The impact to gamers while using Mudlet is that output to the screen appears to freeze or lock up. For games that present ASCII art on their welcome page with MXP special characters, this can prevent new players from joining the game with this client.

Many games depend on KaVir's protocol snippet, like SlothMUD and Realms of Despair (default games on Mudlet). Within five minutes of using both for testing purposes, either in the welcome screen (RoD) or in the help for colors (SlothMUD), there was evidence of improperly handled ampersands (&), although both games support MUD eXtension Protocol (MXP) in their help menu and perform negotiation for MXP.

Expected result of feature

Delight players by removing a frustrating blocker from gameplay for legacy MUDs that are short on developer support and slow to cure MXP compliance issues. Present a brief indicator in the main console of the text that triggered the issue in the event the player wishes to report the issue to their game.

Extra information, such as ideas for how to implement:

GIven that the screen output is disabled and that the user will need to reconnect anyways, a similar prompt mechanism to what we use to let people know TLS connections are available would be helpful.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions