From 4af33c4da6774363db0d442f81b4871718cc5f2e Mon Sep 17 00:00:00 2001 From: MW Date: Mon, 20 Aug 2007 11:52:55 +0000 Subject: Instant Messages between users in the same region should actually now work. --- OpenSim/Region/ClientStack/ClientView.API.cs | 28 ++++++++++++---------- .../ClientStack/ClientView.ProcessPackets.cs | 12 +++++----- OpenSim/Region/ClientStack/ClientView.cs | 18 -------------- 3 files changed, 21 insertions(+), 37 deletions(-) (limited to 'OpenSim/Region/ClientStack') diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs index beb83af..428fb77 100644 --- a/OpenSim/Region/ClientStack/ClientView.API.cs +++ b/OpenSim/Region/ClientStack/ClientView.API.cs @@ -268,29 +268,27 @@ namespace OpenSim.Region.ClientStack /// TODO /// /// - public void SendInstantMessage(string message, LLUUID target, string fromName) + public void SendInstantMessage(LLUUID fromAgent, LLUUID fromAgentSession, string message, LLUUID toAgent, LLUUID imSessionID, string fromName, byte dialog, uint timeStamp) { - if (message != "typing") - { + Encoding enc = Encoding.ASCII; ImprovedInstantMessagePacket msg = new ImprovedInstantMessagePacket(); - msg.AgentData.AgentID = this.AgentID; - msg.AgentData.SessionID = this.SessionID; + msg.AgentData.AgentID = fromAgent; + msg.AgentData.SessionID = fromAgentSession; msg.MessageBlock.FromAgentName = enc.GetBytes(fromName + " \0"); - msg.MessageBlock.Dialog = 0; + msg.MessageBlock.Dialog = dialog; msg.MessageBlock.FromGroup = false; - msg.MessageBlock.ID = target.Combine(this.SecureSessionID); + msg.MessageBlock.ID = imSessionID; 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; + msg.MessageBlock.RegionID = LLUUID.Random(); + msg.MessageBlock.Timestamp = timeStamp; + msg.MessageBlock.ToAgentID = toAgent; msg.MessageBlock.Message = enc.GetBytes(message + "\0"); msg.MessageBlock.BinaryBucket = new byte[0]; this.OutPacket(msg); - } } /// @@ -927,7 +925,7 @@ namespace OpenSim.Region.ClientStack { ObjectUpdatePacket outPacket = new ObjectUpdatePacket(); outPacket.RegionData.RegionHandle = regionHandle; - outPacket.RegionData.TimeDilation = timeDilation; + outPacket.RegionData.TimeDilation = timeDilation; outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1]; outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primShape, flags); @@ -938,6 +936,9 @@ namespace OpenSim.Region.ClientStack outPacket.ObjectData[0].Text = Helpers.StringToField(text); outPacket.ObjectData[0].ParentID = parentID; outPacket.ObjectData[0].PSBlock = particleSystem; + outPacket.ObjectData[0].ClickAction = 0; + //outPacket.ObjectData[0].Flags = 0; + outPacket.ObjectData[0].Radius = 20; byte[] pb = pos.GetBytes(); Array.Copy(pb, 0, outPacket.ObjectData[0].ObjectData, 0, pb.Length); @@ -1045,6 +1046,7 @@ namespace OpenSim.Region.ClientStack bytes[i++] = (byte)((ac >> 8) % 256); dat.Data = bytes; + return (dat); } @@ -1196,7 +1198,7 @@ namespace OpenSim.Region.ClientStack ObjectUpdatePacket.ObjectDataBlock objdata = new ObjectUpdatePacket.ObjectDataBlock(); // new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock(data1, ref i); SetDefaultAvatarPacketValues(ref objdata); - objdata.UpdateFlags = 61 + (9 << 8) + (130 << 16) + (16 << 24); + objdata.UpdateFlags = 61 + (9 << 8) + (130 << 16) + (16 << 24); objdata.PathCurve = 16; objdata.ProfileCurve = 1; objdata.PathScaleX = 100; diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs index a6cb281..903ddcc 100644 --- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs +++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs @@ -121,14 +121,12 @@ namespace OpenSim.Region.ClientStack 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); + this.OnInstantMessage(msgpack.AgentData.AgentID, msgpack.AgentData.SessionID, msgpack.MessageBlock.ToAgentID, msgpack.MessageBlock.ID, + msgpack.MessageBlock.Timestamp, IMfromName, IMmessage, msgpack.MessageBlock.Dialog); } break; case PacketType.RezObject: @@ -235,7 +233,6 @@ namespace OpenSim.Region.ClientStack { ObjectAddPacket addPacket = (ObjectAddPacket)Pack; PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket); - OnAddPrim(this.AgentId, addPacket.ObjectData.RayEnd, shape); } break; @@ -460,9 +457,12 @@ namespace OpenSim.Region.ClientStack } break; case PacketType.UpdateTaskInventory: - // Console.WriteLine(Pack.ToString()); + //Console.WriteLine(Pack.ToString()); UpdateTaskInventoryPacket updatetask = (UpdateTaskInventoryPacket)Pack; break; + case PacketType.RezScript: + //Console.WriteLine(Pack.ToString()); + break; case PacketType.MapLayerRequest: this.RequestMapLayer(); break; diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index a91c35d..e56d361 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs @@ -273,23 +273,5 @@ namespace OpenSim.Region.ClientStack this.ClientThread.Abort(); } - #region Inventory Creation - private void SetupInventory(AuthenticateResponse sessionInfo) - { - - } - private AgentInventory CreateInventory(LLUUID baseFolder) - { - AgentInventory inventory = null; - - return inventory; - } - - private void CreateInventoryItem(CreateInventoryItemPacket packet) - { - - } - #endregion - } } -- cgit v1.1