cizra / pycat

MUD client in Python
The Unlicense
28 stars 14 forks source link

Has anyone ever been able to get this to work this year? #15

Open redactedaccount opened 1 month ago

redactedaccount commented 1 month ago

Can't for the life of me catch a packet. Followed instructions to the letter.

in my 'sample':

    def getHostPort(self):
        return 'sneezy-mud.com', 7900

in shell:

python3 pycat.py sample 7900

Output on Mudlet:

[  OK  ]  - Mudlet-lua API & Geyser Layout manager loaded.
[  OK  ]  - Map loaded successfully (0s).
[ INFO ]  - Looking up the IP address of server: ::1:7900 ...
[ INFO ]  - The IP address of ::1 has been found. It is: ::1
[ INFO ]  - Trying to connect to ::1:7900 ...
[ INFO ]  - A connection has been established successfully.

-- Connecting

(Hangs on '-- Connecting'. Catches input just fine, as the map module will ask for an update. But doesn't seem to be passing output from telnet to the client)

cizra commented 1 month ago

Yep, next you're supposed to connect a regular MUD client (tintin++ or netcat or somesuch) to localhost:7900. Pycat acts as a proxy, implementing scripting in itself, and presenting a plaintext TCP socket for you to connect to.

redactedaccount commented 1 month ago

Yep, next you're supposed to connect a regular MUD client

See here where I said 'Output on Mudlet:'?

Mudlet is a mud client. That's what that means.

localhost:7900

See this? The IP address of ::1 has been found. It is: ::1 ::1 is localhost

It was like 5 lines of text and some very short console output formatted as nicely as I could, how'd you miss these details?

I ended up just quickly writing my own telnet client, I don't have time for this.

cizra commented 1 month ago

See here where I said 'Output on Mudlet:'?

Nope, missed that bit. Sorry.

It was like 5 lines of text and some very short console output formatted as nicely as I could, how'd you miss these details?

I'm about as diligent in providing customer support, as you are paying for it :D

I'm testing now... I pushed a commit, 55c0389, where I switch from sneezymud.org to sneezy-mud.com, just to be on the same page. I don't have any other modifications.

Launching pycat:

$ python3 ./pycat.py sample 4000
pycat/./pycat.py:11: DeprecationWarning: 'telnetlib' is deprecated and slated for removal in Python 3.13
  import telnetlib
Created a new map
Connecting
Connected
Enabling GMCP
Sending GMCP:
Core.Supports.Set ["char 1", "char.base 1", "char.maxstats 1", "char.status 1", "char.statusvars 1", "char.vitals 1", "char.worth 1", "comm 1", "comm.channel 1", "comm.tick 1", "group 1", "room 1", "room.info 1"]
Sending GMCP:
request room
Sending GMCP:
request char

In another window, connecting to it:

$ socat readline tcp-connect:[::1]:4000
-- Connecting
-- Connected
-- Enabling GMCP

Welcome to SneezyMUD (build 6470a1b3ca00379f390e4ef1df093f80c37d89a5, 2024-07-02)
Celebrating 32 years of quality mudding (est. 1 May 1992)

Please type NEW (case sensitive) for a new account, or ? for help.
If you need assistance, join our Discord @ https://discord.gg/TMz8gMBDXA

Login:

Testing the same in Mudlet:

   OK  ]  - Lua module lfs (Lua File System) loaded.
[  OK  ]  - Lua module lua-zip loaded.
[  OK  ]  - Lua module rex_pcre loaded.
[  OK  ]  - Lua module sqlite3 loaded.
[  OK  ]  - Lua module lua-utf8 loaded.
[  OK  ]  - Lua module yajl loaded.
[ INFO ]  - Reading map. Format version: 20. File:
            "...config/mudlet/profiles/localhost 4000/map/2024-07-31#10-09-32map.dat",
            please wait...
[ INFO ]  - Successfully read the map file (0.00s), checking some
            consistency details...
[ INFO ]  - Map audit starting...
[ INFO ]  - Area id numbering is satisfactory.
[ INFO ]  - Room id numbering is satisfactory.
[  OK  ]  - Auditing of map completed (0.00s). Enjoy your game...
[  OK  ]  - Map loaded successfully (0s).
[  OK  ]  - Mudlet-lua API & Geyser Layout manager loaded.
[ INFO ]  - Looking up the IP address of server: ::1:4000 ...
[ INFO ]  - The IP address of ::1 has been found. It is: ::1
[ INFO ]  - Trying to connect to ::1:4000 ...
[ INFO ]  - A connection has been established successfully.

-- Connecting
-- Connected
-- Enabling GMCP

Welcome to SneezyMUD (build 6470a1b3ca00379f390e4ef1df093f80c37d89a5, 2024-07-02)
Celebrating 32 years of quality mudding (est. 1 May 1992)

Please type NEW (case sensitive) for a new account, or ? for help.
If you need assistance, join our Discord @ https://discord.gg/TMz8gMBDXA

Login: 

No idea why it might not work for you. Have you blocked IPv6 somehow?

I ended up just quickly writing my own telnet client, I don't have time for this.

Have fun rediscovering all the beautiful corner cases :)