X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=mudpy%2Fcommand.py;h=20b448cf6ea19b78477a1477b9b9c37aec4a42cd;hp=2b20b1a6d4b818e7be8f8efc149f09d99e1c8c13;hb=dc3b9c3f13b06b80db5c9f9a4c15804dfd60af4a;hpb=a93dc77b0d77e622834f524e2060d516b47bbc58 diff --git a/mudpy/command.py b/mudpy/command.py index 2b20b1a..20b448c 100644 --- a/mudpy/command.py +++ b/mudpy/command.py @@ -6,6 +6,7 @@ import random import re +import traceback import unicodedata import mudpy @@ -117,8 +118,13 @@ def error(actor, input_data): else: message = "Arglebargle, glop-glyf!?!" - # send the error message - actor.send(message) + # try to send the error message, and log if we can't + try: + actor.send(message) + except Exception: + mudpy.misc.log( + 'Sending a command error to user %s raised exception...\n%s' % ( + actor.owner.account.get("name"), traceback.format_exc())) def halt(actor, parameters): @@ -257,10 +263,12 @@ def look(actor, parameters): def move(actor, parameters): """Move the avatar in a given direction.""" - if parameters in actor.universe.contents[actor.get("location")].portals(): - actor.move_direction(parameters) - else: - actor.send("You cannot go that way.") + for portal in sorted( + actor.universe.contents[actor.get("location")].portals()): + if portal.startswith(parameters): + actor.move_direction(portal) + return(portal) + actor.send("You cannot go that way.") def preferences(actor, parameters):