Fix for #176 (... doesn't appear in chat bubbles). This also gets the viewer to handle starting/stopping of the typing animation.
parent
525139a161
commit
83ca8bd178
|
@ -2095,9 +2095,8 @@ namespace OpenSim.Region.ClientStack
|
||||||
{
|
{
|
||||||
NeedAck.Add(Pack.Header.Sequence, Pack);
|
NeedAck.Add(Pack.Header.Sequence, Pack);
|
||||||
}
|
}
|
||||||
catch (Exception e) // HACKY
|
catch (Exception) // HACKY
|
||||||
{
|
{
|
||||||
e.ToString();
|
|
||||||
// Ignore
|
// Ignore
|
||||||
// Seems to throw a exception here occasionally
|
// Seems to throw a exception here occasionally
|
||||||
// of 'duplicate key' despite being locked.
|
// of 'duplicate key' despite being locked.
|
||||||
|
|
|
@ -119,32 +119,16 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
LLVector3 toRegionPos = presence.AbsolutePosition + regionPos;
|
LLVector3 toRegionPos = presence.AbsolutePosition + regionPos;
|
||||||
int dis = Math.Abs((int) Util.GetDistanceTo(toRegionPos, fromRegionPos));
|
int dis = Math.Abs((int) Util.GetDistanceTo(toRegionPos, fromRegionPos));
|
||||||
|
|
||||||
switch (type)
|
if (type == ChatTypeEnum.Whisper && dis > m_whisperdistance ||
|
||||||
{
|
type == ChatTypeEnum.Say && dis > m_saydistance ||
|
||||||
case ChatTypeEnum.Whisper:
|
type == ChatTypeEnum.Shout && dis > m_shoutdistance)
|
||||||
if (dis < m_whisperdistance)
|
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: should change so the message is sent through the avatar rather than direct to the ClientView
|
// 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);
|
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)
|
||||||
|
@ -185,6 +169,7 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
{
|
{
|
||||||
m_irc.PrivMsg(fromName, scene.RegionInfo.RegionName, e.Message);
|
m_irc.PrivMsg(fromName, scene.RegionInfo.RegionName, e.Message);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (e.Channel == 0)
|
if (e.Channel == 0)
|
||||||
{
|
{
|
||||||
|
@ -198,22 +183,6 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (avatar != null)
|
|
||||||
{
|
|
||||||
switch (e.Type)
|
|
||||||
{
|
|
||||||
case ChatTypeEnum.StartTyping:
|
|
||||||
avatar.setTyping(true);
|
|
||||||
break;
|
|
||||||
case ChatTypeEnum.StopTyping:
|
|
||||||
avatar.setTyping(false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class IRCChatModule
|
internal class IRCChatModule
|
||||||
|
|
|
@ -964,23 +964,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
m_forcesList.Add(newVelocity);
|
m_forcesList.Add(newVelocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sets whether or not the agent is typing.
|
|
||||||
/// </summary>
|
|
||||||
public void setTyping(bool typing)
|
|
||||||
{
|
|
||||||
if (m_isChildAgent)
|
|
||||||
{
|
|
||||||
MainLog.Instance.Warn("setTyping called on child agent");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typing)
|
|
||||||
AddAnimation(Animations.AnimsLLUUID["TYPE"], 1);
|
|
||||||
else
|
|
||||||
RemoveAnimation(Animations.AnimsLLUUID["TYPE"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Overridden Methods
|
#region Overridden Methods
|
||||||
|
|
Loading…
Reference in New Issue