Merge branch 'master' into careminster
commit
87bce90086
|
@ -350,7 +350,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
|
||||
protected IAssetService m_assetService;
|
||||
private IHyperAssetService m_hyperAssets;
|
||||
|
||||
private const bool m_checkPackets = true;
|
||||
|
||||
#endregion Class Members
|
||||
|
||||
|
@ -4043,7 +4043,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
|
||||
if (collisionPlane == Vector4.Zero)
|
||||
collisionPlane = Vector4.UnitW;
|
||||
|
||||
//m_log.DebugFormat("CollisionPlane: {0}",collisionPlane);
|
||||
collisionPlane.ToBytes(data, pos);
|
||||
pos += 16;
|
||||
}
|
||||
|
@ -4128,12 +4128,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
update.PCode = (byte)PCode.Avatar;
|
||||
update.ProfileCurve = 1;
|
||||
update.PSBlock = Utils.EmptyBytes;
|
||||
update.Scale = Vector3.One;
|
||||
update.Scale = new Vector3(0.45f,0.6f,1.9f);
|
||||
update.Text = Utils.EmptyBytes;
|
||||
update.TextColor = new byte[4];
|
||||
update.TextureAnim = Utils.EmptyBytes;
|
||||
update.TextureEntry = data.TextureEntry ?? Utils.EmptyBytes;
|
||||
update.UpdateFlags = 61 + (9 << 8) + (130 << 16) + (16 << 24); // TODO: Replace these numbers with PrimFlags
|
||||
update.UpdateFlags = (uint)(PrimFlags.Physics | PrimFlags.ObjectModify | PrimFlags.ObjectCopy | PrimFlags.ObjectAnyOwner | PrimFlags.ObjectYouOwner | PrimFlags.ObjectMove | PrimFlags.InventoryEmpty | PrimFlags.ObjectTransfer | PrimFlags.ObjectOwnerModify);//61 + (9 << 8) + (130 << 16) + (16 << 24); // TODO: Replace these numbers with PrimFlags
|
||||
|
||||
return update;
|
||||
}
|
||||
|
@ -4280,6 +4280,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest);
|
||||
AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest);
|
||||
AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage);
|
||||
AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest);
|
||||
AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer);
|
||||
AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate);
|
||||
//AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer);
|
||||
//AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer);
|
||||
}
|
||||
|
||||
#region Packet Handlers
|
||||
|
@ -4495,6 +4500,98 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
return true;
|
||||
}
|
||||
|
||||
private bool HandleAvatarPropertiesRequest(IClientAPI sender, Packet Pack)
|
||||
{
|
||||
AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack;
|
||||
|
||||
#region Packet Session and User Check
|
||||
if (m_checkPackets)
|
||||
{
|
||||
if (avatarProperties.AgentData.SessionID != SessionId ||
|
||||
avatarProperties.AgentData.AgentID != AgentId)
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
RequestAvatarProperties handlerRequestAvatarProperties = OnRequestAvatarProperties;
|
||||
if (handlerRequestAvatarProperties != null)
|
||||
{
|
||||
handlerRequestAvatarProperties(this, avatarProperties.AgentData.AvatarID);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool HandleChatFromViewer(IClientAPI sender, Packet Pack)
|
||||
{
|
||||
ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack;
|
||||
|
||||
#region Packet Session and User Check
|
||||
if (m_checkPackets)
|
||||
{
|
||||
if (inchatpack.AgentData.SessionID != SessionId ||
|
||||
inchatpack.AgentData.AgentID != AgentId)
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
string fromName = String.Empty; //ClientAvatar.firstname + " " + ClientAvatar.lastname;
|
||||
byte[] message = inchatpack.ChatData.Message;
|
||||
byte type = inchatpack.ChatData.Type;
|
||||
Vector3 fromPos = new Vector3(); // ClientAvatar.Pos;
|
||||
// UUID fromAgentID = AgentId;
|
||||
|
||||
int channel = inchatpack.ChatData.Channel;
|
||||
|
||||
if (OnChatFromClient != null)
|
||||
{
|
||||
OSChatMessage args = new OSChatMessage();
|
||||
args.Channel = channel;
|
||||
args.From = fromName;
|
||||
args.Message = Utils.BytesToString(message);
|
||||
args.Type = (ChatTypeEnum)type;
|
||||
args.Position = fromPos;
|
||||
|
||||
args.Scene = Scene;
|
||||
args.Sender = this;
|
||||
args.SenderUUID = this.AgentId;
|
||||
|
||||
ChatMessage handlerChatFromClient = OnChatFromClient;
|
||||
if (handlerChatFromClient != null)
|
||||
handlerChatFromClient(this, args);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool HandlerAvatarPropertiesUpdate(IClientAPI sender, Packet Pack)
|
||||
{
|
||||
AvatarPropertiesUpdatePacket avatarProps = (AvatarPropertiesUpdatePacket)Pack;
|
||||
|
||||
#region Packet Session and User Check
|
||||
if (m_checkPackets)
|
||||
{
|
||||
if (avatarProps.AgentData.SessionID != SessionId ||
|
||||
avatarProps.AgentData.AgentID != AgentId)
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
UpdateAvatarProperties handlerUpdateAvatarProperties = OnUpdateAvatarProperties;
|
||||
if (handlerUpdateAvatarProperties != null)
|
||||
{
|
||||
AvatarPropertiesUpdatePacket.PropertiesDataBlock Properties = avatarProps.PropertiesData;
|
||||
UserProfileData UserProfile = new UserProfileData();
|
||||
UserProfile.ID = AgentId;
|
||||
UserProfile.AboutText = Utils.BytesToString(Properties.AboutText);
|
||||
UserProfile.FirstLifeAboutText = Utils.BytesToString(Properties.FLAboutText);
|
||||
UserProfile.FirstLifeImage = Properties.FLImageID;
|
||||
UserProfile.Image = Properties.ImageID;
|
||||
UserProfile.ProfileUrl = Utils.BytesToString(Properties.ProfileURL);
|
||||
|
||||
handlerUpdateAvatarProperties(this, UserProfile);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion Packet Handlers
|
||||
|
||||
public void SendScriptQuestion(UUID taskID, string taskName, string ownerName, UUID itemID, int question)
|
||||
|
@ -4986,13 +5083,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
return;
|
||||
}
|
||||
|
||||
const bool m_checkPackets = true;
|
||||
|
||||
|
||||
// Main packet processing conditional
|
||||
switch (Pack.Type)
|
||||
{
|
||||
#region Scene/Avatar
|
||||
|
||||
/*
|
||||
case PacketType.AvatarPropertiesRequest:
|
||||
AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack;
|
||||
|
||||
|
@ -5012,7 +5109,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
}
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case PacketType.ChatFromViewer:
|
||||
ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack;
|
||||
|
||||
|
@ -5051,7 +5148,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
handlerChatFromClient(this, args);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case PacketType.AvatarPropertiesUpdate:
|
||||
AvatarPropertiesUpdatePacket avatarProps = (AvatarPropertiesUpdatePacket)Pack;
|
||||
|
||||
|
@ -5079,7 +5176,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
handlerUpdateAvatarProperties(this, UserProfile);
|
||||
}
|
||||
break;
|
||||
|
||||
*/
|
||||
case PacketType.ScriptDialogReply:
|
||||
ScriptDialogReplyPacket rdialog = (ScriptDialogReplyPacket)Pack;
|
||||
|
||||
|
|
|
@ -1016,9 +1016,9 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
|
||||
Animator.TrySetMovementAnimation("LAND");
|
||||
SendFullUpdateToAllClients();
|
||||
//SendFullUpdateToAllClients();
|
||||
ControllingClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_rootRegionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId,
|
||||
AbsolutePosition, Velocity, -Vector3.UnitZ, m_bodyRot, Vector4.UnitW, m_uuid, null, GetUpdatePriority(ControllingClient)));
|
||||
AbsolutePosition, Velocity, Vector3.Zero, m_bodyRot, new Vector4(0,0,1,AbsolutePosition.Z - 0.5f), m_uuid, null, GetUpdatePriority(ControllingClient)));
|
||||
}
|
||||
|
||||
public void AddNeighbourRegion(ulong regionHandle, string cap)
|
||||
|
|
Loading…
Reference in New Issue