using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.IO; using System.Reflection; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Windows.Forms; using System.Xml; using Advanced_Combat_Tracker; [assembly: AssemblyTitle("Loot Parsing Plugin")] [assembly: AssemblyDescription("Parses items looted and attaches chat text to them. This plugin also provides a tally of who has won what and controls to manage the loot list.")] [assembly: AssemblyCompany("Aditu of Permafrost & Dracks of Guk")] [assembly: AssemblyVersion("1.2.0.0")] namespace ACT_Plugin { /// /// Loot Tracking ACT Plugin /// public class LootTally : UserControl, IActPluginV1 { private int lvItemsSorting = 0; private bool lvItemsReverse = true; private bool refreshLvItems = false; private int lvChatSorting = 0; private bool lvChatReverse = true; private Dictionary lootBlacklist = new Dictionary(); private List allowedLootControllers = new List(); private Button macroSaveFileChooseButton; private Label label2; private TextBox macroSaveFileTextBox; private Label label1; private Button setControlChannelButton; private TextBox setControlChannelInputTextBox; private Button unsetControlChannelButton; private Button macroSaveFileUnchooseButton; private TextBox lootControlChannelTextBox; private Label itemDataGridStatusLabel; private ToolStrip toolStrip1; private ToolStripButton toolStripMarkForAltButton; private ToolStripButton toolStripMarkForMainButton; private ToolStripButton toolStripReassignButton; private ToolStripButton toolStripDeleteButton; private ToolStripButton toolStripAddButton; private ToolStripMenuItem getAddCommandStripMenuItem; #region Generated Designer Code (Avoid Direct Modification) /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.ItemsListViewContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); this.copyItemLinkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copyItemNameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.getMarkForAltCommandStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.getMarkForMainCommandStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.getAddCommandStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.getDeleteStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.getReassignCommandStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.copyAsCSVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copyAsTSVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copyAsHTMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copyAsPlainTexToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copyActualLogLinesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ChatListView = new System.Windows.Forms.ListView(); this.chatDateTimeColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.chatChannelColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.chatPlayerColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.chatTextColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.ChatListViewContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); this.copyActualLogLinesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.chatPreceedingItemGroupBox = new System.Windows.Forms.GroupBox(); this.ChatPanel = new System.Windows.Forms.Panel(); this.panel2 = new System.Windows.Forms.Panel(); this.lblCurrentItem = new System.Windows.Forms.Label(); this.linkLabel5 = new System.Windows.Forms.LinkLabel(); this.linkLabel4 = new System.Windows.Forms.LinkLabel(); this.eq2iLink = new System.Windows.Forms.LinkLabel(); this.linkLabel2 = new System.Windows.Forms.LinkLabel(); this.lootDBLink = new System.Windows.Forms.LinkLabel(); this.panel3 = new System.Windows.Forms.Panel(); this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.toolStripMarkForAltButton = new System.Windows.Forms.ToolStripButton(); this.toolStripMarkForMainButton = new System.Windows.Forms.ToolStripButton(); this.toolStripAddButton = new System.Windows.Forms.ToolStripButton(); this.toolStripReassignButton = new System.Windows.Forms.ToolStripButton(); this.toolStripDeleteButton = new System.Windows.Forms.ToolStripButton(); this.itemDataGridStatusLabel = new System.Windows.Forms.Label(); this.itemGridView = new System.Windows.Forms.DataGridView(); this.columnTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.columnZone = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.columnPlayer = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.columnItemName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.columnContainer = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.columnIsMain = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.splitter1 = new System.Windows.Forms.Splitter(); this.tabPage3 = new System.Windows.Forms.TabPage(); this.tallyGridView = new System.Windows.Forms.DataGridView(); this.tallyPlayerColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.tallyMainCountColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.tallyAltCountColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.TallyContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); this.copyTallyAsPlainTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.settingsPage = new System.Windows.Forms.TabPage(); this.lootControllerGroupBox = new System.Windows.Forms.GroupBox(); this.lootControlChannelTextBox = new System.Windows.Forms.TextBox(); this.macroSaveFileUnchooseButton = new System.Windows.Forms.Button(); this.unsetControlChannelButton = new System.Windows.Forms.Button(); this.setControlChannelInputTextBox = new System.Windows.Forms.TextBox(); this.macroSaveFileChooseButton = new System.Windows.Forms.Button(); this.label2 = new System.Windows.Forms.Label(); this.macroSaveFileTextBox = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.setControlChannelButton = new System.Windows.Forms.Button(); this.tbLootController = new System.Windows.Forms.TextBox(); this.removeLootControllerButton = new System.Windows.Forms.Button(); this.label6 = new System.Windows.Forms.Label(); this.addLootControllerButton = new System.Windows.Forms.Button(); this.lbLootControllers = new System.Windows.Forms.ListBox(); this.otherSettingsGroupBox = new System.Windows.Forms.GroupBox(); this.skipLottoCheckBox = new System.Windows.Forms.CheckBox(); this.groupBox5 = new System.Windows.Forms.GroupBox(); this.BlacklistCheckedListBox = new System.Windows.Forms.CheckedListBox(); this.label5 = new System.Windows.Forms.Label(); this.tbBlacklist = new System.Windows.Forms.TextBox(); this.RemoveBlacklistButton = new System.Windows.Forms.Button(); this.AddBlacklistButton = new System.Windows.Forms.Button(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.label4 = new System.Windows.Forms.Label(); this.GermanRadioButton = new System.Windows.Forms.RadioButton(); this.FrenchRadioButton = new System.Windows.Forms.RadioButton(); this.EnglishRadioButton = new System.Windows.Forms.RadioButton(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.label3 = new System.Windows.Forms.Label(); this.namedChatTextBox = new System.Windows.Forms.TextBox(); this.removeNamedChatButton = new System.Windows.Forms.Button(); this.addNamedChatButton = new System.Windows.Forms.Button(); this.lbNamedChat = new System.Windows.Forms.ListBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.numberOfLinesToRetainPerChannelLabel = new System.Windows.Forms.Label(); this.numberOfSecondsToRecordChatPrecedingItemLabel = new System.Windows.Forms.Label(); this.numberOfChatLinesSelector = new System.Windows.Forms.NumericUpDown(); this.numberOfChatSecondsSelector = new System.Windows.Forms.NumericUpDown(); this.chatLinesCheckBox = new System.Windows.Forms.CheckBox(); this.chatSecondsCheckBox = new System.Windows.Forms.CheckBox(); this.CommandHistoryTab = new System.Windows.Forms.TabPage(); this.commandHistoryGridView = new System.Windows.Forms.DataGridView(); this.CommandTimeColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.CommandPlayerColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.CommandTextColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.HalfSecondTimer = new System.Windows.Forms.Timer(this.components); this.ClearButton = new System.Windows.Forms.Button(); this.ItemsListViewContextMenuStrip.SuspendLayout(); this.ChatListViewContextMenuStrip.SuspendLayout(); this.chatPreceedingItemGroupBox.SuspendLayout(); this.ChatPanel.SuspendLayout(); this.panel2.SuspendLayout(); this.panel3.SuspendLayout(); this.toolStrip1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.itemGridView)).BeginInit(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.tallyGridView)).BeginInit(); this.TallyContextMenuStrip.SuspendLayout(); this.settingsPage.SuspendLayout(); this.lootControllerGroupBox.SuspendLayout(); this.otherSettingsGroupBox.SuspendLayout(); this.groupBox5.SuspendLayout(); this.groupBox4.SuspendLayout(); this.groupBox3.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numberOfChatLinesSelector)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numberOfChatSecondsSelector)).BeginInit(); this.CommandHistoryTab.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.commandHistoryGridView)).BeginInit(); this.SuspendLayout(); // // ItemsListViewContextMenuStrip // this.ItemsListViewContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.copyItemLinkToolStripMenuItem, this.copyItemNameToolStripMenuItem, this.toolStripSeparator1, this.getMarkForAltCommandStripMenuItem, this.getMarkForMainCommandStripMenuItem, this.getAddCommandStripMenuItem, this.getDeleteStripMenuItem, this.getReassignCommandStripMenuItem, this.toolStripSeparator2, this.copyAsCSVToolStripMenuItem, this.copyAsTSVToolStripMenuItem, this.copyAsHTMLToolStripMenuItem, this.copyAsPlainTexToolStripMenuItem, this.copyActualLogLinesToolStripMenuItem}); this.ItemsListViewContextMenuStrip.Name = "contextMenuStrip1"; this.ItemsListViewContextMenuStrip.Size = new System.Drawing.Size(243, 280); // // copyItemLinkToolStripMenuItem // this.copyItemLinkToolStripMenuItem.Name = "copyItemLinkToolStripMenuItem"; this.copyItemLinkToolStripMenuItem.Size = new System.Drawing.Size(242, 22); this.copyItemLinkToolStripMenuItem.Text = "Copy item link"; this.copyItemLinkToolStripMenuItem.Click += new System.EventHandler(this.copyItemLinkToolStripMenuItem_Click); // // copyItemNameToolStripMenuItem // this.copyItemNameToolStripMenuItem.Name = "copyItemNameToolStripMenuItem"; this.copyItemNameToolStripMenuItem.Size = new System.Drawing.Size(242, 22); this.copyItemNameToolStripMenuItem.Text = "Copy item name"; this.copyItemNameToolStripMenuItem.Click += new System.EventHandler(this.copyItemNameToolStripMenuItem_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; this.toolStripSeparator1.Size = new System.Drawing.Size(239, 6); // // getMarkForAltCommandStripMenuItem // this.getMarkForAltCommandStripMenuItem.Name = "getMarkForAltCommandStripMenuItem"; this.getMarkForAltCommandStripMenuItem.Size = new System.Drawing.Size(242, 22); this.getMarkForAltCommandStripMenuItem.Text = "Get \"Mark For Alt\" Command"; this.getMarkForAltCommandStripMenuItem.Click += new System.EventHandler(this.getMarkForAltCommandStripMenuItem_Click); // // getMarkForMainCommandStripMenuItem // this.getMarkForMainCommandStripMenuItem.Name = "getMarkForMainCommandStripMenuItem"; this.getMarkForMainCommandStripMenuItem.Size = new System.Drawing.Size(242, 22); this.getMarkForMainCommandStripMenuItem.Text = "Get \"Mark For Main\" Command"; this.getMarkForMainCommandStripMenuItem.Click += new System.EventHandler(this.getMarkForMainCommandStripMenuItem_Click); // // getAddCommandStripMenuItem // this.getAddCommandStripMenuItem.Name = "getAddCommandStripMenuItem"; this.getAddCommandStripMenuItem.Size = new System.Drawing.Size(242, 22); this.getAddCommandStripMenuItem.Text = "Get \"Add\" Command"; this.getAddCommandStripMenuItem.Click += new System.EventHandler(this.getAddCommandStripMenuItem_Click); // // getDeleteStripMenuItem // this.getDeleteStripMenuItem.Name = "getDeleteStripMenuItem"; this.getDeleteStripMenuItem.Size = new System.Drawing.Size(242, 22); this.getDeleteStripMenuItem.Text = "Get \"Delete\" Command"; this.getDeleteStripMenuItem.Click += new System.EventHandler(this.getDeleteStripMenuItem_Click); // // getReassignCommandStripMenuItem // this.getReassignCommandStripMenuItem.Name = "getReassignCommandStripMenuItem"; this.getReassignCommandStripMenuItem.Size = new System.Drawing.Size(242, 22); this.getReassignCommandStripMenuItem.Text = "Get \"Reassign\" Command"; this.getReassignCommandStripMenuItem.Click += new System.EventHandler(this.getReassignCommandStripMenuItem_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; this.toolStripSeparator2.Size = new System.Drawing.Size(239, 6); // // copyAsCSVToolStripMenuItem // this.copyAsCSVToolStripMenuItem.Name = "copyAsCSVToolStripMenuItem"; this.copyAsCSVToolStripMenuItem.Size = new System.Drawing.Size(242, 22); this.copyAsCSVToolStripMenuItem.Text = "Copy as CSV"; this.copyAsCSVToolStripMenuItem.Click += new System.EventHandler(this.copyAsCSVToolStripMenuItem_Click); // // copyAsTSVToolStripMenuItem // this.copyAsTSVToolStripMenuItem.Name = "copyAsTSVToolStripMenuItem"; this.copyAsTSVToolStripMenuItem.Size = new System.Drawing.Size(242, 22); this.copyAsTSVToolStripMenuItem.Text = "Copy as TSV"; this.copyAsTSVToolStripMenuItem.Click += new System.EventHandler(this.copyAsTSCToolStripMenuItem_Click); // // copyAsHTMLToolStripMenuItem // this.copyAsHTMLToolStripMenuItem.Name = "copyAsHTMLToolStripMenuItem"; this.copyAsHTMLToolStripMenuItem.Size = new System.Drawing.Size(242, 22); this.copyAsHTMLToolStripMenuItem.Text = "Copy as HTML"; this.copyAsHTMLToolStripMenuItem.Click += new System.EventHandler(this.copyAsHTMLToolStripMenuItem_Click); // // copyAsPlainTexToolStripMenuItem // this.copyAsPlainTexToolStripMenuItem.Name = "copyAsPlainTexToolStripMenuItem"; this.copyAsPlainTexToolStripMenuItem.Size = new System.Drawing.Size(242, 22); this.copyAsPlainTexToolStripMenuItem.Text = "Copy as Plain Text"; this.copyAsPlainTexToolStripMenuItem.Click += new System.EventHandler(this.copyAsPlainTexToolStripMenuItem_Click); // // copyActualLogLinesToolStripMenuItem // this.copyActualLogLinesToolStripMenuItem.Name = "copyActualLogLinesToolStripMenuItem"; this.copyActualLogLinesToolStripMenuItem.Size = new System.Drawing.Size(242, 22); this.copyActualLogLinesToolStripMenuItem.Text = "Copy actual log lines"; this.copyActualLogLinesToolStripMenuItem.Click += new System.EventHandler(this.copyActualLogLinesToolStripMenuItem_Click); // // ChatListView // this.ChatListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.chatDateTimeColumnHeader, this.chatChannelColumnHeader, this.chatPlayerColumnHeader, this.chatTextColumnHeader}); this.ChatListView.ContextMenuStrip = this.ChatListViewContextMenuStrip; this.ChatListView.Dock = System.Windows.Forms.DockStyle.Fill; this.ChatListView.GridLines = true; this.ChatListView.Location = new System.Drawing.Point(3, 16); this.ChatListView.Name = "ChatListView"; this.ChatListView.Size = new System.Drawing.Size(699, 110); this.ChatListView.TabIndex = 1; this.ChatListView.UseCompatibleStateImageBehavior = false; this.ChatListView.View = System.Windows.Forms.View.Details; this.ChatListView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.lvChat_ColumnClick); this.ChatListView.Resize += new System.EventHandler(this.ChatListView_Resize); // // chatDateTimeColumnHeader // this.chatDateTimeColumnHeader.Text = "DateTime"; // // chatChannelColumnHeader // this.chatChannelColumnHeader.Text = "Channel"; // // chatPlayerColumnHeader // this.chatPlayerColumnHeader.Text = "Player"; // // chatTextColumnHeader // this.chatTextColumnHeader.Text = "Text"; // // ChatListViewContextMenuStrip // this.ChatListViewContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.copyActualLogLinesToolStripMenuItem1}); this.ChatListViewContextMenuStrip.Name = "cmsLvChat"; this.ChatListViewContextMenuStrip.Size = new System.Drawing.Size(185, 26); // // copyActualLogLinesToolStripMenuItem1 // this.copyActualLogLinesToolStripMenuItem1.Name = "copyActualLogLinesToolStripMenuItem1"; this.copyActualLogLinesToolStripMenuItem1.Size = new System.Drawing.Size(184, 22); this.copyActualLogLinesToolStripMenuItem1.Text = "Copy actual log lines"; this.copyActualLogLinesToolStripMenuItem1.Click += new System.EventHandler(this.copyActualLogLinesToolStripMenuItem1_Click); // // chatPreceedingItemGroupBox // this.chatPreceedingItemGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.chatPreceedingItemGroupBox.Controls.Add(this.ChatListView); this.chatPreceedingItemGroupBox.Location = new System.Drawing.Point(3, 3); this.chatPreceedingItemGroupBox.Name = "chatPreceedingItemGroupBox"; this.chatPreceedingItemGroupBox.Size = new System.Drawing.Size(705, 129); this.chatPreceedingItemGroupBox.TabIndex = 2; this.chatPreceedingItemGroupBox.TabStop = false; this.chatPreceedingItemGroupBox.Text = "Chat Preceeding Item"; // // ChatPanel // this.ChatPanel.Controls.Add(this.panel2); this.ChatPanel.Controls.Add(this.chatPreceedingItemGroupBox); this.ChatPanel.Dock = System.Windows.Forms.DockStyle.Bottom; this.ChatPanel.Location = new System.Drawing.Point(3, 794); this.ChatPanel.Name = "ChatPanel"; this.ChatPanel.Size = new System.Drawing.Size(711, 152); this.ChatPanel.TabIndex = 4; // // panel2 // this.panel2.Controls.Add(this.lblCurrentItem); this.panel2.Controls.Add(this.linkLabel5); this.panel2.Controls.Add(this.linkLabel4); this.panel2.Controls.Add(this.eq2iLink); this.panel2.Controls.Add(this.linkLabel2); this.panel2.Controls.Add(this.lootDBLink); this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; this.panel2.Location = new System.Drawing.Point(0, 129); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(711, 23); this.panel2.TabIndex = 3; // // lblCurrentItem // this.lblCurrentItem.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.lblCurrentItem.Location = new System.Drawing.Point(3, 0); this.lblCurrentItem.Name = "lblCurrentItem"; this.lblCurrentItem.Size = new System.Drawing.Size(416, 23); this.lblCurrentItem.TabIndex = 1; this.lblCurrentItem.Text = "No Item"; this.lblCurrentItem.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // linkLabel5 // this.linkLabel5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.linkLabel5.AutoSize = true; this.linkLabel5.Location = new System.Drawing.Point(643, 5); this.linkLabel5.Name = "linkLabel5"; this.linkLabel5.Size = new System.Drawing.Size(50, 13); this.linkLabel5.TabIndex = 0; this.linkLabel5.TabStop = true; this.linkLabel5.Text = "EQ2Wire"; this.linkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel5_LinkClicked); // // linkLabel4 // this.linkLabel4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.linkLabel4.AutoSize = true; this.linkLabel4.Location = new System.Drawing.Point(575, 5); this.linkLabel4.Name = "linkLabel4"; this.linkLabel4.Size = new System.Drawing.Size(62, 13); this.linkLabel4.TabIndex = 0; this.linkLabel4.TabStop = true; this.linkLabel4.Text = "EQ2@ZAM"; this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel4_LinkClicked); // // eq2iLink // this.eq2iLink.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.eq2iLink.AutoSize = true; this.eq2iLink.Location = new System.Drawing.Point(539, 5); this.eq2iLink.Name = "eq2iLink"; this.eq2iLink.Size = new System.Drawing.Size(30, 13); this.eq2iLink.TabIndex = 0; this.eq2iLink.TabStop = true; this.eq2iLink.Text = "EQ2i"; this.eq2iLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.eq2i_LinkClicked); // // linkLabel2 // this.linkLabel2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.linkLabel2.AutoSize = true; this.linkLabel2.Location = new System.Drawing.Point(474, 5); this.linkLabel2.Name = "linkLabel2"; this.linkLabel2.Size = new System.Drawing.Size(59, 13); this.linkLabel2.TabIndex = 0; this.linkLabel2.TabStop = true; this.linkLabel2.Text = "EQ2LLinks"; this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); // // lootDBLink // this.lootDBLink.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.lootDBLink.AutoSize = true; this.lootDBLink.Location = new System.Drawing.Point(425, 5); this.lootDBLink.Name = "lootDBLink"; this.lootDBLink.Size = new System.Drawing.Size(43, 13); this.lootDBLink.TabIndex = 0; this.lootDBLink.TabStop = true; this.lootDBLink.Text = "LootDB"; this.lootDBLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lootDB_LinkClicked); // // panel3 // this.panel3.Controls.Add(this.toolStrip1); this.panel3.Controls.Add(this.itemDataGridStatusLabel); this.panel3.Controls.Add(this.itemGridView); this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; this.panel3.Location = new System.Drawing.Point(3, 3); this.panel3.Name = "panel3"; this.panel3.Size = new System.Drawing.Size(711, 781); this.panel3.TabIndex = 5; // // toolStrip1 // this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripMarkForAltButton, this.toolStripMarkForMainButton, this.toolStripAddButton, this.toolStripReassignButton, this.toolStripDeleteButton}); this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Size = new System.Drawing.Size(711, 25); this.toolStrip1.TabIndex = 2; this.toolStrip1.Text = "toolStrip1"; // // toolStripMarkForAltButton // this.toolStripMarkForAltButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; this.toolStripMarkForAltButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripMarkForAltButton.Name = "toolStripMarkForAltButton"; this.toolStripMarkForAltButton.Size = new System.Drawing.Size(74, 22); this.toolStripMarkForAltButton.Text = "Mark for Alt"; this.toolStripMarkForAltButton.ToolTipText = "Copies commands for marking an item for alts into clipboard or macro file."; this.toolStripMarkForAltButton.Click += new System.EventHandler(this.getMarkForAltCommandStripMenuItem_Click); // // toolStripMarkForMainButton // this.toolStripMarkForMainButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; this.toolStripMarkForMainButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripMarkForMainButton.Name = "toolStripMarkForMainButton"; this.toolStripMarkForMainButton.Size = new System.Drawing.Size(86, 22); this.toolStripMarkForMainButton.Text = "Mark for Main"; this.toolStripMarkForMainButton.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage; this.toolStripMarkForMainButton.ToolTipText = "Copies commands for marking an item for mains into clipboard or macro file."; this.toolStripMarkForMainButton.Click += new System.EventHandler(this.getMarkForMainCommandStripMenuItem_Click); // // toolStripAddButton // this.toolStripAddButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; this.toolStripAddButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripAddButton.Name = "toolStripAddButton"; this.toolStripAddButton.Size = new System.Drawing.Size(33, 22); this.toolStripAddButton.Text = "Add"; this.toolStripAddButton.ToolTipText = "Copies commands for adding an item into clipboard or macro file."; this.toolStripAddButton.Click += new System.EventHandler(this.getAddCommandStripMenuItem_Click); // // toolStripReassignButton // this.toolStripReassignButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; this.toolStripReassignButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripReassignButton.Name = "toolStripReassignButton"; this.toolStripReassignButton.Size = new System.Drawing.Size(57, 22); this.toolStripReassignButton.Text = "Reassign"; this.toolStripReassignButton.ToolTipText = "Copies commands for reassigning an item into clipboard or macro file."; this.toolStripReassignButton.Click += new System.EventHandler(this.getReassignCommandStripMenuItem_Click); // // toolStripDeleteButton // this.toolStripDeleteButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; this.toolStripDeleteButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripDeleteButton.Name = "toolStripDeleteButton"; this.toolStripDeleteButton.Size = new System.Drawing.Size(44, 22); this.toolStripDeleteButton.Text = "Delete"; this.toolStripDeleteButton.ToolTipText = "Copies commands for deleting an item into clipboard or macro file."; this.toolStripDeleteButton.Click += new System.EventHandler(this.getDeleteStripMenuItem_Click); // // itemDataGridStatusLabel // this.itemDataGridStatusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.itemDataGridStatusLabel.BackColor = System.Drawing.Color.Transparent; this.itemDataGridStatusLabel.Location = new System.Drawing.Point(3, 758); this.itemDataGridStatusLabel.Name = "itemDataGridStatusLabel"; this.itemDataGridStatusLabel.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); this.itemDataGridStatusLabel.Size = new System.Drawing.Size(702, 23); this.itemDataGridStatusLabel.TabIndex = 1; this.itemDataGridStatusLabel.Text = "Idle"; // // itemGridView // this.itemGridView.AllowUserToAddRows = false; this.itemGridView.AllowUserToDeleteRows = false; this.itemGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.itemGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.itemGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.columnTime, this.columnZone, this.columnPlayer, this.columnItemName, this.columnContainer, this.columnIsMain}); this.itemGridView.ContextMenuStrip = this.ItemsListViewContextMenuStrip; this.itemGridView.Location = new System.Drawing.Point(4, 28); this.itemGridView.Name = "itemGridView"; this.itemGridView.ReadOnly = true; this.itemGridView.Size = new System.Drawing.Size(701, 727); this.itemGridView.TabIndex = 0; this.itemGridView.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.itemGridView_CellClick); this.itemGridView.CellEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.itemGridView_CellClick); // // columnTime // this.columnTime.HeaderText = "Time"; this.columnTime.Name = "columnTime"; this.columnTime.ReadOnly = true; // // columnZone // this.columnZone.HeaderText = "Zone"; this.columnZone.Name = "columnZone"; this.columnZone.ReadOnly = true; // // columnPlayer // this.columnPlayer.HeaderText = "Player"; this.columnPlayer.Name = "columnPlayer"; this.columnPlayer.ReadOnly = true; // // columnItemName // this.columnItemName.HeaderText = "Item Name"; this.columnItemName.Name = "columnItemName"; this.columnItemName.ReadOnly = true; // // columnContainer // this.columnContainer.HeaderText = "Container"; this.columnContainer.Name = "columnContainer"; this.columnContainer.ReadOnly = true; // // columnIsMain // this.columnIsMain.HeaderText = "Main?"; this.columnIsMain.Name = "columnIsMain"; this.columnIsMain.ReadOnly = true; this.columnIsMain.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.columnIsMain.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; // // tabControl1 // this.tabControl1.Controls.Add(this.tabPage1); this.tabControl1.Controls.Add(this.tabPage3); this.tabControl1.Controls.Add(this.settingsPage); this.tabControl1.Controls.Add(this.CommandHistoryTab); this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControl1.Location = new System.Drawing.Point(0, 0); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; this.tabControl1.Size = new System.Drawing.Size(725, 975); this.tabControl1.TabIndex = 1; // // tabPage1 // this.tabPage1.Controls.Add(this.panel3); this.tabPage1.Controls.Add(this.splitter1); this.tabPage1.Controls.Add(this.ChatPanel); this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); this.tabPage1.Size = new System.Drawing.Size(717, 949); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "Session Loot Logs"; this.tabPage1.UseVisualStyleBackColor = true; // // splitter1 // this.splitter1.BackColor = System.Drawing.SystemColors.ControlDarkDark; this.splitter1.Dock = System.Windows.Forms.DockStyle.Bottom; this.splitter1.Location = new System.Drawing.Point(3, 784); this.splitter1.Name = "splitter1"; this.splitter1.Size = new System.Drawing.Size(711, 10); this.splitter1.TabIndex = 6; this.splitter1.TabStop = false; // // tabPage3 // this.tabPage3.Controls.Add(this.tallyGridView); this.tabPage3.Location = new System.Drawing.Point(4, 22); this.tabPage3.Name = "tabPage3"; this.tabPage3.Padding = new System.Windows.Forms.Padding(3); this.tabPage3.Size = new System.Drawing.Size(717, 949); this.tabPage3.TabIndex = 2; this.tabPage3.Text = "Tally"; this.tabPage3.UseVisualStyleBackColor = true; // // tallyGridView // this.tallyGridView.AllowUserToAddRows = false; this.tallyGridView.AllowUserToDeleteRows = false; this.tallyGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.tallyGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.tallyGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.tallyPlayerColumn, this.tallyMainCountColumn, this.tallyAltCountColumn}); this.tallyGridView.ContextMenuStrip = this.TallyContextMenuStrip; this.tallyGridView.Location = new System.Drawing.Point(6, 6); this.tallyGridView.Name = "tallyGridView"; this.tallyGridView.Size = new System.Drawing.Size(705, 937); this.tallyGridView.TabIndex = 0; // // tallyPlayerColumn // this.tallyPlayerColumn.HeaderText = "Player"; this.tallyPlayerColumn.Name = "tallyPlayerColumn"; this.tallyPlayerColumn.ReadOnly = true; // // tallyMainCountColumn // this.tallyMainCountColumn.HeaderText = "Main Loot"; this.tallyMainCountColumn.Name = "tallyMainCountColumn"; this.tallyMainCountColumn.ReadOnly = true; // // tallyAltCountColumn // this.tallyAltCountColumn.HeaderText = "Alt Loot"; this.tallyAltCountColumn.Name = "tallyAltCountColumn"; this.tallyAltCountColumn.ReadOnly = true; // // TallyContextMenuStrip // this.TallyContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.copyTallyAsPlainTextToolStripMenuItem}); this.TallyContextMenuStrip.Name = "TallyContextMenuStrip"; this.TallyContextMenuStrip.Size = new System.Drawing.Size(199, 26); // // copyTallyAsPlainTextToolStripMenuItem // this.copyTallyAsPlainTextToolStripMenuItem.Name = "copyTallyAsPlainTextToolStripMenuItem"; this.copyTallyAsPlainTextToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.copyTallyAsPlainTextToolStripMenuItem.Text = "Copy Tally as Plain Text"; this.copyTallyAsPlainTextToolStripMenuItem.Click += new System.EventHandler(this.copyTallyAsPlainTextToolStripMenuItem_Click); // // settingsPage // this.settingsPage.AutoScroll = true; this.settingsPage.Controls.Add(this.lootControllerGroupBox); this.settingsPage.Controls.Add(this.otherSettingsGroupBox); this.settingsPage.Controls.Add(this.groupBox5); this.settingsPage.Controls.Add(this.groupBox4); this.settingsPage.Controls.Add(this.groupBox3); this.settingsPage.Controls.Add(this.groupBox2); this.settingsPage.Location = new System.Drawing.Point(4, 22); this.settingsPage.Name = "settingsPage"; this.settingsPage.Padding = new System.Windows.Forms.Padding(3); this.settingsPage.Size = new System.Drawing.Size(717, 949); this.settingsPage.TabIndex = 1; this.settingsPage.Text = "Settings"; this.settingsPage.UseVisualStyleBackColor = true; // // lootControllerGroupBox // this.lootControllerGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.lootControllerGroupBox.Controls.Add(this.lootControlChannelTextBox); this.lootControllerGroupBox.Controls.Add(this.macroSaveFileUnchooseButton); this.lootControllerGroupBox.Controls.Add(this.unsetControlChannelButton); this.lootControllerGroupBox.Controls.Add(this.setControlChannelInputTextBox); this.lootControllerGroupBox.Controls.Add(this.macroSaveFileChooseButton); this.lootControllerGroupBox.Controls.Add(this.label2); this.lootControllerGroupBox.Controls.Add(this.macroSaveFileTextBox); this.lootControllerGroupBox.Controls.Add(this.label1); this.lootControllerGroupBox.Controls.Add(this.setControlChannelButton); this.lootControllerGroupBox.Controls.Add(this.tbLootController); this.lootControllerGroupBox.Controls.Add(this.removeLootControllerButton); this.lootControllerGroupBox.Controls.Add(this.label6); this.lootControllerGroupBox.Controls.Add(this.addLootControllerButton); this.lootControllerGroupBox.Controls.Add(this.lbLootControllers); this.lootControllerGroupBox.Location = new System.Drawing.Point(7, 525); this.lootControllerGroupBox.Name = "lootControllerGroupBox"; this.lootControllerGroupBox.Size = new System.Drawing.Size(704, 324); this.lootControllerGroupBox.TabIndex = 5; this.lootControllerGroupBox.TabStop = false; this.lootControllerGroupBox.Text = "Loot Controllers"; // // lootControlChannelTextBox // this.lootControlChannelTextBox.Location = new System.Drawing.Point(7, 137); this.lootControlChannelTextBox.Name = "lootControlChannelTextBox"; this.lootControlChannelTextBox.ReadOnly = true; this.lootControlChannelTextBox.Size = new System.Drawing.Size(193, 20); this.lootControlChannelTextBox.TabIndex = 14; // // macroSaveFileUnchooseButton // this.macroSaveFileUnchooseButton.Location = new System.Drawing.Point(206, 265); this.macroSaveFileUnchooseButton.Name = "macroSaveFileUnchooseButton"; this.macroSaveFileUnchooseButton.Size = new System.Drawing.Size(165, 23); this.macroSaveFileUnchooseButton.TabIndex = 13; this.macroSaveFileUnchooseButton.Text = "Unset Macro File Location"; this.macroSaveFileUnchooseButton.UseVisualStyleBackColor = true; this.macroSaveFileUnchooseButton.Click += new System.EventHandler(this.macroSaveFileUnchooseButton_Click); // // unsetControlChannelButton // this.unsetControlChannelButton.Location = new System.Drawing.Point(206, 164); this.unsetControlChannelButton.Name = "unsetControlChannelButton"; this.unsetControlChannelButton.Size = new System.Drawing.Size(165, 23); this.unsetControlChannelButton.TabIndex = 12; this.unsetControlChannelButton.Text = "Unset Control Channel"; this.unsetControlChannelButton.UseVisualStyleBackColor = true; this.unsetControlChannelButton.Click += new System.EventHandler(this.unsetControlChannelButton_Click); // // setControlChannelInputTextBox // this.setControlChannelInputTextBox.Location = new System.Drawing.Point(206, 209); this.setControlChannelInputTextBox.Name = "setControlChannelInputTextBox"; this.setControlChannelInputTextBox.Size = new System.Drawing.Size(165, 20); this.setControlChannelInputTextBox.TabIndex = 11; // // macroSaveFileChooseButton // this.macroSaveFileChooseButton.Location = new System.Drawing.Point(206, 236); this.macroSaveFileChooseButton.Name = "macroSaveFileChooseButton"; this.macroSaveFileChooseButton.Size = new System.Drawing.Size(165, 23); this.macroSaveFileChooseButton.TabIndex = 10; this.macroSaveFileChooseButton.Text = "Set Macro File Location"; this.macroSaveFileChooseButton.UseVisualStyleBackColor = true; this.macroSaveFileChooseButton.Click += new System.EventHandler(this.macroSaveFileChooseButton_Click); // // label2 // this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.label2.Location = new System.Drawing.Point(377, 236); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(321, 85); this.label2.TabIndex = 9; // // macroSaveFileTextBox // this.macroSaveFileTextBox.Location = new System.Drawing.Point(7, 236); this.macroSaveFileTextBox.Name = "macroSaveFileTextBox"; this.macroSaveFileTextBox.ReadOnly = true; this.macroSaveFileTextBox.Size = new System.Drawing.Size(193, 20); this.macroSaveFileTextBox.TabIndex = 8; // // label1 // this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.label1.Location = new System.Drawing.Point(377, 135); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(321, 95); this.label1.TabIndex = 7; // // setControlChannelButton // this.setControlChannelButton.Location = new System.Drawing.Point(206, 135); this.setControlChannelButton.Name = "setControlChannelButton"; this.setControlChannelButton.Size = new System.Drawing.Size(165, 23); this.setControlChannelButton.TabIndex = 6; this.setControlChannelButton.Text = "Set Control Channel"; this.setControlChannelButton.UseVisualStyleBackColor = true; this.setControlChannelButton.Click += new System.EventHandler(this.setControlChannelButton_Click); // // tbLootController // this.tbLootController.Location = new System.Drawing.Point(206, 107); this.tbLootController.Name = "tbLootController"; this.tbLootController.Size = new System.Drawing.Size(165, 20); this.tbLootController.TabIndex = 4; // // removeLootControllerButton // this.removeLootControllerButton.Location = new System.Drawing.Point(206, 50); this.removeLootControllerButton.Name = "removeLootControllerButton"; this.removeLootControllerButton.Size = new System.Drawing.Size(165, 23); this.removeLootControllerButton.TabIndex = 3; this.removeLootControllerButton.Text = "Remove Loot Controller"; this.removeLootControllerButton.UseVisualStyleBackColor = true; this.removeLootControllerButton.Click += new System.EventHandler(this.removeLootControllerButton_Click); // // label6 // this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.label6.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.label6.Location = new System.Drawing.Point(377, 20); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(321, 108); this.label6.TabIndex = 2; // // addLootControllerButton // this.addLootControllerButton.Location = new System.Drawing.Point(206, 20); this.addLootControllerButton.Name = "addLootControllerButton"; this.addLootControllerButton.Size = new System.Drawing.Size(165, 23); this.addLootControllerButton.TabIndex = 1; this.addLootControllerButton.Text = "Add Loot Controller"; this.addLootControllerButton.UseVisualStyleBackColor = true; this.addLootControllerButton.Click += new System.EventHandler(this.addLootControllerButton_Click); // // lbLootControllers // this.lbLootControllers.FormattingEnabled = true; this.lbLootControllers.Location = new System.Drawing.Point(7, 20); this.lbLootControllers.Name = "lbLootControllers"; this.lbLootControllers.Size = new System.Drawing.Size(193, 108); this.lbLootControllers.TabIndex = 0; // // otherSettingsGroupBox // this.otherSettingsGroupBox.Controls.Add(this.skipLottoCheckBox); this.otherSettingsGroupBox.Location = new System.Drawing.Point(7, 855); this.otherSettingsGroupBox.Name = "otherSettingsGroupBox"; this.otherSettingsGroupBox.Size = new System.Drawing.Size(704, 88); this.otherSettingsGroupBox.TabIndex = 4; this.otherSettingsGroupBox.TabStop = false; this.otherSettingsGroupBox.Text = "Other Settings"; // // skipLottoCheckBox // this.skipLottoCheckBox.AutoSize = true; this.skipLottoCheckBox.Location = new System.Drawing.Point(7, 20); this.skipLottoCheckBox.Name = "skipLottoCheckBox"; this.skipLottoCheckBox.Size = new System.Drawing.Size(80, 17); this.skipLottoCheckBox.TabIndex = 0; this.skipLottoCheckBox.Text = "Skip Lotto?"; this.skipLottoCheckBox.UseVisualStyleBackColor = true; // // groupBox5 // this.groupBox5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox5.Controls.Add(this.BlacklistCheckedListBox); this.groupBox5.Controls.Add(this.label5); this.groupBox5.Controls.Add(this.tbBlacklist); this.groupBox5.Controls.Add(this.RemoveBlacklistButton); this.groupBox5.Controls.Add(this.AddBlacklistButton); this.groupBox5.Location = new System.Drawing.Point(7, 381); this.groupBox5.Name = "groupBox5"; this.groupBox5.Size = new System.Drawing.Size(704, 137); this.groupBox5.TabIndex = 3; this.groupBox5.TabStop = false; this.groupBox5.Text = "Item Logline Blacklist"; // // BlacklistCheckedListBox // this.BlacklistCheckedListBox.FormattingEnabled = true; this.BlacklistCheckedListBox.IntegralHeight = false; this.BlacklistCheckedListBox.Location = new System.Drawing.Point(6, 19); this.BlacklistCheckedListBox.Name = "BlacklistCheckedListBox"; this.BlacklistCheckedListBox.Size = new System.Drawing.Size(194, 112); this.BlacklistCheckedListBox.TabIndex = 10; this.BlacklistCheckedListBox.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.BlacklistCheckedListBox_ItemCheck); this.BlacklistCheckedListBox.SelectedIndexChanged += new System.EventHandler(this.BlacklistCheckedListBox_SelectedIndexChanged); // // label5 // this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.label5.Location = new System.Drawing.Point(377, 19); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(321, 112); this.label5.TabIndex = 9; // // tbBlacklist // this.tbBlacklist.Location = new System.Drawing.Point(207, 111); this.tbBlacklist.Name = "tbBlacklist"; this.tbBlacklist.Size = new System.Drawing.Size(164, 20); this.tbBlacklist.TabIndex = 6; // // RemoveBlacklistButton // this.RemoveBlacklistButton.Location = new System.Drawing.Point(207, 44); this.RemoveBlacklistButton.Name = "RemoveBlacklistButton"; this.RemoveBlacklistButton.Size = new System.Drawing.Size(164, 23); this.RemoveBlacklistButton.TabIndex = 7; this.RemoveBlacklistButton.Text = "Remove Term"; this.RemoveBlacklistButton.UseVisualStyleBackColor = true; this.RemoveBlacklistButton.Click += new System.EventHandler(this.RemoveBlacklistButton_Click); // // AddBlacklistButton // this.AddBlacklistButton.Location = new System.Drawing.Point(207, 19); this.AddBlacklistButton.Name = "AddBlacklistButton"; this.AddBlacklistButton.Size = new System.Drawing.Size(164, 23); this.AddBlacklistButton.TabIndex = 8; this.AddBlacklistButton.Text = "Add Blacklisted Term"; this.AddBlacklistButton.UseVisualStyleBackColor = true; this.AddBlacklistButton.Click += new System.EventHandler(this.AddBlacklistButton_Click); // // groupBox4 // this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox4.Controls.Add(this.label4); this.groupBox4.Controls.Add(this.GermanRadioButton); this.groupBox4.Controls.Add(this.FrenchRadioButton); this.groupBox4.Controls.Add(this.EnglishRadioButton); this.groupBox4.Location = new System.Drawing.Point(7, 275); this.groupBox4.Name = "groupBox4"; this.groupBox4.Size = new System.Drawing.Size(704, 100); this.groupBox4.TabIndex = 2; this.groupBox4.TabStop = false; this.groupBox4.Text = "Log Input Language"; // // label4 // this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.label4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.label4.Location = new System.Drawing.Point(377, 16); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(321, 78); this.label4.TabIndex = 1; // // GermanRadioButton // this.GermanRadioButton.AutoSize = true; this.GermanRadioButton.Location = new System.Drawing.Point(6, 38); this.GermanRadioButton.Margin = new System.Windows.Forms.Padding(3, 1, 3, 1); this.GermanRadioButton.Name = "GermanRadioButton"; this.GermanRadioButton.Size = new System.Drawing.Size(181, 17); this.GermanRadioButton.TabIndex = 0; this.GermanRadioButton.TabStop = true; this.GermanRadioButton.Text = "German (Credit to Mayriia@Valor)"; this.GermanRadioButton.UseVisualStyleBackColor = true; this.GermanRadioButton.CheckedChanged += new System.EventHandler(this.GermanRadioButton_CheckedChanged); // // FrenchRadioButton // this.FrenchRadioButton.AutoSize = true; this.FrenchRadioButton.Location = new System.Drawing.Point(6, 57); this.FrenchRadioButton.Margin = new System.Windows.Forms.Padding(3, 1, 3, 1); this.FrenchRadioButton.Name = "FrenchRadioButton"; this.FrenchRadioButton.Size = new System.Drawing.Size(184, 17); this.FrenchRadioButton.TabIndex = 0; this.FrenchRadioButton.TabStop = true; this.FrenchRadioButton.Text = "French (Credit to Khams@Storms)"; this.FrenchRadioButton.UseVisualStyleBackColor = true; this.FrenchRadioButton.CheckedChanged += new System.EventHandler(this.FrenchRadioButton_CheckedChanged); // // EnglishRadioButton // this.EnglishRadioButton.AutoSize = true; this.EnglishRadioButton.Checked = true; this.EnglishRadioButton.Location = new System.Drawing.Point(6, 19); this.EnglishRadioButton.Margin = new System.Windows.Forms.Padding(3, 1, 3, 1); this.EnglishRadioButton.Name = "EnglishRadioButton"; this.EnglishRadioButton.Size = new System.Drawing.Size(59, 17); this.EnglishRadioButton.TabIndex = 0; this.EnglishRadioButton.TabStop = true; this.EnglishRadioButton.Text = "English"; this.EnglishRadioButton.UseVisualStyleBackColor = true; this.EnglishRadioButton.CheckedChanged += new System.EventHandler(this.EnglishRadioButton_CheckedChanged); // // groupBox3 // this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox3.Controls.Add(this.label3); this.groupBox3.Controls.Add(this.namedChatTextBox); this.groupBox3.Controls.Add(this.removeNamedChatButton); this.groupBox3.Controls.Add(this.addNamedChatButton); this.groupBox3.Controls.Add(this.lbNamedChat); this.groupBox3.Location = new System.Drawing.Point(6, 132); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(705, 137); this.groupBox3.TabIndex = 1; this.groupBox3.TabStop = false; this.groupBox3.Text = "Preceeding Chat Channels"; // // label3 // this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.label3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.label3.Location = new System.Drawing.Point(378, 16); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(321, 115); this.label3.TabIndex = 5; // // namedChatTextBox // this.namedChatTextBox.Location = new System.Drawing.Point(207, 111); this.namedChatTextBox.Name = "namedChatTextBox"; this.namedChatTextBox.Size = new System.Drawing.Size(165, 20); this.namedChatTextBox.TabIndex = 3; // // removeNamedChatButton // this.removeNamedChatButton.Location = new System.Drawing.Point(207, 44); this.removeNamedChatButton.Name = "removeNamedChatButton"; this.removeNamedChatButton.Size = new System.Drawing.Size(165, 23); this.removeNamedChatButton.TabIndex = 4; this.removeNamedChatButton.Text = "Remove Channel"; this.removeNamedChatButton.UseVisualStyleBackColor = true; this.removeNamedChatButton.Click += new System.EventHandler(this.btnRemoveNamedChat_Click); // // addNamedChatButton // this.addNamedChatButton.Location = new System.Drawing.Point(207, 19); this.addNamedChatButton.Name = "addNamedChatButton"; this.addNamedChatButton.Size = new System.Drawing.Size(165, 23); this.addNamedChatButton.TabIndex = 4; this.addNamedChatButton.Text = "Add Channel"; this.addNamedChatButton.UseVisualStyleBackColor = true; this.addNamedChatButton.Click += new System.EventHandler(this.btnAddNamedChat_Click); // // lbNamedChat // this.lbNamedChat.FormattingEnabled = true; this.lbNamedChat.IntegralHeight = false; this.lbNamedChat.Location = new System.Drawing.Point(6, 19); this.lbNamedChat.Name = "lbNamedChat"; this.lbNamedChat.Size = new System.Drawing.Size(195, 112); this.lbNamedChat.TabIndex = 2; this.lbNamedChat.SelectedIndexChanged += new System.EventHandler(this.lbNamedChat_SelectedIndexChanged); // // groupBox2 // this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox2.Controls.Add(this.numberOfLinesToRetainPerChannelLabel); this.groupBox2.Controls.Add(this.numberOfSecondsToRecordChatPrecedingItemLabel); this.groupBox2.Controls.Add(this.numberOfChatLinesSelector); this.groupBox2.Controls.Add(this.numberOfChatSecondsSelector); this.groupBox2.Controls.Add(this.chatLinesCheckBox); this.groupBox2.Controls.Add(this.chatSecondsCheckBox); this.groupBox2.Location = new System.Drawing.Point(6, 6); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(705, 120); this.groupBox2.TabIndex = 0; this.groupBox2.TabStop = false; this.groupBox2.Text = "Preceeding Chat Limits"; // // numberOfLinesToRetainPerChannelLabel // this.numberOfLinesToRetainPerChannelLabel.AutoSize = true; this.numberOfLinesToRetainPerChannelLabel.Location = new System.Drawing.Point(88, 94); this.numberOfLinesToRetainPerChannelLabel.Name = "numberOfLinesToRetainPerChannelLabel"; this.numberOfLinesToRetainPerChannelLabel.Size = new System.Drawing.Size(180, 13); this.numberOfLinesToRetainPerChannelLabel.TabIndex = 2; this.numberOfLinesToRetainPerChannelLabel.Text = "Number of lines to retain per channel"; // // numberOfSecondsToRecordChatPrecedingItemLabel // this.numberOfSecondsToRecordChatPrecedingItemLabel.AutoSize = true; this.numberOfSecondsToRecordChatPrecedingItemLabel.Location = new System.Drawing.Point(88, 45); this.numberOfSecondsToRecordChatPrecedingItemLabel.Name = "numberOfSecondsToRecordChatPrecedingItemLabel"; this.numberOfSecondsToRecordChatPrecedingItemLabel.Size = new System.Drawing.Size(255, 13); this.numberOfSecondsToRecordChatPrecedingItemLabel.TabIndex = 2; this.numberOfSecondsToRecordChatPrecedingItemLabel.Text = "Number of seconds to record chat preceding an item"; // // numberOfChatLinesSelector // this.numberOfChatLinesSelector.Location = new System.Drawing.Point(27, 91); this.numberOfChatLinesSelector.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numberOfChatLinesSelector.Name = "numberOfChatLinesSelector"; this.numberOfChatLinesSelector.Size = new System.Drawing.Size(55, 20); this.numberOfChatLinesSelector.TabIndex = 1; this.numberOfChatLinesSelector.Value = new decimal(new int[] { 10, 0, 0, 0}); // // numberOfChatSecondsSelector // this.numberOfChatSecondsSelector.Location = new System.Drawing.Point(27, 42); this.numberOfChatSecondsSelector.Maximum = new decimal(new int[] { 600, 0, 0, 0}); this.numberOfChatSecondsSelector.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numberOfChatSecondsSelector.Name = "numberOfChatSecondsSelector"; this.numberOfChatSecondsSelector.Size = new System.Drawing.Size(55, 20); this.numberOfChatSecondsSelector.TabIndex = 1; this.numberOfChatSecondsSelector.Value = new decimal(new int[] { 60, 0, 0, 0}); // // chatLinesCheckBox // this.chatLinesCheckBox.AutoSize = true; this.chatLinesCheckBox.Checked = true; this.chatLinesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.chatLinesCheckBox.Location = new System.Drawing.Point(6, 68); this.chatLinesCheckBox.Name = "chatLinesCheckBox"; this.chatLinesCheckBox.Size = new System.Drawing.Size(222, 17); this.chatLinesCheckBox.TabIndex = 0; this.chatLinesCheckBox.Text = "Keep chat by number of lines per channel"; this.chatLinesCheckBox.UseVisualStyleBackColor = true; // // chatSecondsCheckBox // this.chatSecondsCheckBox.AutoSize = true; this.chatSecondsCheckBox.Checked = true; this.chatSecondsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.chatSecondsCheckBox.Location = new System.Drawing.Point(6, 19); this.chatSecondsCheckBox.Name = "chatSecondsCheckBox"; this.chatSecondsCheckBox.Size = new System.Drawing.Size(111, 17); this.chatSecondsCheckBox.TabIndex = 0; this.chatSecondsCheckBox.Text = "Keep chat by time"; this.chatSecondsCheckBox.UseVisualStyleBackColor = true; // // CommandHistoryTab // this.CommandHistoryTab.Controls.Add(this.commandHistoryGridView); this.CommandHistoryTab.Location = new System.Drawing.Point(4, 22); this.CommandHistoryTab.Name = "CommandHistoryTab"; this.CommandHistoryTab.Padding = new System.Windows.Forms.Padding(3); this.CommandHistoryTab.Size = new System.Drawing.Size(717, 949); this.CommandHistoryTab.TabIndex = 3; this.CommandHistoryTab.Text = "Command History"; this.CommandHistoryTab.UseVisualStyleBackColor = true; // // commandHistoryGridView // this.commandHistoryGridView.AllowUserToAddRows = false; this.commandHistoryGridView.AllowUserToDeleteRows = false; this.commandHistoryGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.commandHistoryGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.commandHistoryGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.CommandTimeColumn, this.CommandPlayerColumn, this.CommandTextColumn}); this.commandHistoryGridView.Location = new System.Drawing.Point(6, 9); this.commandHistoryGridView.Name = "commandHistoryGridView"; this.commandHistoryGridView.Size = new System.Drawing.Size(705, 934); this.commandHistoryGridView.TabIndex = 0; // // CommandTimeColumn // this.CommandTimeColumn.HeaderText = "Time"; this.CommandTimeColumn.Name = "CommandTimeColumn"; this.CommandTimeColumn.Width = 150; // // CommandPlayerColumn // this.CommandPlayerColumn.HeaderText = "Player"; this.CommandPlayerColumn.Name = "CommandPlayerColumn"; // // CommandTextColumn // this.CommandTextColumn.HeaderText = "Command Text"; this.CommandTextColumn.Name = "CommandTextColumn"; this.CommandTextColumn.Width = 450; // // HalfSecondTimer // this.HalfSecondTimer.Enabled = true; this.HalfSecondTimer.Interval = 500; this.HalfSecondTimer.Tick += new System.EventHandler(this.tmrSec_Tick); // // ClearButton // this.ClearButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.ClearButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.ClearButton.Location = new System.Drawing.Point(653, -1); this.ClearButton.Name = "ClearButton"; this.ClearButton.Size = new System.Drawing.Size(68, 20); this.ClearButton.TabIndex = 1; this.ClearButton.Text = "Clear"; this.ClearButton.UseVisualStyleBackColor = true; this.ClearButton.Click += new System.EventHandler(this.btnClear_Click); // // LootTally // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.ClearButton); this.Controls.Add(this.tabControl1); this.Name = "LootTally"; this.Size = new System.Drawing.Size(725, 975); this.ItemsListViewContextMenuStrip.ResumeLayout(false); this.ChatListViewContextMenuStrip.ResumeLayout(false); this.chatPreceedingItemGroupBox.ResumeLayout(false); this.ChatPanel.ResumeLayout(false); this.panel2.ResumeLayout(false); this.panel2.PerformLayout(); this.panel3.ResumeLayout(false); this.panel3.PerformLayout(); this.toolStrip1.ResumeLayout(false); this.toolStrip1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.itemGridView)).EndInit(); this.tabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage3.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.tallyGridView)).EndInit(); this.TallyContextMenuStrip.ResumeLayout(false); this.settingsPage.ResumeLayout(false); this.lootControllerGroupBox.ResumeLayout(false); this.lootControllerGroupBox.PerformLayout(); this.otherSettingsGroupBox.ResumeLayout(false); this.otherSettingsGroupBox.PerformLayout(); this.groupBox5.ResumeLayout(false); this.groupBox5.PerformLayout(); this.groupBox4.ResumeLayout(false); this.groupBox4.PerformLayout(); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numberOfChatLinesSelector)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numberOfChatSecondsSelector)).EndInit(); this.CommandHistoryTab.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.commandHistoryGridView)).EndInit(); this.ResumeLayout(false); } #endregion private ToolStripMenuItem copyAsTSVToolStripMenuItem; private ToolStripMenuItem copyAsHTMLToolStripMenuItem; private ToolStripMenuItem copyAsPlainTexToolStripMenuItem; private ToolStripMenuItem copyActualLogLinesToolStripMenuItem; private System.Windows.Forms.GroupBox chatPreceedingItemGroupBox; private Panel ChatPanel; private System.Windows.Forms.Panel panel2; private System.Windows.Forms.Panel panel3; private System.Windows.Forms.ColumnHeader chatDateTimeColumnHeader; private System.Windows.Forms.ColumnHeader chatChannelColumnHeader; private System.Windows.Forms.ColumnHeader chatPlayerColumnHeader; private System.Windows.Forms.LinkLabel lootDBLink; private System.Windows.Forms.TabControl tabControl1; private System.Windows.Forms.TabPage tabPage1; private Splitter splitter1; private System.Windows.Forms.TabPage settingsPage; private System.Windows.Forms.ListView ChatListView; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.Label numberOfSecondsToRecordChatPrecedingItemLabel; private System.Windows.Forms.Label numberOfLinesToRetainPerChannelLabel; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.Button removeNamedChatButton; private System.Windows.Forms.Button addNamedChatButton; private System.Windows.Forms.TextBox namedChatTextBox; private System.Windows.Forms.NumericUpDown numberOfChatSecondsSelector; private System.Windows.Forms.CheckBox chatSecondsCheckBox; private System.Windows.Forms.NumericUpDown numberOfChatLinesSelector; private System.Windows.Forms.CheckBox chatLinesCheckBox; private System.Windows.Forms.ListBox lbNamedChat; private System.Windows.Forms.Label label3; private System.Windows.Forms.Timer HalfSecondTimer; private ContextMenuStrip ItemsListViewContextMenuStrip; private ToolStripMenuItem copyAsCSVToolStripMenuItem; private ContextMenuStrip ChatListViewContextMenuStrip; private ToolStripMenuItem copyActualLogLinesToolStripMenuItem1; private GroupBox groupBox4; private Label label4; private RadioButton GermanRadioButton; private RadioButton FrenchRadioButton; private RadioButton EnglishRadioButton; private ToolStripMenuItem copyItemLinkToolStripMenuItem; private ToolStripSeparator toolStripSeparator1; private ToolStripMenuItem copyItemNameToolStripMenuItem; private LinkLabel linkLabel2; private LinkLabel eq2iLink; private LinkLabel linkLabel4; private LinkLabel linkLabel5; private Label lblCurrentItem; private GroupBox groupBox5; private CheckedListBox BlacklistCheckedListBox; private Label label5; private TextBox tbBlacklist; private Button RemoveBlacklistButton; private Button AddBlacklistButton; private Button ClearButton; private DataGridView itemGridView; private DataGridViewTextBoxColumn columnTime; private DataGridViewTextBoxColumn columnZone; private DataGridViewTextBoxColumn columnPlayer; private DataGridViewTextBoxColumn columnItemName; private DataGridViewTextBoxColumn columnContainer; private DataGridViewCheckBoxColumn columnIsMain; private TabPage tabPage3; private DataGridView tallyGridView; private DataGridViewTextBoxColumn tallyPlayerColumn; private DataGridViewTextBoxColumn tallyMainCountColumn; private DataGridViewTextBoxColumn tallyAltCountColumn; private GroupBox otherSettingsGroupBox; private CheckBox skipLottoCheckBox; private ToolStripMenuItem getDeleteStripMenuItem; private ToolStripMenuItem getMarkForAltCommandStripMenuItem; private ToolStripMenuItem getMarkForMainCommandStripMenuItem; private ToolStripMenuItem getReassignCommandStripMenuItem; private ToolStripSeparator toolStripSeparator2; private ContextMenuStrip TallyContextMenuStrip; private ToolStripMenuItem copyTallyAsPlainTextToolStripMenuItem; private TabPage CommandHistoryTab; private DataGridView commandHistoryGridView; private GroupBox lootControllerGroupBox; private Label label6; private Button addLootControllerButton; private ListBox lbLootControllers; private TextBox tbLootController; private Button removeLootControllerButton; private DataGridViewTextBoxColumn CommandTimeColumn; private DataGridViewTextBoxColumn CommandPlayerColumn; private DataGridViewTextBoxColumn CommandTextColumn; private System.Windows.Forms.ColumnHeader chatTextColumnHeader; #endregion /// /// Initializes a new instance of the class. /// public LootTally() { this.InitializeComponent(); this.label3.Text = @"Enter the chat channels to attach to a looted item." + Environment.NewLine + @"These listings may be partial matches to the chat channel identifier." + Environment.NewLine + Environment.NewLine + @"IE: ""raid"" will match identifiers, ""say to the raid party"" and ""says to the raid party"""; this.label4.Text = @"Loot parsing speed can be greatly increased by temporarily disabling ACT's combat parsing." + Environment.NewLine + Environment.NewLine + @"To do this, in the Plugins tab, uncheck ACT_English_Parser or similar."; this.label5.Text = @"This blacklist is a collection of Regular Expressions that may block the listing of a particular item." + Environment.NewLine + Environment.NewLine + @"The Regex does not need to match the entire item or logline, but will be matched against the entire logline. So you may blacklist anything from the item, mob, looter, container, etc." + Environment.NewLine + @"""the corpse of"" will blacklist all loot from corpses. In general, you can just enter something that appears in the log line. (Capitalization matters)" + Environment.NewLine + Environment.NewLine + @"Visit the forums if you need help with Regular Expressions... (or Google)"; this.label6.Text = @"Enter the players you trust to send loot update commands. By default, only the current user is allowed."; this.label1.Text = @"This is the channel to which all loot control commands will be sent. This must be a chat channel that is able to be used with /tellchannel." + Environment.NewLine + Environment.NewLine + @"If not set, loot commands will not be prefixed with 'tellchannel ' in the macro file."; this.label2.Text = @"Macro file location for Loot Control Commands. Once this is selected, all macros generated by the loot commands will be placed in this file." + Environment.NewLine + Environment.NewLine + @"This file can then be used in a macro in-game to run the commands with /do_file_commands full_path_to_file" + Environment.NewLine + @"If not set, all macro commands will be written to the clipboard only."; } /// String for a timestamp in the log, used in regular expression construction. private const string logTimeStampRegexStr = @"\(\d{10}\)\[.{24}\] "; /// /// German string for "You" /// private const string germanYou = "Ihr"; /// /// English string for "You" /// private const string englishYou = "You"; /// /// French string for "You" /// private const string frenchYou = "Vous"; /// Regular Expression for an item. private static Regex regexItem = new Regex(@"\\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a", RegexOptions.Compiled); /// Regular Expression for an item "add" command. private Regex regexAddItem = new Regex(@"add \\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a (?\w+)", RegexOptions.Compiled); /// Regular Expression for an item reassign command. private Regex regexReassignItem = new Regex(@"reassign \\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a (?\w+) (?\w+)", RegexOptions.Compiled); /// Regular Expression for an item "mark as main" command. private Regex regexItemForMain = new Regex(@"main \\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a (?\w+)", RegexOptions.Compiled); /// Regular Expression for an item "mark as alt" command. private Regex regexItemForAlt = new Regex(@"alt \\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a (?\w+)", RegexOptions.Compiled); /// Regular Expression for an item delete command. private Regex regexDeleteItem = new Regex(@"delete \\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a (?\w+)", RegexOptions.Compiled); /// Regular Expression for looting - assigned a value from the language-specific regexLoot* fields. private Regex regexLoot; /// Regular Expression for looting - English language. private Regex regexLootEng = new Regex(logTimeStampRegexStr + @"(?\w+) (?loots?|wins? the lotto for) \\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a from (?.+)\.", RegexOptions.Compiled); /// Regular Expression for looting - French language. private Regex regexLootFr = new Regex(logTimeStampRegexStr + @"(?\w+) (?pille.?|gagne.? la loterie pour) \\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a du (?.+)\.", RegexOptions.Compiled); /// Regular Expression for looting - German language. private Regex regexLootGer = new Regex(logTimeStampRegexStr + @"(?\w+) (?erbeutet:?|.+Lotterie gewonnen -) \\aITEM (?-?\d+) [-\d ]+:(?[^\\]+)\\/a( aus:| von:) (?.+)\.", RegexOptions.Compiled); /// Regular Expression for zoning. private Regex regexZone; /// Regular Expression for zoning - English. private Regex regexZoneEng = new Regex(logTimeStampRegexStr + @"You have entered (?::.+?:)?(?.+)\.", RegexOptions.Compiled); /// Regular Expression for chat text. private Regex regexChat; /// Regular Expression for chat text - English. private Regex regexChatEng = new Regex(logTimeStampRegexStr + @"(?:(?" + englishYou + @")|\\aPC -?\d+ (?\w+):\w+\\/a) (?.+?), ?""(?.+)""", RegexOptions.Compiled); /// Regular Expression for chat text - French. private Regex regexChatFr = new Regex(logTimeStampRegexStr + @"(?:(?" + frenchYou + @")|\\aPC -?\d+ (?\w+):\w+\\/a) (?.+?), ?""(?.+)""", RegexOptions.Compiled); /// Regular Expression for chat text - German. private Regex regexChatGer = new Regex(logTimeStampRegexStr + @"(?:(?" + germanYou + @")|\\aPC -?\d+ (?\w+):\w+\\.a) (?.+?), ?""(?.+)""", RegexOptions.Compiled); /// /// Loot Verb - assigned to when setting a parse language, localized to English/French/German. /// private string lootVerb; /// /// Persona - equivalent of "You", localized to English/French/German. /// private string persona; /// /// List of looted items. /// private List lootedItems = new List(); /// Dictionary of chat lines correlated to the key string. private Dictionary> chatCollections = new Dictionary>(); /// Settings serializer, for storing plugin settings. private SettingsSerializer xmlSettings; /// /// Label for the plugin status. /// public Label lblPluginStatus; /// /// Initializes the plugin. /// /// The tab page in the UX that this plugin owns. /// Whether the plugin is enabled or disabled. public void InitPlugin(TabPage pluginScreenSpace, Label pluginStatusText) { this.lblPluginStatus = pluginStatusText; this.SetParseLang(0); this.xmlSettings = new SettingsSerializer(this); this.LoadSettings(); pluginScreenSpace.Controls.Add(this); this.Dock = DockStyle.Fill; ActGlobals.oFormActMain.OnLogLineRead += new LogLineEventDelegate(this.oFormActMain_OnLogLineRead); ActGlobals.oFormActMain.UpdateCheckClicked += new FormActMain.NullDelegate(oFormActMain_UpdateCheckClicked); if (ActGlobals.oFormActMain.GetAutomaticUpdatesAllowed()) // If ACT is set to automatically check for updates, check for updates to the plugin { new Thread(new ThreadStart(oFormActMain_UpdateCheckClicked)).Start(); // If we don't put this on a separate thread, web latency will delay the plugin init phase } } void oFormActMain_UpdateCheckClicked() { int pluginId = 65; try { DateTime localDate = ActGlobals.oFormActMain.PluginGetSelfDateUtc(this); DateTime remoteDate = ActGlobals.oFormActMain.PluginGetRemoteDateUtc(pluginId); if (localDate.AddHours(2) < remoteDate) { DialogResult result = MessageBox.Show("There is an updated version of the Loot Tally Plugin. Update it now?\n\n(If there is an update to ACT, you should click No and update ACT first.)", "New Version", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { FileInfo updatedFile = ActGlobals.oFormActMain.PluginDownload(pluginId); ActPluginData pluginData = ActGlobals.oFormActMain.PluginGetSelfData(this); pluginData.pluginFile.Delete(); updatedFile.MoveTo(pluginData.pluginFile.FullName); ThreadInvokes.CheckboxSetChecked(ActGlobals.oFormActMain, pluginData.cbEnabled, false); Application.DoEvents(); ThreadInvokes.CheckboxSetChecked(ActGlobals.oFormActMain, pluginData.cbEnabled, true); } } } catch (Exception ex) { ActGlobals.oFormActMain.WriteExceptionLog(ex, "Plugin Update Check"); } } /// /// Loads Settings from configuration. /// private void LoadSettings() { this.xmlSettings.AddControlSetting(this.chatLinesCheckBox.Name, this.chatLinesCheckBox); this.xmlSettings.AddControlSetting(this.chatSecondsCheckBox.Name, this.chatSecondsCheckBox); this.xmlSettings.AddControlSetting(this.numberOfChatLinesSelector.Name, this.numberOfChatLinesSelector); this.xmlSettings.AddControlSetting(this.numberOfChatSecondsSelector.Name, this.numberOfChatSecondsSelector); this.xmlSettings.AddControlSetting(this.lbNamedChat.Name, this.lbNamedChat); this.xmlSettings.AddControlSetting(this.ChatPanel.Name, this.ChatPanel); this.xmlSettings.AddControlSetting(this.EnglishRadioButton.Name, this.EnglishRadioButton); this.xmlSettings.AddControlSetting(this.GermanRadioButton.Name, this.GermanRadioButton); this.xmlSettings.AddControlSetting(this.FrenchRadioButton.Name, this.FrenchRadioButton); this.xmlSettings.AddControlSetting(this.BlacklistCheckedListBox.Name, this.BlacklistCheckedListBox); this.xmlSettings.AddControlSetting(this.skipLottoCheckBox.Name, this.skipLottoCheckBox); this.xmlSettings.AddControlSetting(this.lbLootControllers.Name, this.lbLootControllers); this.xmlSettings.AddControlSetting(this.lootControlChannelTextBox.Name, this.lootControlChannelTextBox); this.xmlSettings.AddControlSetting(this.macroSaveFileTextBox.Name, this.macroSaveFileTextBox); DirectoryInfo appDataFolder = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Advanced Combat Tracker"); FileInfo configFile = new FileInfo(appDataFolder.FullName + "\\Config\\LootParsing.config.xml"); if (configFile.Exists) { FileStream fs = new FileStream(configFile.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); XmlTextReader xmlReader = new XmlTextReader(fs); while (xmlReader.Read()) { if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "Config") { break; } } this.xmlSettings.ImportFromXml(xmlReader); xmlReader.Close(); } } /// /// Uninitializes the plugin, and saves the settings off to file. /// public void DeInitPlugin() { ActGlobals.oFormActMain.OnLogLineRead -= this.oFormActMain_OnLogLineRead; this.SaveSettings(); } /// /// Saves settings to configuration file. /// private void SaveSettings() { DirectoryInfo configFolder = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Advanced Combat Tracker"); FileInfo configFile = new FileInfo(configFolder.FullName + "\\Config\\LootParsing.config.xml"); FileStream fs = new FileStream(configFile.FullName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); XmlTextWriter xmlWriter = new XmlTextWriter(fs, Encoding.UTF8); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 1; xmlWriter.IndentChar = '\t'; xmlWriter.WriteStartDocument(true); xmlWriter.WriteStartElement("Config"); this.xmlSettings.ExportToXml(xmlWriter); xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); xmlWriter.Flush(); xmlWriter.Close(); } /// /// Sets the parsing language. /// /// The language to set public void SetParseLang(int language) { switch (language) { case 1: // German this.regexChat = this.regexChatGer; this.regexLoot = this.regexLootGer; this.regexZone = this.regexZoneEng; this.lootVerb = "erbeutet"; this.persona = germanYou; this.lblPluginStatus.Text = "Language set to German."; break; case 2: // French this.regexChat = this.regexChatFr; this.regexLoot = this.regexLootFr; this.regexZone = this.regexZoneEng; this.lootVerb = "pille"; this.persona = frenchYou; this.lblPluginStatus.Text = "Language set to French."; break; default: // English this.regexChat = this.regexChatEng; this.regexLoot = this.regexLootEng; this.regexZone = this.regexZoneEng; this.lootVerb = "loot"; this.persona = englishYou; this.lblPluginStatus.Text = "Language set to English."; break; } } /// /// Entry method for ACT to notify the plugin of an log line being read. /// /// Whether or not the data is from an import. /// The log information. void oFormActMain_OnLogLineRead(bool isImport, LogLineEventArgs logInfo) { if (this.regexZone.IsMatch(logInfo.logLine)) { Match match = this.regexZone.Match(logInfo.logLine); ActGlobals.oFormActMain.CurrentZone = match.Groups["zone"].Value; } if (logInfo.detectedType != 0) { return; } if (this.regexChat.IsMatch(logInfo.logLine)) { Match match = this.regexChat.Match(logInfo.logLine); string channel = match.Groups["channel"].Value; bool speakerAndTextSet = false; bool speakerIsSelf = false; string speaker = string.Empty; string text = string.Empty; foreach (string s in this.lbNamedChat.Items) { if (channel.ToUpper().Contains(s.ToUpper())) { speakerIsSelf = match.Groups["speaker"].Value == this.persona; speaker = speakerIsSelf ? ActGlobals.charName : match.Groups["speaker"].Value; text = match.Groups["text"].Value; speakerAndTextSet = true; if (!this.chatCollections.ContainsKey(s.ToUpper())) { this.chatCollections.Add(s.ToUpper(), new List()); } this.chatCollections[s.ToUpper()].Add(new ChatLine(logInfo.detectedTime, logInfo.logLine, channel, speaker, text)); break; } } if (!string.IsNullOrWhiteSpace(lootControlChannelTextBox.Text) && channel.ToUpper().Contains(lootControlChannelTextBox.Text.ToUpper())) { if (!speakerAndTextSet) { speakerIsSelf = match.Groups["speaker"].Value == this.persona; speaker = speakerIsSelf ? ActGlobals.charName : match.Groups["speaker"].Value; text = match.Groups["text"].Value; speakerAndTextSet = true; } if (speakerIsSelf || allowedLootControllers.Contains(speaker)) { if (regexReassignItem.IsMatch(text)) { Match reassignMatch = this.regexReassignItem.Match(text); string looter = reassignMatch.Groups["looter"].Value; string newLooter = reassignMatch.Groups["newLooter"].Value; string itemName = reassignMatch.Groups["itemname"].Value; string itemId = reassignMatch.Groups["itemid"].Value; this.ReassignItem(itemName, itemId, looter, newLooter); this.commandHistoryGridView.Rows.Add(logInfo.detectedTime, speaker, text); } else if (regexItemForMain.IsMatch(text)) { Match mainMatch = this.regexItemForMain.Match(text); string looter = mainMatch.Groups["looter"].Value; string itemName = mainMatch.Groups["itemname"].Value; string itemId = mainMatch.Groups["itemid"].Value; this.SetItemAsMainOrAlt(itemName, itemId, looter, true); this.commandHistoryGridView.Rows.Add(logInfo.detectedTime, speaker, text); } else if (regexItemForAlt.IsMatch(text)) { Match altMatch = this.regexItemForAlt.Match(text); string looter = altMatch.Groups["looter"].Value; string itemName = altMatch.Groups["itemname"].Value; string itemId = altMatch.Groups["itemid"].Value; this.SetItemAsMainOrAlt(itemName, itemId, looter, false); this.commandHistoryGridView.Rows.Add(logInfo.detectedTime, speaker, text); } else if (regexDeleteItem.IsMatch(text)) { Match deleteMatch = this.regexDeleteItem.Match(text); string looter = deleteMatch.Groups["looter"].Value; string itemName = deleteMatch.Groups["itemname"].Value; string itemId = deleteMatch.Groups["itemid"].Value; this.DeleteItem(itemName, itemId, looter); this.commandHistoryGridView.Rows.Add(logInfo.detectedTime, speaker, text); } else if (regexAddItem.IsMatch(text)) { Match addMatch = this.regexAddItem.Match(text); string looter = addMatch.Groups["looter"].Value; LootedItemData item = new LootedItemData(logInfo.detectedTime, looter, addMatch.Groups["itemname"].Value, addMatch.Groups["itemid"].Value, "(Manual)", logInfo.detectedZone, logInfo.logLine); this.AddItem(item); } } } } else if (this.regexLoot.IsMatch(logInfo.logLine)) { bool blackListed = false; foreach (KeyValuePair pair in this.lootBlacklist) { if (pair.Value.IsMatch(logInfo.logLine)) { blackListed = true; break; } } if (blackListed) { return; } Match match = this.regexLoot.Match(logInfo.logLine); bool lottoWin = false; string container = string.Empty; if (match.Groups["chance"].Value.StartsWith(this.lootVerb)) { container = match.Groups["container"].Value; } else { container = match.Groups["container"].Value + " (lotto)"; lottoWin = true; } if (skipLottoCheckBox.Checked && lottoWin) { return; } string looter = match.Groups["looter"].Value == this.persona ? ActGlobals.charName : match.Groups["looter"].Value; LootedItemData item = new LootedItemData(logInfo.detectedTime, looter, match.Groups["itemname"].Value, match.Groups["itemid"].Value, container, logInfo.detectedZone, logInfo.logLine); if (this.chatLinesCheckBox.Checked) { int count = (int)this.numberOfChatLinesSelector.Value; foreach (KeyValuePair> pair in this.chatCollections) { if (pair.Value.Count <= count) { item.Chat.AddRange(pair.Value); } else { for (int i = pair.Value.Count - 1; i >= pair.Value.Count - count; i--) { item.Chat.Add(pair.Value[i]); } } } } if (this.chatSecondsCheckBox.Checked) { int timeLimit = (int)this.numberOfChatSecondsSelector.Value; foreach (KeyValuePair> pair in this.chatCollections) { for (int i = pair.Value.Count - 1; i >= 0; i--) { ChatLine cl = pair.Value[i]; if (logInfo.detectedTime - cl.Time <= TimeSpan.FromSeconds(timeLimit)) { item.Chat.Add(cl); } else { break; } } } } item.Chat.Sort(); for (int i = item.Chat.Count - 1; i > 0; i--) { if (item.Chat[i].FullLine == item.Chat[i - 1].FullLine) { item.Chat.RemoveAt(i); } } this.lootedItems.Add(item); this.refreshLvItems = true; } } #region Events private void lbNamedChat_SelectedIndexChanged(object sender, EventArgs e) { if (this.lbNamedChat.SelectedIndex != -1) { this.namedChatTextBox.Text = (string)this.lbNamedChat.Items[this.lbNamedChat.SelectedIndex]; } } private void btnAddNamedChat_Click(object sender, EventArgs e) { if (!this.lbNamedChat.Items.Contains(this.namedChatTextBox.Text) && !string.IsNullOrEmpty(this.namedChatTextBox.Text)) { this.lbNamedChat.Items.Add(this.namedChatTextBox.Text); } } private void btnRemoveNamedChat_Click(object sender, EventArgs e) { if (this.lbNamedChat.SelectedIndex != -1) { this.lbNamedChat.Items.RemoveAt(this.lbNamedChat.SelectedIndex); } } private void itemGridView_CellClick(object sender, DataGridViewCellEventArgs e) { if (this.itemGridView.SelectedCells.Count > 0) { DataGridViewRow lvi = this.itemGridView.SelectedCells[0].OwningRow; LootedItemData item = (LootedItemData)lvi.Tag; this.lblCurrentItem.Text = item.ItemName; } else { this.lblCurrentItem.Text = "No Item"; } this.SortChatListView(); this.RepopulateChatListView(); } private void lootDB_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (itemGridView.SelectedCells.Count > 0) { DataGridViewRow itemRow = itemGridView.SelectedCells[0].OwningRow; LootedItemData item = (LootedItemData)itemRow.Tag; Process.Start("http://lootdb.com/eq2/item/" + item.ItemId); } } private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (itemGridView.SelectedCells.Count > 0) { DataGridViewRow itemRow = itemGridView.SelectedCells[0].OwningRow; LootedItemData item = (LootedItemData)itemRow.Tag; Process.Start("http://www.eq2llinks.com/item.php?id=" + item.ItemId); } } private void eq2i_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (itemGridView.SelectedCells.Count > 0) { DataGridViewRow itemRow = itemGridView.SelectedCells[0].OwningRow; LootedItemData item = (LootedItemData)itemRow.Tag; Process.Start("http://eq2.wikia.com/wiki/" + item.ItemName.Replace(' ', '_')); } } private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (itemGridView.SelectedCells.Count > 0) { DataGridViewRow itemRow = itemGridView.SelectedCells[0].OwningRow; LootedItemData item = (LootedItemData)itemRow.Tag; Process.Start("http://eq2.zam.com/search.html?q=" + item.ItemName.Replace(' ', '+')); } } private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (itemGridView.SelectedCells.Count > 0) { DataGridViewRow itemRow = itemGridView.SelectedCells[0].OwningRow; LootedItemData item = (LootedItemData)itemRow.Tag; int itemIdForLink = 0; if (int.TryParse(item.ItemId, out itemIdForLink)) { Process.Start("http://u.eq2wire.com/item/index/" + ((uint)itemIdForLink).ToString()); } } } private void lvItems_ColumnClick(object sender, ColumnClickEventArgs e) { if (this.lvItemsSorting == e.Column) { this.lvItemsReverse = !this.lvItemsReverse; } this.lvItemsSorting = e.Column; this.refreshLvItems = true; } private void lvChat_ColumnClick(object sender, ColumnClickEventArgs e) { if (this.lvChatSorting == e.Column) { this.lvChatReverse = !this.lvChatReverse; } this.lvChatSorting = e.Column; this.SortChatListView(); this.RepopulateChatListView(); } private void tmrSec_Tick(object sender, EventArgs e) { if (this.refreshLvItems) { this.refreshLvItems = false; this.RepopulateItemDataGridview(); } } private void copyAsCSVToolStripMenuItem_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < itemGridView.Columns.Count; i++) { sb.AppendFormat("{0},", itemGridView.Columns[i].HeaderText.Replace(',', '_')); } sb.Length = sb.Length - 1; sb.AppendLine(); List selectedRows = GetSelectedItemRows(); foreach (DataGridViewRow row in selectedRows) { foreach (DataGridViewCell cell in row.Cells) { sb.AppendFormat("{0},", cell.FormattedValue.ToString().Replace(',', '_')); } sb.Length = sb.Length - 1; sb.AppendLine(); } ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } private void copyAsTSCToolStripMenuItem_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < itemGridView.Columns.Count; i++) { sb.AppendFormat("{0}\t", itemGridView.Columns[i].HeaderText); } sb.Length = sb.Length - 1; sb.AppendLine(); List selectedRows = GetSelectedItemRows(); foreach (DataGridViewRow row in selectedRows) { foreach (DataGridViewCell cell in row.Cells) { sb.AppendFormat("{0}\t", cell.FormattedValue.ToString()); } sb.Length = sb.Length - 1; sb.AppendLine(); } ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } private void copyAsHTMLToolStripMenuItem_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); sb.Append(""); for (int i = 0; i < itemGridView.Columns.Count; i++) { sb.AppendFormat("", itemGridView.Columns[i].HeaderText.Replace(',', '_')); } sb.Append(""); List selectedRows = GetSelectedItemRows(); foreach (DataGridViewRow row in selectedRows) { sb.Append(""); foreach (DataGridViewCell cell in row.Cells) { sb.AppendFormat("", cell.FormattedValue.ToString().Replace(',', '_')); } sb.Append(""); } sb.Append("
{0}
{0}
"); ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } private void copyActualLogLinesToolStripMenuItem_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); List selectedRows = GetSelectedItemRows(); foreach (DataGridViewRow selectedRow in selectedRows) { LootedItemData item = (LootedItemData)selectedRow.Tag; sb.AppendLine(item.LogLine); } ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } private void copyItemLinkToolStripMenuItem_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); List selectedDataGridRows = GetSelectedItemRows(); foreach (DataGridViewRow row in selectedDataGridRows) { LootedItemData item = (LootedItemData)row.Tag; sb.AppendLine(item.ItemLink); } ActGlobals.oFormActMain.SendToClipboard(sb.ToString().Trim(new char[] { '\r', '\n' }), true); } private void copyItemNameToolStripMenuItem_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); List selectedDataGridRows = GetSelectedItemRows(); foreach (DataGridViewRow row in selectedDataGridRows) { LootedItemData item = (LootedItemData)row.Tag; sb.AppendLine(item.ItemName); } ActGlobals.oFormActMain.SendToClipboard(sb.ToString().Trim(new char[] { '\r', '\n' }), true); } private void copyActualLogLinesToolStripMenuItem1_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < ChatListView.Items.Count; i++) { if (ChatListView.SelectedIndices.Count == 0 | ChatListView.SelectedIndices.Contains(i)) { ChatLine cl = (ChatLine)ChatListView.Items[i].Tag; sb.AppendLine(cl.FullLine); } } ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } private void EnglishRadioButton_CheckedChanged(object sender, EventArgs e) { if (this.EnglishRadioButton.Checked) { this.SetParseLang(0); } } private void GermanRadioButton_CheckedChanged(object sender, EventArgs e) { if (this.GermanRadioButton.Checked) { this.SetParseLang(1); } } private void FrenchRadioButton_CheckedChanged(object sender, EventArgs e) { if (this.FrenchRadioButton.Checked) { this.SetParseLang(2); } } private void ItemsListView_Resize(object sender, EventArgs e) { // ActGlobals.oFormActMain.ResizeLVCols(lvItems); } private void ChatListView_Resize(object sender, EventArgs e) { ActGlobals.oFormActMain.ResizeLVCols(this.ChatListView); } private void addLootControllerButton_Click(object sender, EventArgs e) { string lootController = this.tbLootController.Text; if (!string.IsNullOrWhiteSpace(lootController) && !this.allowedLootControllers.Contains(lootController)) { this.allowedLootControllers.Add(lootController); this.lbLootControllers.Items.Add(lootController); } } private void removeLootControllerButton_Click(object sender, EventArgs e) { if (this.lbLootControllers.SelectedIndex != -1) { string lootController = this.lbLootControllers.SelectedItem.ToString(); this.allowedLootControllers.Remove(lootController); this.lbLootControllers.Items.RemoveAt(this.lbLootControllers.SelectedIndex); } } private void unsetControlChannelButton_Click(object sender, EventArgs e) { this.lootControlChannelTextBox.Text = string.Empty; } private void setControlChannelButton_Click(object sender, EventArgs e) { string lootControlChannel = this.setControlChannelInputTextBox.Text; if (!string.IsNullOrWhiteSpace(lootControlChannel)) { this.lootControlChannelTextBox.Text = this.setControlChannelInputTextBox.Text; } } private void macroSaveFileUnchooseButton_Click(object sender, EventArgs e) { macroSaveFileTextBox.Text = string.Empty; } private void macroSaveFileChooseButton_Click(object sender, EventArgs e) { SaveFileDialog saveDialog = new SaveFileDialog(); DialogResult result = saveDialog.ShowDialog(); if (result == DialogResult.OK) { Stream openStream = saveDialog.OpenFile(); openStream.Close(); macroSaveFileTextBox.Text = saveDialog.FileName; } } private void AddBlacklistButton_Click(object sender, EventArgs e) { this.AddBlacklist(this.tbBlacklist.Text); } private void BlacklistCheckedListBox_ItemCheck(object sender, ItemCheckEventArgs e) { if (e.CurrentValue == e.NewValue) { return; } string itemText = this.BlacklistCheckedListBox.Items[e.Index].ToString(); if (string.IsNullOrWhiteSpace(itemText)) { return; } if (e.NewValue == CheckState.Checked) { if (!this.lootBlacklist.ContainsKey(itemText)) { this.lootBlacklist.Add(itemText, new Regex(itemText, RegexOptions.Compiled)); } } else { if (this.lootBlacklist.ContainsKey(itemText)) { this.lootBlacklist.Remove(itemText); } } } private void RemoveBlacklistButton_Click(object sender, EventArgs e) { if (this.BlacklistCheckedListBox.SelectedIndex != -1) { this.BlacklistCheckedListBox.Items.Remove(this.tbBlacklist.Text); this.lootBlacklist.Remove(this.tbBlacklist.Text); } } private void BlacklistCheckedListBox_SelectedIndexChanged(object sender, EventArgs e) { if (this.BlacklistCheckedListBox.SelectedIndex != -1) { this.tbBlacklist.Text = this.BlacklistCheckedListBox.Items[this.BlacklistCheckedListBox.SelectedIndex].ToString(); } } private void btnClear_Click(object sender, EventArgs e) { this.lootedItems.Clear(); this.commandHistoryGridView.Rows.Clear(); this.RepopulateItemDataGridview(); } private void getDeleteStripMenuItem_Click(object sender, EventArgs e) { List selectedRows = GetSelectedItemRows(); StringBuilder sb = new StringBuilder(); bool writeToMacroFile = !string.IsNullOrWhiteSpace(macroSaveFileTextBox.Text); foreach (DataGridViewRow row in selectedRows) { LootedItemData item = (LootedItemData)row.Tag; if (!string.IsNullOrWhiteSpace(lootControlChannelTextBox.Text)) { // If writing to a macro file, then don't start the command with a '/'. Else, include it. sb.AppendFormat("{0}tellchannel {1} ", writeToMacroFile ? string.Empty : "/", lootControlChannelTextBox.Text); } sb.AppendFormat("delete {0} {1}{2}", item.ItemLink, item.Player, Environment.NewLine); } if (writeToMacroFile) { WriteToMacroFile(sb.ToString()); } else { ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } itemDataGridStatusLabel.Text = String.Format( "{0} command{1} copied to {2}", selectedRows.Count, selectedRows.Count > 1 ? "s" : string.Empty, writeToMacroFile ? "macro file " + macroSaveFileTextBox.Text : "clipboard"); } private void getMarkForAltCommandStripMenuItem_Click(object sender, EventArgs e) { List selectedRows = GetSelectedItemRows(); StringBuilder sb = new StringBuilder(); bool writeToMacroFile = !string.IsNullOrWhiteSpace(macroSaveFileTextBox.Text); foreach (DataGridViewRow row in selectedRows) { LootedItemData item = (LootedItemData)row.Tag; if (!string.IsNullOrWhiteSpace(lootControlChannelTextBox.Text)) { // If writing to a macro file, then don't start the command with a '/'. Else, include it. sb.AppendFormat("{0}tellchannel {1} ", writeToMacroFile ? string.Empty : "/", lootControlChannelTextBox.Text); } sb.AppendFormat("alt {0} {1}{2}", item.ItemLink, item.Player, Environment.NewLine); } if (writeToMacroFile) { WriteToMacroFile(sb.ToString()); } else { ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } itemDataGridStatusLabel.Text = String.Format( "{0} command{1} copied to {2}", selectedRows.Count, selectedRows.Count > 1 ? "s" : string.Empty, writeToMacroFile ? "macro file " + macroSaveFileTextBox.Text : "clipboard"); } private void getMarkForMainCommandStripMenuItem_Click(object sender, EventArgs e) { List selectedRows = GetSelectedItemRows(); StringBuilder sb = new StringBuilder(); bool writeToMacroFile = !string.IsNullOrWhiteSpace(macroSaveFileTextBox.Text); foreach (DataGridViewRow row in selectedRows) { LootedItemData item = (LootedItemData)row.Tag; if (!string.IsNullOrWhiteSpace(lootControlChannelTextBox.Text)) { // If writing to a macro file, then don't start the command with a '/'. Else, include it. sb.AppendFormat("{0}tellchannel {1} ", writeToMacroFile ? string.Empty : "/", lootControlChannelTextBox.Text); } sb.AppendFormat("main {0} {1}{2}", item.ItemLink, item.Player, Environment.NewLine); } if (writeToMacroFile) { WriteToMacroFile(sb.ToString()); } else { ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } itemDataGridStatusLabel.Text = String.Format( "{0} command{1} copied to {2}", selectedRows.Count, selectedRows.Count > 1 ? "s" : string.Empty, writeToMacroFile ? "macro file " + macroSaveFileTextBox.Text : "clipboard"); } private void getAddCommandStripMenuItem_Click(object sender, EventArgs e) { string player = string.Empty; string itemLink = string.Empty; AddForm addForm = new AddForm(); addForm.ShowDialog(this); if (addForm.DialogResult == DialogResult.OK) { player = addForm.PlayerToAddTo; itemLink = addForm.ItemToAdd; StringBuilder sb = new StringBuilder(); bool writeToMacroFile = !string.IsNullOrWhiteSpace(macroSaveFileTextBox.Text); if (!string.IsNullOrWhiteSpace(lootControlChannelTextBox.Text)) { // If writing to a macro file, then don't start the command with a '/'. Else, include it. sb.AppendFormat("{0}tellchannel {1} ", writeToMacroFile ? string.Empty : "/", lootControlChannelTextBox.Text); } sb.AppendFormat("add {0} {1}{2}", itemLink, player, Environment.NewLine); if (writeToMacroFile) { WriteToMacroFile(sb.ToString()); } else { ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } itemDataGridStatusLabel.Text = String.Format( "One command copied to {0}", writeToMacroFile ? "macro file " + macroSaveFileTextBox.Text : "clipboard"); } } private void getReassignCommandStripMenuItem_Click(object sender, EventArgs e) { string value = string.Empty; ReassignForm reassignForm = new ReassignForm(); reassignForm.ShowDialog(this); if (reassignForm.DialogResult == DialogResult.OK) { value = reassignForm.PlayerToReassignTo; List selectedRows = GetSelectedItemRows(); StringBuilder sb = new StringBuilder(); bool writeToMacroFile = !string.IsNullOrWhiteSpace(macroSaveFileTextBox.Text); foreach (DataGridViewRow row in selectedRows) { LootedItemData item = (LootedItemData)row.Tag; if (!string.IsNullOrWhiteSpace(lootControlChannelTextBox.Text)) { // If writing to a macro file, then don't start the command with a '/'. Else, include it. sb.AppendFormat("{0}tellchannel {1} ", writeToMacroFile ? string.Empty : "/", lootControlChannelTextBox.Text); } sb.AppendFormat("reassign {0} {1} {2}{3}", item.ItemLink, item.Player, value, Environment.NewLine); } if (writeToMacroFile) { WriteToMacroFile(sb.ToString()); } else { ActGlobals.oFormActMain.SendToClipboard(sb.ToString(), true); } itemDataGridStatusLabel.Text = String.Format( "{0} command{1} copied to {2}", selectedRows.Count, selectedRows.Count > 1 ? "s" : string.Empty, writeToMacroFile ? "macro file " + macroSaveFileTextBox.Text : "clipboard"); } } private void copyAsPlainTexToolStripMenuItem_Click(object sender, EventArgs e) { string result = GetPlainTextForDataGridSelection(itemGridView); ActGlobals.oFormActMain.SendToClipboard(result, true); } private void copyTallyAsPlainTextToolStripMenuItem_Click(object sender, EventArgs e) { string result = GetPlainTextForDataGridSelection(tallyGridView); ActGlobals.oFormActMain.SendToClipboard(result, true); } #endregion #region Internal Classes internal class ChatLine : IEquatable, IComparable { public DateTime Time { get; set; } public string FullLine { get; set; } public string Channel { get; set; } public string Player { get; set; } public string Text { get; set; } public ChatLine(DateTime time, string fullLine, string channel, string player, string text) { this.Time = time; this.FullLine = fullLine; this.Channel = channel; this.Text = regexItem.Replace(text, "$2"); if (player == "You") { player = ActGlobals.charName; } this.Player = player; } public override string ToString() { return this.FullLine; } public bool Equals(ChatLine other) { return this.ToString().Equals(other.ToString()); } public override bool Equals(object obj) { ChatLine r = (ChatLine)obj; return this.ToString().Equals(r.ToString()); } public override int GetHashCode() { return this.FullLine.GetHashCode(); } public int CompareTo(ChatLine other) { return this.Time.CompareTo(other.Time); } public class Sorter : IComparer { int sortColumn = 0; public Sorter(int SortColumn) { this.sortColumn = SortColumn; } public int Compare(ChatLine x, ChatLine y) { switch (this.sortColumn) { case 0: // Datetime return x.Time.CompareTo(y.Time); case 1: // Channel return x.Channel.CompareTo(y.Channel); case 2: // Player return x.Player.CompareTo(y.Player); case 3: // Text return x.Text.CompareTo(y.Text); default: return 0; } } } } internal class LootedItemData { public string Player { get; set; } public string ItemName { get; set; } public string ItemId { get; set; } public string Container { get; set; } public string Zone { get; set; } public string LogLine { get; set; } public string ItemLink { get; set; } public bool IsMain { get; set; } public DateTime Time { get; set; } public List Chat { get; set; } public LootedItemData(DateTime Time, string Player, string ItemName, string ItemId, string Container, string Zone, string LogLine) { this.Time = Time; this.Player = Player; this.ItemName = ItemName; this.ItemId = ItemId; this.Container = Container; this.Zone = Zone; this.Chat = new List(); this.LogLine = LogLine; this.ItemLink = regexItem.Match(LogLine).Value; this.IsMain = true; } public class Sorter : IComparer { int sortColumn = 0; public Sorter(int SortColumn) { this.sortColumn = SortColumn; } public int Compare(LootedItemData x, LootedItemData y) { switch (this.sortColumn) { case 0: // Datetime return x.Time.CompareTo(y.Time); case 1: // Zone return x.Zone.CompareTo(y.Zone); case 2: // Player return x.Player.CompareTo(y.Player); case 3: // Item Name return x.ItemName.CompareTo(y.ItemName); case 4: // Container return x.Container.CompareTo(y.Container); default: return 0; } } } } #endregion #region Utility Methods /// /// Adds an item to the looted item list. /// /// The item name to delete. /// The item id of the item to delete. /// The looter of the item to delete. private void AddItem(LootedItemData lootedItem) { this.lootedItems.Add(lootedItem); this.refreshLvItems = true; } /// /// Deletes an item from the looted item list. All input parameters must match to successfully delete. /// /// The item name to delete. /// The item id of the item to delete. /// The looter of the item to delete. private void DeleteItem(string itemName, string itemId, string looter) { LootedItemData lootedItem = this.lootedItems.Find(item => item.ItemName.Equals(itemName) && item.ItemId.Equals(itemId) && item.Player.Equals(looter, StringComparison.OrdinalIgnoreCase)); this.lootedItems.Remove(lootedItem); this.refreshLvItems = true; } /// /// Sets an item from the looted item list to either being looted by "main" or "alt". /// All input parameters must match to successfully update. /// /// The item name to update. /// The item id of the item to update. /// The looter of the item to update. /// True if the item should be set to main, false otherwise. private void SetItemAsMainOrAlt(string itemName, string itemId, string looter, bool isMain) { LootedItemData lootedItem = this.lootedItems.Find(item => item.ItemName.Equals(itemName) && item.ItemId.Equals(itemId) && item.Player.Equals(looter, StringComparison.OrdinalIgnoreCase)); lootedItem.IsMain = isMain; this.refreshLvItems = true; } /// /// Sets an item from the looted item list to being looted by someone else in case of an exchange. /// All input parameters must match to successfully update. /// /// The item name to update. /// The item id of the item to update. /// The looter of the item to update. /// The new looter to be set for the item. private void ReassignItem(string itemName, string itemId, string looter, string newLooter) { LootedItemData lootedItem = this.lootedItems.Find(item => item.ItemName.Equals(itemName) && item.ItemId.Equals(itemId) && item.Player.Equals(looter, StringComparison.OrdinalIgnoreCase)); lootedItem.Player = newLooter; this.refreshLvItems = true; } /// /// Gets a plain-text representation of the rows of the selected data grid cells. /// /// The DataGridView. /// A plain-text representation of the rows of the selected data grid cells. private string GetPlainTextForDataGridSelection(DataGridView dataGridView) { int[] columnWidths = new int[dataGridView.Columns.Count]; List selectedRows = GetSelectedRows(dataGridView); foreach (DataGridViewRow selectedRow in selectedRows) { foreach (DataGridViewCell cell in selectedRow.Cells) { int columnIndex = cell.OwningColumn.Index; int cellLength = cell.FormattedValue.ToString().Length; if (columnWidths[columnIndex] < cellLength) { columnWidths[columnIndex] = cellLength; } } } for (int i = 0; i < dataGridView.Columns.Count; i++) { columnWidths[i] = columnWidths[i] + 2; } StringBuilder sb = new StringBuilder(); selectedRows.Reverse(); foreach (DataGridViewRow selectedRow in selectedRows) { foreach (DataGridViewCell cell in selectedRow.Cells) { sb.Append(cell.FormattedValue.ToString().PadRight(columnWidths[cell.OwningColumn.Index])); } sb.AppendLine(); } string result = sb.ToString(); return result; } /// /// Gets the selected rows in the Item DataGridView. /// /// The selected rows in the Item DataGridView. private List GetSelectedItemRows() { return GetSelectedRows(itemGridView); } /// /// Gets the selected rows in the Tally DataGridView. /// /// The selected rows in the Tally DataGridView. private List GetSelectedTallyRows() { return GetSelectedRows(tallyGridView); } /// /// Gets the selected rows in the provided DataGridView. /// /// The DataGridView to get selections from. /// The selected rows in the provided DataGridView. private List GetSelectedRows(DataGridView dataGridView) { int countOfSelectedCells = dataGridView.GetCellCount(DataGridViewElementStates.Selected); List selectedRowIndices = new List(); List selectedDataGridRows = new List(); for (int i = 0; i < countOfSelectedCells; i++) { int rowIndex = dataGridView.SelectedCells[i].RowIndex; if (!selectedRowIndices.Contains(rowIndex)) { selectedRowIndices.Add(rowIndex); selectedDataGridRows.Add(dataGridView.Rows[rowIndex]); } } return selectedDataGridRows; } /// /// A count of how many items a given player looted, for mains and alts. /// internal struct TallyCount { /// /// Number of items looted for main. /// public int Main; /// /// Number of items looted for alts. /// public int Alt; } /// /// Adds to a given player's tally. /// /// The player to add to the tally of. /// Whether or not the tally should be added for main or alt. /// Dictionary of tally entries to update. private void AddTally(string player, bool isMain, ref Dictionary tally) { if (!tally.ContainsKey(player)) { TallyCount counts = new TallyCount(); tally.Add(player, counts); } TallyCount tallyCount = tally[player]; if (isMain) { tallyCount.Main = tallyCount.Main + 1; } else { tallyCount.Alt = tallyCount.Alt + 1; } tally[player] = tallyCount; } /// /// Repopulates the Chat List View based upon the first selected cell. /// private void RepopulateChatListView() { this.ChatListView.BeginUpdate(); this.ChatListView.Items.Clear(); if (this.itemGridView.SelectedCells.Count > 0) { DataGridViewRow selectedRow = this.itemGridView.SelectedCells[0].OwningRow; ListViewItem lvi; LootedItemData item = (LootedItemData)selectedRow.Tag; for (int i = item.Chat.Count - 1; i >= 0; i--) { ChatLine cl = item.Chat[i]; lvi = new ListViewItem(cl.Time.ToShortDateString() + " " + cl.Time.ToLongTimeString()); lvi.SubItems.Add(cl.Channel); lvi.SubItems.Add(cl.Player); lvi.SubItems.Add(cl.Text); lvi.UseItemStyleForSubItems = false; lvi.SubItems[this.lvChatSorting].BackColor = SystemColors.ControlLight; lvi.Tag = cl; this.ChatListView.Items.Add(lvi); } } ActGlobals.oFormActMain.ResizeLVCols(this.ChatListView); this.ChatListView.EndUpdate(); } /// /// Repopulates the Item List Data Grid View. /// private void RepopulateItemDataGridview() { this.itemGridView.Rows.Clear(); this.tallyGridView.Rows.Clear(); Dictionary tally = new Dictionary(); for (int i = 0; i < this.lootedItems.Count; i++) { LootedItemData item = this.lootedItems[i]; string dateTime = item.Time.ToShortDateString() + " " + item.Time.ToLongTimeString(); string zone = item.Zone; string player = item.Player; string itemName = item.ItemName; string container = item.Container; bool isMain = item.IsMain; Color containerColor = Color.Black; if (item.Container.Contains("Exquisite")) { containerColor = Color.DarkRed; } else if (item.Container.Contains("Ornate")) { containerColor = Color.DarkOrange; } else if (item.Container.Contains("Treasure")) { containerColor = Color.DarkCyan; } else if (item.Container.Contains("corpse")) { containerColor = Color.DarkGray; } int rowAdded = this.itemGridView.Rows.Add( dateTime, zone, player, itemName, container, isMain.ToString()); this.itemGridView.Rows[rowAdded].Cells[4].Style.ForeColor = containerColor; this.itemGridView.Rows[rowAdded].Tag = item; AddTally(player, isMain, ref tally); } foreach (string player in tally.Keys) { this.tallyGridView.Rows.Add( player, tally[player].Main, tally[player].Alt); } } /// /// Sorts the Chat List View /// private void SortChatListView() { if (this.itemGridView.SelectedCells.Count > 0) { DataGridViewRow selectedRow = this.itemGridView.SelectedCells[0].OwningRow; LootedItemData item = (LootedItemData)selectedRow.Tag; item.Chat.Sort(new ChatLine.Sorter(lvChatSorting)); if (lvChatReverse) { item.Chat.Reverse(); } } } private void AddBlacklist(string term) { if (!string.IsNullOrWhiteSpace(term) && !this.lootBlacklist.ContainsKey(term)) { try { this.lootBlacklist.Add(term, new Regex(term, RegexOptions.Compiled)); this.BlacklistCheckedListBox.Items.Add(term, true); } catch (Exception ex) { MessageBox.Show(ex.Message, "Regular Expression Syntax Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void WriteToMacroFile(string stringToWrite) { StreamWriter writer = new StreamWriter(macroSaveFileTextBox.Text); writer.Write(stringToWrite); writer.Flush(); writer.Close(); } #endregion } public class ReassignForm : Form { public ReassignForm() { InitializeComponent(); this.reassignTextBox.Select(); } public string PlayerToReassignTo { get { return reassignTextBox.Text; } set { reassignTextBox.Text = value; } } private void reassignOkButton_Click(object sender, EventArgs e) { DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } private void reassignCancelButton_Click(object sender, EventArgs e) { DialogResult = System.Windows.Forms.DialogResult.Cancel; this.Close(); } private void reassignTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { this.reassignCancelButton_Click(sender, e); } else if (e.KeyCode == Keys.Enter) { this.reassignOkButton_Click(sender, e); } } private Label reassignItemPlayerLabel; #region Designer Code /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.reassignOkButton = new System.Windows.Forms.Button(); this.reassignCancelButton = new System.Windows.Forms.Button(); this.reassignTextBox = new System.Windows.Forms.TextBox(); this.reassignHelpLabel = new System.Windows.Forms.Label(); this.reassignItemPlayerLabel = new System.Windows.Forms.Label(); this.SuspendLayout(); // // reassignOkButton // this.reassignOkButton.Location = new System.Drawing.Point(63, 92); this.reassignOkButton.Name = "reassignOkButton"; this.reassignOkButton.Size = new System.Drawing.Size(75, 23); this.reassignOkButton.TabIndex = 0; this.reassignOkButton.Text = "OK"; this.reassignOkButton.UseVisualStyleBackColor = true; this.reassignOkButton.Click += new System.EventHandler(this.reassignOkButton_Click); // // reassignCancelButton // this.reassignCancelButton.Location = new System.Drawing.Point(193, 92); this.reassignCancelButton.Name = "reassignCancelButton"; this.reassignCancelButton.Size = new System.Drawing.Size(75, 23); this.reassignCancelButton.TabIndex = 1; this.reassignCancelButton.Text = "Cancel"; this.reassignCancelButton.UseVisualStyleBackColor = true; this.reassignCancelButton.Click += new System.EventHandler(this.reassignCancelButton_Click); // // reassignTextBox // this.reassignTextBox.Location = new System.Drawing.Point(63, 45); this.reassignTextBox.Name = "reassignTextBox"; this.reassignTextBox.Size = new System.Drawing.Size(269, 20); this.reassignTextBox.TabIndex = 2; this.reassignTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.reassignTextBox_KeyDown); // // reassignHelpLabel // this.reassignHelpLabel.AutoSize = true; this.reassignHelpLabel.Location = new System.Drawing.Point(13, 13); this.reassignHelpLabel.Name = "reassignHelpLabel"; this.reassignHelpLabel.Size = new System.Drawing.Size(150, 13); this.reassignHelpLabel.TabIndex = 3; this.reassignHelpLabel.Text = "Enter name to reassign loot to."; // // reassignItemPlayerLabel // this.reassignItemPlayerLabel.AutoSize = true; this.reassignItemPlayerLabel.Location = new System.Drawing.Point(20, 48); this.reassignItemPlayerLabel.Name = "reassignItemPlayerLabel"; this.reassignItemPlayerLabel.Size = new System.Drawing.Size(39, 13); this.reassignItemPlayerLabel.TabIndex = 4; this.reassignItemPlayerLabel.Text = "Player:"; // // ReassignForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(341, 131); this.Controls.Add(this.reassignItemPlayerLabel); this.Controls.Add(this.reassignHelpLabel); this.Controls.Add(this.reassignTextBox); this.Controls.Add(this.reassignCancelButton); this.Controls.Add(this.reassignOkButton); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ReassignForm"; this.ShowIcon = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Reassign Loot"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button reassignOkButton; private System.Windows.Forms.Button reassignCancelButton; private System.Windows.Forms.TextBox reassignTextBox; private System.Windows.Forms.Label reassignHelpLabel; #endregion } public class AddForm : Form { public AddForm() { InitializeComponent(); this.addLootPlayerTextBox.Select(); } public string PlayerToAddTo { get { return addLootPlayerTextBox.Text; } set { addLootPlayerTextBox.Text = value; } } public string ItemToAdd { get { return addLootItemLinkTextBox.Text; } set { addLootItemLinkTextBox.Text = value; } } private void addOkButton_Click(object sender, EventArgs e) { DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } private void addCancelButton_Click(object sender, EventArgs e) { DialogResult = System.Windows.Forms.DialogResult.Cancel; this.Close(); } private void addTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { this.addCancelButton_Click(sender, e); } else if (e.KeyCode == Keys.Enter) { this.addOkButton_Click(sender, e); } } private TextBox addLootItemLinkTextBox; private Label addLootItemLinkLabel; private Label addLootHelpLabel; private LinkLabel searchItemLinkLabel; private Label addLootItemLinkHelpLabel; #region Designer Code /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.addOkButton = new System.Windows.Forms.Button(); this.addCancelButton = new System.Windows.Forms.Button(); this.addLootPlayerTextBox = new System.Windows.Forms.TextBox(); this.addLootPlayerLabel = new System.Windows.Forms.Label(); this.addLootItemLinkTextBox = new System.Windows.Forms.TextBox(); this.addLootItemLinkLabel = new System.Windows.Forms.Label(); this.addLootHelpLabel = new System.Windows.Forms.Label(); this.searchItemLinkLabel = new System.Windows.Forms.LinkLabel(); this.addLootItemLinkHelpLabel = new System.Windows.Forms.Label(); this.SuspendLayout(); // // addOkButton // this.addOkButton.Location = new System.Drawing.Point(84, 157); this.addOkButton.Name = "addOkButton"; this.addOkButton.Size = new System.Drawing.Size(75, 23); this.addOkButton.TabIndex = 0; this.addOkButton.Text = "OK"; this.addOkButton.UseVisualStyleBackColor = true; this.addOkButton.Click += new System.EventHandler(this.addOkButton_Click); // // addCancelButton // this.addCancelButton.Location = new System.Drawing.Point(235, 157); this.addCancelButton.Name = "addCancelButton"; this.addCancelButton.Size = new System.Drawing.Size(75, 23); this.addCancelButton.TabIndex = 1; this.addCancelButton.Text = "Cancel"; this.addCancelButton.UseVisualStyleBackColor = true; this.addCancelButton.Click += new System.EventHandler(this.addCancelButton_Click); // // addLootPlayerTextBox // this.addLootPlayerTextBox.Location = new System.Drawing.Point(110, 43); this.addLootPlayerTextBox.Name = "addLootPlayerTextBox"; this.addLootPlayerTextBox.Size = new System.Drawing.Size(217, 20); this.addLootPlayerTextBox.TabIndex = 2; this.addLootPlayerTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.addTextBox_KeyDown); // // addLootPlayerLabel // this.addLootPlayerLabel.AutoSize = true; this.addLootPlayerLabel.Location = new System.Drawing.Point(51, 46); this.addLootPlayerLabel.Name = "addLootPlayerLabel"; this.addLootPlayerLabel.Size = new System.Drawing.Size(39, 13); this.addLootPlayerLabel.TabIndex = 3; this.addLootPlayerLabel.Text = "Player:"; // // addLootItemLinkTextBox // this.addLootItemLinkTextBox.Location = new System.Drawing.Point(110, 70); this.addLootItemLinkTextBox.Name = "addLootItemLinkTextBox"; this.addLootItemLinkTextBox.Size = new System.Drawing.Size(217, 20); this.addLootItemLinkTextBox.TabIndex = 4; // // addLootItemLinkLabel // this.addLootItemLinkLabel.AutoSize = true; this.addLootItemLinkLabel.Location = new System.Drawing.Point(51, 73); this.addLootItemLinkLabel.Name = "addLootItemLinkLabel"; this.addLootItemLinkLabel.Size = new System.Drawing.Size(53, 13); this.addLootItemLinkLabel.TabIndex = 5; this.addLootItemLinkLabel.Text = "Item Link:"; // // addLootHelpLabel // this.addLootHelpLabel.AutoSize = true; this.addLootHelpLabel.Location = new System.Drawing.Point(12, 9); this.addLootHelpLabel.Name = "addLootHelpLabel"; this.addLootHelpLabel.Size = new System.Drawing.Size(262, 13); this.addLootHelpLabel.TabIndex = 6; this.addLootHelpLabel.Text = "Enter the Item Name and Item Link for the item to add."; // // searchItemLinkLabel // this.searchItemLinkLabel.AutoSize = true; this.searchItemLinkLabel.Location = new System.Drawing.Point(107, 122); this.searchItemLinkLabel.Name = "searchItemLinkLabel"; this.searchItemLinkLabel.Size = new System.Drawing.Size(140, 13); this.searchItemLinkLabel.TabIndex = 7; this.searchItemLinkLabel.TabStop = true; this.searchItemLinkLabel.Text = "Search for an item on EQ2U"; this.searchItemLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.searchItemLinkLabel_LinkClicked); // // addLootItemLinkHelpLabel // this.addLootItemLinkHelpLabel.AutoSize = true; this.addLootItemLinkHelpLabel.Location = new System.Drawing.Point(107, 98); this.addLootItemLinkHelpLabel.Name = "addLootItemLinkHelpLabel"; this.addLootItemLinkHelpLabel.Size = new System.Drawing.Size(198, 13); this.addLootItemLinkHelpLabel.TabIndex = 8; this.addLootItemLinkHelpLabel.Text = "This should be in \"\\aITEM ... /a\" format."; // // AddForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(399, 211); this.Controls.Add(this.addLootItemLinkHelpLabel); this.Controls.Add(this.searchItemLinkLabel); this.Controls.Add(this.addLootHelpLabel); this.Controls.Add(this.addLootItemLinkLabel); this.Controls.Add(this.addLootItemLinkTextBox); this.Controls.Add(this.addLootPlayerLabel); this.Controls.Add(this.addLootPlayerTextBox); this.Controls.Add(this.addCancelButton); this.Controls.Add(this.addOkButton); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "AddForm"; this.ShowIcon = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Add Loot"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button addOkButton; private System.Windows.Forms.Button addCancelButton; private System.Windows.Forms.TextBox addLootPlayerTextBox; private System.Windows.Forms.Label addLootPlayerLabel; #endregion private void searchItemLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Process.Start("http://u.eq2wire.com/soe/item_search"); } } }