예제 #1
0
    def add_ignore(self, player_guid):
        if player_guid not in self.friends:
            self.friends[player_guid] = self._create_friend(player_guid, ignored=True)
            RealmDatabaseManager.character_add_friend(self.friends[player_guid])
        else:
            self.friends[player_guid].ignore = True
            RealmDatabaseManager.character_update_social([self.friends[player_guid]])

        data = pack('<BQ', FriendResults.FRIEND_IGNORE_ADDED, player_guid)
        packet = PacketWriter.get_packet(OpCode.SMSG_FRIEND_STATUS, data)
        self.owner.session.enqueue_packet(packet)
        self.send_ignores()
예제 #2
0
    def add_friend(self, player_guid):
        if player_guid not in self.friends:
            self.friends[player_guid] = self._create_friend(player_guid)
            player_mgr = WorldSessionStateHandler.find_player_by_guid(player_guid)
            RealmDatabaseManager.character_add_friend(self.friends[player_guid])
            status = FriendResults.FRIEND_ADDED_ONLINE if player_mgr else FriendResults.FRIEND_ADDED_OFFLINE
            data = pack('<BQ', status, player_guid)

            if player_mgr and player_mgr.online:  # Player is online.
                data += pack('<B3I', 1, player_mgr.zone, player_mgr.level, player_mgr.player.class_)

            self.owner.session.enqueue_packet(PacketWriter.get_packet(OpCode.SMSG_FRIEND_STATUS, data))
            self.send_friends()