From 77d35d7875abbbfaa2507d1b22bf1f370172a12b Mon Sep 17 00:00:00 2001 From: John Cote Date: Mon, 19 Jul 2021 21:39:28 -0400 Subject: [PATCH] friends: Handle makeFriendsReply --- etc/toon.dc | 1 + otp/friends/FriendManagerAI.py | 12 ++++++++++++ toontown/friends/ToontownFriendsManagerAI.py | 3 +++ toontown/friends/ToontownFriendsManagerUD.py | 5 +++++ 4 files changed, 21 insertions(+) diff --git a/etc/toon.dc b/etc/toon.dc index 4165eca..3370b79 100755 --- a/etc/toon.dc +++ b/etc/toon.dc @@ -2853,6 +2853,7 @@ dclass ToontownFriendsManager : DistributedObject { getAvatarDetailsRequest(uint32) clsend; getAvatarDetailsResponse(blob); makeFriends(uint32, uint32, uint8, uint32); + makeFriendsResponse(uint8, uint32) airecv; }; dclass TTSpeedchatRelay : SpeedchatRelay { diff --git a/otp/friends/FriendManagerAI.py b/otp/friends/FriendManagerAI.py index 7f8d28a..1478122 100644 --- a/otp/friends/FriendManagerAI.py +++ b/otp/friends/FriendManagerAI.py @@ -43,6 +43,18 @@ class FriendManagerAI(DistributedObjectGlobalAI): self.declineFriends2 = {} self.lastRollTime = 0 + def generate(self): + DistributedObjectGlobalAI.generate(self) + + # The FriendManagerAI always listens for these events, which + # will be sent in response to secret requests to the database, + # via the AIR. + self.accept("makeFriendsReply", self.makeFriendsReply) + + def delete(self): + self.ignore("makeFriendsReply") + DistributedObjectGlobalAI.delete(self) + ### Messages sent from inviter client to AI def friendQuery(self, inviteeId): diff --git a/toontown/friends/ToontownFriendsManagerAI.py b/toontown/friends/ToontownFriendsManagerAI.py index 06f93eb..799ee24 100644 --- a/toontown/friends/ToontownFriendsManagerAI.py +++ b/toontown/friends/ToontownFriendsManagerAI.py @@ -15,3 +15,6 @@ class ToontownFriendsManagerAI(DistributedObjectGlobalAI): parameters: an integer result code, and the supplied context. """ self.sendUpdate('makeFriends', [avatarAId, avatarBId, flags, context]) + + def makeFriendsResponse(self, result, context): + messenger.send("makeFriendsReply", [result, context]) diff --git a/toontown/friends/ToontownFriendsManagerUD.py b/toontown/friends/ToontownFriendsManagerUD.py index 626ca42..12d7172 100644 --- a/toontown/friends/ToontownFriendsManagerUD.py +++ b/toontown/friends/ToontownFriendsManagerUD.py @@ -237,10 +237,12 @@ class MakeFriendsOperation(FriendsOperation): def _handleDone(self): self.resultCode = 1 + self.friendsManager.sendMakeFriendsResponse(self.resultCode, self.context) FriendsOperation._handleDone(self) def _handleError(self, error): self.resultCode = 0 + self.friendsManager.sendMakeFriendsResponse(self.resultCode, self.context) FriendsOperation._handleError(self, error) @@ -251,6 +253,9 @@ class ToontownFriendsManagerUD(DistributedObjectGlobalUD): DistributedObjectGlobalUD.__init__(self, air) self.operations = [] + def sendMakeFriendsResponse(self, result, context): + self.sendUpdate('makeFriendsResponse', [result, context]) + def sendFriendOnline(self, avId, friendId, commonChatFlags, whitelistChatFlags): datagram = PyDatagram() datagram.addUint32(friendId) # doId