Example #1
0
 def determine_player(self):
     # Nut out the player.
     self.hooks.get('invoke-player-begin')()
     self.player = player = None
     player_type = self.player_type
     if player_type.lower() == 'none':
         log.info("Not using a media player; just downloading files.")
     elif player_type.lower() == 'auto':
         log.info("Trying to determine your player type...")
         options = players.player_types()
         if len(options) < 1:
             log.error("Can't detect an invokable player. Will download, "\
                       "but won't do anything else.")
         else:
             player_type = options[0]
             log.info("Automatically selected %s as your media player.",
                      player_type)
             player = players.get(player_type)
     else:
         try:
             player = players.get(player_type)
         except KeyError:
             log.critical("Requested media player %s is not defined.",
                          player_type)
         if player is None:
             log.critical("Requested media player %s can't be invoked.",
                          player_type)
     self.player_type = player_type
     self.player = player
     self.hooks.get('invoke-player-end')()
     return self.player
Example #2
0
def cmd_summon(s, r):
    '''summon <character>|<mob class>

    If the name or id# given is an existing player or mob, this
        will act like: teleport <character> to <here>.

    If the name does not exist already, but is a mob class, this
        will be like: clone <mobclass>.

    '''

    room = s.room
    objname = r.get('objname', '')
    objtzid = r.get('objtzid', 0)

    char = players.getname(objname) or players.get(objtzid) or \
                mobs.getname(objname) or mobs.get(objtzid)

    if char is not None:
        char.teleport(room)
        s.message('You summon', char, '.')

    elif objname in mobs.classes():
        mob = _clone_mob(s, objname, objtzid)
        s.message('You summon', mob, '.')

    else:
        iden = objname if objname else '#%s' % objtzid
        s.message('Unable to summon', iden, '.')
Example #3
0
    def near_arrive(self, info):
        wearer = players.get(self._wearerid) or mobs.get(self._wearerid)
        if wearer is not None:
            arriver = info['actor']
            if arriver is wearer:
                self.near_look(info)

            else:
                if not arriver.visible:
                    wearer.message('Someone invisible just arrived.')
Example #4
0
    def determine_player(self): 
        # Nut out the player. 
        self.hooks.get('invoke-player-begin')()
        self.player = player = None
        player_type = self.player_type
        if player_type.lower() == 'none': 
            log.info("Not using a media player; just downloading files.")
        elif player_type.lower() == 'auto': 
            log.info("Trying to determine your player type...")
            options = players.player_types()
            if len(options) < 1: 
                log.error("Can't detect an invokable player. Will download, "\
                          "but won't do anything else.")
            else: 
                player_type = options[0]
                log.info("Automatically selected %s as your media player.",
                         player_type)
                player = players.get(player_type)
        else: 
            try: 
                player = players.get(player_type)
            except KeyError: 
                log.critical("Requested media player %s is not defined.", 
                             player_type)
            if player is None: 
                log.critical("Requested media player %s can't be invoked.",
                             player_type)
        self.player_type = player_type
        self.player = player

        #iTunes specific options
        if isinstance(player,players.iTunesForWindows) or \
           isinstance(player,players.iTunesForDarwin):
            for opt in ['ow_genre','ow_genre_enable']:
                setattr(player,opt,getattr(self,"pl_opt_iTunes_%s" % opt))
        #Winamp specific options
        if isinstance(player,players.Winamp):
            for opt in ['enqueues']:
                setattr(player,opt,getattr(self,"pl_opt_Winamp_%s" % opt))
        
        self.hooks.get('invoke-player-end')()
        return self.player
Example #5
0
def login_player(player):
    if not request.json:
        print('not json')
        abort(400)

    if "psw" not in request.json:
        print('no psw')
        abort(400)
    psw = request.json["psw"]
    result = players.login(player, psw)
    p = players.get(player)
    if result is None:
        abort(400)
    return jsonify({'user': result, 'info': p})
Example #6
0
def add_player():
    if not request.json:
        abort(400)

    if "name" not in request.json or "psw" not in request.json:
        abort(400)

    name = request.json["name"]
    psw = request.json["psw"]
    email = ''
    if "email" in request.json:
        email = request.json["email"]
    admin = False
    if "admin" in request.json:
        admin = request.json["admin"]
    if not players.add(name, psw, email, admin):
        abort(400)
    result = players.login(name, psw)
    p = players.get(name)
    return jsonify({'user': result, 'info': p})
Example #7
0
def cmd_teleport(s, r=None):
    '''teleport [to [<room>|<character>]] OR teleport <object> to <room>

    Teleport self to the named room or character, or if no name is given
        teleport self to home, OR

    Teleport the object to the room.

    '''

    room = s.room
    player = s.player
    if room is not None:
        room.action(dict(act='teleport', actor=player))

    objname = r.get('objname', '')
    objtzid = r.get('objtzid', 0)

    destname = r.get('obj2name', '')
    desttzid = r.get('obj2tzid', 0)

    if (objname or objtzid) and (destname or desttzid):
        destination = rooms.getname(destname) or rooms.get(desttzid)
        if destination is None:
            s.message('No such place.')
            return

        obj = find(r, room, player, room) or \
                players.getname(objname) or players.get(objtzid) or \
                mobs.getname(objname) or mobs.get(objtzid) or \
                tzindex.get(objtzid)
        if obj is None:
            s.message('No such object.')
        elif obj._bse == 'Room':
            s.message('You cannot teleport a room.')
        else:
            obj.teleport(destination)
            s.message('You teleport', obj, '.')

    elif not (destname or desttzid):
        # send the player home
        player.teleport()

    else:
        destination = rooms.getname(destname) or \
                        rooms.get(desttzid)

        if destination is None:
            toplayer = players.getname(destname) or \
                        players.get(desttzid)

            if toplayer is not None:
                destination = toplayer.room
                if destination is None:
                    s.message('Player is not logged in.')
                    return
            else:
                tomob = mobs.getname(destname) or \
                        mobs.get(desttzid)

                if tomob is not None:
                    destination = tomob.room
                else:
                    s.message('No such room or character.')
                    return

        player.teleport(destination)