Updated client_options inputfunc to also return current settings over OOB.
This commit is contained in:
parent
b1b8abf46a
commit
3d6fa94d9a
1 changed files with 40 additions and 42 deletions
|
|
@ -92,12 +92,14 @@ def default(session, cmdname, *args, **kwargs):
|
||||||
log_err(err.format(sessid=session.sessid, cmdname=cmdname, args=args, kwargs=kwargs))
|
log_err(err.format(sessid=session.sessid, cmdname=cmdname, args=args, kwargs=kwargs))
|
||||||
|
|
||||||
|
|
||||||
def client_settings(session, *args, **kwargs):
|
def client_options(session, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
This allows the client an OOB way to inform us about its name and capabilities.
|
This allows the client an OOB way to inform us about its name and capabilities.
|
||||||
This will be integrated into the session settings
|
This will be integrated into the session settings
|
||||||
|
|
||||||
Kwargs:
|
Kwargs:
|
||||||
|
get (bool): If this is true, return the settings as a dict
|
||||||
|
(ignore all other kwargs).
|
||||||
client (str): A client identifier, like "mushclient".
|
client (str): A client identifier, like "mushclient".
|
||||||
version (str): A client version
|
version (str): A client version
|
||||||
ansi (bool): Supports ansi colors
|
ansi (bool): Supports ansi colors
|
||||||
|
|
@ -111,6 +113,16 @@ def client_settings(session, *args, **kwargs):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
flags = session.protocol_flags
|
flags = session.protocol_flags
|
||||||
|
if kwargs.get("get", False):
|
||||||
|
# return current settings
|
||||||
|
options = dict((key, flags[key]) for key in flags
|
||||||
|
if key in ("ANSI", "XTERM256", "MXP",
|
||||||
|
"UTF-8", "SCREENREADER",
|
||||||
|
"MCCP", "SCREENHEIGHT",
|
||||||
|
"SCREENWIDTH"))
|
||||||
|
session.msg(client_options=options)
|
||||||
|
return
|
||||||
|
|
||||||
for key, value in kwargs.iteritems():
|
for key, value in kwargs.iteritems():
|
||||||
key = key.lower()
|
key = key.lower()
|
||||||
if key == "client":
|
if key == "client":
|
||||||
|
|
@ -143,6 +155,13 @@ def client_settings(session, *args, **kwargs):
|
||||||
session.sessionhandler.session_portal_sync(session)
|
session.sessionhandler.session_portal_sync(session)
|
||||||
|
|
||||||
|
|
||||||
|
def get_client_options(session, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Alias wrapper for getting options
|
||||||
|
"""
|
||||||
|
client_options(session, get=True)
|
||||||
|
|
||||||
|
|
||||||
def login(session, *args, **kwargs):
|
def login(session, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Peform a login. This only works if session is currently not logged
|
Peform a login. This only works if session is currently not logged
|
||||||
|
|
@ -160,10 +179,27 @@ def login(session, *args, **kwargs):
|
||||||
session.sessionhandler.login(session, player)
|
session.sessionhandler.login(session, player)
|
||||||
|
|
||||||
|
|
||||||
|
def get_value(session, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Return the value of a given attribute or db_property on the
|
||||||
|
session's current player or character.
|
||||||
|
|
||||||
|
Kwargs:
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
def repeat(session, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Call a named
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# aliases for GMCP
|
# aliases for GMCP
|
||||||
core_hello = client_settings # Core.Hello
|
core_hello = client_options # Core.Hello
|
||||||
core_supports_set = client_settings # Core.Supports.Set
|
core_supports_set = client_options # Core.Supports.Set
|
||||||
char_login = login # Char.Login
|
core_supports_get = get_client_options # Core.Supports.Get
|
||||||
|
char_login = login # Char.Login
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------------
|
||||||
|
|
@ -172,44 +208,6 @@ char_login = login # Char.Login
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------
|
|
||||||
# All OOB commands must be on the form
|
|
||||||
# cmdname(session, *args, **kwargs)
|
|
||||||
#------------------------------------------------------------
|
|
||||||
|
|
||||||
#
|
|
||||||
# General OOB commands
|
|
||||||
#
|
|
||||||
|
|
||||||
def oob_error(session, errmsg, *args, **kwargs):
|
|
||||||
"""
|
|
||||||
Error handling method. Error messages are relayed here.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
session (Session): The session to receive the error
|
|
||||||
errmsg (str): The failure message
|
|
||||||
|
|
||||||
A function with this name is special and is also called by the
|
|
||||||
oobhandler when an error occurs already at the execution stage
|
|
||||||
(such as the oob function not being recognized or having the wrong
|
|
||||||
args etc). Call this from other oob functions to centralize error
|
|
||||||
management.
|
|
||||||
|
|
||||||
"""
|
|
||||||
session.msg(oob=("error", ("OOB ERROR: %s" % errmsg,)))
|
|
||||||
|
|
||||||
def oob_echo(session, *args, **kwargs):
|
|
||||||
"""
|
|
||||||
Test echo function. Echoes args, kwargs sent to it.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
session (Session): The Session to receive the echo.
|
|
||||||
args (list of str): Echo text.
|
|
||||||
kwargs (dict of str, optional): Keyed echo text
|
|
||||||
|
|
||||||
"""
|
|
||||||
session.msg(oob=("echo", args, kwargs))
|
|
||||||
|
|
||||||
##OOB{"repeat":10}
|
##OOB{"repeat":10}
|
||||||
def oob_repeat(session, oobfuncname, interval, *args, **kwargs):
|
def oob_repeat(session, oobfuncname, interval, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue