* Added instant message support for the local region. Grid support forthcoming.

This commit is contained in:
Adam Frisby
2007-07-08 03:32:27 +00:00
parent 10ece46cf6
commit bdab40280b
7 changed files with 202 additions and 214 deletions

View File

@@ -40,6 +40,7 @@ namespace OpenSim.Region.ClientStack
{
partial class ClientView
{
public event ImprovedInstantMessage OnInstantMessage;
public event ChatFromViewer OnChatFromViewer;
public event RezObject OnRezObject;
public event GenericCall4 OnDeRezObject;
@@ -236,6 +237,30 @@ namespace OpenSim.Region.ClientStack
this.OutPacket(reply);
}
/// <summary>
///
/// </summary>
/// <remarks>TODO</remarks>
/// <param name="message"></param>
/// <param name="target"></param>
public void SendInstantMessage(string message, LLUUID target)
{
ImprovedInstantMessagePacket msg = new ImprovedInstantMessagePacket();
msg.AgentData.AgentID = this.AgentID;
msg.AgentData.SessionID = this.SessionID;
msg.MessageBlock.Dialog = 0;
msg.MessageBlock.FromGroup = false;
msg.MessageBlock.ID = target.Combine(this.AgentID);
msg.MessageBlock.Offline = 0;
msg.MessageBlock.ParentEstateID = 0;
msg.MessageBlock.Position = new LLVector3();
msg.MessageBlock.RegionID = new LLUUID();
msg.MessageBlock.Timestamp = 0;
msg.MessageBlock.ToAgentID = target;
this.OutPacket(msg);
}
/// <summary>
/// Send the region heightmap to the client

View File

@@ -92,6 +92,20 @@ namespace OpenSim.Region.ClientStack
this.OnChatFromViewer(message, type, fromPos, fromName, fromAgentID);
}
break;
case PacketType.ImprovedInstantMessage:
ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket)Pack;
string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName);
string IMmessage = Util.FieldToString(msgpack.MessageBlock.Message);
if (OnInstantMessage != null)
{
this.OnInstantMessage(msgpack.AgentData.AgentID, msgpack.MessageBlock.ToAgentID,
msgpack.MessageBlock.Timestamp, IMfromName, IMmessage);
}
break;
case PacketType.RezObject:
RezObjectPacket rezPacket = (RezObjectPacket)Pack;
AgentInventory inven = this.m_inventoryCache.GetAgentsInventory(this.AgentID);