Difference between revisions of "Notes on MMCP"

From Mudlet
Jump to navigation Jump to search
(→‎Initial page creation: - Inset table of MMCP command bytes)
 
(→‎MMCP Notes: Start on command comparison table)
 
Line 53: Line 53:
 
|}
 
|}
  
 +
{| class="wikitable sortable"
 +
|+ MMCP commands for different clients
 +
|-
 +
! Function !! MudMaster !! MUSHClient !! TinTin++ !! Mudlet
 +
|-
 +
| Set incoming port number to P || || #accept P || #CHAT {INIT} {P} || chatStartServer(P[, "IPAddress")
 +
"IP Address" is what is advertised to peers that third parties can use to connect to us
 +
|-
 +
| Call another person on Address A.A.A.A, Port P || || #chat A.A.A.A [P] || #CHAT {CALL} {A.A.A.A} {P} || chatCall("A.A.A.A"[, P])
 +
|-
 +
| List connections || || #chats || #CHAT {WHO} || chatList()
 +
|-
 +
| More information about peer || || #chatdetails <name> || ||
 +
|-
 +
| Send chat message_text to everyone || || #chatall message_text || #CHAT {MESSAGE} {ALL} {message_text} || chatAll("message_text")
 +
|-
 +
| Send chat message_text to someone || || #chat someone message_text || #CHAT {MESSAGE} {someone} {message_text} || chat("someone", "message_text")
 +
|-
 +
| End call to someone || || #hangup someone || #CHAT {ZAP} {someone} || unchat("someone")
 +
|-
 +
| End all calls || || #hangupall || #CHAT {ZAP} {ALL} ||
 +
|}
 
==== Links to reference material ====
 
==== Links to reference material ====
 
* [https://tintin.mudhalla.net/protocols/mmcp/| MMCP] Scandum's Mudhalla reference material.
 
* [https://tintin.mudhalla.net/protocols/mmcp/| MMCP] Scandum's Mudhalla reference material.
 
* [http://web.archive.org/web/20240118214348/https://www.zuggsoft.com/zchat/zchatprot.htm| ZChat] Zugg's notes (archive copy to ensure preservation).
 
* [http://web.archive.org/web/20240118214348/https://www.zuggsoft.com/zchat/zchatprot.htm| ZChat] Zugg's notes (archive copy to ensure preservation).
 
* Post on [https://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=15093&page=1| MUSHClient] forums where I start to discuss MMCP, Mudlet and extending the protocol to get hints on encoding and language/locale.
 
* Post on [https://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=15093&page=1| MUSHClient] forums where I start to discuss MMCP, Mudlet and extending the protocol to get hints on encoding and language/locale.

Latest revision as of 02:29, 14 April 2024

Current development work is taking place in PR 7155.

MMCP command codes
Code Name Purpose Supported by Mudlet
0x01 (1) Name Change Yes
0x02 (2) Request Connections Use to get Peer's other (public) connections so that this client can connect to those as well Yes
0x03 (3) Connection List Use to give reply to "Request Connections" with a comma delimited "address, port" list Yes, but may not be processed to make those connections yet
0x04 (4) Chat everyone Message to be sent to all Peers Yes
0x05 (5) Chat personal Message to be sent to addressed Peer only Yes
0x06 (6) Chat group Message to be sent to addressed Group only Yes
0x07 (7) Message System message, e.g. a message about something changing in the Chat system Yes
0x08 (8) Do not disturb Unclear - listed in Mudhalla information Unclear
0x13 (19) Version Details of the peer, i.e. client name and version Need to check how/when used
0x14 (20) File start Request to initiate file transfer (sent from sender) Not yet
0x15 (21) File deny Reject a "File start" (sent from intended receiver) Not yet
0x16 (22) File block request Accept a "File start" and request next (even the first) 500 byte chunk of file (without an END marker) Not yet
0x17 (23) File block Next block of data in response to 22 Not yet
0x18 (24) File end Sent by the recipient to indicate reception of last block if it is not exactly 500 bytes Not yet
0x19 (25) File cancel Terminates file transfer (can be sent from either end) Not yet
0x1A (26) Ping request Initiates a Ping Yes
0x1B (27) Ping reply Response to a Ping Yes
0x1C (28) Peek connections Use to get Peer's other (public) connections Yes
0x1D (29) Peek reply Response to a Peek request, in a '~' delimited list (address~port~name~...) Yes
0x1E (30) Snoop request Request to start or stop snooping data from a peer, the recipient decides whether to allow it or not Yes
0x1F (31) Snoop data Data sent by the recipient if it allows a snoop, the data should be echoed by the peer that sent the request but not be further forwarded Yes
0xE0 (240) Mudlet side channel Additional thing put in by creator of PR Yes
0xFF (255) End of command Marks the end of most messages (note that the byte value is not valid for UTF-8 but is for most extended ASCII encoding - so has to be processed at the socket side of the connection after/before it is output from/input to an encoder of a peer Yes
MMCP commands for different clients
Function MudMaster MUSHClient TinTin++ Mudlet
Set incoming port number to P #accept P #CHAT {INIT} {P} chatStartServer(P[, "IPAddress")

"IP Address" is what is advertised to peers that third parties can use to connect to us

Call another person on Address A.A.A.A, Port P #chat A.A.A.A [P] #CHAT {CALL} {A.A.A.A} {P} chatCall("A.A.A.A"[, P])
List connections #chats #CHAT {WHO} chatList()
More information about peer #chatdetails <name>
Send chat message_text to everyone #chatall message_text #CHAT {MESSAGE} {ALL} {message_text} chatAll("message_text")
Send chat message_text to someone #chat someone message_text #CHAT {MESSAGE} {someone} {message_text} chat("someone", "message_text")
End call to someone #hangup someone #CHAT {ZAP} {someone} unchat("someone")
End all calls #hangupall #CHAT {ZAP} {ALL}

Links to reference material

  • MMCP Scandum's Mudhalla reference material.
  • ZChat Zugg's notes (archive copy to ensure preservation).
  • Post on MUSHClient forums where I start to discuss MMCP, Mudlet and extending the protocol to get hints on encoding and language/locale.