'This is a shortcut instead of calling msg() directly on an
object - it will detect if caller is an Object or a Player and
also appends self.session automatically if self.msg_all_sessions is False.
Args:
text (str, optional): Text string of message to send.
to_obj (Object, optional): Target object of message. Defaults to self.caller.
from_obj (Object, optional): Source of message. Defaults to to_obj.
session (Session, optional): Supply data only to a unique
session (ignores the value of `self.msg_all_sessions`).
Kwargs:
options (dict): Options to the protocol.
any (any): All other keywords are interpreted as th
name of send-instructions.'

def msg(self, text=None, to_obj=None, from_obj=None, session=None, **kwargs):

    from_obj = (from_obj or self.caller)
    to_obj = (to_obj or from_obj)
    if ((not session) and (not self.msg_all_sessions)):
        if (to_obj == self.caller):
            session = self.session
        else:
            session = to_obj.sessions.get()
    to_obj.msg(text=text, from_obj=from_obj, session=session, **kwargs)
