def execute(self):
        if not self.args:
            self.pc.update_output('Where did you want to go to?')
            return
        exp = r'((room)?([ ]?(?P<room_id>\d+))(([ ]+in)?([ ]+area)?([ ]+(?P<area>\w+)))?)|(?P<name>\w+)'
        match = re.match(exp, self.args.strip())
        message = 'Type "help goto" for help with this command.'
        if not match:
            self.pc.update_output(message)
            return
        name, area_name, room_id = match.group('name', 'area', 'room_id')
        # They're trying to go to the same room as another player
        if name:
            # go to the same room that player is in
            per = self.world.get_player(name)
            if per:
                if per.location:
                    self.pc.go(per.location, self.pc.goto_appear, 
                                 self.pc.goto_disappear)
                else:
                    self.pc.update_output('You can\'t reach %s.\n' % per.fancy_name())
            else:
                self.pc.update_output('That person doesn\'t exist.\n')
        # They're trying to go to a specific room
        elif room_id:
            # See if they specified an area -- if they did, go there
            if area_name:
                area = self.world.get_area(area_name)
                if not area:
                    self.pc.update_output('Area "%s" doesn\'t exist.' % area_name)
                    return
            else:
                if not self.pc.location:
                    self.pc.update_output(message)
                    return
                area = self.pc.location.area
            room = area.get_room(room_id)
            if room:
                self.pc.go(room, self.pc.goto_appear, 
                             self.pc.goto_disappear)
            else:
                self.pc.update_output('Room "%s" doesn\'t exist in area %s.' % (room_id, area.name))
        else:
            self.pc.update_output(message)
dataset/ETHPy150Open shinymud/ShinyMUD/src/shinymud/commands/commands.py/Goto.execute/original