private void chatting(Object sender, IrcMessageEventArgs<TextMessage> e, IScenePresence sp)
{
IChatModule chatModule = m_scene.RequestModuleInterface<IChatModule>();
if(chatModule != null)
{
if(e.Message.Targets.Count > 0 && e.Message.Targets[0] == clients[sp.UUID].User.Nick)
{
UUID fakeUUID;
if(!m_ircUsersToFakeUUIDs.TryGetValue(e.Message.Sender.UserName, out fakeUUID))
{
fakeUUID = UUID.Random();
m_ircUsersToFakeUUIDs[e.Message.Sender.UserName] = fakeUUID;
}
sp.ControllingClient.SendInstantMessage(new GridInstantMessage()
{
FromAgentID = fakeUUID,
FromAgentName = e.Message.Sender.Nick,
ToAgentID = sp.UUID,
Dialog = (byte)InstantMessageDialog.MessageFromAgent,
Message = e.Message.Text,
FromGroup = false,
SessionID = UUID.Zero,
Offline = 0,
BinaryBucket = new byte[0],
RegionID = sp.Scene.RegionInfo.RegionID,
Timestamp = (uint)Util.UnixTimeSinceEpoch()
});
}
else
chatModule.TrySendChatMessage(sp, sp.AbsolutePosition, UUID.Zero,
e.Message.Targets[0] + " - " + e.Message.Sender.Nick, ChatTypeEnum.Say, e.Message.Text, ChatSourceType.Agent, 20);
}
}