parent
e595f82489
commit
e278d07220
|
@ -50,10 +50,12 @@ namespace OpenSim.Framework
|
||||||
Whisper = 0,
|
Whisper = 0,
|
||||||
Say = 1,
|
Say = 1,
|
||||||
Shout = 2,
|
Shout = 2,
|
||||||
|
// 3 is an obsolete version of Say
|
||||||
StartTyping = 4,
|
StartTyping = 4,
|
||||||
StopTyping = 5,
|
StopTyping = 5,
|
||||||
Broadcast = 0xFF
|
Broadcast = 0xFF
|
||||||
} ;
|
}
|
||||||
|
|
||||||
public enum ThrottleOutPacketType : int
|
public enum ThrottleOutPacketType : int
|
||||||
{
|
{
|
||||||
Resend = 0,
|
Resend = 0,
|
||||||
|
@ -135,6 +137,9 @@ namespace OpenSim.Framework
|
||||||
set { m_sender = value; }
|
set { m_sender = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public IScene Scene
|
public IScene Scene
|
||||||
{
|
{
|
||||||
get { return m_scene; }
|
get { return m_scene; }
|
||||||
|
@ -153,18 +158,27 @@ namespace OpenSim.Framework
|
||||||
private sbyte m_discardLevel;
|
private sbyte m_discardLevel;
|
||||||
private uint m_packetNumber;
|
private uint m_packetNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public uint PacketNumber
|
public uint PacketNumber
|
||||||
{
|
{
|
||||||
get { return m_packetNumber; }
|
get { return m_packetNumber; }
|
||||||
set { m_packetNumber = value; }
|
set { m_packetNumber = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public sbyte DiscardLevel
|
public sbyte DiscardLevel
|
||||||
{
|
{
|
||||||
get { return m_discardLevel; }
|
get { return m_discardLevel; }
|
||||||
set { m_discardLevel = value; }
|
set { m_discardLevel = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public LLUUID RequestedAssetID
|
public LLUUID RequestedAssetID
|
||||||
{
|
{
|
||||||
get { return m_requestedAssetID; }
|
get { return m_requestedAssetID; }
|
||||||
|
@ -176,6 +190,9 @@ namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
private List<Wearable> m_nowWearing = new List<Wearable>();
|
private List<Wearable> m_nowWearing = new List<Wearable>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public List<Wearable> NowWearing
|
public List<Wearable> NowWearing
|
||||||
{
|
{
|
||||||
get { return m_nowWearing; }
|
get { return m_nowWearing; }
|
||||||
|
@ -269,6 +286,7 @@ namespace OpenSim.Framework
|
||||||
public delegate void AgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset);
|
public delegate void AgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset);
|
||||||
|
|
||||||
public delegate void AgentSit(IClientAPI remoteClient, LLUUID agentID);
|
public delegate void AgentSit(IClientAPI remoteClient, LLUUID agentID);
|
||||||
|
|
||||||
public delegate void AvatarPickerRequest(IClientAPI remoteClient, LLUUID agentdata, LLUUID queryID, string UserQuery);
|
public delegate void AvatarPickerRequest(IClientAPI remoteClient, LLUUID agentdata, LLUUID queryID, string UserQuery);
|
||||||
|
|
||||||
public delegate void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 grapPos, IClientAPI remoteClient);
|
public delegate void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 grapPos, IClientAPI remoteClient);
|
||||||
|
@ -340,7 +358,6 @@ namespace OpenSim.Framework
|
||||||
|
|
||||||
public delegate void ObjectPermissions(IClientAPI remoteClinet, LLUUID AgentID, LLUUID SessionID, List<ObjectPermissionsPacket.ObjectDataBlock> permChanges);
|
public delegate void ObjectPermissions(IClientAPI remoteClinet, LLUUID AgentID, LLUUID SessionID, List<ObjectPermissionsPacket.ObjectDataBlock> permChanges);
|
||||||
|
|
||||||
|
|
||||||
public interface IClientAPI
|
public interface IClientAPI
|
||||||
{
|
{
|
||||||
event ImprovedInstantMessage OnInstantMessage;
|
event ImprovedInstantMessage OnInstantMessage;
|
||||||
|
|
|
@ -587,7 +587,6 @@ namespace OpenSim.Region.ClientStack
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>TODO</remarks>
|
|
||||||
/// <param name="message"></param>
|
/// <param name="message"></param>
|
||||||
/// <param name="target"></param>
|
/// <param name="target"></param>
|
||||||
public void SendInstantMessage(LLUUID fromAgent, LLUUID fromAgentSession, string message, LLUUID toAgent,
|
public void SendInstantMessage(LLUUID fromAgent, LLUUID fromAgentSession, string message, LLUUID toAgent,
|
||||||
|
|
|
@ -110,6 +110,43 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
client.OnChatFromViewer += SimChat;
|
client.OnChatFromViewer += SimChat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TrySendChatMessage(ScenePresence presence, LLVector3 fromPos, LLVector3 regionPos,
|
||||||
|
LLUUID fromAgentID, string fromName, ChatTypeEnum type, string message)
|
||||||
|
{
|
||||||
|
if (!presence.IsChildAgent)
|
||||||
|
{
|
||||||
|
LLVector3 fromRegionPos = fromPos + regionPos;
|
||||||
|
LLVector3 toRegionPos = presence.AbsolutePosition + regionPos;
|
||||||
|
int dis = Math.Abs((int) Util.GetDistanceTo(toRegionPos, fromRegionPos));
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case ChatTypeEnum.Whisper:
|
||||||
|
if (dis < m_whisperdistance)
|
||||||
|
{
|
||||||
|
// TODO: should change so the message is sent through the avatar rather than direct to the ClientView
|
||||||
|
presence.ControllingClient.SendChatMessage(message, (byte) type, fromPos, fromName, fromAgentID);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ChatTypeEnum.Say:
|
||||||
|
if (dis < m_saydistance)
|
||||||
|
{
|
||||||
|
presence.ControllingClient.SendChatMessage(message, (byte) type, fromPos, fromName, fromAgentID);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ChatTypeEnum.Shout:
|
||||||
|
if (dis < m_shoutdistance)
|
||||||
|
{
|
||||||
|
presence.ControllingClient.SendChatMessage(message, (byte) type, fromPos, fromName, fromAgentID);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ChatTypeEnum.Broadcast:
|
||||||
|
presence.ControllingClient.SendChatMessage(message, (byte) type, fromPos, fromName, fromAgentID);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void SimChat(Object sender, ChatFromViewerArgs e)
|
public void SimChat(Object sender, ChatFromViewerArgs e)
|
||||||
{
|
{
|
||||||
ScenePresence avatar = null;
|
ScenePresence avatar = null;
|
||||||
|
@ -123,12 +160,10 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
|
|
||||||
// Filled in since it's easier than rewriting right now.
|
// Filled in since it's easier than rewriting right now.
|
||||||
LLVector3 fromPos = e.Position;
|
LLVector3 fromPos = e.Position;
|
||||||
LLVector3 fromRegionPos = e.Position +
|
LLVector3 regionPos = new LLVector3(scene.RegionInfo.RegionLocX*256, scene.RegionInfo.RegionLocY*256, 0);
|
||||||
new LLVector3(scene.RegionInfo.RegionLocX*256, scene.RegionInfo.RegionLocY*256,
|
|
||||||
0);
|
|
||||||
string fromName = e.From;
|
string fromName = e.From;
|
||||||
string message = e.Message;
|
string message = e.Message;
|
||||||
byte type = (byte) e.Type;
|
|
||||||
LLUUID fromAgentID = LLUUID.Zero;
|
LLUUID fromAgentID = LLUUID.Zero;
|
||||||
|
|
||||||
if (e.Sender != null)
|
if (e.Sender != null)
|
||||||
|
@ -139,32 +174,11 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
if (avatar != null)
|
if (avatar != null)
|
||||||
{
|
{
|
||||||
fromPos = avatar.AbsolutePosition;
|
fromPos = avatar.AbsolutePosition;
|
||||||
fromRegionPos = fromPos +
|
regionPos = new LLVector3(scene.RegionInfo.RegionLocX*256, scene.RegionInfo.RegionLocY*256, 0);
|
||||||
new LLVector3(scene.RegionInfo.RegionLocX*256, scene.RegionInfo.RegionLocY*256, 0);
|
|
||||||
fromName = avatar.Firstname + " " + avatar.Lastname;
|
fromName = avatar.Firstname + " " + avatar.Lastname;
|
||||||
fromAgentID = e.Sender.AgentId;
|
fromAgentID = e.Sender.AgentId;
|
||||||
}
|
}
|
||||||
|
|
||||||
string typeName;
|
|
||||||
switch (e.Type)
|
|
||||||
{
|
|
||||||
case ChatTypeEnum.Broadcast:
|
|
||||||
typeName = "broadcasts";
|
|
||||||
break;
|
|
||||||
case ChatTypeEnum.Say:
|
|
||||||
typeName = "says";
|
|
||||||
break;
|
|
||||||
case ChatTypeEnum.Shout:
|
|
||||||
typeName = "shouts";
|
|
||||||
break;
|
|
||||||
case ChatTypeEnum.Whisper:
|
|
||||||
typeName = "whispers";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
typeName = "unknown";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e.Message.Length > 0)
|
if (e.Message.Length > 0)
|
||||||
{
|
{
|
||||||
if (m_irc.Connected)
|
if (m_irc.Connected)
|
||||||
|
@ -174,69 +188,13 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
|
|
||||||
if (e.Channel == 0)
|
if (e.Channel == 0)
|
||||||
{
|
{
|
||||||
foreach (Scene m_scene in m_scenes)
|
foreach (Scene s in m_scenes)
|
||||||
{
|
{
|
||||||
m_scene.ForEachScenePresence(delegate(ScenePresence presence)
|
s.ForEachScenePresence(delegate(ScenePresence presence)
|
||||||
{
|
{
|
||||||
if (!presence.IsChildAgent)
|
TrySendChatMessage(presence, fromPos, regionPos,
|
||||||
{
|
fromAgentID, fromName, e.Type, message);
|
||||||
int dis = -100000;
|
});
|
||||||
|
|
||||||
LLVector3 avatarRegionPos = presence.AbsolutePosition +
|
|
||||||
new LLVector3(
|
|
||||||
scene.RegionInfo.RegionLocX * 256,
|
|
||||||
scene.RegionInfo.RegionLocY * 256,
|
|
||||||
0);
|
|
||||||
dis =
|
|
||||||
Math.Abs((int) Util.GetDistanceTo(avatarRegionPos, fromRegionPos));
|
|
||||||
|
|
||||||
switch (e.Type)
|
|
||||||
{
|
|
||||||
case ChatTypeEnum.Whisper:
|
|
||||||
if (dis < m_whisperdistance)
|
|
||||||
{
|
|
||||||
//should change so the message is sent through the avatar rather than direct to the ClientView
|
|
||||||
presence.ControllingClient.SendChatMessage(message,
|
|
||||||
type,
|
|
||||||
fromPos,
|
|
||||||
fromName,
|
|
||||||
fromAgentID);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ChatTypeEnum.Say:
|
|
||||||
if (dis < m_saydistance)
|
|
||||||
{
|
|
||||||
//Console.WriteLine("sending chat");
|
|
||||||
presence.ControllingClient.SendChatMessage(message,
|
|
||||||
type,
|
|
||||||
fromPos,
|
|
||||||
fromName,
|
|
||||||
fromAgentID);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ChatTypeEnum.Shout:
|
|
||||||
if (dis < m_shoutdistance)
|
|
||||||
{
|
|
||||||
presence.ControllingClient.SendChatMessage(message,
|
|
||||||
type,
|
|
||||||
fromPos,
|
|
||||||
fromName,
|
|
||||||
fromAgentID);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ChatTypeEnum.Broadcast:
|
|
||||||
presence.ControllingClient.SendChatMessage(message,
|
|
||||||
type,
|
|
||||||
fromPos,
|
|
||||||
fromName,
|
|
||||||
fromAgentID);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,12 +65,12 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
LLUUID imSessionID, uint timestamp, string fromAgentName,
|
LLUUID imSessionID, uint timestamp, string fromAgentName,
|
||||||
string message, byte dialog)
|
string message, byte dialog)
|
||||||
{
|
{
|
||||||
foreach (Scene m_scene in m_scenes)
|
foreach (Scene scene in m_scenes)
|
||||||
{
|
{
|
||||||
if (m_scene.Entities.ContainsKey(toAgentID) && m_scene.Entities[toAgentID] is ScenePresence)
|
if (scene.Entities.ContainsKey(toAgentID) && scene.Entities[toAgentID] is ScenePresence)
|
||||||
{
|
{
|
||||||
// Local Message
|
// Local message
|
||||||
ScenePresence user = (ScenePresence) m_scene.Entities[toAgentID];
|
ScenePresence user = (ScenePresence) scene.Entities[toAgentID];
|
||||||
if (!user.IsChildAgent)
|
if (!user.IsChildAgent)
|
||||||
{
|
{
|
||||||
user.ControllingClient.SendInstantMessage(fromAgentID, fromAgentSession, message,
|
user.ControllingClient.SendInstantMessage(fromAgentID, fromAgentSession, message,
|
||||||
|
@ -83,6 +83,7 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
}
|
}
|
||||||
|
|
||||||
// Still here, try send via Grid
|
// Still here, try send via Grid
|
||||||
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PostInitialise()
|
public void PostInitialise()
|
||||||
|
|
|
@ -156,10 +156,10 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ProcessAvatarPickerRequest(IClientAPI client, LLUUID avatarID, LLUUID RequestID, string query)
|
public void ProcessAvatarPickerRequest(IClientAPI client, LLUUID avatarID, LLUUID RequestID, string query)
|
||||||
{
|
{
|
||||||
//EventManager.TriggerAvatarPickerRequest();
|
//EventManager.TriggerAvatarPickerRequest();
|
||||||
|
|
||||||
|
|
||||||
List<AvatarPickerAvatar> AvatarResponses = new List<AvatarPickerAvatar>();
|
List<AvatarPickerAvatar> AvatarResponses = new List<AvatarPickerAvatar>();
|
||||||
AvatarResponses = CommsManager.GenerateAgentPickerRequestResponse(RequestID, query);
|
AvatarResponses = CommsManager.GenerateAgentPickerRequestResponse(RequestID, query);
|
||||||
|
@ -167,7 +167,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
AvatarPickerReplyPacket replyPacket = new AvatarPickerReplyPacket();
|
AvatarPickerReplyPacket replyPacket = new AvatarPickerReplyPacket();
|
||||||
AvatarPickerReplyPacket.DataBlock[] searchData = new AvatarPickerReplyPacket.DataBlock[AvatarResponses.Count];
|
AvatarPickerReplyPacket.DataBlock[] searchData = new AvatarPickerReplyPacket.DataBlock[AvatarResponses.Count];
|
||||||
AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock();
|
AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock();
|
||||||
|
|
||||||
agentData.AgentID = avatarID;
|
agentData.AgentID = avatarID;
|
||||||
agentData.QueryID = RequestID;
|
agentData.QueryID = RequestID;
|
||||||
replyPacket.AgentData = agentData;
|
replyPacket.AgentData = agentData;
|
||||||
|
|
|
@ -68,7 +68,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public Int32 CreationDate;
|
public Int32 CreationDate;
|
||||||
public uint ParentID = 0;
|
public uint ParentID = 0;
|
||||||
|
|
||||||
// Main grid has default permissions as follows
|
// Main grid has default permissions as follows
|
||||||
//
|
//
|
||||||
public uint OwnerMask = FULL_MASK_PERMISSIONS_OWNER;
|
public uint OwnerMask = FULL_MASK_PERMISSIONS_OWNER;
|
||||||
public uint NextOwnerMask = OBJNEXT_OWNER;
|
public uint NextOwnerMask = OBJNEXT_OWNER;
|
||||||
|
@ -85,7 +85,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public uint TimeStampLastActivity = 0; // Will be used for AutoReturn
|
public uint TimeStampLastActivity = 0; // Will be used for AutoReturn
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Only used internally to schedule client updates
|
/// Only used internally to schedule client updates
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -59,7 +59,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
|
||||||
private LLUUID m_itemID;
|
private LLUUID m_itemID;
|
||||||
private bool throwErrorOnNotImplemented = true;
|
private bool throwErrorOnNotImplemented = true;
|
||||||
|
|
||||||
|
|
||||||
public LSL_BuiltIn_Commands(ScriptEngine ScriptEngine, SceneObjectPart host, uint localID, LLUUID itemID)
|
public LSL_BuiltIn_Commands(ScriptEngine ScriptEngine, SceneObjectPart host, uint localID, LLUUID itemID)
|
||||||
{
|
{
|
||||||
m_ScriptEngine = ScriptEngine;
|
m_ScriptEngine = ScriptEngine;
|
||||||
|
@ -67,11 +66,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
|
||||||
m_localID = localID;
|
m_localID = localID;
|
||||||
m_itemID = itemID;
|
m_itemID = itemID;
|
||||||
|
|
||||||
|
|
||||||
//MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called. Hosted by [" + m_host.Name + ":" + m_host.UUID + "@" + m_host.AbsolutePosition + "]");
|
//MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called. Hosted by [" + m_host.Name + ":" + m_host.UUID + "@" + m_host.AbsolutePosition + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private string m_state = "default";
|
private string m_state = "default";
|
||||||
|
|
||||||
public string State()
|
public string State()
|
||||||
|
@ -95,7 +92,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
|
||||||
return lease;
|
return lease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Scene World
|
public Scene World
|
||||||
{
|
{
|
||||||
get { return m_ScriptEngine.World; }
|
get { return m_ScriptEngine.World; }
|
||||||
|
@ -1022,7 +1018,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
|
||||||
m_host.SetText(text, av3, alpha);
|
m_host.SetText(text, av3, alpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public double llWater(LSL_Types.Vector3 offset)
|
public double llWater(LSL_Types.Vector3 offset)
|
||||||
{
|
{
|
||||||
NotImplemented("llWater");
|
NotImplemented("llWater");
|
||||||
|
@ -2300,4 +2295,4 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
|
||||||
throw new NotImplementedException("Command not implemented: " + Command);
|
throw new NotImplementedException("Command not implemented: " + Command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue