import fortnitepy import typing class PartyInvite: async def on_event(invitation: fortnitepy.ReceivedPartyInvitation): print('Accepting party invitation from {}'.format(invitation.sender.display_name)) clientParty = await invitation.accept() for partyMember in clientParty.members: if not self.get_friend(partyMember.id) and self.user.id != partyMember.id: print('Adding {} as friend'.format(partyMember.display_name)) await partyMember.add() class IncomingFriendRequest: async def on_event(request: typing.Union[fortnitepy.friend.IncomingPendingFriend, fortnitepy.friend.OutgoingPendingFriend]): if isinstance(request, fortnitepy.friend.IncomingPendingFriend): incoming_request = typing.cast(fortnitepy.friend.IncomingPendingFriend, request) print('Accepting friend request from {}'.format(incoming_request.display_name)) await incoming_request.accept() class PresenceObserver: async def update(self, display_name: str, playing: bool) -> None: pass class FriendPresence: async def on_event(before, after: fortnitepy.Presence, observers): if before is not None and after is not None: if before.playing != after.playing: print('FriendPresence changed for user {}, before {}, after {}'.format(after.friend.display_name, before.playing, after.playing)) for observer in observers: if isinstance(observer, PresenceObserver): await observer.update(after.friend.display_name, after.playing)