friends: Handle adding friends who are offline

This commit is contained in:
John Cote 2021-07-14 00:01:17 -04:00
parent e88f77d08a
commit 5c9adca456
1 changed files with 38 additions and 4 deletions

View File

@ -326,8 +326,25 @@ class FriendManagerAI(DistributedObjectGlobalAI):
avatarAFriendsList.append(avatarANewFriend)
avatarA.d_setFriendsList(avatarAFriendsList)
else:
# TODO
pass
def handleAvatarA(dclass, fields):
if dclass != self.air.dclassesByName['DistributedToonAI']:
return
avatarAFriendsList = fields['setFriendsList'][0]
if len(avatarAFriendsList) >= OTPGlobals.MaxFriends:
self.makeFriendsReply(0, context)
return
avatarANewFriend = (avatarBId, flags)
if avatarANewFriend in avatarAFriendsList:
self.makeFriendsReply(0, context)
return
avatarAFriendsList.append(avatarANewFriend)
self.air.dbInterface.updateObject(self.air.dbId, avatarAId, self.air.dclassesByName['DistributedToonAI'],
{'setFriendsList': [avatarAFriendsList]})
self.air.dbInterface.queryObject(self.air.dbId, avatarAId, handleAvatarA)
if avatarB:
avatarBFriendsList = avatarB.getFriendsList()
@ -343,8 +360,25 @@ class FriendManagerAI(DistributedObjectGlobalAI):
avatarBFriendsList.append(avatarBNewFriend)
avatarB.d_setFriendsList(avatarBFriendsList)
else:
# TODO
pass
def handleAvatarB(dclass, fields):
if dclass != self.air.dclassesByName['DistributedToonAI']:
return
avatarBFriendsList = fields['setFriendsList'][0]
if len(avatarBFriendsList) >= OTPGlobals.MaxFriends:
self.makeFriendsReply(0, context)
return
avatarBNewFriend = (avatarAId, flags)
if avatarBNewFriend in avatarBFriendsList:
self.makeFriendsReply(0, context)
return
avatarBFriendsList.append(avatarBNewFriend)
self.air.dbInterface.updateObject(self.air.dbId, avatarBId, self.air.dclassesByName['DistributedToonAI'],
{'setFriendsList': [avatarBFriendsList]})
self.air.dbInterface.queryObject(self.air.dbId, avatarBId, handleAvatarB)
self.makeFriendsReply(1, context)