From df74380155352a5db1c6c65a51f0dc1e98804922 Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 24 May 2016 23:09:16 +0200 Subject: [PATCH] Some minor edge-case fixes when using a session as caller. --- evennia/commands/default/player.py | 6 +++--- evennia/server/serversession.py | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/evennia/commands/default/player.py b/evennia/commands/default/player.py index c1419a4358..e1b3ae31f2 100644 --- a/evennia/commands/default/player.py +++ b/evennia/commands/default/player.py @@ -434,15 +434,15 @@ class CmdOption(COMMAND_DEFAULT_CLASS): if "save" in self.switches: # save all options - self.player.db._saved_protocol_flags = flags + self.caller.db._saved_protocol_flags = flags self.msg("{gSaved all options. Use @option/clear to remove.{n") if "clear" in self.switches: # clear all saves - self.player.db._saved_protocol_flags = {} + self.caller.db._saved_protocol_flags = {} self.msg("{gCleared all saved options.") options = dict(flags) # make a copy of the flag dict - saved_options = dict(self.player.attributes.get("_saved_protocol_flags", default={})) + saved_options = dict(self.caller.attributes.get("_saved_protocol_flags", default={})) if "SCREENWIDTH" in options: if len(options["SCREENWIDTH"]) == 1: diff --git a/evennia/server/serversession.py b/evennia/server/serversession.py index be7a0d0602..0711b23256 100644 --- a/evennia/server/serversession.py +++ b/evennia/server/serversession.py @@ -81,7 +81,7 @@ class NAttributeHandler(object): """ return key in self._store - def get(self, key): + def get(self, key, default=None): """ Get the named key value. @@ -92,7 +92,7 @@ class NAttributeHandler(object): the value of the Nattribute. """ - return self._store.get(key, None) + return self._store.get(key, default) def add(self, key, value): """ @@ -376,6 +376,9 @@ class ServerSession(Session): for the protocol(s). """ + # this can happen if this is triggered e.g. a command.msg + # that auto-adds the session, we'd get a kwarg collision. + kwargs.pop("session", None) if text is not None: self.data_out(text=text, **kwargs) else: