private void PrintIM(DateTime timestamp, string fromName, UUID fromID, string message, bool isNewMessage)
{
if (showTimestamps)
{
if(fontSettings.ContainsKey("Timestamp"))
{
var fontSetting = fontSettings["Timestamp"];
textPrinter.ForeColor = fontSetting.ForeColor;
textPrinter.BackColor = fontSetting.BackColor;
textPrinter.Font = fontSetting.Font;
textPrinter.PrintText(DateTime.Now.ToString("[HH:mm] "));
}
else
{
textPrinter.ForeColor = SystemColors.GrayText;
textPrinter.BackColor = Color.Transparent;
textPrinter.Font = Settings.FontSetting.DefaultFont;
textPrinter.PrintText(DateTime.Now.ToString("[HH:mm] "));
}
}
if(fontSettings.ContainsKey("Name"))
{
var fontSetting = fontSettings["Name"];
textPrinter.ForeColor = fontSetting.ForeColor;
textPrinter.BackColor = fontSetting.BackColor;
textPrinter.Font = fontSetting.Font;
}
else
{
textPrinter.ForeColor = SystemColors.WindowText;
textPrinter.BackColor = Color.Transparent;
textPrinter.Font = Settings.FontSetting.DefaultFont;
}
if (instance.GlobalSettings["av_name_link"])
{
textPrinter.InsertLink(fromName, string.Format("secondlife:///app/agent/{0}/about", fromID));
}
else
{
textPrinter.PrintText(fromName);
}
StringBuilder sb = new StringBuilder();
if (message.StartsWith("/me "))
{
if(fontSettings.ContainsKey("Emote"))
{
var fontSetting = fontSettings["Emote"];
textPrinter.ForeColor = fontSetting.ForeColor;
textPrinter.BackColor = fontSetting.BackColor;
textPrinter.Font = fontSetting.Font;
}
else
{
textPrinter.ForeColor = SystemColors.WindowText;
textPrinter.BackColor = Color.Transparent;
textPrinter.Font = Settings.FontSetting.DefaultFont;
}
sb.Append(message.Substring(3));
}
else
{
if(fromID == instance.Client.Self.AgentID)
{
if(fontSettings.ContainsKey("OutgoingIM"))
{
var fontSetting = fontSettings["OutgoingIM"];
textPrinter.ForeColor = fontSetting.ForeColor;
textPrinter.BackColor = fontSetting.BackColor;
textPrinter.Font = fontSetting.Font;
}
else
{
textPrinter.ForeColor = SystemColors.WindowText;
textPrinter.BackColor = Color.Transparent;
textPrinter.Font = Settings.FontSetting.DefaultFont;
}
}
else
{
if(fontSettings.ContainsKey("IncomingIM"))
{
var fontSetting = fontSettings["IncomingIM"];
textPrinter.ForeColor = fontSetting.ForeColor;
textPrinter.BackColor = fontSetting.BackColor;
textPrinter.Font = fontSetting.Font;
}
else
{
textPrinter.ForeColor = SystemColors.WindowText;
textPrinter.BackColor = Color.Transparent;
textPrinter.Font = Settings.FontSetting.DefaultFont;
}
}
sb.Append(": ");
sb.Append(message);
}
if(isNewMessage)
{
instance.LogClientMessage(sessionName + ".txt", fromName + sb.ToString());
}
textPrinter.PrintTextLine(sb.ToString());
}