Keep GMCP case if outputfunc is capitalized. Resolve #2300.
This commit is contained in:
parent
fbb17585c1
commit
f650533614
2 changed files with 16 additions and 6 deletions
|
|
@ -82,6 +82,8 @@ Up requirements to Django 3.2+
|
||||||
obj (avoids mistakenly assigning an AccountDB-typeclass to a Character etc).
|
obj (avoids mistakenly assigning an AccountDB-typeclass to a Character etc).
|
||||||
- Merged `script` and `scripts` commands into one, for both managing global- and
|
- Merged `script` and `scripts` commands into one, for both managing global- and
|
||||||
on-object Scripts. Moved `CmdScripts` and `CmdObjects` to `commands/default/building.py`.
|
on-object Scripts. Moved `CmdScripts` and `CmdObjects` to `commands/default/building.py`.
|
||||||
|
- Keep GMCP function case if outputfunc starts with capital letter (so `cmd_name` -> `Cmd.Name`
|
||||||
|
but `Cmd_nAmE` -> `Cmd.nAmE`). This helps e.g Mudlet's legacy `Client_GUI` implementation)
|
||||||
|
|
||||||
### Evennia 0.9.5 (2019-2020)
|
### Evennia 0.9.5 (2019-2020)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -230,12 +230,16 @@ class TelnetOOB:
|
||||||
be stripped on the Evennia side.
|
be stripped on the Evennia side.
|
||||||
::
|
::
|
||||||
|
|
||||||
[cmd.name, [], {}] -> Cmd.Name
|
[cmd_name, [], {}] -> Cmd.Name
|
||||||
[cmd.name, [arg], {}] -> Cmd.Name arg
|
[cmd_name, [arg], {}] -> Cmd.Name arg
|
||||||
[cmd.name, [args],{}] -> Cmd.Name [args]
|
[cmd_name, [args],{}] -> Cmd.Name [args]
|
||||||
[cmd.name, [], {kwargs}] -> Cmd.Name {kwargs}
|
[cmd_name, [], {kwargs}] -> Cmd.Name {kwargs}
|
||||||
[cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}]
|
[cmdname, [args, {kwargs}] -> Core.Cmdname [[args],{kwargs}]
|
||||||
|
|
||||||
|
For more flexibility with certain clients, if `cmd_name` is capitalized,
|
||||||
|
Evennia will leave its current capitalization (So CMD_nAmE would be sent
|
||||||
|
as CMD.nAmE but cMD_Name would be Cmd.Name)
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
There are also a few default mappings between evennia outputcmds and GMCP:
|
There are also a few default mappings between evennia outputcmds and GMCP:
|
||||||
::
|
::
|
||||||
|
|
@ -251,9 +255,13 @@ class TelnetOOB:
|
||||||
if cmdname in EVENNIA_TO_GMCP:
|
if cmdname in EVENNIA_TO_GMCP:
|
||||||
gmcp_cmdname = EVENNIA_TO_GMCP[cmdname]
|
gmcp_cmdname = EVENNIA_TO_GMCP[cmdname]
|
||||||
elif "_" in cmdname:
|
elif "_" in cmdname:
|
||||||
gmcp_cmdname = ".".join(word.capitalize() for word in cmdname.split("_"))
|
if cmdname.istitle():
|
||||||
|
# leave without capitalization
|
||||||
|
gmcp_cmdname = ".".join(word for word in cmdname.split("_"))
|
||||||
|
else:
|
||||||
|
gmcp_cmdname = ".".join(word.capitalize() for word in cmdname.split("_"))
|
||||||
else:
|
else:
|
||||||
gmcp_cmdname = "Core.%s" % cmdname.capitalize()
|
gmcp_cmdname = "Core.%s" % (cmdname if cmdname.istitle() else cmdname.capitalize())
|
||||||
|
|
||||||
if not (args or kwargs):
|
if not (args or kwargs):
|
||||||
gmcp_string = gmcp_cmdname
|
gmcp_string = gmcp_cmdname
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue