public Packet inObj(Packet packet, IPEndPoint sim) { string simIP = sim.ToString(); if (!lastSim.Equals(simIP)) { lastSim = simIP; avclients.Clear(); } ObjectUpdatePacket ObjectUpdate = (ObjectUpdatePacket)packet; foreach (ObjectUpdatePacket.ObjectDataBlock block in ObjectUpdate.ObjectData) { if ((block.PCode == 0x2f) && (block.FullID!=frame.AgentID)) // Avatars only { //writethis("\n\n-----------\n------\n---\n" + block.ToString(),ConsoleColor.White,ConsoleColor.DarkBlue); string FirstName = null; string LastName = null; string Title = null; #region decode name if (block.NameValue != null) { if(local2global.ContainsKey(block.ID)) { local2global[block.ID]=block.FullID; }else { local2global.Add(block.ID,block.FullID); } string[] namevalues = Utils.BytesToString(block.NameValue).Split("\r\n".ToCharArray()); foreach (string line in namevalues) { NameValue namevalue = new NameValue(line); if (namevalue.Value != null) { if (namevalue.Name == "FirstName") { FirstName = Convert.ToString(namevalue.Value); if (avclients.ContainsKey(block.FullID)) { if (avclients[block.FullID] == "") { } else { if(form.Display()) FirstName = "(" + avclients[block.FullID] + ") " + FirstName; } namevalue.Value = FirstName; } else { if (!blocks.ContainsKey(block.FullID)) { blocks.Add(block.FullID, block); rb = ObjectUpdate.RegionData; } } } else if (namevalue.Name == "LastName") { LastName = Convert.ToString(namevalue.Value); } else if (namevalue.Name == "Title") { Title = Convert.ToString(namevalue.Value); } } } string newname = ""; if (FirstName != null) { if (newname != "") newname += "\r\n"; newname += "FirstName STRING RW SV " + FirstName; } if (LastName != null) { if (newname != "") newname += "\n"; newname += "LastName STRING RW SV " + LastName; } if (Title != null) { if (newname != "") newname += "\n"; newname += "Title STRING RW SV " + Title; } block.NameValue = Utils.StringToBytes(newname); //writethis("\n" + block.FullID.ToString() + "\n" + newname, ConsoleColor.White, ConsoleColor.DarkGreen); } #endregion } } return ObjectUpdate; }
public Packet inObj(Packet packet, IPEndPoint sim) { string simIP = sim.ToString(); if (!lastSim.Equals(simIP)) { lastSim = simIP; avclients.Clear(); } ObjectUpdatePacket ObjectUpdate = (ObjectUpdatePacket)packet; foreach (ObjectUpdatePacket.ObjectDataBlock block in ObjectUpdate.ObjectData) { if ((block.PCode == 0x2f) && (block.FullID != frame.AgentID)) // Avatars only { //writethis("\n\n-----------\n------\n---\n" + block.ToString(),ConsoleColor.White,ConsoleColor.DarkBlue); string FirstName = null; string LastName = null; string Title = null; #region decode name if (block.NameValue != null) { if (local2global.ContainsKey(block.ID)) { local2global[block.ID] = block.FullID; } else { local2global.Add(block.ID, block.FullID); } string[] namevalues = Utils.BytesToString(block.NameValue).Split("\r\n".ToCharArray()); foreach (string line in namevalues) { NameValue namevalue = new NameValue(line); if (namevalue.Value != null) { if (namevalue.Name == "FirstName") { FirstName = Convert.ToString(namevalue.Value); if (avclients.ContainsKey(block.FullID)) { if (avclients[block.FullID] == "") { } else { if (form.Display()) { FirstName = "(" + avclients[block.FullID] + ") " + FirstName; } } namevalue.Value = FirstName; } else { if (!blocks.ContainsKey(block.FullID)) { blocks.Add(block.FullID, block); rb = ObjectUpdate.RegionData; } } } else if (namevalue.Name == "LastName") { LastName = Convert.ToString(namevalue.Value); } else if (namevalue.Name == "Title") { Title = Convert.ToString(namevalue.Value); } } } string newname = ""; if (FirstName != null) { if (newname != "") { newname += "\r\n"; } newname += "FirstName STRING RW SV " + FirstName; } if (LastName != null) { if (newname != "") { newname += "\n"; } newname += "LastName STRING RW SV " + LastName; } if (Title != null) { if (newname != "") { newname += "\n"; } newname += "Title STRING RW SV " + Title; } block.NameValue = Utils.StringToBytes(newname); //writethis("\n" + block.FullID.ToString() + "\n" + newname, ConsoleColor.White, ConsoleColor.DarkGreen); } #endregion } } return(ObjectUpdate); }