def has_connection(self, player): """ Checks so this player is actually listening to this channel. """ # also handle object.player calls player, typ = identify_object(player) if typ == 'object': player = player.player player, typ = identify_object(player) if player and not typ == "player": logger.log_errmsg("Channel.has_connection received object of type '%s'. It only accepts players/characters." % typ) return # do the check return PlayerChannelConnection.objects.has_player_connection(player, self)
def remove_receiver(self, obj): "Remove a single recevier" obj, typ = identify_object(obj) if typ == 'player': self.db_receivers_players.remove(obj) elif typ == 'object': self.db_receivers_objects.remove(obj) else: raise ValueError self.save()
def __hide_from_set(self, value): "Setter. Allows for self.hide_from = value. Will append to hiders" obj, typ = identify_object(value) if typ == "player": self.db_hide_from_players.add(obj) elif typ == "object": self.db_hide_from_objects.add(obj) elif typ == "channel": self.db_hide_from_channels.add(obj) else: raise ValueError self.save()
def remove_sender(self, value): "Remove a single sender or a list of senders" for val in make_iter(value): obj, typ = identify_object(val) if typ == 'player': self.db_sender_players.remove(obj) elif typ == 'object': self.db_sender_objects.remove(obj) elif isinstance(obj, basestring): self.db_sender_external = obj else: raise ValueError(obj) self.save()
def __receivers_set(self, value): "Setter. Allows for self.receivers = value. This appends a new receiver to the message." for val in (v for v in make_iter(value) if v): obj, typ = identify_object(val) if typ == 'player': self.db_receivers_players.add(obj) elif typ == 'object': self.db_receivers_objects.add(obj) elif not obj: return else: raise ValueError self.save()
def __senders_set(self, value): "Setter. Allows for self.sender = value" for val in (v for v in make_iter(value) if v): obj, typ = identify_object(val) if typ == 'player': self.db_sender_players.add(obj) elif typ == 'object': self.db_sender_objects.add(obj) elif isinstance(typ, basestring): self.db_sender_external = obj elif not obj: return else: raise ValueError(obj) self.save()
def __receivers_set(self, value): """ Setter. Allows for self.receivers = value. This appends a new receiver to the message. """ for val in (v for v in make_iter(value) if v): obj, typ = identify_object(val) if typ == 'player': self.db_receivers_players.add(obj) elif typ == 'object': self.db_receivers_objects.add(obj) elif not obj: return else: raise ValueError self.save()