mirror of
https://github.com/evennia/evennia.git
synced 2026-03-26 09:46:32 +01:00
Clarify mapping from Evennia-outputfuncs to GMCP-style cmdnames
This commit is contained in:
parent
fd33a376fa
commit
1ed115e2d1
1 changed files with 28 additions and 16 deletions
|
|
@ -229,24 +229,41 @@ class TelnetOOB(object):
|
|||
IRE games use, supposedly, and what clients appear
|
||||
to have adopted):
|
||||
|
||||
[cmdname, [], {}] -> cmdname
|
||||
[cmdname, [arg], {}] -> cmdname arg
|
||||
[cmdname, [args],{}] -> cmdname [args]
|
||||
[cmdname, [], {kwargs}] -> cmdname {kwargs}
|
||||
[cmdname, [args, {kwargs}] -> cmdname [[args],{kwargs}]
|
||||
[cmd.name, [], {}] -> Cmd.Name
|
||||
[cmd.name, [arg], {}] -> Cmd.Name arg
|
||||
[cmd.name, [args],{}] -> Cmd.Name [args]
|
||||
[cmd.name, [], {kwargs}] -> Cmd.Name {kwargs}
|
||||
[cmdname, [args, {kwargs}] -> Custom.Cmdname [[args],{kwargs}]
|
||||
|
||||
Notes:
|
||||
There are also a few default mappings between evennia outputcmds and
|
||||
GMCP:
|
||||
client_options -> Core.Supports.Get
|
||||
get_inputfuncs -> Core.Commands.Get
|
||||
get_value -> Char.Value.Get
|
||||
repeat -> Char.Repeat.Update
|
||||
monitor -> Char.Monitor.Update
|
||||
|
||||
"""
|
||||
|
||||
if cmdname in EVENNIA_TO_GMCP:
|
||||
gmcp_cmdname = EVENNIA_TO_GMCP[cmdname]
|
||||
elif "_" in cmdname:
|
||||
gmcp_cmdname = ".".join(word.capitalize() for word in cmdname.split("_"))
|
||||
else:
|
||||
gmcp_cmdname = "Custom.%s" % cmdname.capitalize()
|
||||
|
||||
if not (args or kwargs):
|
||||
gmcp_string = cmdname
|
||||
gmcp_string = gmcp_cmdname
|
||||
elif args:
|
||||
if len(args) == 1:
|
||||
args = args[0]
|
||||
if kwargs:
|
||||
gmcp_string = "%s %s" % (cmdname, json.dumps([args, kwargs]))
|
||||
gmcp_string = "%s %s" % (gmcp_cmdname, json.dumps([args, kwargs]))
|
||||
else:
|
||||
gmcp_string = "%s %s" % (cmdname, json.dumps(args))
|
||||
gmcp_string = "%s %s" % (gmcp_cmdname, json.dumps(args))
|
||||
else: # only kwargs
|
||||
gmcp_string = "%s %s" % (cmdname, json.dumps(kwargs))
|
||||
gmcp_string = "%s %s" % (gmcp_cmdname, json.dumps(kwargs))
|
||||
|
||||
# print("gmcp string", gmcp_string) # DEBUG
|
||||
return gmcp_string
|
||||
|
|
@ -398,14 +415,9 @@ class TelnetOOB(object):
|
|||
kwargs.pop("options", None)
|
||||
|
||||
if self.MSDP:
|
||||
msdp_cmdname = cmdname
|
||||
encoded_oob = self.encode_msdp(msdp_cmdname, *args, **kwargs)
|
||||
encoded_oob = self.encode_msdp(cmdname, *args, **kwargs)
|
||||
self.protocol._write(IAC + SB + MSDP + encoded_oob + IAC + SE)
|
||||
|
||||
if self.GMCP:
|
||||
if cmdname in EVENNIA_TO_GMCP:
|
||||
gmcp_cmdname = EVENNIA_TO_GMCP[cmdname]
|
||||
else:
|
||||
gmcp_cmdname = "Custom.Cmd"
|
||||
encoded_oob = self.encode_gmcp(gmcp_cmdname, *args, **kwargs)
|
||||
encoded_oob = self.encode_gmcp(cmdname, *args, **kwargs)
|
||||
self.protocol._write(IAC + SB + GMCP + encoded_oob + IAC + SE)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue