I have a small mud that I am trying to push a GUI package to the users with and I can't for the life of me get it to work. I followed this page https://wiki.mudlet.org/w/Manual:GMCP_Extensions page to the letter and even tried the example and it won't work. I have the mud sending this string as a test
It's at clok.contrarium.net on port 4000. I have been doing some digging on this and I may not have properly initialized telnet negotiations for the string I am sending. I will get back to you if I still have problems after tinkering with it tonight. Thanks for the quick reply by the way.
We didn't actually have any telnet negotiation to indicate that that was part of a GCMP command. I'm working on resolving it now, but pretty confident the reason why it didn't work was because it wasn't encapsulated between IAC SB GCMP and IAC SE GCMP.
Got it working, though it's a bit of a dirty implementation, blindly sending the GCMP info out. The proper method would be to send IAC WILL GCMP upon client connection, wait for an IAC DO GCMP response, and then send it out. I'm stuck on step 2 (can't seem to parse the incoming data to recognize IAC DO GCMP). I suspect the MUD client is seeing it and sending the appropriate response, since we're able to push the Client.GUI package, but nothings catching when I try to parse the incoming data to trigger the push.
However, that's on my end and kinda beyond the scope of this place, so I'll work on it a bit. Thanks for the help y'all.
Edit: Yes, I know I typoed GMCP as GCMP like fifty billion times. Whoops.
if I recall what Achaea did was it will IAC WILL GMCP, then a client will do IAC DO GMCP. then it is stored for that player who will log in eventually. once upon successful login, a server will send a GMCP information (in form of IAC SB GMCP .. IAC SE) of course you always can send the gmcp information right off the bat after client DO it.
as for the subnegotiation. it better to do IAC SB GMCP ... IAC SE. (not IAC SE GMCP at the end)
Thanks for the tip about terminating sub negotiations with just IAC SE and not needing to send the protocol identifier again. I'll fix that.
Figured out why the handshake wasn't working and should have it fully functional tomorrow of not later tonight. My client of choice for testing (not Mudlet, that's Jaren) just doesnt send responses. Once we got him testing, we got the data we were expecting and the hello message. Looks like this will be fun to play around with, not only for automatically installing our CLOKgear package, but also some other cool features. Looking forward to figuring out this External.Discord bit.