Megapatch that fixes/adds: friend offer/deny/accept, friendship termination,

on-/offline updates, calling cards for friends.
This adds methods in the DB layer and changes the MessagingServer, so a full
update (incl. UGAIM) is necessary to get it working. Older regions shouldn't
break, nor should older UGAIM break newer regions, but friends/presence will
only work with all concerned parts (UGAIM, source region and destination
region) at this revision (or later).
I added the DB code for MSSQL, too, but couldn't test that.
BEWARE: May contain bugs.
This commit is contained in:
Homer Horwitz
2008-11-01 22:09:48 +00:00
parent e3a1ccf0b2
commit 38e8853e57
32 changed files with 1402 additions and 754 deletions

View File

@@ -4129,7 +4129,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
handlerApproveFriendRequest(this, agentID, transactionID, callingCardFolders);
}
break;
case PacketType.DeclineFriendship:
DeclineFriendshipPacket dfriendpack = (DeclineFriendshipPacket)Pack;
if (OnDenyFriendRequest != null)
{
OnDenyFriendRequest(this,
dfriendpack.AgentData.AgentID,
dfriendpack.TransactionBlock.TransactionID,
null);
}
break;
case PacketType.TerminateFriendship:
TerminateFriendshipPacket tfriendpack = (TerminateFriendshipPacket)Pack;
UUID listOwnerAgentID = tfriendpack.AgentData.AgentID;
@@ -7648,6 +7660,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
OutPacket(p, ThrottleOutPacketType.Task);
}
public void SendTerminateFriend(UUID exFriendID)
{
TerminateFriendshipPacket p = (TerminateFriendshipPacket)PacketPool.Instance.GetPacket(PacketType.TerminateFriendship);
p.AgentData.AgentID = AgentId;
p.AgentData.SessionID = SessionId;
p.ExBlock.OtherID = exFriendID;
OutPacket(p, ThrottleOutPacketType.Task);
}
public void SendAvatarGroupsReply(UUID avatarID, GroupMembershipData[] data)
{
int i;