* Applied Melanie's same instance IM fix. This will make IMs work within the same OpenSim Instance.

afrisby
Teravus Ovares 2007-12-30 04:12:08 +00:00
parent 3e8df2b868
commit 14368d9a73
3 changed files with 21 additions and 18 deletions

View File

@ -225,20 +225,10 @@ namespace OpenSim.Framework
public delegate void ImprovedInstantMessage( public delegate void ImprovedInstantMessage(
LLUUID fromAgentID, LLUUID fromAgentSession, LLUUID toAgentID, LLUUID imSessionID, uint timestamp, LLUUID fromAgentID, LLUUID fromAgentSession, LLUUID toAgentID, LLUUID imSessionID, uint timestamp,
string fromAgentName, string message, byte dialog); // Cut down from full list string fromAgentName, string message, byte dialog, bool fromGroup, byte offline, uint ParentEstateID,
LLVector3 Position, LLUUID RegionID, byte[] binaryBucket); // This shouldn't be cut down...
// especially if we're ever going to implement groups, presence, estate message dialogs...
//rezPacket.RezData.BypassRaycast;
//rezPacket.RezData.RayEnd;
//rezPacket.RezData.RayEndIsIntersection;
//rezPacket.RezData.RayStart;
//rezPacket.RezData.RayTargetID;
//rezPacket.RezData.RemoveItem;
//rezPacket.RezData.RezSelected;
//rezPacket.RezData.FromTaskID;
//rezPacket.RezData.FromTaskID;
//rezPacket.RezData.EveryoneMask;
//rezPacket.RezData.GroupMask;
//rezPacket.RezData.NextOwnerMask;
public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 RayEnd, LLVector3 RayStart, public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 RayEnd, LLVector3 RayStart,
LLUUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, LLUUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
uint EveryoneMask, uint GroupMask, uint NextOwnerMask, uint ItemFlags, uint EveryoneMask, uint GroupMask, uint NextOwnerMask, uint ItemFlags,

View File

@ -2540,12 +2540,23 @@ namespace OpenSim.Region.ClientStack
ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket) Pack; ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket) Pack;
string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName); string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName);
string IMmessage = Helpers.FieldToUTF8String(msgpack.MessageBlock.Message); string IMmessage = Helpers.FieldToUTF8String(msgpack.MessageBlock.Message);
//byte[] msgpack.MessageBlock.BinaryBucket;
//bool msgpack.MessageBlock.FromGroup;
//byte msgpack.MessageBlock.Offline;
//uint msgpack.MessageBlock.ParentEstateID;
//LLVector3 msgpack.MessageBlock.Position;
//LLUUID msgpack.MessageBlock.RegionID;
if (OnInstantMessage != null) if (OnInstantMessage != null)
{ {
OnInstantMessage(msgpack.AgentData.AgentID, msgpack.AgentData.SessionID, OnInstantMessage(msgpack.AgentData.AgentID, msgpack.AgentData.SessionID,
msgpack.MessageBlock.ToAgentID, msgpack.MessageBlock.ID, msgpack.MessageBlock.ToAgentID, msgpack.MessageBlock.ID,
msgpack.MessageBlock.Timestamp, IMfromName, IMmessage, msgpack.MessageBlock.Timestamp, IMfromName, IMmessage,
msgpack.MessageBlock.Dialog); msgpack.MessageBlock.Dialog, msgpack.MessageBlock.FromGroup,
msgpack.MessageBlock.Offline, msgpack.MessageBlock.ParentEstateID,
msgpack.MessageBlock.Position, msgpack.MessageBlock.RegionID,
msgpack.MessageBlock.BinaryBucket);
} }
break; break;
case PacketType.RezObject: case PacketType.RezObject:

View File

@ -63,7 +63,9 @@ namespace OpenSim.Region.Environment.Modules
private void OnInstantMessage(LLUUID fromAgentID, private void OnInstantMessage(LLUUID fromAgentID,
LLUUID fromAgentSession, LLUUID toAgentID, LLUUID fromAgentSession, LLUUID toAgentID,
LLUUID imSessionID, uint timestamp, string fromAgentName, LLUUID imSessionID, uint timestamp, string fromAgentName,
string message, byte dialog) string message, byte dialog, bool fromGroup, byte offline,
uint ParentEstateID, LLVector3 Position, LLUUID RegionID,
byte[] binaryBucket)
{ {
foreach (Scene scene in m_scenes) foreach (Scene scene in m_scenes)
{ {
@ -76,11 +78,11 @@ namespace OpenSim.Region.Environment.Modules
user.ControllingClient.SendInstantMessage(fromAgentID, fromAgentSession, message, user.ControllingClient.SendInstantMessage(fromAgentID, fromAgentSession, message,
toAgentID, imSessionID, fromAgentName, dialog, toAgentID, imSessionID, fromAgentName, dialog,
timestamp); timestamp);
}
// Message sent // Message sent
return; return;
} }
} }
}
// Still here, try send via Grid // Still here, try send via Grid
// TODO // TODO