From 7b992afe70925f244ca6e9746071ae71e497b54e Mon Sep 17 00:00:00 2001 From: Dmitrii Morozov Date: Mon, 8 Apr 2024 23:40:24 +0200 Subject: Observe status of friends --- FortniteEvents.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 FortniteEvents.py (limited to 'FortniteEvents.py') diff --git a/FortniteEvents.py b/FortniteEvents.py new file mode 100644 index 0000000..d8fac0d --- /dev/null +++ b/FortniteEvents.py @@ -0,0 +1,34 @@ +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: + 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): + observer.update(after.friend.display_name, after.playing) -- cgit v1.2.3