import fortnitepy import typing 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)