diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 8c3bd1c337..31ab8f1992 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -21,7 +21,7 @@ from evennia.commands.cmdsethandler import CmdSetHandler from evennia.commands import cmdhandler from evennia.utils import logger from evennia.utils.utils import (variable_from_module, lazy_property, - make_iter, to_unicode) + make_iter, to_unicode, to_str) _MULTISESSION_MODE = settings.MULTISESSION_MODE @@ -501,6 +501,7 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)): except Exception: logger.log_trace() + text = text if text is None else to_str(text, force_string=True) kwargs["options"] = options # relay to session(s) diff --git a/evennia/players/players.py b/evennia/players/players.py index 55a161d54a..2b7dba8872 100644 --- a/evennia/players/players.py +++ b/evennia/players/players.py @@ -416,6 +416,7 @@ class DefaultPlayer(with_metaclass(TypeclassBase, PlayerDB)): except Exception: pass + text = text if text is None else to_str(text, force_string=True) kwargs["options"] = options # session relay diff --git a/evennia/server/serversession.py b/evennia/server/serversession.py index 0e728bb544..f883e7f195 100644 --- a/evennia/server/serversession.py +++ b/evennia/server/serversession.py @@ -16,7 +16,7 @@ from django.utils import timezone from django.conf import settings from evennia.comms.models import ChannelDB from evennia.utils import logger -from evennia.utils.utils import make_iter, lazy_property +from evennia.utils.utils import make_iter, lazy_property, to_str from evennia.commands.cmdsethandler import CmdSetHandler from evennia.server.session import Session @@ -392,7 +392,7 @@ class ServerSession(Session): # 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) + self.data_out(text=to_str(text, force_string=True), **kwargs) else: self.data_out(**kwargs)