diff --git a/TGControlPanel/Main.Designer.cs b/TGControlPanel/Main.Designer.cs index 8a215ebde3..df1d9339f7 100644 --- a/TGControlPanel/Main.Designer.cs +++ b/TGControlPanel/Main.Designer.cs @@ -28,2023 +28,1981 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main)); - this.Panels = new System.Windows.Forms.TabControl(); - this.RepoPanel = new System.Windows.Forms.TabPage(); - this.RepoRefreshButton = new System.Windows.Forms.Button(); - this.BackupTagsList = new System.Windows.Forms.ListBox(); - this.ResetRemote = new System.Windows.Forms.Button(); - this.RecloneButton = new System.Windows.Forms.Button(); - this.PythonPathText = new System.Windows.Forms.TextBox(); - this.PythonPathLabel = new System.Windows.Forms.Label(); - this.RepoGenChangelogButton = new System.Windows.Forms.Button(); - this.TestmergeSelector = new System.Windows.Forms.NumericUpDown(); - this.TestMergeListLabel = new System.Windows.Forms.ListBox(); - this.CurrentRevisionLabel = new System.Windows.Forms.Label(); - this.RepoApplyButton = new System.Windows.Forms.Button(); - this.RepoBranchTextBox = new System.Windows.Forms.TextBox(); - this.RepoRemoteTextBox = new System.Windows.Forms.TextBox(); - this.HardReset = new System.Windows.Forms.Button(); - this.UpdateRepoButton = new System.Windows.Forms.Button(); - this.MergePRButton = new System.Windows.Forms.Button(); - this.IdentityLabel = new System.Windows.Forms.Label(); - this.TestMergeListTitle = new System.Windows.Forms.Label(); - this.RemoteNameTitle = new System.Windows.Forms.Label(); - this.BranchNameTitle = new System.Windows.Forms.Label(); - this.CurrentRevisionTitle = new System.Windows.Forms.Label(); - this.CloneRepositoryButton = new System.Windows.Forms.Button(); - this.RepoProgressBarLabel = new System.Windows.Forms.Label(); - this.RepoProgressBar = new System.Windows.Forms.ProgressBar(); - this.BYONDPanel = new System.Windows.Forms.TabPage(); - this.LatestVersionLabel = new System.Windows.Forms.Label(); - this.LatestVersionTitle = new System.Windows.Forms.Label(); - this.StagedVersionLabel = new System.Windows.Forms.Label(); - this.StagedVersionTitle = new System.Windows.Forms.Label(); - this.StatusLabel = new System.Windows.Forms.Label(); - this.VersionLabel = new System.Windows.Forms.Label(); - this.VersionTitle = new System.Windows.Forms.Label(); - this.MinorVersionLabel = new System.Windows.Forms.Label(); - this.MajorVersionLabel = new System.Windows.Forms.Label(); - this.UpdateButton = new System.Windows.Forms.Button(); - this.MinorVersionNumeric = new System.Windows.Forms.NumericUpDown(); - this.MajorVersionNumeric = new System.Windows.Forms.NumericUpDown(); - this.UpdateProgressBar = new System.Windows.Forms.ProgressBar(); - this.ServerPanel = new System.Windows.Forms.TabPage(); - this.AutostartCheckbox = new System.Windows.Forms.CheckBox(); - this.WebclientCheckBox = new System.Windows.Forms.CheckBox(); - this.WorldAnnounceButton = new System.Windows.Forms.Button(); - this.WorldAnnounceField = new System.Windows.Forms.TextBox(); - this.VisibilityTitle = new System.Windows.Forms.Label(); - this.SecuritySelector = new System.Windows.Forms.ComboBox(); - this.SecurityTitle = new System.Windows.Forms.Label(); - this.ResetTestmerge = new System.Windows.Forms.Button(); - this.NudgePortSelector = new System.Windows.Forms.NumericUpDown(); - this.NudgePortLabel = new System.Windows.Forms.Label(); - this.ServerPathLabel = new System.Windows.Forms.Label(); - this.ServerPathTextbox = new System.Windows.Forms.TextBox(); - this.CompileCancelButton = new System.Windows.Forms.Button(); - this.ProjectPathLabel = new System.Windows.Forms.Label(); - this.projectNameText = new System.Windows.Forms.TextBox(); - this.PortLabel = new System.Windows.Forms.Label(); - this.PortSelector = new System.Windows.Forms.NumericUpDown(); - this.ServerPRLabel = new System.Windows.Forms.Label(); - this.ServerTestmergeInput = new System.Windows.Forms.NumericUpDown(); - this.TestmergeButton = new System.Windows.Forms.Button(); - this.UpdateTestmergeButton = new System.Windows.Forms.Button(); - this.UpdateMergeButton = new System.Windows.Forms.Button(); - this.UpdateHardButton = new System.Windows.Forms.Button(); - this.ServerGRestartButton = new System.Windows.Forms.Button(); - this.ServerGStopButton = new System.Windows.Forms.CheckBox(); - this.ServerRestartButton = new System.Windows.Forms.Button(); - this.ServerStopButton = new System.Windows.Forms.Button(); - this.ServerStartButton = new System.Windows.Forms.Button(); - this.CompilerStatusLabel = new System.Windows.Forms.Label(); - this.CompilerLabel = new System.Windows.Forms.Label(); - this.compileButton = new System.Windows.Forms.Button(); - this.initializeButton = new System.Windows.Forms.Button(); - this.compilerProgressBar = new System.Windows.Forms.ProgressBar(); - this.ServerStatusLabel = new System.Windows.Forms.Label(); - this.ServerStatusTitle = new System.Windows.Forms.Label(); - this.ChatPanel = new System.Windows.Forms.TabPage(); - this.label5 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.IRCModesComboBox = new System.Windows.Forms.ComboBox(); - this.label1 = new System.Windows.Forms.Label(); - this.AdminChannelsTextbox = new System.Windows.Forms.TextBox(); - this.WDChannelsTextbox = new System.Windows.Forms.TextBox(); - this.GameChannelsTextbox = new System.Windows.Forms.TextBox(); - this.DevChannelsTextbox = new System.Windows.Forms.TextBox(); - this.ChatRefreshButton = new System.Windows.Forms.Button(); - this.ChatNicknameText = new System.Windows.Forms.TextBox(); - this.ChatNicknameTitle = new System.Windows.Forms.Label(); - this.ChatPortSelector = new System.Windows.Forms.NumericUpDown(); - this.ChatPortTitle = new System.Windows.Forms.Label(); - this.ChatServerText = new System.Windows.Forms.TextBox(); - this.ChatServerTitle = new System.Windows.Forms.Label(); - this.ChatApplyButton = new System.Windows.Forms.Button(); - this.AuthField2Title = new System.Windows.Forms.Label(); - this.AuthField1Title = new System.Windows.Forms.Label(); - this.AuthField2 = new System.Windows.Forms.TextBox(); - this.AuthField1 = new System.Windows.Forms.TextBox(); - this.ChatReconnectButton = new System.Windows.Forms.Button(); - this.ChatStatusLabel = new System.Windows.Forms.Label(); - this.ChatStatusTitle = new System.Windows.Forms.Label(); - this.ChatEnabledCheckbox = new System.Windows.Forms.CheckBox(); - this.ChatProviderSelectorPanel = new System.Windows.Forms.Panel(); - this.DiscordProviderSwitch = new System.Windows.Forms.RadioButton(); - this.IRCProviderSwitch = new System.Windows.Forms.RadioButton(); - this.ChatProviderTitle = new System.Windows.Forms.Label(); - this.ChannelsTitle = new System.Windows.Forms.Label(); - this.ChatAdminsTextBox = new System.Windows.Forms.TextBox(); - this.ChatAdminsTitle = new System.Windows.Forms.Label(); - this.panel1 = new System.Windows.Forms.Panel(); - this.AdminModeSpecial = new System.Windows.Forms.RadioButton(); - this.AdminModeNormal = new System.Windows.Forms.RadioButton(); - this.ConfigPanel = new System.Windows.Forms.TabPage(); - this.ConfigApply = new System.Windows.Forms.Button(); - this.ConfigDownloadRepo = new System.Windows.Forms.Button(); - this.ConfigUpload = new System.Windows.Forms.Button(); - this.ConfigDownload = new System.Windows.Forms.Button(); - this.ConfigRefresh = new System.Windows.Forms.Button(); - this.ConfigPanels = new System.Windows.Forms.TabControl(); - this.ConfigConfigPanel = new System.Windows.Forms.TabPage(); - this.DatabaseConfigPanel = new System.Windows.Forms.TabPage(); - this.GameConfigPanel = new System.Windows.Forms.TabPage(); - this.JobsConfigPanel = new System.Windows.Forms.TabPage(); - this.MapsConfigPanel = new System.Windows.Forms.TabPage(); - this.AdminsPanel = new System.Windows.Forms.TabPage(); - this.NegativePermissionsTitle = new System.Windows.Forms.Label(); - this.NegativePermissions = new System.Windows.Forms.CheckedListBox(); - this.ApplyAdminRankButton = new System.Windows.Forms.Button(); - this.PermissionsListBox = new System.Windows.Forms.CheckedListBox(); - this.PermissionsTItle = new System.Windows.Forms.Label(); - this.RemoveRankButton = new System.Windows.Forms.Button(); - this.AddRankTextBox = new System.Windows.Forms.TextBox(); - this.AddRankButton = new System.Windows.Forms.Button(); - this.AdminRanksListBox = new System.Windows.Forms.ListBox(); - this.RanksTitle = new System.Windows.Forms.Label(); - this.DeadminButton = new System.Windows.Forms.Button(); - this.AddminTextBox = new System.Windows.Forms.TextBox(); - this.AddminButton = new System.Windows.Forms.Button(); - this.AdminsListBox = new System.Windows.Forms.ListBox(); - this.AdminsTitle = new System.Windows.Forms.Label(); - this.ConfigDisabledLabel = new System.Windows.Forms.Label(); - this.RepoBGW = new System.ComponentModel.BackgroundWorker(); - this.BYONDTimer = new System.Windows.Forms.Timer(this.components); - this.ServerTimer = new System.Windows.Forms.Timer(this.components); - this.WorldStatusChecker = new System.ComponentModel.BackgroundWorker(); - this.WorldStatusTimer = new System.Windows.Forms.Timer(this.components); - this.FullUpdateWorker = new System.ComponentModel.BackgroundWorker(); - this.ServerStartBGW = new System.ComponentModel.BackgroundWorker(); - this.Panels.SuspendLayout(); - this.RepoPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.TestmergeSelector)).BeginInit(); - this.BYONDPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.MinorVersionNumeric)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.MajorVersionNumeric)).BeginInit(); - this.ServerPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudgePortSelector)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PortSelector)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ServerTestmergeInput)).BeginInit(); - this.ChatPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ChatPortSelector)).BeginInit(); - this.ChatProviderSelectorPanel.SuspendLayout(); - this.panel1.SuspendLayout(); - this.ConfigPanel.SuspendLayout(); - this.ConfigPanels.SuspendLayout(); - this.AdminsPanel.SuspendLayout(); - this.SuspendLayout(); - // - // Panels - // - this.Panels.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main)); + this.Panels = new System.Windows.Forms.TabControl(); + this.RepoPanel = new System.Windows.Forms.TabPage(); + this.RepoRefreshButton = new System.Windows.Forms.Button(); + this.BackupTagsList = new System.Windows.Forms.ListBox(); + this.ResetRemote = new System.Windows.Forms.Button(); + this.RecloneButton = new System.Windows.Forms.Button(); + this.PythonPathText = new System.Windows.Forms.TextBox(); + this.PythonPathLabel = new System.Windows.Forms.Label(); + this.RepoGenChangelogButton = new System.Windows.Forms.Button(); + this.TestmergeSelector = new System.Windows.Forms.NumericUpDown(); + this.TestMergeListLabel = new System.Windows.Forms.ListBox(); + this.CurrentRevisionLabel = new System.Windows.Forms.Label(); + this.RepoApplyButton = new System.Windows.Forms.Button(); + this.RepoBranchTextBox = new System.Windows.Forms.TextBox(); + this.RepoRemoteTextBox = new System.Windows.Forms.TextBox(); + this.HardReset = new System.Windows.Forms.Button(); + this.UpdateRepoButton = new System.Windows.Forms.Button(); + this.MergePRButton = new System.Windows.Forms.Button(); + this.IdentityLabel = new System.Windows.Forms.Label(); + this.TestMergeListTitle = new System.Windows.Forms.Label(); + this.RemoteNameTitle = new System.Windows.Forms.Label(); + this.BranchNameTitle = new System.Windows.Forms.Label(); + this.CurrentRevisionTitle = new System.Windows.Forms.Label(); + this.CloneRepositoryButton = new System.Windows.Forms.Button(); + this.RepoProgressBarLabel = new System.Windows.Forms.Label(); + this.RepoProgressBar = new System.Windows.Forms.ProgressBar(); + this.BYONDPanel = new System.Windows.Forms.TabPage(); + this.LatestVersionLabel = new System.Windows.Forms.Label(); + this.LatestVersionTitle = new System.Windows.Forms.Label(); + this.StagedVersionLabel = new System.Windows.Forms.Label(); + this.StagedVersionTitle = new System.Windows.Forms.Label(); + this.StatusLabel = new System.Windows.Forms.Label(); + this.VersionLabel = new System.Windows.Forms.Label(); + this.VersionTitle = new System.Windows.Forms.Label(); + this.MinorVersionLabel = new System.Windows.Forms.Label(); + this.MajorVersionLabel = new System.Windows.Forms.Label(); + this.UpdateButton = new System.Windows.Forms.Button(); + this.MinorVersionNumeric = new System.Windows.Forms.NumericUpDown(); + this.MajorVersionNumeric = new System.Windows.Forms.NumericUpDown(); + this.UpdateProgressBar = new System.Windows.Forms.ProgressBar(); + this.ServerPanel = new System.Windows.Forms.TabPage(); + this.AutostartCheckbox = new System.Windows.Forms.CheckBox(); + this.WebclientCheckBox = new System.Windows.Forms.CheckBox(); + this.WorldAnnounceButton = new System.Windows.Forms.Button(); + this.WorldAnnounceField = new System.Windows.Forms.TextBox(); + this.VisibilityTitle = new System.Windows.Forms.Label(); + this.SecuritySelector = new System.Windows.Forms.ComboBox(); + this.SecurityTitle = new System.Windows.Forms.Label(); + this.ResetTestmerge = new System.Windows.Forms.Button(); + this.ServerPathLabel = new System.Windows.Forms.Label(); + this.ServerPathTextbox = new System.Windows.Forms.TextBox(); + this.CompileCancelButton = new System.Windows.Forms.Button(); + this.ProjectPathLabel = new System.Windows.Forms.Label(); + this.projectNameText = new System.Windows.Forms.TextBox(); + this.PortLabel = new System.Windows.Forms.Label(); + this.PortSelector = new System.Windows.Forms.NumericUpDown(); + this.ServerPRLabel = new System.Windows.Forms.Label(); + this.ServerTestmergeInput = new System.Windows.Forms.NumericUpDown(); + this.TestmergeButton = new System.Windows.Forms.Button(); + this.UpdateTestmergeButton = new System.Windows.Forms.Button(); + this.UpdateMergeButton = new System.Windows.Forms.Button(); + this.UpdateHardButton = new System.Windows.Forms.Button(); + this.ServerGRestartButton = new System.Windows.Forms.Button(); + this.ServerGStopButton = new System.Windows.Forms.CheckBox(); + this.ServerRestartButton = new System.Windows.Forms.Button(); + this.ServerStopButton = new System.Windows.Forms.Button(); + this.ServerStartButton = new System.Windows.Forms.Button(); + this.CompilerStatusLabel = new System.Windows.Forms.Label(); + this.CompilerLabel = new System.Windows.Forms.Label(); + this.compileButton = new System.Windows.Forms.Button(); + this.initializeButton = new System.Windows.Forms.Button(); + this.compilerProgressBar = new System.Windows.Forms.ProgressBar(); + this.ServerStatusLabel = new System.Windows.Forms.Label(); + this.ServerStatusTitle = new System.Windows.Forms.Label(); + this.ChatPanel = new System.Windows.Forms.TabPage(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.IRCModesComboBox = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.AdminChannelsTextbox = new System.Windows.Forms.TextBox(); + this.WDChannelsTextbox = new System.Windows.Forms.TextBox(); + this.GameChannelsTextbox = new System.Windows.Forms.TextBox(); + this.DevChannelsTextbox = new System.Windows.Forms.TextBox(); + this.ChatRefreshButton = new System.Windows.Forms.Button(); + this.ChatNicknameText = new System.Windows.Forms.TextBox(); + this.ChatNicknameTitle = new System.Windows.Forms.Label(); + this.ChatPortSelector = new System.Windows.Forms.NumericUpDown(); + this.ChatPortTitle = new System.Windows.Forms.Label(); + this.ChatServerText = new System.Windows.Forms.TextBox(); + this.ChatServerTitle = new System.Windows.Forms.Label(); + this.ChatApplyButton = new System.Windows.Forms.Button(); + this.AuthField2Title = new System.Windows.Forms.Label(); + this.AuthField1Title = new System.Windows.Forms.Label(); + this.AuthField2 = new System.Windows.Forms.TextBox(); + this.AuthField1 = new System.Windows.Forms.TextBox(); + this.ChatReconnectButton = new System.Windows.Forms.Button(); + this.ChatStatusLabel = new System.Windows.Forms.Label(); + this.ChatStatusTitle = new System.Windows.Forms.Label(); + this.ChatEnabledCheckbox = new System.Windows.Forms.CheckBox(); + this.ChatProviderSelectorPanel = new System.Windows.Forms.Panel(); + this.DiscordProviderSwitch = new System.Windows.Forms.RadioButton(); + this.IRCProviderSwitch = new System.Windows.Forms.RadioButton(); + this.ChatProviderTitle = new System.Windows.Forms.Label(); + this.ChannelsTitle = new System.Windows.Forms.Label(); + this.ChatAdminsTextBox = new System.Windows.Forms.TextBox(); + this.ChatAdminsTitle = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.AdminModeSpecial = new System.Windows.Forms.RadioButton(); + this.AdminModeNormal = new System.Windows.Forms.RadioButton(); + this.ConfigPanel = new System.Windows.Forms.TabPage(); + this.ConfigApply = new System.Windows.Forms.Button(); + this.ConfigDownloadRepo = new System.Windows.Forms.Button(); + this.ConfigUpload = new System.Windows.Forms.Button(); + this.ConfigDownload = new System.Windows.Forms.Button(); + this.ConfigRefresh = new System.Windows.Forms.Button(); + this.ConfigPanels = new System.Windows.Forms.TabControl(); + this.ConfigConfigPanel = new System.Windows.Forms.TabPage(); + this.DatabaseConfigPanel = new System.Windows.Forms.TabPage(); + this.GameConfigPanel = new System.Windows.Forms.TabPage(); + this.JobsConfigPanel = new System.Windows.Forms.TabPage(); + this.MapsConfigPanel = new System.Windows.Forms.TabPage(); + this.AdminsPanel = new System.Windows.Forms.TabPage(); + this.NegativePermissionsTitle = new System.Windows.Forms.Label(); + this.NegativePermissions = new System.Windows.Forms.CheckedListBox(); + this.ApplyAdminRankButton = new System.Windows.Forms.Button(); + this.PermissionsListBox = new System.Windows.Forms.CheckedListBox(); + this.PermissionsTItle = new System.Windows.Forms.Label(); + this.RemoveRankButton = new System.Windows.Forms.Button(); + this.AddRankTextBox = new System.Windows.Forms.TextBox(); + this.AddRankButton = new System.Windows.Forms.Button(); + this.AdminRanksListBox = new System.Windows.Forms.ListBox(); + this.RanksTitle = new System.Windows.Forms.Label(); + this.DeadminButton = new System.Windows.Forms.Button(); + this.AddminTextBox = new System.Windows.Forms.TextBox(); + this.AddminButton = new System.Windows.Forms.Button(); + this.AdminsListBox = new System.Windows.Forms.ListBox(); + this.AdminsTitle = new System.Windows.Forms.Label(); + this.ConfigDisabledLabel = new System.Windows.Forms.Label(); + this.RepoBGW = new System.ComponentModel.BackgroundWorker(); + this.BYONDTimer = new System.Windows.Forms.Timer(this.components); + this.ServerTimer = new System.Windows.Forms.Timer(this.components); + this.WorldStatusChecker = new System.ComponentModel.BackgroundWorker(); + this.WorldStatusTimer = new System.Windows.Forms.Timer(this.components); + this.FullUpdateWorker = new System.ComponentModel.BackgroundWorker(); + this.ServerStartBGW = new System.ComponentModel.BackgroundWorker(); + this.Panels.SuspendLayout(); + this.RepoPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TestmergeSelector)).BeginInit(); + this.BYONDPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.MinorVersionNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.MajorVersionNumeric)).BeginInit(); + this.ServerPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PortSelector)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.ServerTestmergeInput)).BeginInit(); + this.ChatPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ChatPortSelector)).BeginInit(); + this.ChatProviderSelectorPanel.SuspendLayout(); + this.panel1.SuspendLayout(); + this.ConfigPanel.SuspendLayout(); + this.ConfigPanels.SuspendLayout(); + this.AdminsPanel.SuspendLayout(); + this.SuspendLayout(); + // + // Panels + // + this.Panels.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.Panels.Controls.Add(this.RepoPanel); - this.Panels.Controls.Add(this.BYONDPanel); - this.Panels.Controls.Add(this.ServerPanel); - this.Panels.Controls.Add(this.ChatPanel); - this.Panels.Controls.Add(this.ConfigPanel); - this.Panels.Location = new System.Drawing.Point(12, 12); - this.Panels.Name = "Panels"; - this.Panels.SelectedIndex = 0; - this.Panels.Size = new System.Drawing.Size(876, 392); - this.Panels.TabIndex = 3; - // - // RepoPanel - // - this.RepoPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.RepoPanel.Controls.Add(this.RepoRefreshButton); - this.RepoPanel.Controls.Add(this.BackupTagsList); - this.RepoPanel.Controls.Add(this.ResetRemote); - this.RepoPanel.Controls.Add(this.RecloneButton); - this.RepoPanel.Controls.Add(this.PythonPathText); - this.RepoPanel.Controls.Add(this.PythonPathLabel); - this.RepoPanel.Controls.Add(this.RepoGenChangelogButton); - this.RepoPanel.Controls.Add(this.TestmergeSelector); - this.RepoPanel.Controls.Add(this.TestMergeListLabel); - this.RepoPanel.Controls.Add(this.CurrentRevisionLabel); - this.RepoPanel.Controls.Add(this.RepoApplyButton); - this.RepoPanel.Controls.Add(this.RepoBranchTextBox); - this.RepoPanel.Controls.Add(this.RepoRemoteTextBox); - this.RepoPanel.Controls.Add(this.HardReset); - this.RepoPanel.Controls.Add(this.UpdateRepoButton); - this.RepoPanel.Controls.Add(this.MergePRButton); - this.RepoPanel.Controls.Add(this.IdentityLabel); - this.RepoPanel.Controls.Add(this.TestMergeListTitle); - this.RepoPanel.Controls.Add(this.RemoteNameTitle); - this.RepoPanel.Controls.Add(this.BranchNameTitle); - this.RepoPanel.Controls.Add(this.CurrentRevisionTitle); - this.RepoPanel.Controls.Add(this.CloneRepositoryButton); - this.RepoPanel.Controls.Add(this.RepoProgressBarLabel); - this.RepoPanel.Controls.Add(this.RepoProgressBar); - this.RepoPanel.Location = new System.Drawing.Point(4, 22); - this.RepoPanel.Name = "RepoPanel"; - this.RepoPanel.Padding = new System.Windows.Forms.Padding(3); - this.RepoPanel.Size = new System.Drawing.Size(868, 366); - this.RepoPanel.TabIndex = 0; - this.RepoPanel.Text = "Repository"; - // - // RepoRefreshButton - // - this.RepoRefreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.RepoRefreshButton.Location = new System.Drawing.Point(722, 296); - this.RepoRefreshButton.Name = "RepoRefreshButton"; - this.RepoRefreshButton.Size = new System.Drawing.Size(140, 29); - this.RepoRefreshButton.TabIndex = 35; - this.RepoRefreshButton.Text = "Refresh"; - this.RepoRefreshButton.UseVisualStyleBackColor = true; - this.RepoRefreshButton.Visible = false; - this.RepoRefreshButton.Click += new System.EventHandler(this.RepoRefreshButton_Click); - // - // BackupTagsList - // - this.BackupTagsList.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.BackupTagsList.Items.AddRange(new object[] { + this.Panels.Controls.Add(this.RepoPanel); + this.Panels.Controls.Add(this.BYONDPanel); + this.Panels.Controls.Add(this.ServerPanel); + this.Panels.Controls.Add(this.ChatPanel); + this.Panels.Controls.Add(this.ConfigPanel); + this.Panels.Location = new System.Drawing.Point(12, 12); + this.Panels.Name = "Panels"; + this.Panels.SelectedIndex = 0; + this.Panels.Size = new System.Drawing.Size(876, 392); + this.Panels.TabIndex = 3; + // + // RepoPanel + // + this.RepoPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.RepoPanel.Controls.Add(this.RepoRefreshButton); + this.RepoPanel.Controls.Add(this.BackupTagsList); + this.RepoPanel.Controls.Add(this.ResetRemote); + this.RepoPanel.Controls.Add(this.RecloneButton); + this.RepoPanel.Controls.Add(this.PythonPathText); + this.RepoPanel.Controls.Add(this.PythonPathLabel); + this.RepoPanel.Controls.Add(this.RepoGenChangelogButton); + this.RepoPanel.Controls.Add(this.TestmergeSelector); + this.RepoPanel.Controls.Add(this.TestMergeListLabel); + this.RepoPanel.Controls.Add(this.CurrentRevisionLabel); + this.RepoPanel.Controls.Add(this.RepoApplyButton); + this.RepoPanel.Controls.Add(this.RepoBranchTextBox); + this.RepoPanel.Controls.Add(this.RepoRemoteTextBox); + this.RepoPanel.Controls.Add(this.HardReset); + this.RepoPanel.Controls.Add(this.UpdateRepoButton); + this.RepoPanel.Controls.Add(this.MergePRButton); + this.RepoPanel.Controls.Add(this.IdentityLabel); + this.RepoPanel.Controls.Add(this.TestMergeListTitle); + this.RepoPanel.Controls.Add(this.RemoteNameTitle); + this.RepoPanel.Controls.Add(this.BranchNameTitle); + this.RepoPanel.Controls.Add(this.CurrentRevisionTitle); + this.RepoPanel.Controls.Add(this.CloneRepositoryButton); + this.RepoPanel.Controls.Add(this.RepoProgressBarLabel); + this.RepoPanel.Controls.Add(this.RepoProgressBar); + this.RepoPanel.Location = new System.Drawing.Point(4, 22); + this.RepoPanel.Name = "RepoPanel"; + this.RepoPanel.Padding = new System.Windows.Forms.Padding(3); + this.RepoPanel.Size = new System.Drawing.Size(868, 366); + this.RepoPanel.TabIndex = 0; + this.RepoPanel.Text = "Repository"; + // + // RepoRefreshButton + // + this.RepoRefreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.RepoRefreshButton.Location = new System.Drawing.Point(722, 296); + this.RepoRefreshButton.Name = "RepoRefreshButton"; + this.RepoRefreshButton.Size = new System.Drawing.Size(140, 29); + this.RepoRefreshButton.TabIndex = 35; + this.RepoRefreshButton.Text = "Refresh"; + this.RepoRefreshButton.UseVisualStyleBackColor = true; + this.RepoRefreshButton.Visible = false; + this.RepoRefreshButton.Click += new System.EventHandler(this.RepoRefreshButton_Click); + // + // BackupTagsList + // + this.BackupTagsList.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.BackupTagsList.Items.AddRange(new object[] { "None"}); - this.BackupTagsList.Location = new System.Drawing.Point(122, 142); - this.BackupTagsList.Name = "BackupTagsList"; - this.BackupTagsList.ScrollAlwaysVisible = true; - this.BackupTagsList.Size = new System.Drawing.Size(535, 95); - this.BackupTagsList.TabIndex = 34; - this.BackupTagsList.Visible = false; - // - // ResetRemote - // - this.ResetRemote.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ResetRemote.Location = new System.Drawing.Point(722, 81); - this.ResetRemote.Name = "ResetRemote"; - this.ResetRemote.Size = new System.Drawing.Size(140, 29); - this.ResetRemote.TabIndex = 33; - this.ResetRemote.Text = "Reset To Remote"; - this.ResetRemote.UseVisualStyleBackColor = true; - this.ResetRemote.Visible = false; - this.ResetRemote.Click += new System.EventHandler(this.ResetRemote_Click); - // - // RecloneButton - // - this.RecloneButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.RecloneButton.Location = new System.Drawing.Point(722, 212); - this.RecloneButton.Name = "RecloneButton"; - this.RecloneButton.Size = new System.Drawing.Size(140, 29); - this.RecloneButton.TabIndex = 32; - this.RecloneButton.Text = "Reclone"; - this.RecloneButton.UseVisualStyleBackColor = true; - this.RecloneButton.Visible = false; - this.RecloneButton.Click += new System.EventHandler(this.RecloneButton_Click); - // - // PythonPathText - // - this.PythonPathText.Location = new System.Drawing.Point(122, 112); - this.PythonPathText.Name = "PythonPathText"; - this.PythonPathText.Size = new System.Drawing.Size(535, 20); - this.PythonPathText.TabIndex = 31; - this.PythonPathText.Visible = false; - // - // PythonPathLabel - // - this.PythonPathLabel.AutoSize = true; - this.PythonPathLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PythonPathLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.PythonPathLabel.Location = new System.Drawing.Point(6, 112); - this.PythonPathLabel.Name = "PythonPathLabel"; - this.PythonPathLabel.Size = new System.Drawing.Size(114, 18); - this.PythonPathLabel.TabIndex = 30; - this.PythonPathLabel.Text = "Python Path:"; - this.PythonPathLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.PythonPathLabel.Visible = false; - // - // RepoGenChangelogButton - // - this.RepoGenChangelogButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.RepoGenChangelogButton.Location = new System.Drawing.Point(722, 177); - this.RepoGenChangelogButton.Name = "RepoGenChangelogButton"; - this.RepoGenChangelogButton.Size = new System.Drawing.Size(140, 29); - this.RepoGenChangelogButton.TabIndex = 27; - this.RepoGenChangelogButton.Text = "Generate Changelog"; - this.RepoGenChangelogButton.UseVisualStyleBackColor = true; - this.RepoGenChangelogButton.Visible = false; - this.RepoGenChangelogButton.Click += new System.EventHandler(this.RepoGenChangelogButton_Click); - // - // TestmergeSelector - // - this.TestmergeSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.TestmergeSelector.Location = new System.Drawing.Point(722, 151); - this.TestmergeSelector.Maximum = new decimal(new int[] { + this.BackupTagsList.Location = new System.Drawing.Point(122, 142); + this.BackupTagsList.Name = "BackupTagsList"; + this.BackupTagsList.ScrollAlwaysVisible = true; + this.BackupTagsList.Size = new System.Drawing.Size(535, 95); + this.BackupTagsList.TabIndex = 34; + this.BackupTagsList.Visible = false; + // + // ResetRemote + // + this.ResetRemote.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ResetRemote.Location = new System.Drawing.Point(722, 81); + this.ResetRemote.Name = "ResetRemote"; + this.ResetRemote.Size = new System.Drawing.Size(140, 29); + this.ResetRemote.TabIndex = 33; + this.ResetRemote.Text = "Reset To Remote"; + this.ResetRemote.UseVisualStyleBackColor = true; + this.ResetRemote.Visible = false; + this.ResetRemote.Click += new System.EventHandler(this.ResetRemote_Click); + // + // RecloneButton + // + this.RecloneButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.RecloneButton.Location = new System.Drawing.Point(722, 212); + this.RecloneButton.Name = "RecloneButton"; + this.RecloneButton.Size = new System.Drawing.Size(140, 29); + this.RecloneButton.TabIndex = 32; + this.RecloneButton.Text = "Reclone"; + this.RecloneButton.UseVisualStyleBackColor = true; + this.RecloneButton.Visible = false; + this.RecloneButton.Click += new System.EventHandler(this.RecloneButton_Click); + // + // PythonPathText + // + this.PythonPathText.Location = new System.Drawing.Point(122, 112); + this.PythonPathText.Name = "PythonPathText"; + this.PythonPathText.Size = new System.Drawing.Size(535, 20); + this.PythonPathText.TabIndex = 31; + this.PythonPathText.Visible = false; + // + // PythonPathLabel + // + this.PythonPathLabel.AutoSize = true; + this.PythonPathLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.PythonPathLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.PythonPathLabel.Location = new System.Drawing.Point(6, 112); + this.PythonPathLabel.Name = "PythonPathLabel"; + this.PythonPathLabel.Size = new System.Drawing.Size(114, 18); + this.PythonPathLabel.TabIndex = 30; + this.PythonPathLabel.Text = "Python Path:"; + this.PythonPathLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.PythonPathLabel.Visible = false; + // + // RepoGenChangelogButton + // + this.RepoGenChangelogButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.RepoGenChangelogButton.Location = new System.Drawing.Point(722, 177); + this.RepoGenChangelogButton.Name = "RepoGenChangelogButton"; + this.RepoGenChangelogButton.Size = new System.Drawing.Size(140, 29); + this.RepoGenChangelogButton.TabIndex = 27; + this.RepoGenChangelogButton.Text = "Generate Changelog"; + this.RepoGenChangelogButton.UseVisualStyleBackColor = true; + this.RepoGenChangelogButton.Visible = false; + this.RepoGenChangelogButton.Click += new System.EventHandler(this.RepoGenChangelogButton_Click); + // + // TestmergeSelector + // + this.TestmergeSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.TestmergeSelector.Location = new System.Drawing.Point(722, 151); + this.TestmergeSelector.Maximum = new decimal(new int[] { 1000000, 0, 0, 0}); - this.TestmergeSelector.Name = "TestmergeSelector"; - this.TestmergeSelector.Size = new System.Drawing.Size(140, 20); - this.TestmergeSelector.TabIndex = 22; - this.TestmergeSelector.Visible = false; - // - // TestMergeListLabel - // - this.TestMergeListLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.TestMergeListLabel.HorizontalScrollbar = true; - this.TestMergeListLabel.Items.AddRange(new object[] { + this.TestmergeSelector.Name = "TestmergeSelector"; + this.TestmergeSelector.Size = new System.Drawing.Size(140, 20); + this.TestmergeSelector.TabIndex = 22; + this.TestmergeSelector.Visible = false; + // + // TestMergeListLabel + // + this.TestMergeListLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.TestMergeListLabel.HorizontalScrollbar = true; + this.TestMergeListLabel.Items.AddRange(new object[] { "None"}); - this.TestMergeListLabel.Location = new System.Drawing.Point(122, 260); - this.TestMergeListLabel.Name = "TestMergeListLabel"; - this.TestMergeListLabel.ScrollAlwaysVisible = true; - this.TestMergeListLabel.Size = new System.Drawing.Size(535, 95); - this.TestMergeListLabel.TabIndex = 21; - this.TestMergeListLabel.Visible = false; - // - // CurrentRevisionLabel - // - this.CurrentRevisionLabel.AutoSize = true; - this.CurrentRevisionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CurrentRevisionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.CurrentRevisionLabel.Location = new System.Drawing.Point(162, 14); - this.CurrentRevisionLabel.Name = "CurrentRevisionLabel"; - this.CurrentRevisionLabel.Size = new System.Drawing.Size(82, 18); - this.CurrentRevisionLabel.TabIndex = 20; - this.CurrentRevisionLabel.Text = "Unknown"; - this.CurrentRevisionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.CurrentRevisionLabel.Visible = false; - // - // RepoApplyButton - // - this.RepoApplyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.RepoApplyButton.Location = new System.Drawing.Point(722, 331); - this.RepoApplyButton.Name = "RepoApplyButton"; - this.RepoApplyButton.Size = new System.Drawing.Size(140, 29); - this.RepoApplyButton.TabIndex = 17; - this.RepoApplyButton.Text = "Apply Changes"; - this.RepoApplyButton.UseVisualStyleBackColor = true; - this.RepoApplyButton.Visible = false; - this.RepoApplyButton.Click += new System.EventHandler(this.RepoApplyButton_Click); - // - // RepoBranchTextBox - // - this.RepoBranchTextBox.Location = new System.Drawing.Point(122, 70); - this.RepoBranchTextBox.Name = "RepoBranchTextBox"; - this.RepoBranchTextBox.Size = new System.Drawing.Size(535, 20); - this.RepoBranchTextBox.TabIndex = 15; - this.RepoBranchTextBox.Visible = false; - // - // RepoRemoteTextBox - // - this.RepoRemoteTextBox.Location = new System.Drawing.Point(122, 44); - this.RepoRemoteTextBox.Name = "RepoRemoteTextBox"; - this.RepoRemoteTextBox.Size = new System.Drawing.Size(535, 20); - this.RepoRemoteTextBox.TabIndex = 14; - this.RepoRemoteTextBox.Visible = false; - // - // HardReset - // - this.HardReset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.HardReset.Location = new System.Drawing.Point(722, 46); - this.HardReset.Name = "HardReset"; - this.HardReset.Size = new System.Drawing.Size(140, 29); - this.HardReset.TabIndex = 13; - this.HardReset.Text = "Reset To Origin Branch"; - this.HardReset.UseVisualStyleBackColor = true; - this.HardReset.Visible = false; - this.HardReset.Click += new System.EventHandler(this.HardReset_Click); - // - // UpdateRepoButton - // - this.UpdateRepoButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.UpdateRepoButton.Location = new System.Drawing.Point(722, 11); - this.UpdateRepoButton.Name = "UpdateRepoButton"; - this.UpdateRepoButton.Size = new System.Drawing.Size(140, 29); - this.UpdateRepoButton.TabIndex = 12; - this.UpdateRepoButton.Text = "Merge from Remote"; - this.UpdateRepoButton.UseVisualStyleBackColor = true; - this.UpdateRepoButton.Visible = false; - this.UpdateRepoButton.Click += new System.EventHandler(this.UpdateRepoButton_Click); - // - // MergePRButton - // - this.MergePRButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.MergePRButton.Location = new System.Drawing.Point(722, 116); - this.MergePRButton.Name = "MergePRButton"; - this.MergePRButton.Size = new System.Drawing.Size(140, 29); - this.MergePRButton.TabIndex = 11; - this.MergePRButton.Text = "Merge Pull Request"; - this.MergePRButton.UseVisualStyleBackColor = true; - this.MergePRButton.Visible = false; - this.MergePRButton.Click += new System.EventHandler(this.TestMergeButton_Click); - // - // IdentityLabel - // - this.IdentityLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.IdentityLabel.AutoSize = true; - this.IdentityLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.IdentityLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.IdentityLabel.Location = new System.Drawing.Point(6, 142); - this.IdentityLabel.Name = "IdentityLabel"; - this.IdentityLabel.Size = new System.Drawing.Size(116, 18); - this.IdentityLabel.TabIndex = 8; - this.IdentityLabel.Text = "Backup Tags:"; - this.IdentityLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.IdentityLabel.Visible = false; - // - // TestMergeListTitle - // - this.TestMergeListTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.TestMergeListTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.TestMergeListTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.TestMergeListTitle.Location = new System.Drawing.Point(6, 260); - this.TestMergeListTitle.Name = "TestMergeListTitle"; - this.TestMergeListTitle.Size = new System.Drawing.Size(110, 41); - this.TestMergeListTitle.TabIndex = 6; - this.TestMergeListTitle.Text = "Active Test Merges:"; - this.TestMergeListTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.TestMergeListTitle.Visible = false; - // - // RemoteNameTitle - // - this.RemoteNameTitle.AutoSize = true; - this.RemoteNameTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RemoteNameTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.RemoteNameTitle.Location = new System.Drawing.Point(6, 46); - this.RemoteNameTitle.Name = "RemoteNameTitle"; - this.RemoteNameTitle.Size = new System.Drawing.Size(78, 18); - this.RemoteNameTitle.TabIndex = 5; - this.RemoteNameTitle.Text = "Remote:"; - this.RemoteNameTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.RemoteNameTitle.Visible = false; - // - // BranchNameTitle - // - this.BranchNameTitle.AutoSize = true; - this.BranchNameTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.BranchNameTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.BranchNameTitle.Location = new System.Drawing.Point(6, 72); - this.BranchNameTitle.Name = "BranchNameTitle"; - this.BranchNameTitle.Size = new System.Drawing.Size(70, 18); - this.BranchNameTitle.TabIndex = 4; - this.BranchNameTitle.Text = "Branch:"; - this.BranchNameTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.BranchNameTitle.Visible = false; - // - // CurrentRevisionTitle - // - this.CurrentRevisionTitle.AutoSize = true; - this.CurrentRevisionTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CurrentRevisionTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.CurrentRevisionTitle.Location = new System.Drawing.Point(6, 14); - this.CurrentRevisionTitle.Name = "CurrentRevisionTitle"; - this.CurrentRevisionTitle.Size = new System.Drawing.Size(150, 18); - this.CurrentRevisionTitle.TabIndex = 3; - this.CurrentRevisionTitle.Text = "Current Revision:"; - this.CurrentRevisionTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.CurrentRevisionTitle.Visible = false; - // - // CloneRepositoryButton - // - this.CloneRepositoryButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.TestMergeListLabel.Location = new System.Drawing.Point(122, 260); + this.TestMergeListLabel.Name = "TestMergeListLabel"; + this.TestMergeListLabel.ScrollAlwaysVisible = true; + this.TestMergeListLabel.Size = new System.Drawing.Size(535, 95); + this.TestMergeListLabel.TabIndex = 21; + this.TestMergeListLabel.Visible = false; + // + // CurrentRevisionLabel + // + this.CurrentRevisionLabel.AutoSize = true; + this.CurrentRevisionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.CurrentRevisionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.CurrentRevisionLabel.Location = new System.Drawing.Point(162, 14); + this.CurrentRevisionLabel.Name = "CurrentRevisionLabel"; + this.CurrentRevisionLabel.Size = new System.Drawing.Size(82, 18); + this.CurrentRevisionLabel.TabIndex = 20; + this.CurrentRevisionLabel.Text = "Unknown"; + this.CurrentRevisionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.CurrentRevisionLabel.Visible = false; + // + // RepoApplyButton + // + this.RepoApplyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.RepoApplyButton.Location = new System.Drawing.Point(722, 331); + this.RepoApplyButton.Name = "RepoApplyButton"; + this.RepoApplyButton.Size = new System.Drawing.Size(140, 29); + this.RepoApplyButton.TabIndex = 17; + this.RepoApplyButton.Text = "Apply Changes"; + this.RepoApplyButton.UseVisualStyleBackColor = true; + this.RepoApplyButton.Visible = false; + this.RepoApplyButton.Click += new System.EventHandler(this.RepoApplyButton_Click); + // + // RepoBranchTextBox + // + this.RepoBranchTextBox.Location = new System.Drawing.Point(122, 70); + this.RepoBranchTextBox.Name = "RepoBranchTextBox"; + this.RepoBranchTextBox.Size = new System.Drawing.Size(535, 20); + this.RepoBranchTextBox.TabIndex = 15; + this.RepoBranchTextBox.Visible = false; + // + // RepoRemoteTextBox + // + this.RepoRemoteTextBox.Location = new System.Drawing.Point(122, 44); + this.RepoRemoteTextBox.Name = "RepoRemoteTextBox"; + this.RepoRemoteTextBox.Size = new System.Drawing.Size(535, 20); + this.RepoRemoteTextBox.TabIndex = 14; + this.RepoRemoteTextBox.Visible = false; + // + // HardReset + // + this.HardReset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.HardReset.Location = new System.Drawing.Point(722, 46); + this.HardReset.Name = "HardReset"; + this.HardReset.Size = new System.Drawing.Size(140, 29); + this.HardReset.TabIndex = 13; + this.HardReset.Text = "Reset To Origin Branch"; + this.HardReset.UseVisualStyleBackColor = true; + this.HardReset.Visible = false; + this.HardReset.Click += new System.EventHandler(this.HardReset_Click); + // + // UpdateRepoButton + // + this.UpdateRepoButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.UpdateRepoButton.Location = new System.Drawing.Point(722, 11); + this.UpdateRepoButton.Name = "UpdateRepoButton"; + this.UpdateRepoButton.Size = new System.Drawing.Size(140, 29); + this.UpdateRepoButton.TabIndex = 12; + this.UpdateRepoButton.Text = "Merge from Remote"; + this.UpdateRepoButton.UseVisualStyleBackColor = true; + this.UpdateRepoButton.Visible = false; + this.UpdateRepoButton.Click += new System.EventHandler(this.UpdateRepoButton_Click); + // + // MergePRButton + // + this.MergePRButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.MergePRButton.Location = new System.Drawing.Point(722, 116); + this.MergePRButton.Name = "MergePRButton"; + this.MergePRButton.Size = new System.Drawing.Size(140, 29); + this.MergePRButton.TabIndex = 11; + this.MergePRButton.Text = "Merge Pull Request"; + this.MergePRButton.UseVisualStyleBackColor = true; + this.MergePRButton.Visible = false; + this.MergePRButton.Click += new System.EventHandler(this.TestMergeButton_Click); + // + // IdentityLabel + // + this.IdentityLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.IdentityLabel.AutoSize = true; + this.IdentityLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.IdentityLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.IdentityLabel.Location = new System.Drawing.Point(6, 142); + this.IdentityLabel.Name = "IdentityLabel"; + this.IdentityLabel.Size = new System.Drawing.Size(116, 18); + this.IdentityLabel.TabIndex = 8; + this.IdentityLabel.Text = "Backup Tags:"; + this.IdentityLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.IdentityLabel.Visible = false; + // + // TestMergeListTitle + // + this.TestMergeListTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.TestMergeListTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TestMergeListTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.TestMergeListTitle.Location = new System.Drawing.Point(6, 260); + this.TestMergeListTitle.Name = "TestMergeListTitle"; + this.TestMergeListTitle.Size = new System.Drawing.Size(110, 41); + this.TestMergeListTitle.TabIndex = 6; + this.TestMergeListTitle.Text = "Active Test Merges:"; + this.TestMergeListTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.TestMergeListTitle.Visible = false; + // + // RemoteNameTitle + // + this.RemoteNameTitle.AutoSize = true; + this.RemoteNameTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RemoteNameTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.RemoteNameTitle.Location = new System.Drawing.Point(6, 46); + this.RemoteNameTitle.Name = "RemoteNameTitle"; + this.RemoteNameTitle.Size = new System.Drawing.Size(78, 18); + this.RemoteNameTitle.TabIndex = 5; + this.RemoteNameTitle.Text = "Remote:"; + this.RemoteNameTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.RemoteNameTitle.Visible = false; + // + // BranchNameTitle + // + this.BranchNameTitle.AutoSize = true; + this.BranchNameTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.BranchNameTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.BranchNameTitle.Location = new System.Drawing.Point(6, 72); + this.BranchNameTitle.Name = "BranchNameTitle"; + this.BranchNameTitle.Size = new System.Drawing.Size(70, 18); + this.BranchNameTitle.TabIndex = 4; + this.BranchNameTitle.Text = "Branch:"; + this.BranchNameTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.BranchNameTitle.Visible = false; + // + // CurrentRevisionTitle + // + this.CurrentRevisionTitle.AutoSize = true; + this.CurrentRevisionTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.CurrentRevisionTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.CurrentRevisionTitle.Location = new System.Drawing.Point(6, 14); + this.CurrentRevisionTitle.Name = "CurrentRevisionTitle"; + this.CurrentRevisionTitle.Size = new System.Drawing.Size(150, 18); + this.CurrentRevisionTitle.TabIndex = 3; + this.CurrentRevisionTitle.Text = "Current Revision:"; + this.CurrentRevisionTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.CurrentRevisionTitle.Visible = false; + // + // CloneRepositoryButton + // + this.CloneRepositoryButton.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.CloneRepositoryButton.Location = new System.Drawing.Point(311, 191); - this.CloneRepositoryButton.Name = "CloneRepositoryButton"; - this.CloneRepositoryButton.Size = new System.Drawing.Size(229, 34); - this.CloneRepositoryButton.TabIndex = 2; - this.CloneRepositoryButton.Text = "Clone Repository"; - this.CloneRepositoryButton.UseVisualStyleBackColor = true; - this.CloneRepositoryButton.Visible = false; - this.CloneRepositoryButton.Click += new System.EventHandler(this.CloneRepositoryButton_Click); - // - // RepoProgressBarLabel - // - this.RepoProgressBarLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.CloneRepositoryButton.Location = new System.Drawing.Point(311, 191); + this.CloneRepositoryButton.Name = "CloneRepositoryButton"; + this.CloneRepositoryButton.Size = new System.Drawing.Size(229, 34); + this.CloneRepositoryButton.TabIndex = 2; + this.CloneRepositoryButton.Text = "Clone Repository"; + this.CloneRepositoryButton.UseVisualStyleBackColor = true; + this.CloneRepositoryButton.Visible = false; + this.CloneRepositoryButton.Click += new System.EventHandler(this.CloneRepositoryButton_Click); + // + // RepoProgressBarLabel + // + this.RepoProgressBarLabel.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.RepoProgressBarLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RepoProgressBarLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.RepoProgressBarLabel.Location = new System.Drawing.Point(184, 142); - this.RepoProgressBarLabel.Name = "RepoProgressBarLabel"; - this.RepoProgressBarLabel.Size = new System.Drawing.Size(499, 46); - this.RepoProgressBarLabel.TabIndex = 1; - this.RepoProgressBarLabel.Text = "Searching for Repository..."; - this.RepoProgressBarLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // RepoProgressBar - // - this.RepoProgressBar.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.RepoProgressBarLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RepoProgressBarLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.RepoProgressBarLabel.Location = new System.Drawing.Point(184, 142); + this.RepoProgressBarLabel.Name = "RepoProgressBarLabel"; + this.RepoProgressBarLabel.Size = new System.Drawing.Size(499, 46); + this.RepoProgressBarLabel.TabIndex = 1; + this.RepoProgressBarLabel.Text = "Searching for Repository..."; + this.RepoProgressBarLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // RepoProgressBar + // + this.RepoProgressBar.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.RepoProgressBar.Location = new System.Drawing.Point(184, 191); - this.RepoProgressBar.Name = "RepoProgressBar"; - this.RepoProgressBar.Size = new System.Drawing.Size(499, 23); - this.RepoProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee; - this.RepoProgressBar.TabIndex = 0; - // - // BYONDPanel - // - this.BYONDPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.BYONDPanel.Controls.Add(this.LatestVersionLabel); - this.BYONDPanel.Controls.Add(this.LatestVersionTitle); - this.BYONDPanel.Controls.Add(this.StagedVersionLabel); - this.BYONDPanel.Controls.Add(this.StagedVersionTitle); - this.BYONDPanel.Controls.Add(this.StatusLabel); - this.BYONDPanel.Controls.Add(this.VersionLabel); - this.BYONDPanel.Controls.Add(this.VersionTitle); - this.BYONDPanel.Controls.Add(this.MinorVersionLabel); - this.BYONDPanel.Controls.Add(this.MajorVersionLabel); - this.BYONDPanel.Controls.Add(this.UpdateButton); - this.BYONDPanel.Controls.Add(this.MinorVersionNumeric); - this.BYONDPanel.Controls.Add(this.MajorVersionNumeric); - this.BYONDPanel.Controls.Add(this.UpdateProgressBar); - this.BYONDPanel.Location = new System.Drawing.Point(4, 22); - this.BYONDPanel.Name = "BYONDPanel"; - this.BYONDPanel.Size = new System.Drawing.Size(868, 366); - this.BYONDPanel.TabIndex = 1; - this.BYONDPanel.Text = "BYOND"; - // - // LatestVersionLabel - // - this.LatestVersionLabel.AutoSize = true; - this.LatestVersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.LatestVersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.LatestVersionLabel.Location = new System.Drawing.Point(425, 93); - this.LatestVersionLabel.Name = "LatestVersionLabel"; - this.LatestVersionLabel.Size = new System.Drawing.Size(82, 18); - this.LatestVersionLabel.TabIndex = 13; - this.LatestVersionLabel.Text = "Unknown"; - this.LatestVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // LatestVersionTitle - // - this.LatestVersionTitle.AutoSize = true; - this.LatestVersionTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.LatestVersionTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.LatestVersionTitle.Location = new System.Drawing.Point(286, 93); - this.LatestVersionTitle.Name = "LatestVersionTitle"; - this.LatestVersionTitle.Size = new System.Drawing.Size(133, 18); - this.LatestVersionTitle.TabIndex = 12; - this.LatestVersionTitle.Text = "Latest Version:"; - this.LatestVersionTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // StagedVersionLabel - // - this.StagedVersionLabel.AutoSize = true; - this.StagedVersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.StagedVersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.StagedVersionLabel.Location = new System.Drawing.Point(425, 131); - this.StagedVersionLabel.Name = "StagedVersionLabel"; - this.StagedVersionLabel.Size = new System.Drawing.Size(82, 18); - this.StagedVersionLabel.TabIndex = 11; - this.StagedVersionLabel.Text = "Unknown"; - this.StagedVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.StagedVersionLabel.Visible = false; - // - // StagedVersionTitle - // - this.StagedVersionTitle.AutoSize = true; - this.StagedVersionTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.StagedVersionTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.StagedVersionTitle.Location = new System.Drawing.Point(282, 131); - this.StagedVersionTitle.Name = "StagedVersionTitle"; - this.StagedVersionTitle.Size = new System.Drawing.Size(137, 18); - this.StagedVersionTitle.TabIndex = 10; - this.StagedVersionTitle.Text = "Staged version:"; - this.StagedVersionTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.StagedVersionTitle.Visible = false; - // - // StatusLabel - // - this.StatusLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.StatusLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.StatusLabel.Location = new System.Drawing.Point(303, 320); - this.StatusLabel.Name = "StatusLabel"; - this.StatusLabel.Size = new System.Drawing.Size(253, 37); - this.StatusLabel.TabIndex = 9; - this.StatusLabel.Text = "Idle"; - this.StatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // VersionLabel - // - this.VersionLabel.AutoSize = true; - this.VersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.VersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.VersionLabel.Location = new System.Drawing.Point(425, 56); - this.VersionLabel.Name = "VersionLabel"; - this.VersionLabel.Size = new System.Drawing.Size(82, 18); - this.VersionLabel.TabIndex = 8; - this.VersionLabel.Text = "Unknown"; - this.VersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // VersionTitle - // - this.VersionTitle.AutoSize = true; - this.VersionTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.VersionTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.VersionTitle.Location = new System.Drawing.Point(265, 56); - this.VersionTitle.Name = "VersionTitle"; - this.VersionTitle.Size = new System.Drawing.Size(154, 18); - this.VersionTitle.TabIndex = 7; - this.VersionTitle.Text = "Installed Version:"; - this.VersionTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // MinorVersionLabel - // - this.MinorVersionLabel.AutoSize = true; - this.MinorVersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.MinorVersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.MinorVersionLabel.Location = new System.Drawing.Point(521, 180); - this.MinorVersionLabel.Name = "MinorVersionLabel"; - this.MinorVersionLabel.Size = new System.Drawing.Size(59, 18); - this.MinorVersionLabel.TabIndex = 6; - this.MinorVersionLabel.Text = "Minor:"; - this.MinorVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // MajorVersionLabel - // - this.MajorVersionLabel.AutoSize = true; - this.MajorVersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.MajorVersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.MajorVersionLabel.Location = new System.Drawing.Point(276, 180); - this.MajorVersionLabel.Name = "MajorVersionLabel"; - this.MajorVersionLabel.Size = new System.Drawing.Size(60, 18); - this.MajorVersionLabel.TabIndex = 5; - this.MajorVersionLabel.Text = "Major:"; - this.MajorVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // UpdateButton - // - this.UpdateButton.Location = new System.Drawing.Point(372, 252); - this.UpdateButton.Name = "UpdateButton"; - this.UpdateButton.Size = new System.Drawing.Size(118, 28); - this.UpdateButton.TabIndex = 3; - this.UpdateButton.Text = "Update"; - this.UpdateButton.UseVisualStyleBackColor = true; - this.UpdateButton.Click += new System.EventHandler(this.UpdateButton_Click); - // - // MinorVersionNumeric - // - this.MinorVersionNumeric.Location = new System.Drawing.Point(490, 210); - this.MinorVersionNumeric.Maximum = new decimal(new int[] { + this.RepoProgressBar.Location = new System.Drawing.Point(184, 191); + this.RepoProgressBar.Name = "RepoProgressBar"; + this.RepoProgressBar.Size = new System.Drawing.Size(499, 23); + this.RepoProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.RepoProgressBar.TabIndex = 0; + // + // BYONDPanel + // + this.BYONDPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.BYONDPanel.Controls.Add(this.LatestVersionLabel); + this.BYONDPanel.Controls.Add(this.LatestVersionTitle); + this.BYONDPanel.Controls.Add(this.StagedVersionLabel); + this.BYONDPanel.Controls.Add(this.StagedVersionTitle); + this.BYONDPanel.Controls.Add(this.StatusLabel); + this.BYONDPanel.Controls.Add(this.VersionLabel); + this.BYONDPanel.Controls.Add(this.VersionTitle); + this.BYONDPanel.Controls.Add(this.MinorVersionLabel); + this.BYONDPanel.Controls.Add(this.MajorVersionLabel); + this.BYONDPanel.Controls.Add(this.UpdateButton); + this.BYONDPanel.Controls.Add(this.MinorVersionNumeric); + this.BYONDPanel.Controls.Add(this.MajorVersionNumeric); + this.BYONDPanel.Controls.Add(this.UpdateProgressBar); + this.BYONDPanel.Location = new System.Drawing.Point(4, 22); + this.BYONDPanel.Name = "BYONDPanel"; + this.BYONDPanel.Size = new System.Drawing.Size(868, 366); + this.BYONDPanel.TabIndex = 1; + this.BYONDPanel.Text = "BYOND"; + // + // LatestVersionLabel + // + this.LatestVersionLabel.AutoSize = true; + this.LatestVersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.LatestVersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.LatestVersionLabel.Location = new System.Drawing.Point(425, 93); + this.LatestVersionLabel.Name = "LatestVersionLabel"; + this.LatestVersionLabel.Size = new System.Drawing.Size(82, 18); + this.LatestVersionLabel.TabIndex = 13; + this.LatestVersionLabel.Text = "Unknown"; + this.LatestVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // LatestVersionTitle + // + this.LatestVersionTitle.AutoSize = true; + this.LatestVersionTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.LatestVersionTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.LatestVersionTitle.Location = new System.Drawing.Point(286, 93); + this.LatestVersionTitle.Name = "LatestVersionTitle"; + this.LatestVersionTitle.Size = new System.Drawing.Size(133, 18); + this.LatestVersionTitle.TabIndex = 12; + this.LatestVersionTitle.Text = "Latest Version:"; + this.LatestVersionTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // StagedVersionLabel + // + this.StagedVersionLabel.AutoSize = true; + this.StagedVersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.StagedVersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.StagedVersionLabel.Location = new System.Drawing.Point(425, 131); + this.StagedVersionLabel.Name = "StagedVersionLabel"; + this.StagedVersionLabel.Size = new System.Drawing.Size(82, 18); + this.StagedVersionLabel.TabIndex = 11; + this.StagedVersionLabel.Text = "Unknown"; + this.StagedVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.StagedVersionLabel.Visible = false; + // + // StagedVersionTitle + // + this.StagedVersionTitle.AutoSize = true; + this.StagedVersionTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.StagedVersionTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.StagedVersionTitle.Location = new System.Drawing.Point(282, 131); + this.StagedVersionTitle.Name = "StagedVersionTitle"; + this.StagedVersionTitle.Size = new System.Drawing.Size(137, 18); + this.StagedVersionTitle.TabIndex = 10; + this.StagedVersionTitle.Text = "Staged version:"; + this.StagedVersionTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.StagedVersionTitle.Visible = false; + // + // StatusLabel + // + this.StatusLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.StatusLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.StatusLabel.Location = new System.Drawing.Point(303, 320); + this.StatusLabel.Name = "StatusLabel"; + this.StatusLabel.Size = new System.Drawing.Size(253, 37); + this.StatusLabel.TabIndex = 9; + this.StatusLabel.Text = "Idle"; + this.StatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // VersionLabel + // + this.VersionLabel.AutoSize = true; + this.VersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.VersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.VersionLabel.Location = new System.Drawing.Point(425, 56); + this.VersionLabel.Name = "VersionLabel"; + this.VersionLabel.Size = new System.Drawing.Size(82, 18); + this.VersionLabel.TabIndex = 8; + this.VersionLabel.Text = "Unknown"; + this.VersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // VersionTitle + // + this.VersionTitle.AutoSize = true; + this.VersionTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.VersionTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.VersionTitle.Location = new System.Drawing.Point(265, 56); + this.VersionTitle.Name = "VersionTitle"; + this.VersionTitle.Size = new System.Drawing.Size(154, 18); + this.VersionTitle.TabIndex = 7; + this.VersionTitle.Text = "Installed Version:"; + this.VersionTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // MinorVersionLabel + // + this.MinorVersionLabel.AutoSize = true; + this.MinorVersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.MinorVersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.MinorVersionLabel.Location = new System.Drawing.Point(521, 180); + this.MinorVersionLabel.Name = "MinorVersionLabel"; + this.MinorVersionLabel.Size = new System.Drawing.Size(59, 18); + this.MinorVersionLabel.TabIndex = 6; + this.MinorVersionLabel.Text = "Minor:"; + this.MinorVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // MajorVersionLabel + // + this.MajorVersionLabel.AutoSize = true; + this.MajorVersionLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.MajorVersionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.MajorVersionLabel.Location = new System.Drawing.Point(276, 180); + this.MajorVersionLabel.Name = "MajorVersionLabel"; + this.MajorVersionLabel.Size = new System.Drawing.Size(60, 18); + this.MajorVersionLabel.TabIndex = 5; + this.MajorVersionLabel.Text = "Major:"; + this.MajorVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // UpdateButton + // + this.UpdateButton.Location = new System.Drawing.Point(372, 252); + this.UpdateButton.Name = "UpdateButton"; + this.UpdateButton.Size = new System.Drawing.Size(118, 28); + this.UpdateButton.TabIndex = 3; + this.UpdateButton.Text = "Update"; + this.UpdateButton.UseVisualStyleBackColor = true; + this.UpdateButton.Click += new System.EventHandler(this.UpdateButton_Click); + // + // MinorVersionNumeric + // + this.MinorVersionNumeric.Location = new System.Drawing.Point(490, 210); + this.MinorVersionNumeric.Maximum = new decimal(new int[] { 10000, 0, 0, 0}); - this.MinorVersionNumeric.Name = "MinorVersionNumeric"; - this.MinorVersionNumeric.Size = new System.Drawing.Size(120, 20); - this.MinorVersionNumeric.TabIndex = 2; - this.MinorVersionNumeric.Value = new decimal(new int[] { + this.MinorVersionNumeric.Name = "MinorVersionNumeric"; + this.MinorVersionNumeric.Size = new System.Drawing.Size(120, 20); + this.MinorVersionNumeric.TabIndex = 2; + this.MinorVersionNumeric.Value = new decimal(new int[] { 1381, 0, 0, 0}); - // - // MajorVersionNumeric - // - this.MajorVersionNumeric.Location = new System.Drawing.Point(245, 210); - this.MajorVersionNumeric.Maximum = new decimal(new int[] { + // + // MajorVersionNumeric + // + this.MajorVersionNumeric.Location = new System.Drawing.Point(245, 210); + this.MajorVersionNumeric.Maximum = new decimal(new int[] { 1000, 0, 0, 0}); - this.MajorVersionNumeric.Name = "MajorVersionNumeric"; - this.MajorVersionNumeric.Size = new System.Drawing.Size(120, 20); - this.MajorVersionNumeric.TabIndex = 1; - this.MajorVersionNumeric.Value = new decimal(new int[] { + this.MajorVersionNumeric.Name = "MajorVersionNumeric"; + this.MajorVersionNumeric.Size = new System.Drawing.Size(120, 20); + this.MajorVersionNumeric.TabIndex = 1; + this.MajorVersionNumeric.Value = new decimal(new int[] { 511, 0, 0, 0}); - // - // UpdateProgressBar - // - this.UpdateProgressBar.Location = new System.Drawing.Point(107, 286); - this.UpdateProgressBar.MarqueeAnimationSpeed = 50; - this.UpdateProgressBar.Name = "UpdateProgressBar"; - this.UpdateProgressBar.Size = new System.Drawing.Size(650, 31); - this.UpdateProgressBar.TabIndex = 0; - // - // ServerPanel - // - this.ServerPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.ServerPanel.Controls.Add(this.AutostartCheckbox); - this.ServerPanel.Controls.Add(this.WebclientCheckBox); - this.ServerPanel.Controls.Add(this.WorldAnnounceButton); - this.ServerPanel.Controls.Add(this.WorldAnnounceField); - this.ServerPanel.Controls.Add(this.VisibilityTitle); - this.ServerPanel.Controls.Add(this.SecuritySelector); - this.ServerPanel.Controls.Add(this.SecurityTitle); - this.ServerPanel.Controls.Add(this.ResetTestmerge); - this.ServerPanel.Controls.Add(this.NudgePortSelector); - this.ServerPanel.Controls.Add(this.NudgePortLabel); - this.ServerPanel.Controls.Add(this.ServerPathLabel); - this.ServerPanel.Controls.Add(this.ServerPathTextbox); - this.ServerPanel.Controls.Add(this.CompileCancelButton); - this.ServerPanel.Controls.Add(this.ProjectPathLabel); - this.ServerPanel.Controls.Add(this.projectNameText); - this.ServerPanel.Controls.Add(this.PortLabel); - this.ServerPanel.Controls.Add(this.PortSelector); - this.ServerPanel.Controls.Add(this.ServerPRLabel); - this.ServerPanel.Controls.Add(this.ServerTestmergeInput); - this.ServerPanel.Controls.Add(this.TestmergeButton); - this.ServerPanel.Controls.Add(this.UpdateTestmergeButton); - this.ServerPanel.Controls.Add(this.UpdateMergeButton); - this.ServerPanel.Controls.Add(this.UpdateHardButton); - this.ServerPanel.Controls.Add(this.ServerGRestartButton); - this.ServerPanel.Controls.Add(this.ServerGStopButton); - this.ServerPanel.Controls.Add(this.ServerRestartButton); - this.ServerPanel.Controls.Add(this.ServerStopButton); - this.ServerPanel.Controls.Add(this.ServerStartButton); - this.ServerPanel.Controls.Add(this.CompilerStatusLabel); - this.ServerPanel.Controls.Add(this.CompilerLabel); - this.ServerPanel.Controls.Add(this.compileButton); - this.ServerPanel.Controls.Add(this.initializeButton); - this.ServerPanel.Controls.Add(this.compilerProgressBar); - this.ServerPanel.Controls.Add(this.ServerStatusLabel); - this.ServerPanel.Controls.Add(this.ServerStatusTitle); - this.ServerPanel.Location = new System.Drawing.Point(4, 22); - this.ServerPanel.Name = "ServerPanel"; - this.ServerPanel.Padding = new System.Windows.Forms.Padding(3); - this.ServerPanel.Size = new System.Drawing.Size(868, 366); - this.ServerPanel.TabIndex = 2; - this.ServerPanel.Text = "Server"; - // - // AutostartCheckbox - // - this.AutostartCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.AutostartCheckbox.AutoSize = true; - this.AutostartCheckbox.Font = new System.Drawing.Font("Verdana", 12F); - this.AutostartCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.AutostartCheckbox.Location = new System.Drawing.Point(758, 0); - this.AutostartCheckbox.Name = "AutostartCheckbox"; - this.AutostartCheckbox.Size = new System.Drawing.Size(104, 22); - this.AutostartCheckbox.TabIndex = 15; - this.AutostartCheckbox.Text = "Autostart"; - this.AutostartCheckbox.UseVisualStyleBackColor = true; - this.AutostartCheckbox.CheckedChanged += new System.EventHandler(this.AutostartCheckbox_CheckedChanged); - // - // WebclientCheckBox - // - this.WebclientCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.WebclientCheckBox.AutoSize = true; - this.WebclientCheckBox.Font = new System.Drawing.Font("Verdana", 12F); - this.WebclientCheckBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.WebclientCheckBox.Location = new System.Drawing.Point(758, 28); - this.WebclientCheckBox.Name = "WebclientCheckBox"; - this.WebclientCheckBox.Size = new System.Drawing.Size(108, 22); - this.WebclientCheckBox.TabIndex = 42; - this.WebclientCheckBox.Text = "Webclient"; - this.WebclientCheckBox.UseVisualStyleBackColor = true; - this.WebclientCheckBox.CheckedChanged += new System.EventHandler(this.WebclientCheckBox_CheckedChanged); - // - // WorldAnnounceButton - // - this.WorldAnnounceButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.WorldAnnounceButton.Location = new System.Drawing.Point(785, 136); - this.WorldAnnounceButton.Name = "WorldAnnounceButton"; - this.WorldAnnounceButton.Size = new System.Drawing.Size(77, 20); - this.WorldAnnounceButton.TabIndex = 41; - this.WorldAnnounceButton.Text = "Send"; - this.WorldAnnounceButton.UseVisualStyleBackColor = true; - this.WorldAnnounceButton.Click += new System.EventHandler(this.WorldAnnounceButton_Click); - // - // WorldAnnounceField - // - this.WorldAnnounceField.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.WorldAnnounceField.Location = new System.Drawing.Point(566, 136); - this.WorldAnnounceField.Name = "WorldAnnounceField"; - this.WorldAnnounceField.Size = new System.Drawing.Size(213, 20); - this.WorldAnnounceField.TabIndex = 40; - // - // VisibilityTitle - // - this.VisibilityTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.VisibilityTitle.AutoSize = true; - this.VisibilityTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.VisibilityTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.VisibilityTitle.Location = new System.Drawing.Point(466, 139); - this.VisibilityTitle.Name = "VisibilityTitle"; - this.VisibilityTitle.Size = new System.Drawing.Size(94, 18); - this.VisibilityTitle.TabIndex = 39; - this.VisibilityTitle.Text = "Announce:"; - this.VisibilityTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // SecuritySelector - // - this.SecuritySelector.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.SecuritySelector.FormattingEnabled = true; - this.SecuritySelector.Items.AddRange(new object[] { + // + // UpdateProgressBar + // + this.UpdateProgressBar.Location = new System.Drawing.Point(107, 286); + this.UpdateProgressBar.MarqueeAnimationSpeed = 50; + this.UpdateProgressBar.Name = "UpdateProgressBar"; + this.UpdateProgressBar.Size = new System.Drawing.Size(650, 31); + this.UpdateProgressBar.TabIndex = 0; + // + // ServerPanel + // + this.ServerPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.ServerPanel.Controls.Add(this.AutostartCheckbox); + this.ServerPanel.Controls.Add(this.WebclientCheckBox); + this.ServerPanel.Controls.Add(this.WorldAnnounceButton); + this.ServerPanel.Controls.Add(this.WorldAnnounceField); + this.ServerPanel.Controls.Add(this.VisibilityTitle); + this.ServerPanel.Controls.Add(this.SecuritySelector); + this.ServerPanel.Controls.Add(this.SecurityTitle); + this.ServerPanel.Controls.Add(this.ResetTestmerge); + this.ServerPanel.Controls.Add(this.ServerPathLabel); + this.ServerPanel.Controls.Add(this.ServerPathTextbox); + this.ServerPanel.Controls.Add(this.CompileCancelButton); + this.ServerPanel.Controls.Add(this.ProjectPathLabel); + this.ServerPanel.Controls.Add(this.projectNameText); + this.ServerPanel.Controls.Add(this.PortLabel); + this.ServerPanel.Controls.Add(this.PortSelector); + this.ServerPanel.Controls.Add(this.ServerPRLabel); + this.ServerPanel.Controls.Add(this.ServerTestmergeInput); + this.ServerPanel.Controls.Add(this.TestmergeButton); + this.ServerPanel.Controls.Add(this.UpdateTestmergeButton); + this.ServerPanel.Controls.Add(this.UpdateMergeButton); + this.ServerPanel.Controls.Add(this.UpdateHardButton); + this.ServerPanel.Controls.Add(this.ServerGRestartButton); + this.ServerPanel.Controls.Add(this.ServerGStopButton); + this.ServerPanel.Controls.Add(this.ServerRestartButton); + this.ServerPanel.Controls.Add(this.ServerStopButton); + this.ServerPanel.Controls.Add(this.ServerStartButton); + this.ServerPanel.Controls.Add(this.CompilerStatusLabel); + this.ServerPanel.Controls.Add(this.CompilerLabel); + this.ServerPanel.Controls.Add(this.compileButton); + this.ServerPanel.Controls.Add(this.initializeButton); + this.ServerPanel.Controls.Add(this.compilerProgressBar); + this.ServerPanel.Controls.Add(this.ServerStatusLabel); + this.ServerPanel.Controls.Add(this.ServerStatusTitle); + this.ServerPanel.Location = new System.Drawing.Point(4, 22); + this.ServerPanel.Name = "ServerPanel"; + this.ServerPanel.Padding = new System.Windows.Forms.Padding(3); + this.ServerPanel.Size = new System.Drawing.Size(868, 366); + this.ServerPanel.TabIndex = 2; + this.ServerPanel.Text = "Server"; + // + // AutostartCheckbox + // + this.AutostartCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.AutostartCheckbox.AutoSize = true; + this.AutostartCheckbox.Font = new System.Drawing.Font("Verdana", 12F); + this.AutostartCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.AutostartCheckbox.Location = new System.Drawing.Point(754, 16); + this.AutostartCheckbox.Name = "AutostartCheckbox"; + this.AutostartCheckbox.Size = new System.Drawing.Size(104, 22); + this.AutostartCheckbox.TabIndex = 15; + this.AutostartCheckbox.Text = "Autostart"; + this.AutostartCheckbox.UseVisualStyleBackColor = true; + this.AutostartCheckbox.CheckedChanged += new System.EventHandler(this.AutostartCheckbox_CheckedChanged); + // + // WebclientCheckBox + // + this.WebclientCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.WebclientCheckBox.AutoSize = true; + this.WebclientCheckBox.Font = new System.Drawing.Font("Verdana", 12F); + this.WebclientCheckBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.WebclientCheckBox.Location = new System.Drawing.Point(754, 57); + this.WebclientCheckBox.Name = "WebclientCheckBox"; + this.WebclientCheckBox.Size = new System.Drawing.Size(108, 22); + this.WebclientCheckBox.TabIndex = 42; + this.WebclientCheckBox.Text = "Webclient"; + this.WebclientCheckBox.UseVisualStyleBackColor = true; + this.WebclientCheckBox.CheckedChanged += new System.EventHandler(this.WebclientCheckBox_CheckedChanged); + // + // WorldAnnounceButton + // + this.WorldAnnounceButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.WorldAnnounceButton.Location = new System.Drawing.Point(785, 136); + this.WorldAnnounceButton.Name = "WorldAnnounceButton"; + this.WorldAnnounceButton.Size = new System.Drawing.Size(77, 20); + this.WorldAnnounceButton.TabIndex = 41; + this.WorldAnnounceButton.Text = "Send"; + this.WorldAnnounceButton.UseVisualStyleBackColor = true; + this.WorldAnnounceButton.Click += new System.EventHandler(this.WorldAnnounceButton_Click); + // + // WorldAnnounceField + // + this.WorldAnnounceField.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.WorldAnnounceField.Location = new System.Drawing.Point(566, 136); + this.WorldAnnounceField.Name = "WorldAnnounceField"; + this.WorldAnnounceField.Size = new System.Drawing.Size(213, 20); + this.WorldAnnounceField.TabIndex = 40; + // + // VisibilityTitle + // + this.VisibilityTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.VisibilityTitle.AutoSize = true; + this.VisibilityTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.VisibilityTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.VisibilityTitle.Location = new System.Drawing.Point(466, 139); + this.VisibilityTitle.Name = "VisibilityTitle"; + this.VisibilityTitle.Size = new System.Drawing.Size(94, 18); + this.VisibilityTitle.TabIndex = 39; + this.VisibilityTitle.Text = "Announce:"; + this.VisibilityTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // SecuritySelector + // + this.SecuritySelector.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.SecuritySelector.FormattingEnabled = true; + this.SecuritySelector.Items.AddRange(new object[] { "Trusted", "Safe", "Ultrasafe"}); - this.SecuritySelector.Location = new System.Drawing.Point(136, 136); - this.SecuritySelector.Name = "SecuritySelector"; - this.SecuritySelector.Size = new System.Drawing.Size(121, 21); - this.SecuritySelector.TabIndex = 38; - this.SecuritySelector.SelectedIndexChanged += new System.EventHandler(this.SecuritySelector_SelectedIndexChanged); + this.SecuritySelector.Location = new System.Drawing.Point(136, 136); + this.SecuritySelector.Name = "SecuritySelector"; + this.SecuritySelector.Size = new System.Drawing.Size(121, 21); + this.SecuritySelector.TabIndex = 38; + this.SecuritySelector.SelectedIndexChanged += new System.EventHandler(this.SecuritySelector_SelectedIndexChanged); + // + // SecurityTitle + // + this.SecurityTitle.AutoSize = true; + this.SecurityTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.SecurityTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.SecurityTitle.Location = new System.Drawing.Point(44, 139); + this.SecurityTitle.Name = "SecurityTitle"; + this.SecurityTitle.Size = new System.Drawing.Size(80, 18); + this.SecurityTitle.TabIndex = 37; + this.SecurityTitle.Text = "Security:"; + this.SecurityTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ResetTestmerge + // + this.ResetTestmerge.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.ResetTestmerge.Location = new System.Drawing.Point(602, 95); + this.ResetTestmerge.Name = "ResetTestmerge"; + this.ResetTestmerge.Size = new System.Drawing.Size(142, 28); + this.ResetTestmerge.TabIndex = 36; + this.ResetTestmerge.Text = "Reset and Recompile"; + this.ResetTestmerge.UseVisualStyleBackColor = true; + this.ResetTestmerge.Click += new System.EventHandler(this.ResetTestmerge_Click); // - // SecurityTitle - // - this.SecurityTitle.AutoSize = true; - this.SecurityTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.SecurityTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.SecurityTitle.Location = new System.Drawing.Point(44, 139); - this.SecurityTitle.Name = "SecurityTitle"; - this.SecurityTitle.Size = new System.Drawing.Size(80, 18); - this.SecurityTitle.TabIndex = 37; - this.SecurityTitle.Text = "Security:"; - this.SecurityTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ResetTestmerge - // - this.ResetTestmerge.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.ResetTestmerge.Location = new System.Drawing.Point(602, 95); - this.ResetTestmerge.Name = "ResetTestmerge"; - this.ResetTestmerge.Size = new System.Drawing.Size(142, 28); - this.ResetTestmerge.TabIndex = 36; - this.ResetTestmerge.Text = "Reset and Recompile"; - this.ResetTestmerge.UseVisualStyleBackColor = true; - this.ResetTestmerge.Click += new System.EventHandler(this.ResetTestmerge_Click); - // - // NudgePortSelector - // - this.NudgePortSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NudgePortSelector.Location = new System.Drawing.Point(806, 60); - this.NudgePortSelector.Maximum = new decimal(new int[] { + // ServerPathLabel + // + this.ServerPathLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.ServerPathLabel.AutoSize = true; + this.ServerPathLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ServerPathLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ServerPathLabel.Location = new System.Drawing.Point(15, 165); + this.ServerPathLabel.Name = "ServerPathLabel"; + this.ServerPathLabel.Size = new System.Drawing.Size(109, 18); + this.ServerPathLabel.TabIndex = 33; + this.ServerPathLabel.Text = "Server Path:"; + this.ServerPathLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ServerPathTextbox + // + this.ServerPathTextbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.ServerPathTextbox.Location = new System.Drawing.Point(136, 163); + this.ServerPathTextbox.Name = "ServerPathTextbox"; + this.ServerPathTextbox.Size = new System.Drawing.Size(296, 20); + this.ServerPathTextbox.TabIndex = 32; + // + // CompileCancelButton + // + this.CompileCancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CompileCancelButton.Enabled = false; + this.CompileCancelButton.Location = new System.Drawing.Point(737, 302); + this.CompileCancelButton.Name = "CompileCancelButton"; + this.CompileCancelButton.Size = new System.Drawing.Size(69, 31); + this.CompileCancelButton.TabIndex = 31; + this.CompileCancelButton.Text = "Cancel"; + this.CompileCancelButton.UseVisualStyleBackColor = true; + this.CompileCancelButton.Click += new System.EventHandler(this.CompileCancelButton_Click); + // + // ProjectPathLabel + // + this.ProjectPathLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.ProjectPathLabel.AutoSize = true; + this.ProjectPathLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ProjectPathLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ProjectPathLabel.Location = new System.Drawing.Point(445, 165); + this.ProjectPathLabel.Name = "ProjectPathLabel"; + this.ProjectPathLabel.Size = new System.Drawing.Size(115, 18); + this.ProjectPathLabel.TabIndex = 30; + this.ProjectPathLabel.Text = "Project Path:"; + this.ProjectPathLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // projectNameText + // + this.projectNameText.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.projectNameText.Location = new System.Drawing.Point(566, 163); + this.projectNameText.Name = "projectNameText"; + this.projectNameText.Size = new System.Drawing.Size(296, 20); + this.projectNameText.TabIndex = 29; + // + // PortLabel + // + this.PortLabel.AutoSize = true; + this.PortLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.PortLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.PortLabel.Location = new System.Drawing.Point(4, 60); + this.PortLabel.Name = "PortLabel"; + this.PortLabel.Size = new System.Drawing.Size(48, 18); + this.PortLabel.TabIndex = 28; + this.PortLabel.Text = "Port:"; + this.PortLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // PortSelector + // + this.PortSelector.Location = new System.Drawing.Point(59, 60); + this.PortSelector.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); - this.NudgePortSelector.Minimum = new decimal(new int[] { + this.PortSelector.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - this.NudgePortSelector.Name = "NudgePortSelector"; - this.NudgePortSelector.Size = new System.Drawing.Size(62, 20); - this.NudgePortSelector.TabIndex = 34; - this.NudgePortSelector.Value = new decimal(new int[] { + this.PortSelector.Name = "PortSelector"; + this.PortSelector.Size = new System.Drawing.Size(60, 20); + this.PortSelector.TabIndex = 27; + this.PortSelector.Value = new decimal(new int[] { 1, 0, 0, 0}); - this.NudgePortSelector.ValueChanged += new System.EventHandler(this.NudgePortSelector_ValueChanged); - // - // NudgePortLabel - // - this.NudgePortLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NudgePortLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NudgePortLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.NudgePortLabel.Location = new System.Drawing.Point(745, 45); - this.NudgePortLabel.Name = "NudgePortLabel"; - this.NudgePortLabel.Size = new System.Drawing.Size(61, 44); - this.NudgePortLabel.TabIndex = 35; - this.NudgePortLabel.Text = "Nudge Port:"; - this.NudgePortLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ServerPathLabel - // - this.ServerPathLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.ServerPathLabel.AutoSize = true; - this.ServerPathLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ServerPathLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ServerPathLabel.Location = new System.Drawing.Point(15, 165); - this.ServerPathLabel.Name = "ServerPathLabel"; - this.ServerPathLabel.Size = new System.Drawing.Size(109, 18); - this.ServerPathLabel.TabIndex = 33; - this.ServerPathLabel.Text = "Server Path:"; - this.ServerPathLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ServerPathTextbox - // - this.ServerPathTextbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.ServerPathTextbox.Location = new System.Drawing.Point(136, 163); - this.ServerPathTextbox.Name = "ServerPathTextbox"; - this.ServerPathTextbox.Size = new System.Drawing.Size(296, 20); - this.ServerPathTextbox.TabIndex = 32; - // - // CompileCancelButton - // - this.CompileCancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.CompileCancelButton.Enabled = false; - this.CompileCancelButton.Location = new System.Drawing.Point(737, 302); - this.CompileCancelButton.Name = "CompileCancelButton"; - this.CompileCancelButton.Size = new System.Drawing.Size(69, 31); - this.CompileCancelButton.TabIndex = 31; - this.CompileCancelButton.Text = "Cancel"; - this.CompileCancelButton.UseVisualStyleBackColor = true; - this.CompileCancelButton.Click += new System.EventHandler(this.CompileCancelButton_Click); - // - // ProjectPathLabel - // - this.ProjectPathLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.ProjectPathLabel.AutoSize = true; - this.ProjectPathLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ProjectPathLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ProjectPathLabel.Location = new System.Drawing.Point(445, 165); - this.ProjectPathLabel.Name = "ProjectPathLabel"; - this.ProjectPathLabel.Size = new System.Drawing.Size(115, 18); - this.ProjectPathLabel.TabIndex = 30; - this.ProjectPathLabel.Text = "Project Path:"; - this.ProjectPathLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // projectNameText - // - this.projectNameText.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.projectNameText.Location = new System.Drawing.Point(566, 163); - this.projectNameText.Name = "projectNameText"; - this.projectNameText.Size = new System.Drawing.Size(296, 20); - this.projectNameText.TabIndex = 29; - // - // PortLabel - // - this.PortLabel.AutoSize = true; - this.PortLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PortLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.PortLabel.Location = new System.Drawing.Point(4, 60); - this.PortLabel.Name = "PortLabel"; - this.PortLabel.Size = new System.Drawing.Size(48, 18); - this.PortLabel.TabIndex = 28; - this.PortLabel.Text = "Port:"; - this.PortLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // PortSelector - // - this.PortSelector.Location = new System.Drawing.Point(59, 60); - this.PortSelector.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.PortSelector.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.PortSelector.Name = "PortSelector"; - this.PortSelector.Size = new System.Drawing.Size(60, 20); - this.PortSelector.TabIndex = 27; - this.PortSelector.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.PortSelector.ValueChanged += new System.EventHandler(this.PortSelector_ValueChanged); - // - // ServerPRLabel - // - this.ServerPRLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ServerPRLabel.AutoSize = true; - this.ServerPRLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ServerPRLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ServerPRLabel.Location = new System.Drawing.Point(745, 101); - this.ServerPRLabel.Name = "ServerPRLabel"; - this.ServerPRLabel.Size = new System.Drawing.Size(49, 18); - this.ServerPRLabel.TabIndex = 26; - this.ServerPRLabel.Text = "PR#:"; - this.ServerPRLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ServerTestmergeInput - // - this.ServerTestmergeInput.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ServerTestmergeInput.Location = new System.Drawing.Point(806, 99); - this.ServerTestmergeInput.Maximum = new decimal(new int[] { + this.PortSelector.ValueChanged += new System.EventHandler(this.PortSelector_ValueChanged); + // + // ServerPRLabel + // + this.ServerPRLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ServerPRLabel.AutoSize = true; + this.ServerPRLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ServerPRLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ServerPRLabel.Location = new System.Drawing.Point(745, 101); + this.ServerPRLabel.Name = "ServerPRLabel"; + this.ServerPRLabel.Size = new System.Drawing.Size(49, 18); + this.ServerPRLabel.TabIndex = 26; + this.ServerPRLabel.Text = "PR#:"; + this.ServerPRLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ServerTestmergeInput + // + this.ServerTestmergeInput.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ServerTestmergeInput.Location = new System.Drawing.Point(806, 99); + this.ServerTestmergeInput.Maximum = new decimal(new int[] { 1000000, 0, 0, 0}); - this.ServerTestmergeInput.Name = "ServerTestmergeInput"; - this.ServerTestmergeInput.Size = new System.Drawing.Size(62, 20); - this.ServerTestmergeInput.TabIndex = 25; - // - // TestmergeButton - // - this.TestmergeButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.TestmergeButton.Location = new System.Drawing.Point(454, 95); - this.TestmergeButton.Name = "TestmergeButton"; - this.TestmergeButton.Size = new System.Drawing.Size(142, 28); - this.TestmergeButton.TabIndex = 24; - this.TestmergeButton.Text = "Testmerge"; - this.TestmergeButton.UseVisualStyleBackColor = true; - this.TestmergeButton.Click += new System.EventHandler(this.TestmergeButton_Click); - // - // UpdateTestmergeButton - // - this.UpdateTestmergeButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.UpdateTestmergeButton.Location = new System.Drawing.Point(306, 95); - this.UpdateTestmergeButton.Name = "UpdateTestmergeButton"; - this.UpdateTestmergeButton.Size = new System.Drawing.Size(142, 28); - this.UpdateTestmergeButton.TabIndex = 23; - this.UpdateTestmergeButton.Text = "Update and Testmerge"; - this.UpdateTestmergeButton.UseVisualStyleBackColor = true; - this.UpdateTestmergeButton.Click += new System.EventHandler(this.UpdateTestmergeButton_Click); - // - // UpdateMergeButton - // - this.UpdateMergeButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.UpdateMergeButton.Location = new System.Drawing.Point(158, 95); - this.UpdateMergeButton.Name = "UpdateMergeButton"; - this.UpdateMergeButton.Size = new System.Drawing.Size(142, 28); - this.UpdateMergeButton.TabIndex = 22; - this.UpdateMergeButton.Text = "Update (KeepTestmerge)"; - this.UpdateMergeButton.UseVisualStyleBackColor = true; - this.UpdateMergeButton.Click += new System.EventHandler(this.UpdateMergeButton_Click); - // - // UpdateHardButton - // - this.UpdateHardButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.UpdateHardButton.Location = new System.Drawing.Point(7, 95); - this.UpdateHardButton.Name = "UpdateHardButton"; - this.UpdateHardButton.Size = new System.Drawing.Size(145, 28); - this.UpdateHardButton.TabIndex = 21; - this.UpdateHardButton.Text = "Update (Reset Testmerge)"; - this.UpdateHardButton.UseVisualStyleBackColor = true; - this.UpdateHardButton.Click += new System.EventHandler(this.UpdateHardButton_Click); - // - // ServerGRestartButton - // - this.ServerGRestartButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.ServerGRestartButton.Location = new System.Drawing.Point(626, 54); - this.ServerGRestartButton.Name = "ServerGRestartButton"; - this.ServerGRestartButton.Size = new System.Drawing.Size(118, 28); - this.ServerGRestartButton.TabIndex = 20; - this.ServerGRestartButton.Text = "Graceful Restart"; - this.ServerGRestartButton.UseVisualStyleBackColor = true; - this.ServerGRestartButton.Click += new System.EventHandler(this.ServerGRestartButton_Click); - // - // ServerGStopButton - // - this.ServerGStopButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.ServerGStopButton.Appearance = System.Windows.Forms.Appearance.Button; - this.ServerGStopButton.Location = new System.Drawing.Point(502, 54); - this.ServerGStopButton.Name = "ServerGStopButton"; - this.ServerGStopButton.Size = new System.Drawing.Size(118, 28); - this.ServerGStopButton.TabIndex = 19; - this.ServerGStopButton.Text = "Graceful Stop"; - this.ServerGStopButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.ServerGStopButton.UseVisualStyleBackColor = true; - this.ServerGStopButton.CheckedChanged += new System.EventHandler(this.ServerGStopButton_Checked); - // - // ServerRestartButton - // - this.ServerRestartButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.ServerRestartButton.Location = new System.Drawing.Point(378, 54); - this.ServerRestartButton.Name = "ServerRestartButton"; - this.ServerRestartButton.Size = new System.Drawing.Size(118, 28); - this.ServerRestartButton.TabIndex = 18; - this.ServerRestartButton.Text = "Restart"; - this.ServerRestartButton.UseVisualStyleBackColor = true; - this.ServerRestartButton.Click += new System.EventHandler(this.ServerRestartButton_Click); - // - // ServerStopButton - // - this.ServerStopButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.ServerStopButton.Location = new System.Drawing.Point(254, 54); - this.ServerStopButton.Name = "ServerStopButton"; - this.ServerStopButton.Size = new System.Drawing.Size(118, 28); - this.ServerStopButton.TabIndex = 17; - this.ServerStopButton.Text = "Stop"; - this.ServerStopButton.UseVisualStyleBackColor = true; - this.ServerStopButton.Click += new System.EventHandler(this.ServerStopButton_Click); - // - // ServerStartButton - // - this.ServerStartButton.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.ServerStartButton.Location = new System.Drawing.Point(130, 54); - this.ServerStartButton.Name = "ServerStartButton"; - this.ServerStartButton.Size = new System.Drawing.Size(118, 28); - this.ServerStartButton.TabIndex = 16; - this.ServerStartButton.Text = "Start"; - this.ServerStartButton.UseVisualStyleBackColor = true; - this.ServerStartButton.Click += new System.EventHandler(this.ServerStartButton_Click); - // - // CompilerStatusLabel - // - this.CompilerStatusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + this.ServerTestmergeInput.Name = "ServerTestmergeInput"; + this.ServerTestmergeInput.Size = new System.Drawing.Size(62, 20); + this.ServerTestmergeInput.TabIndex = 25; + // + // TestmergeButton + // + this.TestmergeButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.TestmergeButton.Location = new System.Drawing.Point(454, 95); + this.TestmergeButton.Name = "TestmergeButton"; + this.TestmergeButton.Size = new System.Drawing.Size(142, 28); + this.TestmergeButton.TabIndex = 24; + this.TestmergeButton.Text = "Testmerge"; + this.TestmergeButton.UseVisualStyleBackColor = true; + this.TestmergeButton.Click += new System.EventHandler(this.TestmergeButton_Click); + // + // UpdateTestmergeButton + // + this.UpdateTestmergeButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.UpdateTestmergeButton.Location = new System.Drawing.Point(306, 95); + this.UpdateTestmergeButton.Name = "UpdateTestmergeButton"; + this.UpdateTestmergeButton.Size = new System.Drawing.Size(142, 28); + this.UpdateTestmergeButton.TabIndex = 23; + this.UpdateTestmergeButton.Text = "Update and Testmerge"; + this.UpdateTestmergeButton.UseVisualStyleBackColor = true; + this.UpdateTestmergeButton.Click += new System.EventHandler(this.UpdateTestmergeButton_Click); + // + // UpdateMergeButton + // + this.UpdateMergeButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.UpdateMergeButton.Location = new System.Drawing.Point(158, 95); + this.UpdateMergeButton.Name = "UpdateMergeButton"; + this.UpdateMergeButton.Size = new System.Drawing.Size(142, 28); + this.UpdateMergeButton.TabIndex = 22; + this.UpdateMergeButton.Text = "Update (KeepTestmerge)"; + this.UpdateMergeButton.UseVisualStyleBackColor = true; + this.UpdateMergeButton.Click += new System.EventHandler(this.UpdateMergeButton_Click); + // + // UpdateHardButton + // + this.UpdateHardButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.UpdateHardButton.Location = new System.Drawing.Point(7, 95); + this.UpdateHardButton.Name = "UpdateHardButton"; + this.UpdateHardButton.Size = new System.Drawing.Size(145, 28); + this.UpdateHardButton.TabIndex = 21; + this.UpdateHardButton.Text = "Update (Reset Testmerge)"; + this.UpdateHardButton.UseVisualStyleBackColor = true; + this.UpdateHardButton.Click += new System.EventHandler(this.UpdateHardButton_Click); + // + // ServerGRestartButton + // + this.ServerGRestartButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.ServerGRestartButton.Location = new System.Drawing.Point(626, 54); + this.ServerGRestartButton.Name = "ServerGRestartButton"; + this.ServerGRestartButton.Size = new System.Drawing.Size(118, 28); + this.ServerGRestartButton.TabIndex = 20; + this.ServerGRestartButton.Text = "Graceful Restart"; + this.ServerGRestartButton.UseVisualStyleBackColor = true; + this.ServerGRestartButton.Click += new System.EventHandler(this.ServerGRestartButton_Click); + // + // ServerGStopButton + // + this.ServerGStopButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.ServerGStopButton.Appearance = System.Windows.Forms.Appearance.Button; + this.ServerGStopButton.Location = new System.Drawing.Point(502, 54); + this.ServerGStopButton.Name = "ServerGStopButton"; + this.ServerGStopButton.Size = new System.Drawing.Size(118, 28); + this.ServerGStopButton.TabIndex = 19; + this.ServerGStopButton.Text = "Graceful Stop"; + this.ServerGStopButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.ServerGStopButton.UseVisualStyleBackColor = true; + this.ServerGStopButton.CheckedChanged += new System.EventHandler(this.ServerGStopButton_Checked); + // + // ServerRestartButton + // + this.ServerRestartButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.ServerRestartButton.Location = new System.Drawing.Point(378, 54); + this.ServerRestartButton.Name = "ServerRestartButton"; + this.ServerRestartButton.Size = new System.Drawing.Size(118, 28); + this.ServerRestartButton.TabIndex = 18; + this.ServerRestartButton.Text = "Restart"; + this.ServerRestartButton.UseVisualStyleBackColor = true; + this.ServerRestartButton.Click += new System.EventHandler(this.ServerRestartButton_Click); + // + // ServerStopButton + // + this.ServerStopButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.ServerStopButton.Location = new System.Drawing.Point(254, 54); + this.ServerStopButton.Name = "ServerStopButton"; + this.ServerStopButton.Size = new System.Drawing.Size(118, 28); + this.ServerStopButton.TabIndex = 17; + this.ServerStopButton.Text = "Stop"; + this.ServerStopButton.UseVisualStyleBackColor = true; + this.ServerStopButton.Click += new System.EventHandler(this.ServerStopButton_Click); + // + // ServerStartButton + // + this.ServerStartButton.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.ServerStartButton.Location = new System.Drawing.Point(130, 54); + this.ServerStartButton.Name = "ServerStartButton"; + this.ServerStartButton.Size = new System.Drawing.Size(118, 28); + this.ServerStartButton.TabIndex = 16; + this.ServerStartButton.Text = "Start"; + this.ServerStartButton.UseVisualStyleBackColor = true; + this.ServerStartButton.Click += new System.EventHandler(this.ServerStartButton_Click); + // + // CompilerStatusLabel + // + this.CompilerStatusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.CompilerStatusLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CompilerStatusLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.CompilerStatusLabel.Location = new System.Drawing.Point(110, 271); - this.CompilerStatusLabel.Name = "CompilerStatusLabel"; - this.CompilerStatusLabel.Size = new System.Drawing.Size(618, 28); - this.CompilerStatusLabel.TabIndex = 14; - this.CompilerStatusLabel.Text = "Idle"; - this.CompilerStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // CompilerLabel - // - this.CompilerLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + this.CompilerStatusLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.CompilerStatusLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.CompilerStatusLabel.Location = new System.Drawing.Point(110, 271); + this.CompilerStatusLabel.Name = "CompilerStatusLabel"; + this.CompilerStatusLabel.Size = new System.Drawing.Size(618, 28); + this.CompilerStatusLabel.TabIndex = 14; + this.CompilerStatusLabel.Text = "Idle"; + this.CompilerStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // CompilerLabel + // + this.CompilerLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.CompilerLabel.AutoSize = true; - this.CompilerLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CompilerLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.CompilerLabel.Location = new System.Drawing.Point(379, 203); - this.CompilerLabel.Name = "CompilerLabel"; - this.CompilerLabel.Size = new System.Drawing.Size(80, 18); - this.CompilerLabel.TabIndex = 13; - this.CompilerLabel.Text = "Compiler"; - this.CompilerLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // compileButton - // - this.compileButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.compileButton.Enabled = false; - this.compileButton.Location = new System.Drawing.Point(456, 240); - this.compileButton.Name = "compileButton"; - this.compileButton.Size = new System.Drawing.Size(159, 28); - this.compileButton.TabIndex = 12; - this.compileButton.Text = "Copy from Repo and Compile"; - this.compileButton.UseVisualStyleBackColor = true; - this.compileButton.Click += new System.EventHandler(this.CompileButton_Click); - // - // initializeButton - // - this.initializeButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.initializeButton.Enabled = false; - this.initializeButton.Location = new System.Drawing.Point(219, 240); - this.initializeButton.Name = "initializeButton"; - this.initializeButton.Size = new System.Drawing.Size(159, 28); - this.initializeButton.TabIndex = 11; - this.initializeButton.Text = "Initialize Game Folders"; - this.initializeButton.UseVisualStyleBackColor = true; - this.initializeButton.Click += new System.EventHandler(this.InitializeButton_Click); - // - // compilerProgressBar - // - this.compilerProgressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + this.CompilerLabel.AutoSize = true; + this.CompilerLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.CompilerLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.CompilerLabel.Location = new System.Drawing.Point(379, 203); + this.CompilerLabel.Name = "CompilerLabel"; + this.CompilerLabel.Size = new System.Drawing.Size(80, 18); + this.CompilerLabel.TabIndex = 13; + this.CompilerLabel.Text = "Compiler"; + this.CompilerLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // compileButton + // + this.compileButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.compileButton.Enabled = false; + this.compileButton.Location = new System.Drawing.Point(456, 240); + this.compileButton.Name = "compileButton"; + this.compileButton.Size = new System.Drawing.Size(159, 28); + this.compileButton.TabIndex = 12; + this.compileButton.Text = "Copy from Repo and Compile"; + this.compileButton.UseVisualStyleBackColor = true; + this.compileButton.Click += new System.EventHandler(this.CompileButton_Click); + // + // initializeButton + // + this.initializeButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.initializeButton.Enabled = false; + this.initializeButton.Location = new System.Drawing.Point(219, 240); + this.initializeButton.Name = "initializeButton"; + this.initializeButton.Size = new System.Drawing.Size(159, 28); + this.initializeButton.TabIndex = 11; + this.initializeButton.Text = "Initialize Game Folders"; + this.initializeButton.UseVisualStyleBackColor = true; + this.initializeButton.Click += new System.EventHandler(this.InitializeButton_Click); + // + // compilerProgressBar + // + this.compilerProgressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.compilerProgressBar.Location = new System.Drawing.Point(110, 302); - this.compilerProgressBar.MarqueeAnimationSpeed = 50; - this.compilerProgressBar.Name = "compilerProgressBar"; - this.compilerProgressBar.Size = new System.Drawing.Size(618, 31); - this.compilerProgressBar.TabIndex = 10; - // - // ServerStatusLabel - // - this.ServerStatusLabel.AutoSize = true; - this.ServerStatusLabel.Font = new System.Drawing.Font("Verdana", 10F); - this.ServerStatusLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ServerStatusLabel.Location = new System.Drawing.Point(136, 19); - this.ServerStatusLabel.Name = "ServerStatusLabel"; - this.ServerStatusLabel.Size = new System.Drawing.Size(73, 17); - this.ServerStatusLabel.TabIndex = 9; - this.ServerStatusLabel.Text = "Unknown"; - this.ServerStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ServerStatusTitle - // - this.ServerStatusTitle.AutoSize = true; - this.ServerStatusTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ServerStatusTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ServerStatusTitle.Location = new System.Drawing.Point(15, 17); - this.ServerStatusTitle.Name = "ServerStatusTitle"; - this.ServerStatusTitle.Size = new System.Drawing.Size(125, 18); - this.ServerStatusTitle.TabIndex = 8; - this.ServerStatusTitle.Text = "Server Status:"; - this.ServerStatusTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ChatPanel - // - this.ChatPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.ChatPanel.Controls.Add(this.label5); - this.ChatPanel.Controls.Add(this.label4); - this.ChatPanel.Controls.Add(this.label3); - this.ChatPanel.Controls.Add(this.label2); - this.ChatPanel.Controls.Add(this.IRCModesComboBox); - this.ChatPanel.Controls.Add(this.label1); - this.ChatPanel.Controls.Add(this.AdminChannelsTextbox); - this.ChatPanel.Controls.Add(this.WDChannelsTextbox); - this.ChatPanel.Controls.Add(this.GameChannelsTextbox); - this.ChatPanel.Controls.Add(this.DevChannelsTextbox); - this.ChatPanel.Controls.Add(this.ChatRefreshButton); - this.ChatPanel.Controls.Add(this.ChatNicknameText); - this.ChatPanel.Controls.Add(this.ChatNicknameTitle); - this.ChatPanel.Controls.Add(this.ChatPortSelector); - this.ChatPanel.Controls.Add(this.ChatPortTitle); - this.ChatPanel.Controls.Add(this.ChatServerText); - this.ChatPanel.Controls.Add(this.ChatServerTitle); - this.ChatPanel.Controls.Add(this.ChatApplyButton); - this.ChatPanel.Controls.Add(this.AuthField2Title); - this.ChatPanel.Controls.Add(this.AuthField1Title); - this.ChatPanel.Controls.Add(this.AuthField2); - this.ChatPanel.Controls.Add(this.AuthField1); - this.ChatPanel.Controls.Add(this.ChatReconnectButton); - this.ChatPanel.Controls.Add(this.ChatStatusLabel); - this.ChatPanel.Controls.Add(this.ChatStatusTitle); - this.ChatPanel.Controls.Add(this.ChatEnabledCheckbox); - this.ChatPanel.Controls.Add(this.ChatProviderSelectorPanel); - this.ChatPanel.Controls.Add(this.ChatProviderTitle); - this.ChatPanel.Controls.Add(this.ChannelsTitle); - this.ChatPanel.Controls.Add(this.ChatAdminsTextBox); - this.ChatPanel.Controls.Add(this.ChatAdminsTitle); - this.ChatPanel.Controls.Add(this.panel1); - this.ChatPanel.Location = new System.Drawing.Point(4, 22); - this.ChatPanel.Name = "ChatPanel"; - this.ChatPanel.Padding = new System.Windows.Forms.Padding(3); - this.ChatPanel.Size = new System.Drawing.Size(868, 366); - this.ChatPanel.TabIndex = 4; - this.ChatPanel.Text = "Chat"; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.label5.Location = new System.Drawing.Point(686, 219); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(148, 18); - this.label5.TabIndex = 43; - this.label5.Text = "Game Messages:"; - this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.label4.Location = new System.Drawing.Point(516, 219); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(136, 18); - this.label4.TabIndex = 42; - this.label4.Text = "Developer Info:"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.label3.Location = new System.Drawing.Point(686, 61); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(135, 18); - this.label3.TabIndex = 41; - this.label3.Text = "Administration:"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.label2.Location = new System.Drawing.Point(516, 61); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(153, 18); - this.label2.TabIndex = 40; - this.label2.Text = "Server Watchdog:"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // IRCModesComboBox - // - this.IRCModesComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.IRCModesComboBox.FormattingEnabled = true; - this.IRCModesComboBox.Items.AddRange(new object[] { + this.compilerProgressBar.Location = new System.Drawing.Point(110, 302); + this.compilerProgressBar.MarqueeAnimationSpeed = 50; + this.compilerProgressBar.Name = "compilerProgressBar"; + this.compilerProgressBar.Size = new System.Drawing.Size(618, 31); + this.compilerProgressBar.TabIndex = 10; + // + // ServerStatusLabel + // + this.ServerStatusLabel.AutoSize = true; + this.ServerStatusLabel.Font = new System.Drawing.Font("Verdana", 10F); + this.ServerStatusLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ServerStatusLabel.Location = new System.Drawing.Point(136, 19); + this.ServerStatusLabel.Name = "ServerStatusLabel"; + this.ServerStatusLabel.Size = new System.Drawing.Size(73, 17); + this.ServerStatusLabel.TabIndex = 9; + this.ServerStatusLabel.Text = "Unknown"; + this.ServerStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ServerStatusTitle + // + this.ServerStatusTitle.AutoSize = true; + this.ServerStatusTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ServerStatusTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ServerStatusTitle.Location = new System.Drawing.Point(15, 17); + this.ServerStatusTitle.Name = "ServerStatusTitle"; + this.ServerStatusTitle.Size = new System.Drawing.Size(125, 18); + this.ServerStatusTitle.TabIndex = 8; + this.ServerStatusTitle.Text = "Server Status:"; + this.ServerStatusTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ChatPanel + // + this.ChatPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.ChatPanel.Controls.Add(this.label5); + this.ChatPanel.Controls.Add(this.label4); + this.ChatPanel.Controls.Add(this.label3); + this.ChatPanel.Controls.Add(this.label2); + this.ChatPanel.Controls.Add(this.IRCModesComboBox); + this.ChatPanel.Controls.Add(this.label1); + this.ChatPanel.Controls.Add(this.AdminChannelsTextbox); + this.ChatPanel.Controls.Add(this.WDChannelsTextbox); + this.ChatPanel.Controls.Add(this.GameChannelsTextbox); + this.ChatPanel.Controls.Add(this.DevChannelsTextbox); + this.ChatPanel.Controls.Add(this.ChatRefreshButton); + this.ChatPanel.Controls.Add(this.ChatNicknameText); + this.ChatPanel.Controls.Add(this.ChatNicknameTitle); + this.ChatPanel.Controls.Add(this.ChatPortSelector); + this.ChatPanel.Controls.Add(this.ChatPortTitle); + this.ChatPanel.Controls.Add(this.ChatServerText); + this.ChatPanel.Controls.Add(this.ChatServerTitle); + this.ChatPanel.Controls.Add(this.ChatApplyButton); + this.ChatPanel.Controls.Add(this.AuthField2Title); + this.ChatPanel.Controls.Add(this.AuthField1Title); + this.ChatPanel.Controls.Add(this.AuthField2); + this.ChatPanel.Controls.Add(this.AuthField1); + this.ChatPanel.Controls.Add(this.ChatReconnectButton); + this.ChatPanel.Controls.Add(this.ChatStatusLabel); + this.ChatPanel.Controls.Add(this.ChatStatusTitle); + this.ChatPanel.Controls.Add(this.ChatEnabledCheckbox); + this.ChatPanel.Controls.Add(this.ChatProviderSelectorPanel); + this.ChatPanel.Controls.Add(this.ChatProviderTitle); + this.ChatPanel.Controls.Add(this.ChannelsTitle); + this.ChatPanel.Controls.Add(this.ChatAdminsTextBox); + this.ChatPanel.Controls.Add(this.ChatAdminsTitle); + this.ChatPanel.Controls.Add(this.panel1); + this.ChatPanel.Location = new System.Drawing.Point(4, 22); + this.ChatPanel.Name = "ChatPanel"; + this.ChatPanel.Padding = new System.Windows.Forms.Padding(3); + this.ChatPanel.Size = new System.Drawing.Size(868, 366); + this.ChatPanel.TabIndex = 4; + this.ChatPanel.Text = "Chat"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.label5.Location = new System.Drawing.Point(686, 219); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(148, 18); + this.label5.TabIndex = 43; + this.label5.Text = "Game Messages:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.label4.Location = new System.Drawing.Point(516, 219); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(136, 18); + this.label4.TabIndex = 42; + this.label4.Text = "Developer Info:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.label3.Location = new System.Drawing.Point(686, 61); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(135, 18); + this.label3.TabIndex = 41; + this.label3.Text = "Administration:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.label2.Location = new System.Drawing.Point(516, 61); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(153, 18); + this.label2.TabIndex = 40; + this.label2.Text = "Server Watchdog:"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // IRCModesComboBox + // + this.IRCModesComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.IRCModesComboBox.FormattingEnabled = true; + this.IRCModesComboBox.Items.AddRange(new object[] { "Voice - +", "Halfop - %", "Op - @", "Owner - ~"}); - this.IRCModesComboBox.Location = new System.Drawing.Point(369, 170); - this.IRCModesComboBox.Name = "IRCModesComboBox"; - this.IRCModesComboBox.Size = new System.Drawing.Size(141, 21); - this.IRCModesComboBox.TabIndex = 38; - this.IRCModesComboBox.Visible = false; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.label1.Location = new System.Drawing.Point(30, 174); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(110, 18); - this.label1.TabIndex = 39; - this.label1.Text = "Admin Auth:"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // AdminChannelsTextbox - // - this.AdminChannelsTextbox.Location = new System.Drawing.Point(689, 82); - this.AdminChannelsTextbox.Multiline = true; - this.AdminChannelsTextbox.Name = "AdminChannelsTextbox"; - this.AdminChannelsTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.AdminChannelsTextbox.Size = new System.Drawing.Size(167, 120); - this.AdminChannelsTextbox.TabIndex = 37; - // - // WDChannelsTextbox - // - this.WDChannelsTextbox.Location = new System.Drawing.Point(516, 82); - this.WDChannelsTextbox.Multiline = true; - this.WDChannelsTextbox.Name = "WDChannelsTextbox"; - this.WDChannelsTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.WDChannelsTextbox.Size = new System.Drawing.Size(167, 120); - this.WDChannelsTextbox.TabIndex = 36; - // - // GameChannelsTextbox - // - this.GameChannelsTextbox.Location = new System.Drawing.Point(689, 240); - this.GameChannelsTextbox.Multiline = true; - this.GameChannelsTextbox.Name = "GameChannelsTextbox"; - this.GameChannelsTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.GameChannelsTextbox.Size = new System.Drawing.Size(167, 120); - this.GameChannelsTextbox.TabIndex = 35; - // - // DevChannelsTextbox - // - this.DevChannelsTextbox.Location = new System.Drawing.Point(516, 240); - this.DevChannelsTextbox.Multiline = true; - this.DevChannelsTextbox.Name = "DevChannelsTextbox"; - this.DevChannelsTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.DevChannelsTextbox.Size = new System.Drawing.Size(167, 120); - this.DevChannelsTextbox.TabIndex = 34; - // - // ChatRefreshButton - // - this.ChatRefreshButton.Location = new System.Drawing.Point(174, 335); - this.ChatRefreshButton.Name = "ChatRefreshButton"; - this.ChatRefreshButton.Size = new System.Drawing.Size(112, 25); - this.ChatRefreshButton.TabIndex = 32; - this.ChatRefreshButton.Text = "Refresh"; - this.ChatRefreshButton.UseVisualStyleBackColor = true; - this.ChatRefreshButton.Click += new System.EventHandler(this.ChatRefreshButton_Click); - // - // ChatNicknameText - // - this.ChatNicknameText.Location = new System.Drawing.Point(174, 251); - this.ChatNicknameText.Name = "ChatNicknameText"; - this.ChatNicknameText.Size = new System.Drawing.Size(151, 20); - this.ChatNicknameText.TabIndex = 31; - // - // ChatNicknameTitle - // - this.ChatNicknameTitle.AutoSize = true; - this.ChatNicknameTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ChatNicknameTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChatNicknameTitle.Location = new System.Drawing.Point(30, 250); - this.ChatNicknameTitle.Name = "ChatNicknameTitle"; - this.ChatNicknameTitle.Size = new System.Drawing.Size(94, 18); - this.ChatNicknameTitle.TabIndex = 30; - this.ChatNicknameTitle.Text = "Nickname:"; - this.ChatNicknameTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ChatPortSelector - // - this.ChatPortSelector.Location = new System.Drawing.Point(174, 225); - this.ChatPortSelector.Maximum = new decimal(new int[] { + this.IRCModesComboBox.Location = new System.Drawing.Point(369, 170); + this.IRCModesComboBox.Name = "IRCModesComboBox"; + this.IRCModesComboBox.Size = new System.Drawing.Size(141, 21); + this.IRCModesComboBox.TabIndex = 38; + this.IRCModesComboBox.Visible = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.label1.Location = new System.Drawing.Point(30, 174); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(110, 18); + this.label1.TabIndex = 39; + this.label1.Text = "Admin Auth:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // AdminChannelsTextbox + // + this.AdminChannelsTextbox.Location = new System.Drawing.Point(689, 82); + this.AdminChannelsTextbox.Multiline = true; + this.AdminChannelsTextbox.Name = "AdminChannelsTextbox"; + this.AdminChannelsTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.AdminChannelsTextbox.Size = new System.Drawing.Size(167, 120); + this.AdminChannelsTextbox.TabIndex = 37; + // + // WDChannelsTextbox + // + this.WDChannelsTextbox.Location = new System.Drawing.Point(516, 82); + this.WDChannelsTextbox.Multiline = true; + this.WDChannelsTextbox.Name = "WDChannelsTextbox"; + this.WDChannelsTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.WDChannelsTextbox.Size = new System.Drawing.Size(167, 120); + this.WDChannelsTextbox.TabIndex = 36; + // + // GameChannelsTextbox + // + this.GameChannelsTextbox.Location = new System.Drawing.Point(689, 240); + this.GameChannelsTextbox.Multiline = true; + this.GameChannelsTextbox.Name = "GameChannelsTextbox"; + this.GameChannelsTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.GameChannelsTextbox.Size = new System.Drawing.Size(167, 120); + this.GameChannelsTextbox.TabIndex = 35; + // + // DevChannelsTextbox + // + this.DevChannelsTextbox.Location = new System.Drawing.Point(516, 240); + this.DevChannelsTextbox.Multiline = true; + this.DevChannelsTextbox.Name = "DevChannelsTextbox"; + this.DevChannelsTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.DevChannelsTextbox.Size = new System.Drawing.Size(167, 120); + this.DevChannelsTextbox.TabIndex = 34; + // + // ChatRefreshButton + // + this.ChatRefreshButton.Location = new System.Drawing.Point(174, 335); + this.ChatRefreshButton.Name = "ChatRefreshButton"; + this.ChatRefreshButton.Size = new System.Drawing.Size(112, 25); + this.ChatRefreshButton.TabIndex = 32; + this.ChatRefreshButton.Text = "Refresh"; + this.ChatRefreshButton.UseVisualStyleBackColor = true; + this.ChatRefreshButton.Click += new System.EventHandler(this.ChatRefreshButton_Click); + // + // ChatNicknameText + // + this.ChatNicknameText.Location = new System.Drawing.Point(174, 251); + this.ChatNicknameText.Name = "ChatNicknameText"; + this.ChatNicknameText.Size = new System.Drawing.Size(151, 20); + this.ChatNicknameText.TabIndex = 31; + // + // ChatNicknameTitle + // + this.ChatNicknameTitle.AutoSize = true; + this.ChatNicknameTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ChatNicknameTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChatNicknameTitle.Location = new System.Drawing.Point(30, 250); + this.ChatNicknameTitle.Name = "ChatNicknameTitle"; + this.ChatNicknameTitle.Size = new System.Drawing.Size(94, 18); + this.ChatNicknameTitle.TabIndex = 30; + this.ChatNicknameTitle.Text = "Nickname:"; + this.ChatNicknameTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ChatPortSelector + // + this.ChatPortSelector.Location = new System.Drawing.Point(174, 225); + this.ChatPortSelector.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); - this.ChatPortSelector.Minimum = new decimal(new int[] { + this.ChatPortSelector.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - this.ChatPortSelector.Name = "ChatPortSelector"; - this.ChatPortSelector.Size = new System.Drawing.Size(151, 20); - this.ChatPortSelector.TabIndex = 29; - this.ChatPortSelector.Value = new decimal(new int[] { + this.ChatPortSelector.Name = "ChatPortSelector"; + this.ChatPortSelector.Size = new System.Drawing.Size(151, 20); + this.ChatPortSelector.TabIndex = 29; + this.ChatPortSelector.Value = new decimal(new int[] { 1, 0, 0, 0}); - // - // ChatPortTitle - // - this.ChatPortTitle.AutoSize = true; - this.ChatPortTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ChatPortTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChatPortTitle.Location = new System.Drawing.Point(30, 227); - this.ChatPortTitle.Name = "ChatPortTitle"; - this.ChatPortTitle.Size = new System.Drawing.Size(48, 18); - this.ChatPortTitle.TabIndex = 28; - this.ChatPortTitle.Text = "Port:"; - this.ChatPortTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ChatServerText - // - this.ChatServerText.Location = new System.Drawing.Point(174, 199); - this.ChatServerText.Name = "ChatServerText"; - this.ChatServerText.Size = new System.Drawing.Size(151, 20); - this.ChatServerText.TabIndex = 27; - // - // ChatServerTitle - // - this.ChatServerTitle.AutoSize = true; - this.ChatServerTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ChatServerTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChatServerTitle.Location = new System.Drawing.Point(30, 201); - this.ChatServerTitle.Name = "ChatServerTitle"; - this.ChatServerTitle.Size = new System.Drawing.Size(66, 18); - this.ChatServerTitle.TabIndex = 26; - this.ChatServerTitle.Text = "Server:"; - this.ChatServerTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ChatApplyButton - // - this.ChatApplyButton.Location = new System.Drawing.Point(56, 335); - this.ChatApplyButton.Name = "ChatApplyButton"; - this.ChatApplyButton.Size = new System.Drawing.Size(112, 25); - this.ChatApplyButton.TabIndex = 25; - this.ChatApplyButton.Text = "Apply"; - this.ChatApplyButton.UseVisualStyleBackColor = true; - this.ChatApplyButton.Click += new System.EventHandler(this.ChatApplyButton_Click); - // - // AuthField2Title - // - this.AuthField2Title.AutoSize = true; - this.AuthField2Title.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.AuthField2Title.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.AuthField2Title.Location = new System.Drawing.Point(30, 311); - this.AuthField2Title.Name = "AuthField2Title"; - this.AuthField2Title.Size = new System.Drawing.Size(45, 18); - this.AuthField2Title.TabIndex = 24; - this.AuthField2Title.Text = "AF2:"; - this.AuthField2Title.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // AuthField1Title - // - this.AuthField1Title.AutoSize = true; - this.AuthField1Title.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.AuthField1Title.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.AuthField1Title.Location = new System.Drawing.Point(30, 285); - this.AuthField1Title.Name = "AuthField1Title"; - this.AuthField1Title.Size = new System.Drawing.Size(45, 18); - this.AuthField1Title.TabIndex = 23; - this.AuthField1Title.Text = "AF1:"; - this.AuthField1Title.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // AuthField2 - // - this.AuthField2.Location = new System.Drawing.Point(174, 309); - this.AuthField2.Name = "AuthField2"; - this.AuthField2.Size = new System.Drawing.Size(151, 20); - this.AuthField2.TabIndex = 22; - // - // AuthField1 - // - this.AuthField1.Location = new System.Drawing.Point(174, 283); - this.AuthField1.Name = "AuthField1"; - this.AuthField1.Size = new System.Drawing.Size(151, 20); - this.AuthField1.TabIndex = 21; - // - // ChatReconnectButton - // - this.ChatReconnectButton.Enabled = false; - this.ChatReconnectButton.Location = new System.Drawing.Point(174, 141); - this.ChatReconnectButton.Name = "ChatReconnectButton"; - this.ChatReconnectButton.Size = new System.Drawing.Size(112, 25); - this.ChatReconnectButton.TabIndex = 18; - this.ChatReconnectButton.Text = "Reconnect"; - this.ChatReconnectButton.UseVisualStyleBackColor = true; - this.ChatReconnectButton.Click += new System.EventHandler(this.ChatReconnectButton_Click); - // - // ChatStatusLabel - // - this.ChatStatusLabel.AutoSize = true; - this.ChatStatusLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ChatStatusLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChatStatusLabel.Location = new System.Drawing.Point(171, 113); - this.ChatStatusLabel.Name = "ChatStatusLabel"; - this.ChatStatusLabel.Size = new System.Drawing.Size(82, 18); - this.ChatStatusLabel.TabIndex = 17; - this.ChatStatusLabel.Text = "Unknown"; - this.ChatStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ChatStatusTitle - // - this.ChatStatusTitle.AutoSize = true; - this.ChatStatusTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ChatStatusTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChatStatusTitle.Location = new System.Drawing.Point(30, 113); - this.ChatStatusTitle.Name = "ChatStatusTitle"; - this.ChatStatusTitle.Size = new System.Drawing.Size(112, 18); - this.ChatStatusTitle.TabIndex = 16; - this.ChatStatusTitle.Text = "Chat Status:"; - this.ChatStatusTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ChatEnabledCheckbox - // - this.ChatEnabledCheckbox.AutoSize = true; - this.ChatEnabledCheckbox.Font = new System.Drawing.Font("Verdana", 12F); - this.ChatEnabledCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChatEnabledCheckbox.Location = new System.Drawing.Point(32, 142); - this.ChatEnabledCheckbox.Name = "ChatEnabledCheckbox"; - this.ChatEnabledCheckbox.Size = new System.Drawing.Size(136, 22); - this.ChatEnabledCheckbox.TabIndex = 15; - this.ChatEnabledCheckbox.Text = "Chat Enabled"; - this.ChatEnabledCheckbox.UseVisualStyleBackColor = true; - // - // ChatProviderSelectorPanel - // - this.ChatProviderSelectorPanel.Controls.Add(this.DiscordProviderSwitch); - this.ChatProviderSelectorPanel.Controls.Add(this.IRCProviderSwitch); - this.ChatProviderSelectorPanel.Location = new System.Drawing.Point(23, 49); - this.ChatProviderSelectorPanel.Name = "ChatProviderSelectorPanel"; - this.ChatProviderSelectorPanel.Size = new System.Drawing.Size(302, 50); - this.ChatProviderSelectorPanel.TabIndex = 14; - // - // DiscordProviderSwitch - // - this.DiscordProviderSwitch.AutoSize = true; - this.DiscordProviderSwitch.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.DiscordProviderSwitch.Location = new System.Drawing.Point(220, 17); - this.DiscordProviderSwitch.Name = "DiscordProviderSwitch"; - this.DiscordProviderSwitch.Size = new System.Drawing.Size(61, 17); - this.DiscordProviderSwitch.TabIndex = 13; - this.DiscordProviderSwitch.TabStop = true; - this.DiscordProviderSwitch.Text = "Discord"; - this.DiscordProviderSwitch.UseVisualStyleBackColor = true; - this.DiscordProviderSwitch.CheckedChanged += new System.EventHandler(this.DiscordProviderSwitch_CheckedChanged); - // - // IRCProviderSwitch - // - this.IRCProviderSwitch.AutoSize = true; - this.IRCProviderSwitch.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.IRCProviderSwitch.Location = new System.Drawing.Point(14, 17); - this.IRCProviderSwitch.Name = "IRCProviderSwitch"; - this.IRCProviderSwitch.Size = new System.Drawing.Size(116, 17); - this.IRCProviderSwitch.TabIndex = 12; - this.IRCProviderSwitch.TabStop = true; - this.IRCProviderSwitch.Text = "Internet Relay Chat"; - this.IRCProviderSwitch.UseVisualStyleBackColor = true; - this.IRCProviderSwitch.CheckedChanged += new System.EventHandler(this.IRCProviderSwitch_CheckedChanged); - // - // ChatProviderTitle - // - this.ChatProviderTitle.AutoSize = true; - this.ChatProviderTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ChatProviderTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChatProviderTitle.Location = new System.Drawing.Point(20, 15); - this.ChatProviderTitle.Name = "ChatProviderTitle"; - this.ChatProviderTitle.Size = new System.Drawing.Size(144, 18); - this.ChatProviderTitle.TabIndex = 13; - this.ChatProviderTitle.Text = "Editing Provider:"; - this.ChatProviderTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ChannelsTitle - // - this.ChannelsTitle.AutoSize = true; - this.ChannelsTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ChannelsTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChannelsTitle.Location = new System.Drawing.Point(565, 15); - this.ChannelsTitle.Name = "ChannelsTitle"; - this.ChannelsTitle.Size = new System.Drawing.Size(234, 18); - this.ChannelsTitle.TabIndex = 11; - this.ChannelsTitle.Text = "Listen/Broadcast Channels:"; - this.ChannelsTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ChatAdminsTextBox - // - this.ChatAdminsTextBox.Location = new System.Drawing.Point(369, 49); - this.ChatAdminsTextBox.Multiline = true; - this.ChatAdminsTextBox.Name = "ChatAdminsTextBox"; - this.ChatAdminsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.ChatAdminsTextBox.Size = new System.Drawing.Size(141, 311); - this.ChatAdminsTextBox.TabIndex = 10; - // - // ChatAdminsTitle - // - this.ChatAdminsTitle.AutoSize = true; - this.ChatAdminsTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ChatAdminsTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ChatAdminsTitle.Location = new System.Drawing.Point(366, 15); - this.ChatAdminsTitle.Name = "ChatAdminsTitle"; - this.ChatAdminsTitle.Size = new System.Drawing.Size(75, 18); - this.ChatAdminsTitle.TabIndex = 9; - this.ChatAdminsTitle.Text = "Admins:"; - this.ChatAdminsTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel1 - // - this.panel1.Controls.Add(this.AdminModeSpecial); - this.panel1.Controls.Add(this.AdminModeNormal); - this.panel1.Location = new System.Drawing.Point(174, 168); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(202, 25); - this.panel1.TabIndex = 15; - // - // AdminModeSpecial - // - this.AdminModeSpecial.AutoSize = true; - this.AdminModeSpecial.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.AdminModeSpecial.Location = new System.Drawing.Point(87, 8); - this.AdminModeSpecial.Name = "AdminModeSpecial"; - this.AdminModeSpecial.Size = new System.Drawing.Size(94, 17); - this.AdminModeSpecial.TabIndex = 13; - this.AdminModeSpecial.TabStop = true; - this.AdminModeSpecial.Text = "Channel Mode"; - this.AdminModeSpecial.UseVisualStyleBackColor = true; - // - // AdminModeNormal - // - this.AdminModeNormal.AutoSize = true; - this.AdminModeNormal.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.AdminModeNormal.Location = new System.Drawing.Point(3, 8); - this.AdminModeNormal.Name = "AdminModeNormal"; - this.AdminModeNormal.Size = new System.Drawing.Size(78, 17); - this.AdminModeNormal.TabIndex = 12; - this.AdminModeNormal.TabStop = true; - this.AdminModeNormal.Text = "Nicknames"; - this.AdminModeNormal.UseVisualStyleBackColor = true; - this.AdminModeNormal.CheckedChanged += new System.EventHandler(this.AdminModeNormal_CheckedChanged); - // - // ConfigPanel - // - this.ConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.ConfigPanel.Controls.Add(this.ConfigApply); - this.ConfigPanel.Controls.Add(this.ConfigDownloadRepo); - this.ConfigPanel.Controls.Add(this.ConfigUpload); - this.ConfigPanel.Controls.Add(this.ConfigDownload); - this.ConfigPanel.Controls.Add(this.ConfigRefresh); - this.ConfigPanel.Controls.Add(this.ConfigPanels); - this.ConfigPanel.Controls.Add(this.ConfigDisabledLabel); - this.ConfigPanel.Location = new System.Drawing.Point(4, 22); - this.ConfigPanel.Name = "ConfigPanel"; - this.ConfigPanel.Padding = new System.Windows.Forms.Padding(3); - this.ConfigPanel.Size = new System.Drawing.Size(868, 366); - this.ConfigPanel.TabIndex = 5; - this.ConfigPanel.Text = "Config"; - // - // ConfigApply - // - this.ConfigApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ConfigApply.Location = new System.Drawing.Point(782, 26); - this.ConfigApply.Name = "ConfigApply"; - this.ConfigApply.Size = new System.Drawing.Size(63, 22); - this.ConfigApply.TabIndex = 4; - this.ConfigApply.Text = "Apply"; - this.ConfigApply.UseVisualStyleBackColor = true; - this.ConfigApply.Click += new System.EventHandler(this.ConfigApply_Click); - // - // ConfigDownloadRepo - // - this.ConfigDownloadRepo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ConfigDownloadRepo.Location = new System.Drawing.Point(782, 110); - this.ConfigDownloadRepo.Name = "ConfigDownloadRepo"; - this.ConfigDownloadRepo.Size = new System.Drawing.Size(63, 22); - this.ConfigDownloadRepo.TabIndex = 8; - this.ConfigDownloadRepo.Text = "DL Repo"; - this.ConfigDownloadRepo.UseVisualStyleBackColor = true; - this.ConfigDownloadRepo.Click += new System.EventHandler(this.ConfigDownloadRepo_Click); - // - // ConfigUpload - // - this.ConfigUpload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ConfigUpload.Location = new System.Drawing.Point(782, 138); - this.ConfigUpload.Name = "ConfigUpload"; - this.ConfigUpload.Size = new System.Drawing.Size(63, 22); - this.ConfigUpload.TabIndex = 7; - this.ConfigUpload.Text = "Upload"; - this.ConfigUpload.UseVisualStyleBackColor = true; - this.ConfigUpload.Click += new System.EventHandler(this.ConfigUpload_Click); - // - // ConfigDownload - // - this.ConfigDownload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ConfigDownload.Location = new System.Drawing.Point(782, 82); - this.ConfigDownload.Name = "ConfigDownload"; - this.ConfigDownload.Size = new System.Drawing.Size(63, 22); - this.ConfigDownload.TabIndex = 6; - this.ConfigDownload.Text = "Download"; - this.ConfigDownload.UseVisualStyleBackColor = true; - this.ConfigDownload.Click += new System.EventHandler(this.ConfigDownload_Click); - // - // ConfigRefresh - // - this.ConfigRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ConfigRefresh.Location = new System.Drawing.Point(782, 54); - this.ConfigRefresh.Name = "ConfigRefresh"; - this.ConfigRefresh.Size = new System.Drawing.Size(63, 22); - this.ConfigRefresh.TabIndex = 5; - this.ConfigRefresh.Text = "Refresh"; - this.ConfigRefresh.UseVisualStyleBackColor = true; - this.ConfigRefresh.Click += new System.EventHandler(this.ConfigRefresh_Click); - // - // ConfigPanels - // - this.ConfigPanels.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + // + // ChatPortTitle + // + this.ChatPortTitle.AutoSize = true; + this.ChatPortTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ChatPortTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChatPortTitle.Location = new System.Drawing.Point(30, 227); + this.ChatPortTitle.Name = "ChatPortTitle"; + this.ChatPortTitle.Size = new System.Drawing.Size(48, 18); + this.ChatPortTitle.TabIndex = 28; + this.ChatPortTitle.Text = "Port:"; + this.ChatPortTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ChatServerText + // + this.ChatServerText.Location = new System.Drawing.Point(174, 199); + this.ChatServerText.Name = "ChatServerText"; + this.ChatServerText.Size = new System.Drawing.Size(151, 20); + this.ChatServerText.TabIndex = 27; + // + // ChatServerTitle + // + this.ChatServerTitle.AutoSize = true; + this.ChatServerTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ChatServerTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChatServerTitle.Location = new System.Drawing.Point(30, 201); + this.ChatServerTitle.Name = "ChatServerTitle"; + this.ChatServerTitle.Size = new System.Drawing.Size(66, 18); + this.ChatServerTitle.TabIndex = 26; + this.ChatServerTitle.Text = "Server:"; + this.ChatServerTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ChatApplyButton + // + this.ChatApplyButton.Location = new System.Drawing.Point(56, 335); + this.ChatApplyButton.Name = "ChatApplyButton"; + this.ChatApplyButton.Size = new System.Drawing.Size(112, 25); + this.ChatApplyButton.TabIndex = 25; + this.ChatApplyButton.Text = "Apply"; + this.ChatApplyButton.UseVisualStyleBackColor = true; + this.ChatApplyButton.Click += new System.EventHandler(this.ChatApplyButton_Click); + // + // AuthField2Title + // + this.AuthField2Title.AutoSize = true; + this.AuthField2Title.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.AuthField2Title.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.AuthField2Title.Location = new System.Drawing.Point(30, 311); + this.AuthField2Title.Name = "AuthField2Title"; + this.AuthField2Title.Size = new System.Drawing.Size(45, 18); + this.AuthField2Title.TabIndex = 24; + this.AuthField2Title.Text = "AF2:"; + this.AuthField2Title.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // AuthField1Title + // + this.AuthField1Title.AutoSize = true; + this.AuthField1Title.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.AuthField1Title.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.AuthField1Title.Location = new System.Drawing.Point(30, 285); + this.AuthField1Title.Name = "AuthField1Title"; + this.AuthField1Title.Size = new System.Drawing.Size(45, 18); + this.AuthField1Title.TabIndex = 23; + this.AuthField1Title.Text = "AF1:"; + this.AuthField1Title.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // AuthField2 + // + this.AuthField2.Location = new System.Drawing.Point(174, 309); + this.AuthField2.Name = "AuthField2"; + this.AuthField2.Size = new System.Drawing.Size(151, 20); + this.AuthField2.TabIndex = 22; + // + // AuthField1 + // + this.AuthField1.Location = new System.Drawing.Point(174, 283); + this.AuthField1.Name = "AuthField1"; + this.AuthField1.Size = new System.Drawing.Size(151, 20); + this.AuthField1.TabIndex = 21; + // + // ChatReconnectButton + // + this.ChatReconnectButton.Enabled = false; + this.ChatReconnectButton.Location = new System.Drawing.Point(174, 141); + this.ChatReconnectButton.Name = "ChatReconnectButton"; + this.ChatReconnectButton.Size = new System.Drawing.Size(112, 25); + this.ChatReconnectButton.TabIndex = 18; + this.ChatReconnectButton.Text = "Reconnect"; + this.ChatReconnectButton.UseVisualStyleBackColor = true; + this.ChatReconnectButton.Click += new System.EventHandler(this.ChatReconnectButton_Click); + // + // ChatStatusLabel + // + this.ChatStatusLabel.AutoSize = true; + this.ChatStatusLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ChatStatusLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChatStatusLabel.Location = new System.Drawing.Point(171, 113); + this.ChatStatusLabel.Name = "ChatStatusLabel"; + this.ChatStatusLabel.Size = new System.Drawing.Size(82, 18); + this.ChatStatusLabel.TabIndex = 17; + this.ChatStatusLabel.Text = "Unknown"; + this.ChatStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ChatStatusTitle + // + this.ChatStatusTitle.AutoSize = true; + this.ChatStatusTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ChatStatusTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChatStatusTitle.Location = new System.Drawing.Point(30, 113); + this.ChatStatusTitle.Name = "ChatStatusTitle"; + this.ChatStatusTitle.Size = new System.Drawing.Size(112, 18); + this.ChatStatusTitle.TabIndex = 16; + this.ChatStatusTitle.Text = "Chat Status:"; + this.ChatStatusTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ChatEnabledCheckbox + // + this.ChatEnabledCheckbox.AutoSize = true; + this.ChatEnabledCheckbox.Font = new System.Drawing.Font("Verdana", 12F); + this.ChatEnabledCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChatEnabledCheckbox.Location = new System.Drawing.Point(32, 142); + this.ChatEnabledCheckbox.Name = "ChatEnabledCheckbox"; + this.ChatEnabledCheckbox.Size = new System.Drawing.Size(136, 22); + this.ChatEnabledCheckbox.TabIndex = 15; + this.ChatEnabledCheckbox.Text = "Chat Enabled"; + this.ChatEnabledCheckbox.UseVisualStyleBackColor = true; + // + // ChatProviderSelectorPanel + // + this.ChatProviderSelectorPanel.Controls.Add(this.DiscordProviderSwitch); + this.ChatProviderSelectorPanel.Controls.Add(this.IRCProviderSwitch); + this.ChatProviderSelectorPanel.Location = new System.Drawing.Point(23, 49); + this.ChatProviderSelectorPanel.Name = "ChatProviderSelectorPanel"; + this.ChatProviderSelectorPanel.Size = new System.Drawing.Size(302, 50); + this.ChatProviderSelectorPanel.TabIndex = 14; + // + // DiscordProviderSwitch + // + this.DiscordProviderSwitch.AutoSize = true; + this.DiscordProviderSwitch.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.DiscordProviderSwitch.Location = new System.Drawing.Point(220, 17); + this.DiscordProviderSwitch.Name = "DiscordProviderSwitch"; + this.DiscordProviderSwitch.Size = new System.Drawing.Size(61, 17); + this.DiscordProviderSwitch.TabIndex = 13; + this.DiscordProviderSwitch.TabStop = true; + this.DiscordProviderSwitch.Text = "Discord"; + this.DiscordProviderSwitch.UseVisualStyleBackColor = true; + this.DiscordProviderSwitch.CheckedChanged += new System.EventHandler(this.DiscordProviderSwitch_CheckedChanged); + // + // IRCProviderSwitch + // + this.IRCProviderSwitch.AutoSize = true; + this.IRCProviderSwitch.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.IRCProviderSwitch.Location = new System.Drawing.Point(14, 17); + this.IRCProviderSwitch.Name = "IRCProviderSwitch"; + this.IRCProviderSwitch.Size = new System.Drawing.Size(116, 17); + this.IRCProviderSwitch.TabIndex = 12; + this.IRCProviderSwitch.TabStop = true; + this.IRCProviderSwitch.Text = "Internet Relay Chat"; + this.IRCProviderSwitch.UseVisualStyleBackColor = true; + this.IRCProviderSwitch.CheckedChanged += new System.EventHandler(this.IRCProviderSwitch_CheckedChanged); + // + // ChatProviderTitle + // + this.ChatProviderTitle.AutoSize = true; + this.ChatProviderTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ChatProviderTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChatProviderTitle.Location = new System.Drawing.Point(20, 15); + this.ChatProviderTitle.Name = "ChatProviderTitle"; + this.ChatProviderTitle.Size = new System.Drawing.Size(144, 18); + this.ChatProviderTitle.TabIndex = 13; + this.ChatProviderTitle.Text = "Editing Provider:"; + this.ChatProviderTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ChannelsTitle + // + this.ChannelsTitle.AutoSize = true; + this.ChannelsTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ChannelsTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChannelsTitle.Location = new System.Drawing.Point(565, 15); + this.ChannelsTitle.Name = "ChannelsTitle"; + this.ChannelsTitle.Size = new System.Drawing.Size(234, 18); + this.ChannelsTitle.TabIndex = 11; + this.ChannelsTitle.Text = "Listen/Broadcast Channels:"; + this.ChannelsTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ChatAdminsTextBox + // + this.ChatAdminsTextBox.Location = new System.Drawing.Point(369, 49); + this.ChatAdminsTextBox.Multiline = true; + this.ChatAdminsTextBox.Name = "ChatAdminsTextBox"; + this.ChatAdminsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.ChatAdminsTextBox.Size = new System.Drawing.Size(141, 311); + this.ChatAdminsTextBox.TabIndex = 10; + // + // ChatAdminsTitle + // + this.ChatAdminsTitle.AutoSize = true; + this.ChatAdminsTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ChatAdminsTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ChatAdminsTitle.Location = new System.Drawing.Point(366, 15); + this.ChatAdminsTitle.Name = "ChatAdminsTitle"; + this.ChatAdminsTitle.Size = new System.Drawing.Size(75, 18); + this.ChatAdminsTitle.TabIndex = 9; + this.ChatAdminsTitle.Text = "Admins:"; + this.ChatAdminsTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel1 + // + this.panel1.Controls.Add(this.AdminModeSpecial); + this.panel1.Controls.Add(this.AdminModeNormal); + this.panel1.Location = new System.Drawing.Point(174, 168); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(202, 25); + this.panel1.TabIndex = 15; + // + // AdminModeSpecial + // + this.AdminModeSpecial.AutoSize = true; + this.AdminModeSpecial.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.AdminModeSpecial.Location = new System.Drawing.Point(87, 8); + this.AdminModeSpecial.Name = "AdminModeSpecial"; + this.AdminModeSpecial.Size = new System.Drawing.Size(94, 17); + this.AdminModeSpecial.TabIndex = 13; + this.AdminModeSpecial.TabStop = true; + this.AdminModeSpecial.Text = "Channel Mode"; + this.AdminModeSpecial.UseVisualStyleBackColor = true; + // + // AdminModeNormal + // + this.AdminModeNormal.AutoSize = true; + this.AdminModeNormal.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.AdminModeNormal.Location = new System.Drawing.Point(3, 8); + this.AdminModeNormal.Name = "AdminModeNormal"; + this.AdminModeNormal.Size = new System.Drawing.Size(78, 17); + this.AdminModeNormal.TabIndex = 12; + this.AdminModeNormal.TabStop = true; + this.AdminModeNormal.Text = "Nicknames"; + this.AdminModeNormal.UseVisualStyleBackColor = true; + this.AdminModeNormal.CheckedChanged += new System.EventHandler(this.AdminModeNormal_CheckedChanged); + // + // ConfigPanel + // + this.ConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.ConfigPanel.Controls.Add(this.ConfigApply); + this.ConfigPanel.Controls.Add(this.ConfigDownloadRepo); + this.ConfigPanel.Controls.Add(this.ConfigUpload); + this.ConfigPanel.Controls.Add(this.ConfigDownload); + this.ConfigPanel.Controls.Add(this.ConfigRefresh); + this.ConfigPanel.Controls.Add(this.ConfigPanels); + this.ConfigPanel.Controls.Add(this.ConfigDisabledLabel); + this.ConfigPanel.Location = new System.Drawing.Point(4, 22); + this.ConfigPanel.Name = "ConfigPanel"; + this.ConfigPanel.Padding = new System.Windows.Forms.Padding(3); + this.ConfigPanel.Size = new System.Drawing.Size(868, 366); + this.ConfigPanel.TabIndex = 5; + this.ConfigPanel.Text = "Config"; + // + // ConfigApply + // + this.ConfigApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ConfigApply.Location = new System.Drawing.Point(782, 26); + this.ConfigApply.Name = "ConfigApply"; + this.ConfigApply.Size = new System.Drawing.Size(63, 22); + this.ConfigApply.TabIndex = 4; + this.ConfigApply.Text = "Apply"; + this.ConfigApply.UseVisualStyleBackColor = true; + this.ConfigApply.Click += new System.EventHandler(this.ConfigApply_Click); + // + // ConfigDownloadRepo + // + this.ConfigDownloadRepo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ConfigDownloadRepo.Location = new System.Drawing.Point(782, 110); + this.ConfigDownloadRepo.Name = "ConfigDownloadRepo"; + this.ConfigDownloadRepo.Size = new System.Drawing.Size(63, 22); + this.ConfigDownloadRepo.TabIndex = 8; + this.ConfigDownloadRepo.Text = "DL Repo"; + this.ConfigDownloadRepo.UseVisualStyleBackColor = true; + this.ConfigDownloadRepo.Click += new System.EventHandler(this.ConfigDownloadRepo_Click); + // + // ConfigUpload + // + this.ConfigUpload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ConfigUpload.Location = new System.Drawing.Point(782, 138); + this.ConfigUpload.Name = "ConfigUpload"; + this.ConfigUpload.Size = new System.Drawing.Size(63, 22); + this.ConfigUpload.TabIndex = 7; + this.ConfigUpload.Text = "Upload"; + this.ConfigUpload.UseVisualStyleBackColor = true; + this.ConfigUpload.Click += new System.EventHandler(this.ConfigUpload_Click); + // + // ConfigDownload + // + this.ConfigDownload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ConfigDownload.Location = new System.Drawing.Point(782, 82); + this.ConfigDownload.Name = "ConfigDownload"; + this.ConfigDownload.Size = new System.Drawing.Size(63, 22); + this.ConfigDownload.TabIndex = 6; + this.ConfigDownload.Text = "Download"; + this.ConfigDownload.UseVisualStyleBackColor = true; + this.ConfigDownload.Click += new System.EventHandler(this.ConfigDownload_Click); + // + // ConfigRefresh + // + this.ConfigRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ConfigRefresh.Location = new System.Drawing.Point(782, 54); + this.ConfigRefresh.Name = "ConfigRefresh"; + this.ConfigRefresh.Size = new System.Drawing.Size(63, 22); + this.ConfigRefresh.TabIndex = 5; + this.ConfigRefresh.Text = "Refresh"; + this.ConfigRefresh.UseVisualStyleBackColor = true; + this.ConfigRefresh.Click += new System.EventHandler(this.ConfigRefresh_Click); + // + // ConfigPanels + // + this.ConfigPanels.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.ConfigPanels.Controls.Add(this.ConfigConfigPanel); - this.ConfigPanels.Controls.Add(this.DatabaseConfigPanel); - this.ConfigPanels.Controls.Add(this.GameConfigPanel); - this.ConfigPanels.Controls.Add(this.JobsConfigPanel); - this.ConfigPanels.Controls.Add(this.MapsConfigPanel); - this.ConfigPanels.Controls.Add(this.AdminsPanel); - this.ConfigPanels.Location = new System.Drawing.Point(-4, 0); - this.ConfigPanels.Name = "ConfigPanels"; - this.ConfigPanels.SelectedIndex = 0; - this.ConfigPanels.Size = new System.Drawing.Size(876, 370); - this.ConfigPanels.TabIndex = 0; - // - // ConfigConfigPanel - // - this.ConfigConfigPanel.AutoScroll = true; - this.ConfigConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.ConfigConfigPanel.Location = new System.Drawing.Point(4, 22); - this.ConfigConfigPanel.Name = "ConfigConfigPanel"; - this.ConfigConfigPanel.Padding = new System.Windows.Forms.Padding(3); - this.ConfigConfigPanel.Size = new System.Drawing.Size(868, 344); - this.ConfigConfigPanel.TabIndex = 0; - this.ConfigConfigPanel.Text = "General"; - // - // DatabaseConfigPanel - // - this.DatabaseConfigPanel.AutoScroll = true; - this.DatabaseConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.DatabaseConfigPanel.Location = new System.Drawing.Point(4, 22); - this.DatabaseConfigPanel.Name = "DatabaseConfigPanel"; - this.DatabaseConfigPanel.Padding = new System.Windows.Forms.Padding(3); - this.DatabaseConfigPanel.Size = new System.Drawing.Size(868, 344); - this.DatabaseConfigPanel.TabIndex = 1; - this.DatabaseConfigPanel.Text = "Database"; - // - // GameConfigPanel - // - this.GameConfigPanel.AutoScroll = true; - this.GameConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.GameConfigPanel.Location = new System.Drawing.Point(4, 22); - this.GameConfigPanel.Name = "GameConfigPanel"; - this.GameConfigPanel.Padding = new System.Windows.Forms.Padding(3); - this.GameConfigPanel.Size = new System.Drawing.Size(868, 344); - this.GameConfigPanel.TabIndex = 2; - this.GameConfigPanel.Text = "Game"; - // - // JobsConfigPanel - // - this.JobsConfigPanel.AutoScroll = true; - this.JobsConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.JobsConfigPanel.Location = new System.Drawing.Point(4, 22); - this.JobsConfigPanel.Name = "JobsConfigPanel"; - this.JobsConfigPanel.Padding = new System.Windows.Forms.Padding(3); - this.JobsConfigPanel.Size = new System.Drawing.Size(868, 344); - this.JobsConfigPanel.TabIndex = 3; - this.JobsConfigPanel.Text = "Jobs"; - // - // MapsConfigPanel - // - this.MapsConfigPanel.AutoScroll = true; - this.MapsConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.MapsConfigPanel.Location = new System.Drawing.Point(4, 22); - this.MapsConfigPanel.Name = "MapsConfigPanel"; - this.MapsConfigPanel.Padding = new System.Windows.Forms.Padding(3); - this.MapsConfigPanel.Size = new System.Drawing.Size(868, 344); - this.MapsConfigPanel.TabIndex = 4; - this.MapsConfigPanel.Text = "Maps"; - // - // AdminsPanel - // - this.AdminsPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.AdminsPanel.Controls.Add(this.NegativePermissionsTitle); - this.AdminsPanel.Controls.Add(this.NegativePermissions); - this.AdminsPanel.Controls.Add(this.ApplyAdminRankButton); - this.AdminsPanel.Controls.Add(this.PermissionsListBox); - this.AdminsPanel.Controls.Add(this.PermissionsTItle); - this.AdminsPanel.Controls.Add(this.RemoveRankButton); - this.AdminsPanel.Controls.Add(this.AddRankTextBox); - this.AdminsPanel.Controls.Add(this.AddRankButton); - this.AdminsPanel.Controls.Add(this.AdminRanksListBox); - this.AdminsPanel.Controls.Add(this.RanksTitle); - this.AdminsPanel.Controls.Add(this.DeadminButton); - this.AdminsPanel.Controls.Add(this.AddminTextBox); - this.AdminsPanel.Controls.Add(this.AddminButton); - this.AdminsPanel.Controls.Add(this.AdminsListBox); - this.AdminsPanel.Controls.Add(this.AdminsTitle); - this.AdminsPanel.Location = new System.Drawing.Point(4, 22); - this.AdminsPanel.Name = "AdminsPanel"; - this.AdminsPanel.Padding = new System.Windows.Forms.Padding(3); - this.AdminsPanel.Size = new System.Drawing.Size(868, 344); - this.AdminsPanel.TabIndex = 5; - this.AdminsPanel.Text = "Admins"; - // - // NegativePermissionsTitle - // - this.NegativePermissionsTitle.AutoSize = true; - this.NegativePermissionsTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NegativePermissionsTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.NegativePermissionsTitle.Location = new System.Drawing.Point(269, 151); - this.NegativePermissionsTitle.Name = "NegativePermissionsTitle"; - this.NegativePermissionsTitle.Size = new System.Drawing.Size(192, 18); - this.NegativePermissionsTitle.TabIndex = 31; - this.NegativePermissionsTitle.Text = "Negative Permissions:"; - this.NegativePermissionsTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // NegativePermissions - // - this.NegativePermissions.FormattingEnabled = true; - this.NegativePermissions.HorizontalScrollbar = true; - this.NegativePermissions.Location = new System.Drawing.Point(272, 172); - this.NegativePermissions.Name = "NegativePermissions"; - this.NegativePermissions.Size = new System.Drawing.Size(240, 109); - this.NegativePermissions.TabIndex = 30; - // - // ApplyAdminRankButton - // - this.ApplyAdminRankButton.Location = new System.Drawing.Point(272, 292); - this.ApplyAdminRankButton.Name = "ApplyAdminRankButton"; - this.ApplyAdminRankButton.Size = new System.Drawing.Size(240, 46); - this.ApplyAdminRankButton.TabIndex = 29; - this.ApplyAdminRankButton.Text = "Apply Selected Rank to Selected Admin"; - this.ApplyAdminRankButton.UseVisualStyleBackColor = true; - this.ApplyAdminRankButton.Click += new System.EventHandler(this.ApplyAdminRankButton_Click); - // - // PermissionsListBox - // - this.PermissionsListBox.FormattingEnabled = true; - this.PermissionsListBox.HorizontalScrollbar = true; - this.PermissionsListBox.Location = new System.Drawing.Point(272, 29); - this.PermissionsListBox.Name = "PermissionsListBox"; - this.PermissionsListBox.Size = new System.Drawing.Size(240, 109); - this.PermissionsListBox.TabIndex = 28; - // - // PermissionsTItle - // - this.PermissionsTItle.AutoSize = true; - this.PermissionsTItle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PermissionsTItle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.PermissionsTItle.Location = new System.Drawing.Point(269, 8); - this.PermissionsTItle.Name = "PermissionsTItle"; - this.PermissionsTItle.Size = new System.Drawing.Size(113, 18); - this.PermissionsTItle.TabIndex = 27; - this.PermissionsTItle.Text = "Permissions:"; - this.PermissionsTItle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // RemoveRankButton - // - this.RemoveRankButton.Location = new System.Drawing.Point(9, 292); - this.RemoveRankButton.Name = "RemoveRankButton"; - this.RemoveRankButton.Size = new System.Drawing.Size(240, 20); - this.RemoveRankButton.TabIndex = 26; - this.RemoveRankButton.Text = "Remove Selected"; - this.RemoveRankButton.UseVisualStyleBackColor = true; - this.RemoveRankButton.Click += new System.EventHandler(this.RemoveRankButton_Click); - // - // AddRankTextBox - // - this.AddRankTextBox.Location = new System.Drawing.Point(9, 318); - this.AddRankTextBox.Name = "AddRankTextBox"; - this.AddRankTextBox.Size = new System.Drawing.Size(184, 20); - this.AddRankTextBox.TabIndex = 25; - // - // AddRankButton - // - this.AddRankButton.Location = new System.Drawing.Point(199, 318); - this.AddRankButton.Name = "AddRankButton"; - this.AddRankButton.Size = new System.Drawing.Size(50, 20); - this.AddRankButton.TabIndex = 24; - this.AddRankButton.Text = "Add"; - this.AddRankButton.UseVisualStyleBackColor = true; - this.AddRankButton.Click += new System.EventHandler(this.AddRankButton_Click); - // - // AdminRanksListBox - // - this.AdminRanksListBox.FormattingEnabled = true; - this.AdminRanksListBox.Location = new System.Drawing.Point(9, 30); - this.AdminRanksListBox.Name = "AdminRanksListBox"; - this.AdminRanksListBox.Size = new System.Drawing.Size(240, 251); - this.AdminRanksListBox.TabIndex = 23; - // - // RanksTitle - // - this.RanksTitle.AutoSize = true; - this.RanksTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RanksTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.RanksTitle.Location = new System.Drawing.Point(6, 8); - this.RanksTitle.Name = "RanksTitle"; - this.RanksTitle.Size = new System.Drawing.Size(64, 18); - this.RanksTitle.TabIndex = 22; - this.RanksTitle.Text = "Ranks:"; - this.RanksTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // DeadminButton - // - this.DeadminButton.Location = new System.Drawing.Point(536, 292); - this.DeadminButton.Name = "DeadminButton"; - this.DeadminButton.Size = new System.Drawing.Size(240, 20); - this.DeadminButton.TabIndex = 21; - this.DeadminButton.Text = "Remove Selected"; - this.DeadminButton.UseVisualStyleBackColor = true; - this.DeadminButton.Click += new System.EventHandler(this.DeadminButton_Click); - // - // AddminTextBox - // - this.AddminTextBox.Location = new System.Drawing.Point(536, 318); - this.AddminTextBox.Name = "AddminTextBox"; - this.AddminTextBox.Size = new System.Drawing.Size(184, 20); - this.AddminTextBox.TabIndex = 20; - // - // AddminButton - // - this.AddminButton.Location = new System.Drawing.Point(726, 318); - this.AddminButton.Name = "AddminButton"; - this.AddminButton.Size = new System.Drawing.Size(50, 20); - this.AddminButton.TabIndex = 19; - this.AddminButton.Text = "Add"; - this.AddminButton.UseVisualStyleBackColor = true; - this.AddminButton.Click += new System.EventHandler(this.AddminButton_Click); - // - // AdminsListBox - // - this.AdminsListBox.FormattingEnabled = true; - this.AdminsListBox.Location = new System.Drawing.Point(536, 30); - this.AdminsListBox.Name = "AdminsListBox"; - this.AdminsListBox.Size = new System.Drawing.Size(240, 251); - this.AdminsListBox.TabIndex = 13; - // - // AdminsTitle - // - this.AdminsTitle.AutoSize = true; - this.AdminsTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.AdminsTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.AdminsTitle.Location = new System.Drawing.Point(533, 8); - this.AdminsTitle.Name = "AdminsTitle"; - this.AdminsTitle.Size = new System.Drawing.Size(75, 18); - this.AdminsTitle.TabIndex = 12; - this.AdminsTitle.Text = "Admins:"; - this.AdminsTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // ConfigDisabledLabel - // - this.ConfigDisabledLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.ConfigPanels.Controls.Add(this.ConfigConfigPanel); + this.ConfigPanels.Controls.Add(this.DatabaseConfigPanel); + this.ConfigPanels.Controls.Add(this.GameConfigPanel); + this.ConfigPanels.Controls.Add(this.JobsConfigPanel); + this.ConfigPanels.Controls.Add(this.MapsConfigPanel); + this.ConfigPanels.Controls.Add(this.AdminsPanel); + this.ConfigPanels.Location = new System.Drawing.Point(-4, 0); + this.ConfigPanels.Name = "ConfigPanels"; + this.ConfigPanels.SelectedIndex = 0; + this.ConfigPanels.Size = new System.Drawing.Size(876, 370); + this.ConfigPanels.TabIndex = 0; + // + // ConfigConfigPanel + // + this.ConfigConfigPanel.AutoScroll = true; + this.ConfigConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.ConfigConfigPanel.Location = new System.Drawing.Point(4, 22); + this.ConfigConfigPanel.Name = "ConfigConfigPanel"; + this.ConfigConfigPanel.Padding = new System.Windows.Forms.Padding(3); + this.ConfigConfigPanel.Size = new System.Drawing.Size(868, 344); + this.ConfigConfigPanel.TabIndex = 0; + this.ConfigConfigPanel.Text = "General"; + // + // DatabaseConfigPanel + // + this.DatabaseConfigPanel.AutoScroll = true; + this.DatabaseConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.DatabaseConfigPanel.Location = new System.Drawing.Point(4, 22); + this.DatabaseConfigPanel.Name = "DatabaseConfigPanel"; + this.DatabaseConfigPanel.Padding = new System.Windows.Forms.Padding(3); + this.DatabaseConfigPanel.Size = new System.Drawing.Size(868, 344); + this.DatabaseConfigPanel.TabIndex = 1; + this.DatabaseConfigPanel.Text = "Database"; + // + // GameConfigPanel + // + this.GameConfigPanel.AutoScroll = true; + this.GameConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.GameConfigPanel.Location = new System.Drawing.Point(4, 22); + this.GameConfigPanel.Name = "GameConfigPanel"; + this.GameConfigPanel.Padding = new System.Windows.Forms.Padding(3); + this.GameConfigPanel.Size = new System.Drawing.Size(868, 344); + this.GameConfigPanel.TabIndex = 2; + this.GameConfigPanel.Text = "Game"; + // + // JobsConfigPanel + // + this.JobsConfigPanel.AutoScroll = true; + this.JobsConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.JobsConfigPanel.Location = new System.Drawing.Point(4, 22); + this.JobsConfigPanel.Name = "JobsConfigPanel"; + this.JobsConfigPanel.Padding = new System.Windows.Forms.Padding(3); + this.JobsConfigPanel.Size = new System.Drawing.Size(868, 344); + this.JobsConfigPanel.TabIndex = 3; + this.JobsConfigPanel.Text = "Jobs"; + // + // MapsConfigPanel + // + this.MapsConfigPanel.AutoScroll = true; + this.MapsConfigPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.MapsConfigPanel.Location = new System.Drawing.Point(4, 22); + this.MapsConfigPanel.Name = "MapsConfigPanel"; + this.MapsConfigPanel.Padding = new System.Windows.Forms.Padding(3); + this.MapsConfigPanel.Size = new System.Drawing.Size(868, 344); + this.MapsConfigPanel.TabIndex = 4; + this.MapsConfigPanel.Text = "Maps"; + // + // AdminsPanel + // + this.AdminsPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.AdminsPanel.Controls.Add(this.NegativePermissionsTitle); + this.AdminsPanel.Controls.Add(this.NegativePermissions); + this.AdminsPanel.Controls.Add(this.ApplyAdminRankButton); + this.AdminsPanel.Controls.Add(this.PermissionsListBox); + this.AdminsPanel.Controls.Add(this.PermissionsTItle); + this.AdminsPanel.Controls.Add(this.RemoveRankButton); + this.AdminsPanel.Controls.Add(this.AddRankTextBox); + this.AdminsPanel.Controls.Add(this.AddRankButton); + this.AdminsPanel.Controls.Add(this.AdminRanksListBox); + this.AdminsPanel.Controls.Add(this.RanksTitle); + this.AdminsPanel.Controls.Add(this.DeadminButton); + this.AdminsPanel.Controls.Add(this.AddminTextBox); + this.AdminsPanel.Controls.Add(this.AddminButton); + this.AdminsPanel.Controls.Add(this.AdminsListBox); + this.AdminsPanel.Controls.Add(this.AdminsTitle); + this.AdminsPanel.Location = new System.Drawing.Point(4, 22); + this.AdminsPanel.Name = "AdminsPanel"; + this.AdminsPanel.Padding = new System.Windows.Forms.Padding(3); + this.AdminsPanel.Size = new System.Drawing.Size(868, 344); + this.AdminsPanel.TabIndex = 5; + this.AdminsPanel.Text = "Admins"; + // + // NegativePermissionsTitle + // + this.NegativePermissionsTitle.AutoSize = true; + this.NegativePermissionsTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.NegativePermissionsTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.NegativePermissionsTitle.Location = new System.Drawing.Point(269, 151); + this.NegativePermissionsTitle.Name = "NegativePermissionsTitle"; + this.NegativePermissionsTitle.Size = new System.Drawing.Size(192, 18); + this.NegativePermissionsTitle.TabIndex = 31; + this.NegativePermissionsTitle.Text = "Negative Permissions:"; + this.NegativePermissionsTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // NegativePermissions + // + this.NegativePermissions.FormattingEnabled = true; + this.NegativePermissions.HorizontalScrollbar = true; + this.NegativePermissions.Location = new System.Drawing.Point(272, 172); + this.NegativePermissions.Name = "NegativePermissions"; + this.NegativePermissions.Size = new System.Drawing.Size(240, 109); + this.NegativePermissions.TabIndex = 30; + // + // ApplyAdminRankButton + // + this.ApplyAdminRankButton.Location = new System.Drawing.Point(272, 292); + this.ApplyAdminRankButton.Name = "ApplyAdminRankButton"; + this.ApplyAdminRankButton.Size = new System.Drawing.Size(240, 46); + this.ApplyAdminRankButton.TabIndex = 29; + this.ApplyAdminRankButton.Text = "Apply Selected Rank to Selected Admin"; + this.ApplyAdminRankButton.UseVisualStyleBackColor = true; + this.ApplyAdminRankButton.Click += new System.EventHandler(this.ApplyAdminRankButton_Click); + // + // PermissionsListBox + // + this.PermissionsListBox.FormattingEnabled = true; + this.PermissionsListBox.HorizontalScrollbar = true; + this.PermissionsListBox.Location = new System.Drawing.Point(272, 29); + this.PermissionsListBox.Name = "PermissionsListBox"; + this.PermissionsListBox.Size = new System.Drawing.Size(240, 109); + this.PermissionsListBox.TabIndex = 28; + // + // PermissionsTItle + // + this.PermissionsTItle.AutoSize = true; + this.PermissionsTItle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.PermissionsTItle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.PermissionsTItle.Location = new System.Drawing.Point(269, 8); + this.PermissionsTItle.Name = "PermissionsTItle"; + this.PermissionsTItle.Size = new System.Drawing.Size(113, 18); + this.PermissionsTItle.TabIndex = 27; + this.PermissionsTItle.Text = "Permissions:"; + this.PermissionsTItle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // RemoveRankButton + // + this.RemoveRankButton.Location = new System.Drawing.Point(9, 292); + this.RemoveRankButton.Name = "RemoveRankButton"; + this.RemoveRankButton.Size = new System.Drawing.Size(240, 20); + this.RemoveRankButton.TabIndex = 26; + this.RemoveRankButton.Text = "Remove Selected"; + this.RemoveRankButton.UseVisualStyleBackColor = true; + this.RemoveRankButton.Click += new System.EventHandler(this.RemoveRankButton_Click); + // + // AddRankTextBox + // + this.AddRankTextBox.Location = new System.Drawing.Point(9, 318); + this.AddRankTextBox.Name = "AddRankTextBox"; + this.AddRankTextBox.Size = new System.Drawing.Size(184, 20); + this.AddRankTextBox.TabIndex = 25; + // + // AddRankButton + // + this.AddRankButton.Location = new System.Drawing.Point(199, 318); + this.AddRankButton.Name = "AddRankButton"; + this.AddRankButton.Size = new System.Drawing.Size(50, 20); + this.AddRankButton.TabIndex = 24; + this.AddRankButton.Text = "Add"; + this.AddRankButton.UseVisualStyleBackColor = true; + this.AddRankButton.Click += new System.EventHandler(this.AddRankButton_Click); + // + // AdminRanksListBox + // + this.AdminRanksListBox.FormattingEnabled = true; + this.AdminRanksListBox.Location = new System.Drawing.Point(9, 30); + this.AdminRanksListBox.Name = "AdminRanksListBox"; + this.AdminRanksListBox.Size = new System.Drawing.Size(240, 251); + this.AdminRanksListBox.TabIndex = 23; + // + // RanksTitle + // + this.RanksTitle.AutoSize = true; + this.RanksTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RanksTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.RanksTitle.Location = new System.Drawing.Point(6, 8); + this.RanksTitle.Name = "RanksTitle"; + this.RanksTitle.Size = new System.Drawing.Size(64, 18); + this.RanksTitle.TabIndex = 22; + this.RanksTitle.Text = "Ranks:"; + this.RanksTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // DeadminButton + // + this.DeadminButton.Location = new System.Drawing.Point(536, 292); + this.DeadminButton.Name = "DeadminButton"; + this.DeadminButton.Size = new System.Drawing.Size(240, 20); + this.DeadminButton.TabIndex = 21; + this.DeadminButton.Text = "Remove Selected"; + this.DeadminButton.UseVisualStyleBackColor = true; + this.DeadminButton.Click += new System.EventHandler(this.DeadminButton_Click); + // + // AddminTextBox + // + this.AddminTextBox.Location = new System.Drawing.Point(536, 318); + this.AddminTextBox.Name = "AddminTextBox"; + this.AddminTextBox.Size = new System.Drawing.Size(184, 20); + this.AddminTextBox.TabIndex = 20; + // + // AddminButton + // + this.AddminButton.Location = new System.Drawing.Point(726, 318); + this.AddminButton.Name = "AddminButton"; + this.AddminButton.Size = new System.Drawing.Size(50, 20); + this.AddminButton.TabIndex = 19; + this.AddminButton.Text = "Add"; + this.AddminButton.UseVisualStyleBackColor = true; + this.AddminButton.Click += new System.EventHandler(this.AddminButton_Click); + // + // AdminsListBox + // + this.AdminsListBox.FormattingEnabled = true; + this.AdminsListBox.Location = new System.Drawing.Point(536, 30); + this.AdminsListBox.Name = "AdminsListBox"; + this.AdminsListBox.Size = new System.Drawing.Size(240, 251); + this.AdminsListBox.TabIndex = 13; + // + // AdminsTitle + // + this.AdminsTitle.AutoSize = true; + this.AdminsTitle.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.AdminsTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.AdminsTitle.Location = new System.Drawing.Point(533, 8); + this.AdminsTitle.Name = "AdminsTitle"; + this.AdminsTitle.Size = new System.Drawing.Size(75, 18); + this.AdminsTitle.TabIndex = 12; + this.AdminsTitle.Text = "Admins:"; + this.AdminsTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ConfigDisabledLabel + // + this.ConfigDisabledLabel.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.ConfigDisabledLabel.AutoSize = true; - this.ConfigDisabledLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ConfigDisabledLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); - this.ConfigDisabledLabel.Location = new System.Drawing.Point(225, 160); - this.ConfigDisabledLabel.Name = "ConfigDisabledLabel"; - this.ConfigDisabledLabel.Size = new System.Drawing.Size(428, 18); - this.ConfigDisabledLabel.TabIndex = 14; - this.ConfigDisabledLabel.Text = "Configuration is disabled until repository is set up!"; - this.ConfigDisabledLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // RepoBGW - // - this.RepoBGW.WorkerReportsProgress = true; - this.RepoBGW.WorkerSupportsCancellation = true; - // - // BYONDTimer - // - this.BYONDTimer.Interval = 1000; - this.BYONDTimer.Tick += new System.EventHandler(this.BYONDTimer_Tick); - // - // ServerTimer - // - this.ServerTimer.Interval = 10000; - this.ServerTimer.Tick += new System.EventHandler(this.ServerTimer_Tick); - // - // WorldStatusChecker - // - this.WorldStatusChecker.WorkerReportsProgress = true; - this.WorldStatusChecker.WorkerSupportsCancellation = true; - this.WorldStatusChecker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.WorldStatusChecker_DoWork); - // - // WorldStatusTimer - // - this.WorldStatusTimer.Interval = 10000; - this.WorldStatusTimer.Tick += new System.EventHandler(this.WorldStatusTimer_Tick); - // - // FullUpdateWorker - // - this.FullUpdateWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.FullUpdateWorker_DoWork); - // - // ServerStartBGW - // - this.ServerStartBGW.DoWork += new System.ComponentModel.DoWorkEventHandler(this.ServerStartBGW_DoWork); - // - // Main - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); - this.ClientSize = new System.Drawing.Size(900, 415); - this.Controls.Add(this.Panels); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "Main"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "/tg/station 13 Server Control Panel"; - this.Panels.ResumeLayout(false); - this.RepoPanel.ResumeLayout(false); - this.RepoPanel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.TestmergeSelector)).EndInit(); - this.BYONDPanel.ResumeLayout(false); - this.BYONDPanel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.MinorVersionNumeric)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.MajorVersionNumeric)).EndInit(); - this.ServerPanel.ResumeLayout(false); - this.ServerPanel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudgePortSelector)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PortSelector)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ServerTestmergeInput)).EndInit(); - this.ChatPanel.ResumeLayout(false); - this.ChatPanel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ChatPortSelector)).EndInit(); - this.ChatProviderSelectorPanel.ResumeLayout(false); - this.ChatProviderSelectorPanel.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.ConfigPanel.ResumeLayout(false); - this.ConfigPanel.PerformLayout(); - this.ConfigPanels.ResumeLayout(false); - this.AdminsPanel.ResumeLayout(false); - this.AdminsPanel.PerformLayout(); - this.ResumeLayout(false); + this.ConfigDisabledLabel.AutoSize = true; + this.ConfigDisabledLabel.Font = new System.Drawing.Font("Verdana", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ConfigDisabledLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(242))))); + this.ConfigDisabledLabel.Location = new System.Drawing.Point(225, 160); + this.ConfigDisabledLabel.Name = "ConfigDisabledLabel"; + this.ConfigDisabledLabel.Size = new System.Drawing.Size(428, 18); + this.ConfigDisabledLabel.TabIndex = 14; + this.ConfigDisabledLabel.Text = "Configuration is disabled until repository is set up!"; + this.ConfigDisabledLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // RepoBGW + // + this.RepoBGW.WorkerReportsProgress = true; + this.RepoBGW.WorkerSupportsCancellation = true; + // + // BYONDTimer + // + this.BYONDTimer.Interval = 1000; + this.BYONDTimer.Tick += new System.EventHandler(this.BYONDTimer_Tick); + // + // ServerTimer + // + this.ServerTimer.Interval = 10000; + this.ServerTimer.Tick += new System.EventHandler(this.ServerTimer_Tick); + // + // WorldStatusChecker + // + this.WorldStatusChecker.WorkerReportsProgress = true; + this.WorldStatusChecker.WorkerSupportsCancellation = true; + this.WorldStatusChecker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.WorldStatusChecker_DoWork); + // + // WorldStatusTimer + // + this.WorldStatusTimer.Interval = 10000; + this.WorldStatusTimer.Tick += new System.EventHandler(this.WorldStatusTimer_Tick); + // + // FullUpdateWorker + // + this.FullUpdateWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.FullUpdateWorker_DoWork); + // + // ServerStartBGW + // + this.ServerStartBGW.DoWork += new System.ComponentModel.DoWorkEventHandler(this.ServerStartBGW_DoWork); + // + // Main + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(40)))), ((int)(((byte)(34))))); + this.ClientSize = new System.Drawing.Size(900, 415); + this.Controls.Add(this.Panels); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "Main"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "/tg/station 13 Server Control Panel"; + this.Panels.ResumeLayout(false); + this.RepoPanel.ResumeLayout(false); + this.RepoPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TestmergeSelector)).EndInit(); + this.BYONDPanel.ResumeLayout(false); + this.BYONDPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.MinorVersionNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.MajorVersionNumeric)).EndInit(); + this.ServerPanel.ResumeLayout(false); + this.ServerPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PortSelector)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.ServerTestmergeInput)).EndInit(); + this.ChatPanel.ResumeLayout(false); + this.ChatPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ChatPortSelector)).EndInit(); + this.ChatProviderSelectorPanel.ResumeLayout(false); + this.ChatProviderSelectorPanel.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ConfigPanel.ResumeLayout(false); + this.ConfigPanel.PerformLayout(); + this.ConfigPanels.ResumeLayout(false); + this.AdminsPanel.ResumeLayout(false); + this.AdminsPanel.PerformLayout(); + this.ResumeLayout(false); } @@ -2131,8 +2089,6 @@ private System.Windows.Forms.Label ChatNicknameTitle; private System.Windows.Forms.Button ChatRefreshButton; private System.Windows.Forms.TabPage JobsConfigPanel; - private System.Windows.Forms.NumericUpDown NudgePortSelector; - private System.Windows.Forms.Label NudgePortLabel; private System.Windows.Forms.TabPage MapsConfigPanel; private System.Windows.Forms.TabPage AdminsPanel; private System.Windows.Forms.TextBox AddminTextBox; diff --git a/TGControlPanel/ServerPage.cs b/TGControlPanel/ServerPage.cs index 887ceffd79..a4f5aa2089 100644 --- a/TGControlPanel/ServerPage.cs +++ b/TGControlPanel/ServerPage.cs @@ -1,503 +1,482 @@ -using System; -using System.ComponentModel; -using System.Windows.Forms; -using TGServiceInterface; - -namespace TGControlPanel -{ - partial class Main - { - enum FullUpdateAction - { - UpdateHard, - UpdateMerge, - UpdateHardTestmerge, - Reset, - Testmerge, - } - - FullUpdateAction fuAction; - ushort testmergePR; - string updateError; - bool updatingFields = false; - - string DDStatusString = null; - void InitServerPage() - { - LoadServerPage(); - ServerTimer.Start(); - WorldStatusChecker.RunWorkerAsync(); - WorldStatusChecker.RunWorkerCompleted += WorldStatusChecker_RunWorkerCompleted; - FullUpdateWorker.RunWorkerCompleted += FullUpdateWorker_RunWorkerCompleted; - ServerPathTextbox.LostFocus += ServerPathTextbox_LostFocus; - ServerPathTextbox.KeyDown += ServerPathTextbox_KeyDown; - projectNameText.LostFocus += ProjectNameText_LostFocus; - projectNameText.KeyDown += ProjectNameText_KeyDown; - ServerStartBGW.RunWorkerCompleted += ServerStartBGW_RunWorkerCompleted; - } - - private void ServerStartBGW_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - if (e.Result != null) - MessageBox.Show((string)e.Result); - } - - private void ProjectNameText_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter) - UpdateProjectName(); - } - - private void ServerPathTextbox_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter) - UpdateServerPath(); - } - - private void FullUpdateWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - if (updateError != null) - MessageBox.Show(updateError); - UpdateHardButton.Enabled = true; - UpdateMergeButton.Enabled = true; - TestmergeButton.Enabled = true; - UpdateTestmergeButton.Enabled = true; - LoadServerPage(); - ServerTimer.Start(); - } - - private void WorldStatusChecker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - if (DDStatusString != "Topic recieve error!" || ServerStatusLabel.Text == "OFFLINE") - ServerStatusLabel.Text = DDStatusString; - WorldStatusTimer.Start(); - } - - private void CompileCancelButton_Click(object sender, EventArgs e) - { - var res = Server.GetComponent().Cancel(); - if (res != null) - MessageBox.Show(res); - LoadServerPage(); - } - - private void ServerPathTextbox_LostFocus(object sender, EventArgs e) - { - UpdateServerPath(); - } - - void UpdateServerPath() - { - var Config = Server.GetComponent(); - if (updatingFields || ServerPathTextbox.Text.Trim() == Config.ServerDirectory()) - return; - var DialogResult = MessageBox.Show("This will move the entire server installation.", "Confim", MessageBoxButtons.YesNo); - if (DialogResult != DialogResult.Yes) - return; - MessageBox.Show(Config.MoveServer(ServerPathTextbox.Text) ?? "Success!"); - } - - void LoadServerPage() - { - var RepoExists = Server.GetComponent().Exists(); - compileButton.Visible = RepoExists; - initializeButton.Visible = RepoExists; - NudgePortSelector.Visible = RepoExists; - AutostartCheckbox.Visible = RepoExists; - WebclientCheckBox.Visible = RepoExists; - PortSelector.Visible = RepoExists; - projectNameText.Visible = RepoExists; - compilerProgressBar.Visible = RepoExists; - CompilerStatusLabel.Visible = RepoExists; - CompileCancelButton.Visible = RepoExists; - NudgePortLabel.Visible = RepoExists; - CompilerLabel.Visible = RepoExists; - ProjectPathLabel.Visible = RepoExists; - ServerPRLabel.Visible = RepoExists; - ServerGStopButton.Visible = RepoExists; - ServerStartButton.Visible = RepoExists; - ServerGRestartButton.Visible = RepoExists; - ServerRestartButton.Visible = RepoExists; - PortLabel.Visible = RepoExists; - ServerStopButton.Visible = RepoExists; - TestmergeButton.Visible = RepoExists; - ServerTestmergeInput.Visible = RepoExists; - UpdateHardButton.Visible = RepoExists; - UpdateMergeButton.Visible = RepoExists; - UpdateTestmergeButton.Visible = RepoExists; - ResetTestmerge.Visible = RepoExists; - WorldAnnounceField.Visible = RepoExists; - WorldAnnounceButton.Visible = RepoExists; - - var DM = Server.GetComponent(); - var DD = Server.GetComponent(); - var Config = Server.GetComponent(); - - if (updatingFields) - return; - try - { - updatingFields = true; - - if (!ServerPathTextbox.Focused) - ServerPathTextbox.Text = Config.ServerDirectory(); - - SecuritySelector.SelectedIndex = (int)DD.SecurityLevel(); - - if (!RepoExists) - return; - - var Online = DD.DaemonStatus() == TGDreamDaemonStatus.Online; - ServerGStopButton.Enabled = Online; - ServerGRestartButton.Enabled = Online; - ServerStopButton.Enabled = Online; - ServerRestartButton.Enabled = Online; - - var ShuttingDown = DD.ShutdownInProgress(); - ServerGStopButton.Checked = ShuttingDown; - - AutostartCheckbox.Checked = DD.Autostart(); - WebclientCheckBox.Checked = DD.Webclient(); - if (!PortSelector.Focused) - PortSelector.Value = DD.Port(); - if (!projectNameText.Focused) - projectNameText.Text = DM.ProjectName(); - - var val = Config.InteropPort(out string error); - if (error != null) - { - updatingFields = false; - NudgePortSelector.Value = 4567; - updatingFields = true; - MessageBox.Show("Error (I will try and recover): " + error); - } - else - { - NudgePortSelector.Value = val; - updatingFields = true; - } - - switch (DM.GetStatus()) - { - case TGCompilerStatus.Compiling: - CompilerStatusLabel.Text = "Compiling..."; - compilerProgressBar.Style = ProgressBarStyle.Marquee; - compileButton.Enabled = false; - initializeButton.Enabled = false; - CompileCancelButton.Enabled = true; - break; - case TGCompilerStatus.Initializing: - CompilerStatusLabel.Text = "Initializing..."; - compilerProgressBar.Style = ProgressBarStyle.Marquee; - compileButton.Enabled = false; - initializeButton.Enabled = false; - CompileCancelButton.Enabled = false; - break; - case TGCompilerStatus.Initialized: - CompilerStatusLabel.Text = "Idle"; - compilerProgressBar.Style = ProgressBarStyle.Blocks; - initializeButton.Enabled = true; - compileButton.Enabled = true; - CompileCancelButton.Enabled = false; - break; - case TGCompilerStatus.Uninitialized: - CompilerStatusLabel.Text = "Uninitialized"; - compilerProgressBar.Style = ProgressBarStyle.Blocks; - compileButton.Enabled = false; - initializeButton.Enabled = true; - CompileCancelButton.Enabled = false; - break; - default: - CompilerStatusLabel.Text = "Unknown!"; - compilerProgressBar.Style = ProgressBarStyle.Blocks; - initializeButton.Enabled = true; - compileButton.Enabled = true; - CompileCancelButton.Enabled = true; - break; - } - error = DM.CompileError(); - if (error != null) - MessageBox.Show("Error: " + error); - } - finally - { - updatingFields = false; - } - } - - private void ServerTimer_Tick(object sender, System.EventArgs e) - { - try - { - LoadServerPage(); - } - catch (Exception ex) - { - ServerTimer.Stop(); - Program.ServiceDisconnectException(ex); - } - } - private void ProjectNameText_LostFocus(object sender, EventArgs e) - { - UpdateProjectName(); - } - - void UpdateProjectName() - { - if (!updatingFields) - Server.GetComponent().SetProjectName(projectNameText.Text); - } - - private void PortSelector_ValueChanged(object sender, EventArgs e) - { - if (!updatingFields) - Server.GetComponent().SetPort((ushort)PortSelector.Value); - } - - private void RunServerUpdate(FullUpdateAction fua, ushort tm = 0) - { - if (FullUpdateWorker.IsBusy) - return; - testmergePR = tm; - fuAction = fua; - initializeButton.Enabled = false; - compileButton.Enabled = false; - UpdateHardButton.Enabled = false; - UpdateMergeButton.Enabled = false; - TestmergeButton.Enabled = false; - UpdateTestmergeButton.Enabled = false; - compilerProgressBar.Style = ProgressBarStyle.Marquee; - switch (fuAction) - { - case FullUpdateAction.Testmerge: - CompilerStatusLabel.Text = String.Format("Testmerging pull request #{0}...", testmergePR); - break; - case FullUpdateAction.UpdateHard: - CompilerStatusLabel.Text = String.Format("Updating Server (RESET)..."); - break; - case FullUpdateAction.UpdateMerge: - CompilerStatusLabel.Text = String.Format("Updating Server (MERGE)..."); - break; - case FullUpdateAction.UpdateHardTestmerge: - CompilerStatusLabel.Text = String.Format("Updating and testmerging pull request #{0}...", testmergePR); - break; - } - ServerTimer.Stop(); - FullUpdateWorker.RunWorkerAsync(); - } - - private void InitializeButton_Click(object sender, EventArgs e) - { - if (!Server.GetComponent().Initialize()) - MessageBox.Show("Unable to start initialization!"); - LoadServerPage(); - } - private void CompileButton_Click(object sender, EventArgs e) - { - if (!Server.GetComponent().Compile()) - MessageBox.Show("Unable to start compilation!"); - LoadServerPage(); - } - //because of lol byond this can take some time... - private void WorldStatusChecker_DoWork(object sender, DoWorkEventArgs e) - { - try - { - if (!Server.GetComponent().Exists()) - DDStatusString = "NOT INSTALLED"; - else - DDStatusString = Server.GetComponent().StatusString(true); - } - catch - { - DDStatusString = "ERROR"; - } - } - - private void WorldStatusTimer_Tick(object sender, System.EventArgs e) - { - WorldStatusTimer.Stop(); - WorldStatusChecker.RunWorkerAsync(); - } - - private void AutostartCheckbox_CheckedChanged(object sender, System.EventArgs e) - { - if (!updatingFields) - Server.GetComponent().SetAutostart(AutostartCheckbox.Checked); - } - private void ServerStartButton_Click(object sender, System.EventArgs e) - { - if (!ServerStartBGW.IsBusy) - ServerStartBGW.RunWorkerAsync(); - } - - private void ServerStartBGW_DoWork(object sender, DoWorkEventArgs e) - { - try - { - e.Result = Server.GetComponent().Start(); - } - catch (Exception ex) - { - e.Result = ex.ToString(); - } - } - - private void ServerStopButton_Click(object sender, EventArgs e) - { - var DialogResult = MessageBox.Show("This will immediately shut down the server. Continue?", "Confim", MessageBoxButtons.YesNo); - if (DialogResult == DialogResult.No) - return; - var res = Server.GetComponent().Stop(); - if (res != null) - MessageBox.Show(res); - } - - private void ServerRestartButton_Click(object sender, EventArgs e) - { - var DialogResult = MessageBox.Show("This will immediately restart the server. Continue?", "Confim", MessageBoxButtons.YesNo); - if (DialogResult == DialogResult.No) - return; - var res = Server.GetComponent().Restart(); - if (res != null) - MessageBox.Show(res); - } - - private void ServerGStopButton_Checked(object sender, EventArgs e) - { - if (updatingFields) - return; - var DialogResult = MessageBox.Show("This will shut down the server when the current round ends. Continue?", "Confim", MessageBoxButtons.YesNo); - if (DialogResult == DialogResult.No) - return; - Server.GetComponent().RequestStop(); - LoadServerPage(); - } - - private void ServerGRestartButton_Click(object sender, EventArgs e) - { - var DialogResult = MessageBox.Show("This will restart the server when the current round ends. Continue?", "Confim", MessageBoxButtons.YesNo); - if (DialogResult == DialogResult.No) - return; - Server.GetComponent().RequestRestart(); - } - - - private void FullUpdateWorker_DoWork(object sender, DoWorkEventArgs e) - { - var Repo = Server.GetComponent(); - var DM = Server.GetComponent(); - switch (fuAction) - { - case FullUpdateAction.Testmerge: - updateError = Repo.MergePullRequest(testmergePR); - if (updateError == null) - { - Repo.GenerateChangelog(out updateError); - updateError = DM.Compile(true) ? updateError : "Compilation failed!"; - } - break; - case FullUpdateAction.UpdateHard: - updateError = Repo.Update(true); - if (updateError == null) - { - Repo.GenerateChangelog(out updateError); - if (updateError == null) - updateError = Repo.PushChangelog(); - updateError = DM.Compile(true) ? updateError : "Compilation failed!"; - } - break; - case FullUpdateAction.UpdateHardTestmerge: - updateError = Repo.Update(true); - if (updateError == null) - { - Repo.GenerateChangelog(out updateError); - if (updateError == null) - updateError = Repo.PushChangelog(); - updateError = Repo.MergePullRequest(testmergePR); - if (updateError == null) - { - Repo.GenerateChangelog(out updateError); - updateError = DM.Compile(true) ? updateError : "Compilation failed!"; - } - } - break; - case FullUpdateAction.UpdateMerge: - updateError = Repo.Update(false); - if (updateError == null) - { - Repo.GenerateChangelog(out updateError); - if (updateError == null) - Repo.PushChangelog(); //not an error 99% of the time if this fails, just a dirty tree - updateError = DM.Compile(true) ? updateError : "Compilation failed!"; - } - break; - case FullUpdateAction.Reset: - updateError = Repo.Reset(true); - if (updateError == null) - { - Repo.GenerateChangelog(out updateError); - updateError = DM.Compile(true) ? updateError : "Compilation failed!"; - } - break; - } - } - private void ResetTestmerge_Click(object sender, EventArgs e) - { - RunServerUpdate(FullUpdateAction.Reset); - } - - private void UpdateHardButton_Click(object sender, System.EventArgs e) - { - RunServerUpdate(FullUpdateAction.UpdateHard); - } - - private void UpdateTestmergeButton_Click(object sender, System.EventArgs e) - { - RunServerUpdate(FullUpdateAction.UpdateHardTestmerge, (ushort)ServerTestmergeInput.Value); - } - - private void UpdateMergeButton_Click(object sender, System.EventArgs e) - { - RunServerUpdate(FullUpdateAction.UpdateMerge); - } - private void TestmergeButton_Click(object sender, System.EventArgs e) - { - RunServerUpdate(FullUpdateAction.Testmerge, (ushort)ServerTestmergeInput.Value); - } - - private void NudgePortSelector_ValueChanged(object sender, EventArgs e) - { - if (!updatingFields) - Server.GetComponent().SetInteropPort((ushort)NudgePortSelector.Value); - } - - private void SecuritySelector_SelectedIndexChanged(object sender, EventArgs e) - { - if (!updatingFields) - if (!Server.GetComponent().SetSecurityLevel((TGDreamDaemonSecurity)SecuritySelector.SelectedIndex)) - MessageBox.Show("Security change will be applied after next server reboot."); - } - - private void WorldAnnounceButton_Click(object sender, EventArgs e) - { - var msg = WorldAnnounceField.Text; - if (!String.IsNullOrWhiteSpace(msg)) - { - var res = Server.GetComponent().WorldAnnounce(msg); - if (res != null) - { - MessageBox.Show(res); - return; - } - } - WorldAnnounceField.Text = ""; - } - - private void WebclientCheckBox_CheckedChanged(object sender, EventArgs e) - { - if (!updatingFields) - Server.GetComponent().SetWebclient(WebclientCheckBox.Checked); - } - } -} +using System; +using System.ComponentModel; +using System.Windows.Forms; +using TGServiceInterface; + +namespace TGControlPanel +{ + partial class Main + { + enum FullUpdateAction + { + UpdateHard, + UpdateMerge, + UpdateHardTestmerge, + Reset, + Testmerge, + } + + FullUpdateAction fuAction; + ushort testmergePR; + string updateError; + bool updatingFields = false; + + string DDStatusString = null; + void InitServerPage() + { + LoadServerPage(); + ServerTimer.Start(); + WorldStatusChecker.RunWorkerAsync(); + WorldStatusChecker.RunWorkerCompleted += WorldStatusChecker_RunWorkerCompleted; + FullUpdateWorker.RunWorkerCompleted += FullUpdateWorker_RunWorkerCompleted; + ServerPathTextbox.LostFocus += ServerPathTextbox_LostFocus; + ServerPathTextbox.KeyDown += ServerPathTextbox_KeyDown; + projectNameText.LostFocus += ProjectNameText_LostFocus; + projectNameText.KeyDown += ProjectNameText_KeyDown; + ServerStartBGW.RunWorkerCompleted += ServerStartBGW_RunWorkerCompleted; + } + + private void ServerStartBGW_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + if (e.Result != null) + MessageBox.Show((string)e.Result); + } + + private void ProjectNameText_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + UpdateProjectName(); + } + + private void ServerPathTextbox_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + UpdateServerPath(); + } + + private void FullUpdateWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + if (updateError != null) + MessageBox.Show(updateError); + UpdateHardButton.Enabled = true; + UpdateMergeButton.Enabled = true; + TestmergeButton.Enabled = true; + UpdateTestmergeButton.Enabled = true; + LoadServerPage(); + ServerTimer.Start(); + } + + private void WorldStatusChecker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + if (DDStatusString != "Topic recieve error!" || ServerStatusLabel.Text == "OFFLINE") + ServerStatusLabel.Text = DDStatusString; + WorldStatusTimer.Start(); + } + + private void CompileCancelButton_Click(object sender, EventArgs e) + { + var res = Server.GetComponent().Cancel(); + if (res != null) + MessageBox.Show(res); + LoadServerPage(); + } + + private void ServerPathTextbox_LostFocus(object sender, EventArgs e) + { + UpdateServerPath(); + } + + void UpdateServerPath() + { + var Config = Server.GetComponent(); + if (updatingFields || ServerPathTextbox.Text.Trim() == Config.ServerDirectory()) + return; + var DialogResult = MessageBox.Show("This will move the entire server installation.", "Confim", MessageBoxButtons.YesNo); + if (DialogResult != DialogResult.Yes) + return; + MessageBox.Show(Config.MoveServer(ServerPathTextbox.Text) ?? "Success!"); + } + + void LoadServerPage() + { + var RepoExists = Server.GetComponent().Exists(); + compileButton.Visible = RepoExists; + initializeButton.Visible = RepoExists; + AutostartCheckbox.Visible = RepoExists; + WebclientCheckBox.Visible = RepoExists; + PortSelector.Visible = RepoExists; + projectNameText.Visible = RepoExists; + compilerProgressBar.Visible = RepoExists; + CompilerStatusLabel.Visible = RepoExists; + CompileCancelButton.Visible = RepoExists; + CompilerLabel.Visible = RepoExists; + ProjectPathLabel.Visible = RepoExists; + ServerPRLabel.Visible = RepoExists; + ServerGStopButton.Visible = RepoExists; + ServerStartButton.Visible = RepoExists; + ServerGRestartButton.Visible = RepoExists; + ServerRestartButton.Visible = RepoExists; + PortLabel.Visible = RepoExists; + ServerStopButton.Visible = RepoExists; + TestmergeButton.Visible = RepoExists; + ServerTestmergeInput.Visible = RepoExists; + UpdateHardButton.Visible = RepoExists; + UpdateMergeButton.Visible = RepoExists; + UpdateTestmergeButton.Visible = RepoExists; + ResetTestmerge.Visible = RepoExists; + WorldAnnounceField.Visible = RepoExists; + WorldAnnounceButton.Visible = RepoExists; + + var DM = Server.GetComponent(); + var DD = Server.GetComponent(); + var Config = Server.GetComponent(); + + if (updatingFields) + return; + + try + { + updatingFields = true; + + if (!ServerPathTextbox.Focused) + ServerPathTextbox.Text = Config.ServerDirectory(); + + SecuritySelector.SelectedIndex = (int)DD.SecurityLevel(); + + if (!RepoExists) + return; + + var Online = DD.DaemonStatus() == TGDreamDaemonStatus.Online; + ServerGStopButton.Enabled = Online; + ServerGRestartButton.Enabled = Online; + ServerStopButton.Enabled = Online; + ServerRestartButton.Enabled = Online; + + var ShuttingDown = DD.ShutdownInProgress(); + ServerGStopButton.Checked = ShuttingDown; + + AutostartCheckbox.Checked = DD.Autostart(); + WebclientCheckBox.Checked = DD.Webclient(); + if (!PortSelector.Focused) + PortSelector.Value = DD.Port(); + if (!projectNameText.Focused) + projectNameText.Text = DM.ProjectName(); + + switch (DM.GetStatus()) + { + case TGCompilerStatus.Compiling: + CompilerStatusLabel.Text = "Compiling..."; + compilerProgressBar.Style = ProgressBarStyle.Marquee; + compileButton.Enabled = false; + initializeButton.Enabled = false; + CompileCancelButton.Enabled = true; + break; + case TGCompilerStatus.Initializing: + CompilerStatusLabel.Text = "Initializing..."; + compilerProgressBar.Style = ProgressBarStyle.Marquee; + compileButton.Enabled = false; + initializeButton.Enabled = false; + CompileCancelButton.Enabled = false; + break; + case TGCompilerStatus.Initialized: + CompilerStatusLabel.Text = "Idle"; + compilerProgressBar.Style = ProgressBarStyle.Blocks; + initializeButton.Enabled = true; + compileButton.Enabled = true; + CompileCancelButton.Enabled = false; + break; + case TGCompilerStatus.Uninitialized: + CompilerStatusLabel.Text = "Uninitialized"; + compilerProgressBar.Style = ProgressBarStyle.Blocks; + compileButton.Enabled = false; + initializeButton.Enabled = true; + CompileCancelButton.Enabled = false; + break; + default: + CompilerStatusLabel.Text = "Unknown!"; + compilerProgressBar.Style = ProgressBarStyle.Blocks; + initializeButton.Enabled = true; + compileButton.Enabled = true; + CompileCancelButton.Enabled = true; + break; + } + var error = DM.CompileError(); + if (error != null) + MessageBox.Show("Error: " + error); + } + finally + { + updatingFields = false; + } + } + + private void ServerTimer_Tick(object sender, System.EventArgs e) + { + try + { + LoadServerPage(); + } + catch (Exception ex) + { + ServerTimer.Stop(); + Program.ServiceDisconnectException(ex); + } + } + private void ProjectNameText_LostFocus(object sender, EventArgs e) + { + UpdateProjectName(); + } + + void UpdateProjectName() + { + if (!updatingFields) + Server.GetComponent().SetProjectName(projectNameText.Text); + } + + private void PortSelector_ValueChanged(object sender, EventArgs e) + { + if (!updatingFields) + Server.GetComponent().SetPort((ushort)PortSelector.Value); + } + + private void RunServerUpdate(FullUpdateAction fua, ushort tm = 0) + { + if (FullUpdateWorker.IsBusy) + return; + testmergePR = tm; + fuAction = fua; + initializeButton.Enabled = false; + compileButton.Enabled = false; + UpdateHardButton.Enabled = false; + UpdateMergeButton.Enabled = false; + TestmergeButton.Enabled = false; + UpdateTestmergeButton.Enabled = false; + compilerProgressBar.Style = ProgressBarStyle.Marquee; + switch (fuAction) + { + case FullUpdateAction.Testmerge: + CompilerStatusLabel.Text = String.Format("Testmerging pull request #{0}...", testmergePR); + break; + case FullUpdateAction.UpdateHard: + CompilerStatusLabel.Text = String.Format("Updating Server (RESET)..."); + break; + case FullUpdateAction.UpdateMerge: + CompilerStatusLabel.Text = String.Format("Updating Server (MERGE)..."); + break; + case FullUpdateAction.UpdateHardTestmerge: + CompilerStatusLabel.Text = String.Format("Updating and testmerging pull request #{0}...", testmergePR); + break; + } + ServerTimer.Stop(); + FullUpdateWorker.RunWorkerAsync(); + } + + private void InitializeButton_Click(object sender, EventArgs e) + { + if (!Server.GetComponent().Initialize()) + MessageBox.Show("Unable to start initialization!"); + LoadServerPage(); + } + private void CompileButton_Click(object sender, EventArgs e) + { + if (!Server.GetComponent().Compile()) + MessageBox.Show("Unable to start compilation!"); + LoadServerPage(); + } + //because of lol byond this can take some time... + private void WorldStatusChecker_DoWork(object sender, DoWorkEventArgs e) + { + try + { + if (!Server.GetComponent().Exists()) + DDStatusString = "NOT INSTALLED"; + else + DDStatusString = Server.GetComponent().StatusString(true); + } + catch + { + DDStatusString = "ERROR"; + } + } + + private void WorldStatusTimer_Tick(object sender, System.EventArgs e) + { + WorldStatusTimer.Stop(); + WorldStatusChecker.RunWorkerAsync(); + } + + private void AutostartCheckbox_CheckedChanged(object sender, System.EventArgs e) + { + if (!updatingFields) + Server.GetComponent().SetAutostart(AutostartCheckbox.Checked); + } + private void ServerStartButton_Click(object sender, System.EventArgs e) + { + if (!ServerStartBGW.IsBusy) + ServerStartBGW.RunWorkerAsync(); + } + + private void ServerStartBGW_DoWork(object sender, DoWorkEventArgs e) + { + try + { + e.Result = Server.GetComponent().Start(); + } + catch (Exception ex) + { + e.Result = ex.ToString(); + } + } + + private void ServerStopButton_Click(object sender, EventArgs e) + { + var DialogResult = MessageBox.Show("This will immediately shut down the server. Continue?", "Confim", MessageBoxButtons.YesNo); + if (DialogResult == DialogResult.No) + return; + var res = Server.GetComponent().Stop(); + if (res != null) + MessageBox.Show(res); + } + + private void ServerRestartButton_Click(object sender, EventArgs e) + { + var DialogResult = MessageBox.Show("This will immediately restart the server. Continue?", "Confim", MessageBoxButtons.YesNo); + if (DialogResult == DialogResult.No) + return; + var res = Server.GetComponent().Restart(); + if (res != null) + MessageBox.Show(res); + } + + private void ServerGStopButton_Checked(object sender, EventArgs e) + { + if (updatingFields) + return; + var DialogResult = MessageBox.Show("This will shut down the server when the current round ends. Continue?", "Confim", MessageBoxButtons.YesNo); + if (DialogResult == DialogResult.No) + return; + Server.GetComponent().RequestStop(); + LoadServerPage(); + } + + private void ServerGRestartButton_Click(object sender, EventArgs e) + { + var DialogResult = MessageBox.Show("This will restart the server when the current round ends. Continue?", "Confim", MessageBoxButtons.YesNo); + if (DialogResult == DialogResult.No) + return; + Server.GetComponent().RequestRestart(); + } + + + private void FullUpdateWorker_DoWork(object sender, DoWorkEventArgs e) + { + var Repo = Server.GetComponent(); + var DM = Server.GetComponent(); + switch (fuAction) + { + case FullUpdateAction.Testmerge: + updateError = Repo.MergePullRequest(testmergePR); + if (updateError == null) + { + Repo.GenerateChangelog(out updateError); + updateError = DM.Compile(true) ? updateError : "Compilation failed!"; + } + break; + case FullUpdateAction.UpdateHard: + updateError = Repo.Update(true); + if (updateError == null) + { + Repo.GenerateChangelog(out updateError); + if (updateError == null) + updateError = Repo.PushChangelog(); + updateError = DM.Compile(true) ? updateError : "Compilation failed!"; + } + break; + case FullUpdateAction.UpdateHardTestmerge: + updateError = Repo.Update(true); + if (updateError == null) + { + Repo.GenerateChangelog(out updateError); + if (updateError == null) + updateError = Repo.PushChangelog(); + updateError = Repo.MergePullRequest(testmergePR); + if (updateError == null) + { + Repo.GenerateChangelog(out updateError); + updateError = DM.Compile(true) ? updateError : "Compilation failed!"; + } + } + break; + case FullUpdateAction.UpdateMerge: + updateError = Repo.Update(false); + if (updateError == null) + { + Repo.GenerateChangelog(out updateError); + if (updateError == null) + Repo.PushChangelog(); //not an error 99% of the time if this fails, just a dirty tree + updateError = DM.Compile(true) ? updateError : "Compilation failed!"; + } + break; + case FullUpdateAction.Reset: + updateError = Repo.Reset(true); + if (updateError == null) + { + Repo.GenerateChangelog(out updateError); + updateError = DM.Compile(true) ? updateError : "Compilation failed!"; + } + break; + } + } + private void ResetTestmerge_Click(object sender, EventArgs e) + { + RunServerUpdate(FullUpdateAction.Reset); + } + + private void UpdateHardButton_Click(object sender, System.EventArgs e) + { + RunServerUpdate(FullUpdateAction.UpdateHard); + } + + private void UpdateTestmergeButton_Click(object sender, System.EventArgs e) + { + RunServerUpdate(FullUpdateAction.UpdateHardTestmerge, (ushort)ServerTestmergeInput.Value); + } + + private void UpdateMergeButton_Click(object sender, System.EventArgs e) + { + RunServerUpdate(FullUpdateAction.UpdateMerge); + } + private void TestmergeButton_Click(object sender, System.EventArgs e) + { + RunServerUpdate(FullUpdateAction.Testmerge, (ushort)ServerTestmergeInput.Value); + } + + private void SecuritySelector_SelectedIndexChanged(object sender, EventArgs e) + { + if (!updatingFields) + if (!Server.GetComponent().SetSecurityLevel((TGDreamDaemonSecurity)SecuritySelector.SelectedIndex)) + MessageBox.Show("Security change will be applied after next server reboot."); + } + + private void WorldAnnounceButton_Click(object sender, EventArgs e) + { + var msg = WorldAnnounceField.Text; + if (!String.IsNullOrWhiteSpace(msg)) + { + var res = Server.GetComponent().WorldAnnounce(msg); + if (res != null) + { + MessageBox.Show(res); + return; + } + } + WorldAnnounceField.Text = ""; + } + + private void WebclientCheckBox_CheckedChanged(object sender, EventArgs e) + { + if (!updatingFields) + Server.GetComponent().SetWebclient(WebclientCheckBox.Checked); + } + } +} diff --git a/TGServerService/Compiler.cs b/TGServerService/Compiler.cs index 5768508be1..43fb196608 100644 --- a/TGServerService/Compiler.cs +++ b/TGServerService/Compiler.cs @@ -1,594 +1,607 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading; -using TGServiceInterface; - -namespace TGServerService -{ - partial class TGStationServer : ITGCompiler - { - #region Win32 Shit - [DllImport("kernel32.dll", SetLastError = true)] - static extern bool CreateSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, SymbolicLink dwFlags); - enum SymbolicLink - { - File = 0, - Directory = 1 - } - #endregion - - const string StaticDirs = "Static"; - const string StaticDataDir = StaticDirs + "/data"; - const string StaticConfigDir = StaticDirs + "/config"; - const string StaticBackupDir = "Static_BACKUP"; - - const string LibMySQLFile = "/libmysql.dll"; - - const string GameDir = "Game"; - const string GameDirA = GameDir + "/A"; - const string GameDirB = GameDir + "/B"; - const string GameDirLive = GameDir + "/Live"; - - const string LiveFile = "/TestLive.lk"; - const string ADirTest = GameDirA + LiveFile; - const string BDirTest = GameDirB + LiveFile; - const string LiveDirTest = GameDirLive + LiveFile; - - List copyExcludeList = new List { ".git", "data", "config", "libmysql.dll" }; //shit we handle - List deleteExcludeList = new List { "data", "config", "libmysql.dll" }; //shit we handle - - object CompilerLock = new object(); - TGCompilerStatus compilerCurrentStatus; - string lastCompilerError; - - Thread CompilerThread; - bool compilationCancellationRequestation = false; - bool canCancelCompilation = false; - bool silentCompile = false; - - bool UpdateStaged = false; - - //deletes leftovers and checks current status - void InitCompiler() - { - if(File.Exists(LiveDirTest)) - File.Delete(LiveDirTest); - compilerCurrentStatus = IsInitialized(); - } - - //public api - public TGCompilerStatus GetStatus() - { - lock (CompilerLock) - { - return compilerCurrentStatus; - } - } - - //public api - public string CompileError() - { - lock (CompilerLock) - { - var err = lastCompilerError; - lastCompilerError = null; - return err; - } - } - - //kills the compiler if its running - void DisposeCompiler() - { - lock (CompilerLock) - { - if (CompilerThread == null || !CompilerThread.IsAlive) - return; - CompilerThread.Abort(); //this will safely kill dm - InitCompiler(); //also cleanup - } - } - - //translates the win32 api call into an exception if it fails - void CreateSymlink(string link, string target) - { - if (!CreateSymbolicLink(new DirectoryInfo(link).FullName, new DirectoryInfo(target).FullName, File.Exists(target) ? SymbolicLink.File : SymbolicLink.Directory)) - throw new Exception(String.Format("Failed to create symlink from {0} to {1}! Error: {2}", target, link, Marshal.GetLastWin32Error())); - } - - //requires CompilerLock to be locked - bool CompilerIdleNoLock() - { - return compilerCurrentStatus == TGCompilerStatus.Uninitialized || compilerCurrentStatus == TGCompilerStatus.Initialized; - } - - //public api - public bool Initialize() - { - lock (CompilerLock) - { - if (!CompilerIdleNoLock()) - return false; - lastCompilerError = null; - compilerCurrentStatus = TGCompilerStatus.Initializing; - CompilerThread = new Thread(new ThreadStart(InitializeImpl)); - CompilerThread.Start(); - return true; - } - } - - //what is says on the tin - TGCompilerStatus IsInitialized() - { - if (File.Exists(GameDirLive + LibMySQLFile)) //its a good tell, jim - return TGCompilerStatus.Initialized; - return TGCompilerStatus.Uninitialized; - } - - //we need to remove symlinks before we can recursively delete - void CleanGameFolder() - { - if (Directory.Exists(GameDirB + LibMySQLFile)) - Directory.Delete(GameDirB + LibMySQLFile); - - if (Directory.Exists(GameDirA + "/data")) - Directory.Delete(GameDirA + "/data"); - - if (Directory.Exists(GameDirA + "/config")) - Directory.Delete(GameDirA + "/config"); - - if (Directory.Exists(GameDirA + LibMySQLFile)) - Directory.Delete(GameDirA + LibMySQLFile); - - if (Directory.Exists(GameDirB + "/data")) - Directory.Delete(GameDirB + "/data"); - - if (Directory.Exists(GameDirB + "/config")) - Directory.Delete(GameDirB + "/config"); - - if (Directory.Exists(GameDirLive)) - Directory.Delete(GameDirLive); - } - - //Initializing thread - public void InitializeImpl() - { - try - { - if (DaemonStatus() != TGDreamDaemonStatus.Offline) - { - lock (CompilerLock) - { - lastCompilerError = "Dream daemon must not be running"; - compilerCurrentStatus = IsInitialized(); - return; - } - } - - if (!Exists()) //repo - { - lock (CompilerLock) - { - lastCompilerError = "Repository is not setup!"; - compilerCurrentStatus = IsInitialized(); - return; - } - } - try - { - SendMessage("DM: Setting up symlinks...", ChatMessageType.DeveloperInfo); - CleanGameFolder(); - Program.DeleteDirectory(GameDir); - - Directory.CreateDirectory(GameDirA); - Directory.CreateDirectory(GameDirB); - - CreateSymlink(GameDirA + "/data", StaticDataDir); - CreateSymlink(GameDirB + "/data", StaticDataDir); - - CreateSymlink(GameDirA + "/config", StaticConfigDir); - CreateSymlink(GameDirB + "/config", StaticConfigDir); - - CreateSymlink(GameDirA + LibMySQLFile, StaticDirs + LibMySQLFile); - CreateSymlink(GameDirB + LibMySQLFile, StaticDirs + LibMySQLFile); - - CreateSymlink(GameDirLive, GameDirA); - - lock (CompilerLock) - { - compilerCurrentStatus = TGCompilerStatus.Compiling; - silentCompile = true; - } - } - catch (ThreadAbortException) - { - return; - } - catch (Exception e) - { - lock (CompilerLock) - { - SendMessage("DM: Setup failed!", ChatMessageType.DeveloperInfo); - lastCompilerError = e.ToString(); - compilerCurrentStatus = TGCompilerStatus.Uninitialized; - return; - } - } - } - catch (ThreadAbortException) - { - return; - } - CompileImpl(); - } - - //Returns the A or B dir in which the game is NOT running - string GetStagingDir() - { - string TheDir; - if (!Directory.Exists(GameDirLive)) - TheDir = GameDirA; - else - { - File.Create(LiveDirTest).Close(); - try - { - if (File.Exists(ADirTest)) - TheDir = GameDirA; - else if (File.Exists(BDirTest)) - TheDir = GameDirB; - else - throw new Exception("Unable to determine current live directory!"); - } - finally - { - File.Delete(LiveDirTest); - } - - - TheDir = InvertDirectory(TheDir); - - } - //So TheDir is what the Live folder is NOT pointing to - //Now we need to check if DD is running that folder and swap it if necessary - - var rsclock = TheDir + "/" + Properties.Settings.Default.ProjectName + ".rsc.lk"; - if (File.Exists(rsclock)) - { - try - { - File.Delete(rsclock); - } - catch //held open by byond - { - //This means there is a staged update waiting to be applied, we have to unstage it before we can work - Directory.Delete(GameDirLive); - CreateSymlink(GameDirLive, TheDir); - return InvertDirectory(TheDir); - } - } - return TheDir; - } - - //I hope you can read this - string InvertDirectory(string gameDirectory) - { - if (gameDirectory == GameDirA) - return GameDirB; - else - return GameDirA; - } - - //Compiler thread - void CompileImpl() - { - try - { - if (GetVersion(TGByondVersion.Installed) == null) - { - lastCompilerError = "BYOND not installed!"; - compilerCurrentStatus = TGCompilerStatus.Initialized; - return; - } - bool silent; - lock (CompilerLock) - { - silent = silentCompile; - silentCompile = false; - } - - if(!silent) - SendMessage("DM: Compiling...", ChatMessageType.DeveloperInfo); - - var resurrectee = GetStagingDir(); - - Program.DeleteDirectory(resurrectee, true, deleteExcludeList); - - Directory.CreateDirectory(resurrectee + "/.git/logs"); - - if (!Directory.Exists(resurrectee + "/config")) - CreateSymlink(resurrectee + "/config", StaticConfigDir); - if (!Directory.Exists(resurrectee + "/data")) - CreateSymlink(resurrectee + "/data", StaticDataDir); - if (!File.Exists(resurrectee + LibMySQLFile)) - CreateSymlink(resurrectee + LibMySQLFile, StaticDirs + LibMySQLFile); - - bool repobusy_check = false; - if (!Monitor.TryEnter(RepoLock)) - repobusy_check = true; - - if (!repobusy_check) - { - if (RepoBusy) - repobusy_check = true; - else - RepoBusy = true; - Monitor.Exit(RepoLock); - } - - if (repobusy_check) - { - SendMessage("DM: Copy aborted, repo locked!", ChatMessageType.DeveloperInfo); - lock (CompilerLock) - { - lastCompilerError = "The repo could not be locked for copying"; - compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid - return; - } - } - try - { - Program.CopyDirectory(RepoPath, resurrectee, copyExcludeList); - //just the tip - const string GitLogsDir = "/.git/logs"; - Program.CopyDirectory(RepoPath + GitLogsDir, resurrectee + GitLogsDir); - try - { - File.Copy(PRJobFile, resurrectee + Path.DirectorySeparatorChar + PRJobFile); - } - catch { } - } - finally - { - lock (RepoLock) - { - RepoBusy = false; - } - } - - var res = CreateBackup(); - if(res != null) - lock (CompilerLock) - { - lastCompilerError = res; - compilerCurrentStatus = TGCompilerStatus.Initialized; - return; - } - - var dmeName = ProjectName() + ".dme"; - var dmePath = resurrectee + "/" + dmeName; - if (!File.Exists(dmePath)) - { - var errorMsg = String.Format("Could not find {0}!", dmeName); - SendMessage("DM: " + errorMsg, ChatMessageType.DeveloperInfo); - TGServerService.WriteError(errorMsg, TGServerService.EventID.DMCompileCrash); - lock (CompilerLock) - { - lastCompilerError = errorMsg; - compilerCurrentStatus = TGCompilerStatus.Initialized; - return; - } - } - - if (!PrecompileHook()) - { - lastCompilerError = "The precompile hook failed"; - compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid - TGServerService.WriteWarning("Precompile hook failed!", TGServerService.EventID.DMCompileError); - return; - } - - using (var DM = new Process()) //will kill the process if the thread is terminated - { - DM.StartInfo.FileName = ByondDirectory + "/bin/dm.exe"; - DM.StartInfo.Arguments = String.Format("-clean {0}", dmePath); - DM.StartInfo.RedirectStandardOutput = true; - DM.StartInfo.UseShellExecute = false; - var OutputList = new StringBuilder(); - DM.OutputDataReceived += new DataReceivedEventHandler( - delegate(object sender, DataReceivedEventArgs e) - { - OutputList.Append(Environment.NewLine); - OutputList.Append(e.Data); - } - ); - try - { - lock (CompilerLock) - { - if (compilationCancellationRequestation) - return; - canCancelCompilation = true; - } - - DM.Start(); - DM.BeginOutputReadLine(); - while (!DM.HasExited) - DM.WaitForExit(100); - DM.CancelOutputRead(); - - lock (CompilerLock) - { - canCancelCompilation = false; - compilationCancellationRequestation = false; - } - } - catch - { - if (!DM.HasExited) - { - DM.Kill(); - DM.WaitForExit(); - } - throw; - } - finally - { - lock (CompilerLock) - { - canCancelCompilation = false; - } - } - - if (DM.ExitCode == 0) - { - lock (watchdogLock) - { - try - { - //gotta go fast - var online = currentStatus == TGDreamDaemonStatus.Online; - if(online) - Proc.Suspend(); - try - { - if (Directory.Exists(GameDirLive)) - //these two lines should be atomic but this is the best we can do - Directory.Delete(GameDirLive); - CreateSymlink(GameDirLive, resurrectee); - } - finally - { - if(online && !Proc.HasExited) - Proc.Resume(); - } - } - finally - { - if (currentStatus == TGDreamDaemonStatus.Online) - { - try - { - Proc.PriorityClass = ProcessPriorityClass.Normal; - } - catch { } - Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Normal; - Thread.CurrentThread.Priority = ThreadPriority.Normal; - } - } - } - var staged = DaemonStatus() != TGDreamDaemonStatus.Offline; - if (!PostcompileHook()) - { - lastCompilerError = "The postcompile hook failed"; - compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid - TGServerService.WriteWarning("Postcompile hook failed!", TGServerService.EventID.DMCompileError); - return; - } - var msg = String.Format("Compile complete!{0}", !staged ? "" : " Server will update next round."); - SendMessage("DM: " + msg, ChatMessageType.DeveloperInfo); - TGServerService.WriteInfo(msg, TGServerService.EventID.DMCompileSuccess); - lock (CompilerLock) - { - if (staged) - UpdateStaged = true; - lastCompilerError = null; - compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid - } - } - else - { - SendMessage("DM: Compile failed!", ChatMessageType.DeveloperInfo); //Also happens for warnings - TGServerService.WriteWarning("Compile error: " + OutputList.ToString(), TGServerService.EventID.DMCompileError); - lock (CompilerLock) - { - lastCompilerError = "DM compile failure"; - compilerCurrentStatus = TGCompilerStatus.Initialized; - } - } - } - - } - catch (ThreadAbortException) - { - return; - } - catch (Exception e) - { - SendMessage("DM: Compiler thread crashed!", ChatMessageType.DeveloperInfo); - TGServerService.WriteError("Compile manager errror: " + e.ToString(), TGServerService.EventID.DMCompileCrash); - lock (CompilerLock) - { - lastCompilerError = e.ToString(); - compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid - } - } - finally - { - lock (CompilerLock) - { - canCancelCompilation = false; - if (compilationCancellationRequestation) - { - compilerCurrentStatus = TGCompilerStatus.Initialized; - compilationCancellationRequestation = false; - SendMessage("DM: Compile cancelled!", ChatMessageType.DeveloperInfo); - TGServerService.WriteInfo("Compilation cancelled", TGServerService.EventID.DMCompileCancel); - } - } - } - } - //kicks off the compiler thread - //public api - public bool Compile(bool silent = false) - { - lock (CompilerLock) - { - if (compilerCurrentStatus != TGCompilerStatus.Initialized) - return false; - silentCompile = silent; - lastCompilerError = null; - compilerCurrentStatus = TGCompilerStatus.Compiling; - CompilerThread = new Thread(new ThreadStart(CompileImpl)); - CompilerThread.Start(); - } - return true; - } - - //public api - public string ProjectName() - { - lock (CompilerLock) - { - return Properties.Settings.Default.ProjectName; - } - } - - //public api - public void SetProjectName(string projectName) - { - lock (CompilerLock) - { - Properties.Settings.Default.ProjectName = projectName; - } - } - - public string Cancel() - { - lock (CompilerLock) - { - if (compilerCurrentStatus != TGCompilerStatus.Compiling) - return "Invalid state for cancellation!"; - compilationCancellationRequestation = true; - if (canCancelCompilation) - CompilerThread.Abort(); - else - return "Compilation will be cancelled when the repo copy is complete"; - return null; - } - } - } -} +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using TGServiceInterface; + +namespace TGServerService +{ + partial class TGStationServer : ITGCompiler + { + #region Win32 Shit + [DllImport("kernel32.dll", SetLastError = true)] + static extern bool CreateSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, SymbolicLink dwFlags); + enum SymbolicLink + { + File = 0, + Directory = 1 + } + #endregion + + const string StaticDirs = "Static"; + const string StaticDataDir = StaticDirs + "/data"; + const string StaticConfigDir = StaticDirs + "/config"; + const string StaticBackupDir = "Static_BACKUP"; + + const string LibMySQLFile = "/libmysql.dll"; + + const string GameDir = "Game"; + const string GameDirA = GameDir + "/A"; + const string GameDirB = GameDir + "/B"; + const string GameDirLive = GameDir + "/Live"; + + const string LiveFile = "/TestLive.lk"; + const string ADirTest = GameDirA + LiveFile; + const string BDirTest = GameDirB + LiveFile; + const string LiveDirTest = GameDirLive + LiveFile; + + const string InterfaceDLLName = "TGServiceInterface.dll"; + + List copyExcludeList = new List { ".git", "data", "config", "libmysql.dll" }; //shit we handle + List deleteExcludeList = new List { "data", "config", "libmysql.dll" }; //shit we handle + + object CompilerLock = new object(); + TGCompilerStatus compilerCurrentStatus; + string lastCompilerError; + + Thread CompilerThread; + bool compilationCancellationRequestation = false; + bool canCancelCompilation = false; + bool silentCompile = false; + + bool UpdateStaged = false; + + //deletes leftovers and checks current status + void InitCompiler() + { + if(File.Exists(LiveDirTest)) + File.Delete(LiveDirTest); + compilerCurrentStatus = IsInitialized(); + } + + //public api + public TGCompilerStatus GetStatus() + { + lock (CompilerLock) + { + return compilerCurrentStatus; + } + } + + //public api + public string CompileError() + { + lock (CompilerLock) + { + var err = lastCompilerError; + lastCompilerError = null; + return err; + } + } + + //kills the compiler if its running + void DisposeCompiler() + { + lock (CompilerLock) + { + if (CompilerThread == null || !CompilerThread.IsAlive) + return; + CompilerThread.Abort(); //this will safely kill dm + InitCompiler(); //also cleanup + } + } + + //translates the win32 api call into an exception if it fails + void CreateSymlink(string link, string target) + { + if (!CreateSymbolicLink(new DirectoryInfo(link).FullName, new DirectoryInfo(target).FullName, File.Exists(target) ? SymbolicLink.File : SymbolicLink.Directory)) + throw new Exception(String.Format("Failed to create symlink from {0} to {1}! Error: {2}", target, link, Marshal.GetLastWin32Error())); + } + + //requires CompilerLock to be locked + bool CompilerIdleNoLock() + { + return compilerCurrentStatus == TGCompilerStatus.Uninitialized || compilerCurrentStatus == TGCompilerStatus.Initialized; + } + + //public api + public bool Initialize() + { + lock (CompilerLock) + { + if (!CompilerIdleNoLock()) + return false; + lastCompilerError = null; + compilerCurrentStatus = TGCompilerStatus.Initializing; + CompilerThread = new Thread(new ThreadStart(InitializeImpl)); + CompilerThread.Start(); + return true; + } + } + + //what is says on the tin + TGCompilerStatus IsInitialized() + { + if (File.Exists(GameDirLive + LibMySQLFile)) //its a good tell, jim + return TGCompilerStatus.Initialized; + return TGCompilerStatus.Uninitialized; + } + + //we need to remove symlinks before we can recursively delete + void CleanGameFolder() + { + if (Directory.Exists(Path.Combine(GameDirA, InterfaceDLLName))) + Directory.Delete(Path.Combine(GameDirA, InterfaceDLLName)); + + if (Directory.Exists(GameDirA + LibMySQLFile)) + Directory.Delete(GameDirA + LibMySQLFile); + + if (Directory.Exists(GameDirA + "/data")) + Directory.Delete(GameDirA + "/data"); + + if (Directory.Exists(GameDirA + "/config")) + Directory.Delete(GameDirA + "/config"); + + if (Directory.Exists(Path.Combine(GameDirB, InterfaceDLLName))) + Directory.Delete(Path.Combine(GameDirB, InterfaceDLLName)); + + if (Directory.Exists(GameDirB + LibMySQLFile)) + Directory.Delete(GameDirB + LibMySQLFile); + + if (Directory.Exists(GameDirB + "/data")) + Directory.Delete(GameDirB + "/data"); + + if (Directory.Exists(GameDirB + "/config")) + Directory.Delete(GameDirB + "/config"); + + if (Directory.Exists(GameDirLive)) + Directory.Delete(GameDirLive); + } + + //Initializing thread + public void InitializeImpl() + { + try + { + if (DaemonStatus() != TGDreamDaemonStatus.Offline) + { + lock (CompilerLock) + { + lastCompilerError = "Dream daemon must not be running"; + compilerCurrentStatus = IsInitialized(); + return; + } + } + + if (!Exists()) //repo + { + lock (CompilerLock) + { + lastCompilerError = "Repository is not setup!"; + compilerCurrentStatus = IsInitialized(); + return; + } + } + try + { + SendMessage("DM: Setting up symlinks...", ChatMessageType.DeveloperInfo); + CleanGameFolder(); + Program.DeleteDirectory(GameDir); + + Directory.CreateDirectory(GameDirA); + Directory.CreateDirectory(GameDirB); + + CreateSymlink(GameDirA + "/data", StaticDataDir); + CreateSymlink(GameDirB + "/data", StaticDataDir); + + CreateSymlink(GameDirA + "/config", StaticConfigDir); + CreateSymlink(GameDirB + "/config", StaticConfigDir); + + CreateSymlink(GameDirA + LibMySQLFile, StaticDirs + LibMySQLFile); + CreateSymlink(GameDirB + LibMySQLFile, StaticDirs + LibMySQLFile); + + CreateSymlink(Path.Combine(GameDirA, InterfaceDLLName), Path.Combine(StaticDirs, InterfaceDLLName)); + CreateSymlink(Path.Combine(GameDirB, InterfaceDLLName), Path.Combine(StaticDirs, InterfaceDLLName)); + + CreateSymlink(GameDirLive, GameDirA); + + lock (CompilerLock) + { + compilerCurrentStatus = TGCompilerStatus.Compiling; + silentCompile = true; + } + } + catch (ThreadAbortException) + { + return; + } + catch (Exception e) + { + lock (CompilerLock) + { + SendMessage("DM: Setup failed!", ChatMessageType.DeveloperInfo); + lastCompilerError = e.ToString(); + compilerCurrentStatus = TGCompilerStatus.Uninitialized; + return; + } + } + } + catch (ThreadAbortException) + { + return; + } + CompileImpl(); + } + + //Returns the A or B dir in which the game is NOT running + string GetStagingDir() + { + string TheDir; + if (!Directory.Exists(GameDirLive)) + TheDir = GameDirA; + else + { + File.Create(LiveDirTest).Close(); + try + { + if (File.Exists(ADirTest)) + TheDir = GameDirA; + else if (File.Exists(BDirTest)) + TheDir = GameDirB; + else + throw new Exception("Unable to determine current live directory!"); + } + finally + { + File.Delete(LiveDirTest); + } + + + TheDir = InvertDirectory(TheDir); + + } + //So TheDir is what the Live folder is NOT pointing to + //Now we need to check if DD is running that folder and swap it if necessary + + var rsclock = TheDir + "/" + Properties.Settings.Default.ProjectName + ".rsc.lk"; + if (File.Exists(rsclock)) + { + try + { + File.Delete(rsclock); + } + catch //held open by byond + { + //This means there is a staged update waiting to be applied, we have to unstage it before we can work + Directory.Delete(GameDirLive); + CreateSymlink(GameDirLive, TheDir); + return InvertDirectory(TheDir); + } + } + return TheDir; + } + + //I hope you can read this + string InvertDirectory(string gameDirectory) + { + if (gameDirectory == GameDirA) + return GameDirB; + else + return GameDirA; + } + + //Compiler thread + void CompileImpl() + { + try + { + if (GetVersion(TGByondVersion.Installed) == null) + { + lastCompilerError = "BYOND not installed!"; + compilerCurrentStatus = TGCompilerStatus.Initialized; + return; + } + bool silent; + lock (CompilerLock) + { + silent = silentCompile; + silentCompile = false; + } + + if(!silent) + SendMessage("DM: Compiling...", ChatMessageType.DeveloperInfo); + + var resurrectee = GetStagingDir(); + + Program.DeleteDirectory(resurrectee, true, deleteExcludeList); + + Directory.CreateDirectory(resurrectee + "/.git/logs"); + + if (!Directory.Exists(resurrectee + "/config")) + CreateSymlink(resurrectee + "/config", StaticConfigDir); + if (!Directory.Exists(resurrectee + "/data")) + CreateSymlink(resurrectee + "/data", StaticDataDir); + if (!File.Exists(resurrectee + LibMySQLFile)) + CreateSymlink(resurrectee + LibMySQLFile, StaticDirs + LibMySQLFile); + if (!File.Exists(Path.Combine(resurrectee, InterfaceDLLName))) + CreateSymlink(Path.Combine(resurrectee, InterfaceDLLName), Path.Combine(StaticDirs, InterfaceDLLName)); + + bool repobusy_check = false; + if (!Monitor.TryEnter(RepoLock)) + repobusy_check = true; + + if (!repobusy_check) + { + if (RepoBusy) + repobusy_check = true; + else + RepoBusy = true; + Monitor.Exit(RepoLock); + } + + if (repobusy_check) + { + SendMessage("DM: Copy aborted, repo locked!", ChatMessageType.DeveloperInfo); + lock (CompilerLock) + { + lastCompilerError = "The repo could not be locked for copying"; + compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid + return; + } + } + try + { + Program.CopyDirectory(RepoPath, resurrectee, copyExcludeList); + //just the tip + const string GitLogsDir = "/.git/logs"; + Program.CopyDirectory(RepoPath + GitLogsDir, resurrectee + GitLogsDir); + try + { + File.Copy(PRJobFile, resurrectee + Path.DirectorySeparatorChar + PRJobFile); + } + catch { } + } + finally + { + lock (RepoLock) + { + RepoBusy = false; + } + } + + var res = CreateBackup(); + if(res != null) + lock (CompilerLock) + { + lastCompilerError = res; + compilerCurrentStatus = TGCompilerStatus.Initialized; + return; + } + + var dmeName = ProjectName() + ".dme"; + var dmePath = resurrectee + "/" + dmeName; + if (!File.Exists(dmePath)) + { + var errorMsg = String.Format("Could not find {0}!", dmeName); + SendMessage("DM: " + errorMsg, ChatMessageType.DeveloperInfo); + TGServerService.WriteError(errorMsg, TGServerService.EventID.DMCompileCrash); + lock (CompilerLock) + { + lastCompilerError = errorMsg; + compilerCurrentStatus = TGCompilerStatus.Initialized; + return; + } + } + + if (!PrecompileHook()) + { + lastCompilerError = "The precompile hook failed"; + compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid + TGServerService.WriteWarning("Precompile hook failed!", TGServerService.EventID.DMCompileError); + return; + } + + using (var DM = new Process()) //will kill the process if the thread is terminated + { + DM.StartInfo.FileName = ByondDirectory + "/bin/dm.exe"; + DM.StartInfo.Arguments = String.Format("-clean {0}", dmePath); + DM.StartInfo.RedirectStandardOutput = true; + DM.StartInfo.UseShellExecute = false; + var OutputList = new StringBuilder(); + DM.OutputDataReceived += new DataReceivedEventHandler( + delegate(object sender, DataReceivedEventArgs e) + { + OutputList.Append(Environment.NewLine); + OutputList.Append(e.Data); + } + ); + try + { + lock (CompilerLock) + { + if (compilationCancellationRequestation) + return; + canCancelCompilation = true; + } + + DM.Start(); + DM.BeginOutputReadLine(); + while (!DM.HasExited) + DM.WaitForExit(100); + DM.CancelOutputRead(); + + lock (CompilerLock) + { + canCancelCompilation = false; + compilationCancellationRequestation = false; + } + } + catch + { + if (!DM.HasExited) + { + DM.Kill(); + DM.WaitForExit(); + } + throw; + } + finally + { + lock (CompilerLock) + { + canCancelCompilation = false; + } + } + + if (DM.ExitCode == 0) + { + lock (watchdogLock) + { + try + { + //gotta go fast + var online = currentStatus == TGDreamDaemonStatus.Online; + if(online) + Proc.Suspend(); + try + { + if (Directory.Exists(GameDirLive)) + //these two lines should be atomic but this is the best we can do + Directory.Delete(GameDirLive); + CreateSymlink(GameDirLive, resurrectee); + } + finally + { + if(online && !Proc.HasExited) + Proc.Resume(); + } + } + finally + { + if (currentStatus == TGDreamDaemonStatus.Online) + { + try + { + Proc.PriorityClass = ProcessPriorityClass.Normal; + } + catch { } + Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Normal; + Thread.CurrentThread.Priority = ThreadPriority.Normal; + } + } + } + var staged = DaemonStatus() != TGDreamDaemonStatus.Offline; + if (!PostcompileHook()) + { + lastCompilerError = "The postcompile hook failed"; + compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid + TGServerService.WriteWarning("Postcompile hook failed!", TGServerService.EventID.DMCompileError); + return; + } + var msg = String.Format("Compile complete!{0}", !staged ? "" : " Server will update next round."); + SendMessage("DM: " + msg, ChatMessageType.DeveloperInfo); + TGServerService.WriteInfo(msg, TGServerService.EventID.DMCompileSuccess); + lock (CompilerLock) + { + if (staged) + UpdateStaged = true; + lastCompilerError = null; + compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid + } + } + else + { + SendMessage("DM: Compile failed!", ChatMessageType.DeveloperInfo); //Also happens for warnings + TGServerService.WriteWarning("Compile error: " + OutputList.ToString(), TGServerService.EventID.DMCompileError); + lock (CompilerLock) + { + lastCompilerError = "DM compile failure"; + compilerCurrentStatus = TGCompilerStatus.Initialized; + } + } + } + + } + catch (ThreadAbortException) + { + return; + } + catch (Exception e) + { + SendMessage("DM: Compiler thread crashed!", ChatMessageType.DeveloperInfo); + TGServerService.WriteError("Compile manager errror: " + e.ToString(), TGServerService.EventID.DMCompileCrash); + lock (CompilerLock) + { + lastCompilerError = e.ToString(); + compilerCurrentStatus = TGCompilerStatus.Initialized; //still fairly valid + } + } + finally + { + lock (CompilerLock) + { + canCancelCompilation = false; + if (compilationCancellationRequestation) + { + compilerCurrentStatus = TGCompilerStatus.Initialized; + compilationCancellationRequestation = false; + SendMessage("DM: Compile cancelled!", ChatMessageType.DeveloperInfo); + TGServerService.WriteInfo("Compilation cancelled", TGServerService.EventID.DMCompileCancel); + } + } + } + } + //kicks off the compiler thread + //public api + public bool Compile(bool silent = false) + { + lock (CompilerLock) + { + if (compilerCurrentStatus != TGCompilerStatus.Initialized) + return false; + silentCompile = silent; + lastCompilerError = null; + compilerCurrentStatus = TGCompilerStatus.Compiling; + CompilerThread = new Thread(new ThreadStart(CompileImpl)); + CompilerThread.Start(); + } + return true; + } + + //public api + public string ProjectName() + { + lock (CompilerLock) + { + return Properties.Settings.Default.ProjectName; + } + } + + //public api + public void SetProjectName(string projectName) + { + lock (CompilerLock) + { + Properties.Settings.Default.ProjectName = projectName; + } + } + + public string Cancel() + { + lock (CompilerLock) + { + if (compilerCurrentStatus != TGCompilerStatus.Compiling) + return "Invalid state for cancellation!"; + compilationCancellationRequestation = true; + if (canCancelCompilation) + CompilerThread.Abort(); + else + return "Compilation will be cancelled when the repo copy is complete"; + return null; + } + } + } +} diff --git a/TGServerService/Config.cs b/TGServerService/Config.cs index 144e08bcea..a4343f5b00 100644 --- a/TGServerService/Config.cs +++ b/TGServerService/Config.cs @@ -675,24 +675,6 @@ namespace TGServerService } } - //public api - public string SetInteropPort(ushort port) - { - try - { - lock (configLock) - { - File.WriteAllText(InteropConfig, port.ToString()); - } - InitInterop(); - return null; - } - catch (Exception e) - { - return e.ToString(); - } - } - public IList MapSettings(out string error) { try diff --git a/TGServerService/DreamDaemon.cs b/TGServerService/DreamDaemon.cs index 80259d64ba..37e67c0a2e 100644 --- a/TGServerService/DreamDaemon.cs +++ b/TGServerService/DreamDaemon.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics; using System.IO; +using System.Reflection; using System.Threading; using TGServiceInterface; @@ -37,6 +38,7 @@ namespace TGServerService //Only need 1 proc instance void InitDreamDaemon() { + UpdateInterfaceDll(false); var Reattach = Properties.Settings.Default.ReattachToDD; if (Reattach) try @@ -46,10 +48,8 @@ namespace TGServerService throw new Exception("GetProcessById returned null!"); TGServerService.WriteInfo("Reattached to running DD process!", TGServerService.EventID.DDReattachSuccess); SendMessage("DD: Update complete. Watch dog reactivated...", ChatMessageType.WatchdogInfo); - - //start wd - InitInterop(); + //start wd RestartInProgress = true; currentPort = Properties.Settings.Default.ReattachPort; serviceCommsKey = Properties.Settings.Default.ReattachCommsKey; @@ -235,7 +235,6 @@ namespace TGServerService currentStatus = TGDreamDaemonStatus.HardRebooting; currentPort = 0; Proc.Close(); - ShutdownInterop(); if (AwaitingShutdown == ShutdownRequestPhase.Pinged) return; @@ -279,7 +278,6 @@ namespace TGServerService RestartInProgress = true; } Proc.Close(); - ShutdownInterop(); } catch { } @@ -365,6 +363,16 @@ namespace TGServerService } } + void UpdateInterfaceDll(bool overwrite) + { + var targetPath = Path.Combine(StaticDirs, InterfaceDLLName); + if (File.Exists(targetPath) && !overwrite) + return; + //Copy the interface dll to the static dir + var InterfacePath = Assembly.GetAssembly(typeof(DDInteropCallHolder)).Location; + File.Copy(InterfacePath, targetPath, true); + } + //used by Start and Watchdog to start a DD instance string StartImpl(bool watchdog) { @@ -382,7 +390,7 @@ namespace TGServerService GenCommsKey(); StartingSecurity = (TGDreamDaemonSecurity)Config.ServerSecurity; Proc.StartInfo.Arguments = String.Format("{0} -port {1} {5}-close -verbose -params \"server_service={3}&server_service_version={4}\" -{2} -public", DMB, Config.ServerPort, SecurityWord(), serviceCommsKey, Version(), Config.Webclient ? "-webclient" : ""); - InitInterop(); + UpdateInterfaceDll(true); Proc.Start(); if (!Proc.WaitForInputIdle(DDHangStartTime * 1000)) @@ -390,7 +398,6 @@ namespace TGServerService Proc.Kill(); Proc.WaitForExit(); Proc.Close(); - ShutdownInterop(); currentStatus = TGDreamDaemonStatus.Offline; currentPort = 0; return String.Format("Server start is taking more than {0}s! Aborting!", DDHangStartTime); diff --git a/TGServerService/Interop.cs b/TGServerService/Interop.cs index 33c035990f..e4ec5796cc 100644 --- a/TGServerService/Interop.cs +++ b/TGServerService/Interop.cs @@ -11,15 +11,12 @@ using TGServiceInterface; namespace TGServerService { //handles talking between the world and us - partial class TGStationServer + partial class TGStationServer : ITGServiceBridge { object topicLock = new object(); const int CommsKeyLen = 64; string serviceCommsKey; //regenerated every DD restart - Thread NudgeThread; - object NudgeLock = new object(); - //See code/modules/server_tools/server_tools.dm for command switch const string SCHardReboot = "hard_reboot"; //requests that dreamdaemon restarts when the round ends const string SCGracefulShutdown = "graceful_shutdown"; //requests that dreamdaemon stops when the round ends @@ -170,90 +167,18 @@ namespace TGServerService TGServerService.WriteInfo("Service Comms Key set to: " + serviceCommsKey, TGServerService.EventID.CommsKeySet); } - //Start listening for nudges on the configured port - public void InitInterop() - { - lock (NudgeLock) - { - ShutdownInteropNoLock(); - NudgeThread = new Thread(new ThreadStart(NudgeHandler)) { IsBackground = true }; - NudgeThread.Start(); - } - } - - void ShutdownInterop() - { - lock (NudgeLock) - { - ShutdownInteropNoLock(); - } - } - - void ShutdownInteropNoLock() - { - if (NudgeThread != null) - { - NudgeThread.Abort(); - NudgeThread.Join(); - } - } - - void NudgeHandler() + /// + public bool InteropMessage(string command) { try { - var np = InteropPort(out string error); - if (error != null) - { - TGServerService.WriteError("Unable to start nudge handler: " + error, TGServerService.EventID.NudgeStartFail); - return; - } - - using (var listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) - { - listener.Bind(new IPEndPoint(IPAddress.Any, np)); - listener.Listen(5); - - // Start listening for connections. - using (var clientConnected = new ManualResetEvent(false)) - { - while (true) - { - // Program is suspended while waiting for an incoming connection. - clientConnected.Reset(); - listener.BeginAccept(delegate (IAsyncResult asyncResult) - { - try - { - using (var handler = listener.EndAccept(asyncResult)) - { - - var bytes = new byte[1024]; - int bytesRec = handler.Receive(bytes); - // Show the data on the console. - HandleCommand(Encoding.ASCII.GetString(bytes, 0, bytesRec)); - - handler.Close(); - clientConnected.Set(); - } - } - catch (ObjectDisposedException) - { } - }, null); - clientConnected.WaitOne(); - } - } - } + HandleCommand(command); + return true; } - catch (ThreadAbortException) + catch(Exception e) { - return; - } - catch (Exception e) - { - TGServerService.WriteError("Nudge handler thread crashed: " + e.ToString(), TGServerService.EventID.NudgeCrash); - SendMessage("SERVICE: The relay handler crashed, I will attempt to restore it when the server reboots! Error: " + e.Message, ChatMessageType.AdminInfo); - RequestRestart(); + TGServerService.WriteWarning(String.Format("Handle command for \"{0}\" failed: {1}", command, e.ToString()), TGServerService.EventID.InteropCallException); + return false; } } } diff --git a/TGServerService/ServerService.cs b/TGServerService/ServerService.cs index 35a22cc524..158d7ba2b8 100644 --- a/TGServerService/ServerService.cs +++ b/TGServerService/ServerService.cs @@ -79,7 +79,8 @@ namespace TGServerService SubmoduleReclone = 6600, Authentication = 6700, PreactionEvent = 6800, - PreactionFail = 6900 + PreactionFail = 6900, + InteropCallException = 7000, } static TGServerService ActiveService; //So everyone else can write to our eventlog diff --git a/TGServiceInterface/Config.cs b/TGServiceInterface/Config.cs index 4d08bf8c2b..550fc432dd 100644 --- a/TGServiceInterface/Config.cs +++ b/TGServiceInterface/Config.cs @@ -273,22 +273,6 @@ namespace TGServiceInterface [OperationContract] string SetMapSettings(MapSetting newSetting); - /// - /// Gets the port DD uses to talk to the service - /// - /// null on success, error message on failure - /// The port DD uses to talk to the service or 0 on failure - [OperationContract] - ushort InteropPort(out string error); - - /// - /// Sets the port DD uses to talk to the service - /// - /// The port DD uses to talk to the service - /// null on success, error message on failure - [OperationContract] - string SetInteropPort(ushort port); - /// /// Return the directory of the server on the host machine /// diff --git a/TGServiceInterface/Server.cs b/TGServiceInterface/Server.cs index 11d6e8a4c0..31360754ff 100644 --- a/TGServiceInterface/Server.cs +++ b/TGServiceInterface/Server.cs @@ -9,7 +9,7 @@ namespace TGServiceInterface /// /// List of types that can be used with GetComponen /// - public static readonly IList ValidInterfaces = new List { typeof(ITGByond), typeof(ITGChat), typeof(ITGCompiler), typeof(ITGConfig), typeof(ITGDreamDaemon), typeof(ITGRepository), typeof(ITGSService), typeof(ITGConnectivity), typeof(ITGAdministration) }; + public static readonly IList ValidInterfaces = new List { typeof(ITGByond), typeof(ITGChat), typeof(ITGCompiler), typeof(ITGConfig), typeof(ITGDreamDaemon), typeof(ITGRepository), typeof(ITGSService), typeof(ITGConnectivity), typeof(ITGAdministration), typeof(ITGServiceBridge) }; /// /// Base name of the communication pipe @@ -62,15 +62,23 @@ namespace TGServiceInterface /// Returns the requested server component interface. This does not guarantee a successful connection /// /// The type of the component to retrieve - /// + /// The correct component public static T GetComponent() + { + return GetComponentAndChannel(out ChannelFactory ignored); + } + + public static T GetComponentAndChannel(out ChannelFactory outChannel) { var ToT = typeof(T); if (!ValidInterfaces.Contains(ToT)) throw new Exception("Invalid type!"); var InterfaceName = typeof(T).Name; if (HTTPSURL == null) - return new ChannelFactory(new NetNamedPipeBinding { SendTimeout = new TimeSpan(0, 10, 0) }, new EndpointAddress(String.Format("net.pipe://localhost/{0}/{1}", MasterInterfaceName, InterfaceName))).CreateChannel(); + { + outChannel = new ChannelFactory(new NetNamedPipeBinding { SendTimeout = new TimeSpan(0, 10, 0) }, new EndpointAddress(String.Format("net.pipe://localhost/{0}/{1}", MasterInterfaceName, InterfaceName))); + return outChannel.CreateChannel(); + } //okay we're going over var binding = new WSHttpBinding(); @@ -78,19 +86,19 @@ namespace TGServiceInterface binding.Security.Mode = requireAuth ? SecurityMode.TransportWithMessageCredential : SecurityMode.Transport; //do not require auth for a connectivity check binding.Security.Message.ClientCredentialType = requireAuth ? MessageCredentialType.UserName : MessageCredentialType.None; var address = new EndpointAddress(String.Format("https://{0}:{1}/{2}/{3}", HTTPSURL, HTTPSPort, MasterInterfaceName, InterfaceName)); - var cf = new ChannelFactory(binding, address); + outChannel = new ChannelFactory(binding, address); if (requireAuth) { - cf.Credentials.UserName.UserName = HTTPSUsername; - cf.Credentials.UserName.Password = HTTPSPassword; + outChannel.Credentials.UserName.UserName = HTTPSUsername; + outChannel.Credentials.UserName.Password = HTTPSPassword; } #if DEBUG //allow self signed certs in debug mode ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) => true; #endif - return cf.CreateChannel(); + return outChannel.CreateChannel(); } - + /// /// Used to test if the service is avaiable on the machine /// Note that state can technically change at any time @@ -104,7 +112,7 @@ namespace TGServiceInterface GetComponent().VerifyConnection(); return null; } - catch(Exception e) + catch (Exception e) { return e.ToString(); } diff --git a/TGServiceInterface/ServiceBridge.cs b/TGServiceInterface/ServiceBridge.cs new file mode 100644 index 0000000000..764250ea36 --- /dev/null +++ b/TGServiceInterface/ServiceBridge.cs @@ -0,0 +1,55 @@ +using System; +using RGiesecke.DllExport; +using System.Runtime.InteropServices; +using System.ServiceModel; + +namespace TGServiceInterface +{ + + /// + /// Used by DD to access the interop API with call()() + /// + [ServiceContract] + public interface ITGServiceBridge + { + /// + /// Called from /world/ExportService(command) + /// + /// The command to run + /// true on success, false on failure + [OperationContract] + bool InteropMessage(string command); + } + + /// + /// Holds the proc that DD calls to access + /// + public class DDInteropCallHolder + { + /// + /// The proc that DD calls to access + /// + /// The arguments passed + /// 0 + [DllExport("DDEntryPoint", CallingConvention = CallingConvention.Cdecl)] + public static int DDEntryPoint(int argc, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr, SizeParamIndex = 0)]string[] args) + { + try + { + ChannelFactory channel = null; + try + { + Server.GetComponentAndChannel(out channel).InteropMessage(String.Join(" ", args)); + channel.Close(); + } + catch + { + if(channel != null) + channel.Abort(); + } + } + catch { } + return 0; + } + } +} diff --git a/TGServiceInterface/TGServiceInterface.csproj b/TGServiceInterface/TGServiceInterface.csproj index 923bc9287b..6851600e9c 100644 --- a/TGServiceInterface/TGServiceInterface.csproj +++ b/TGServiceInterface/TGServiceInterface.csproj @@ -12,28 +12,32 @@ v4.5.2 512 - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - true - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - tgs.ico + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + + + ..\packages\UnmanagedExports.1.2.7\lib\net\RGiesecke.DllExport.Metadata.dll + False + @@ -53,9 +57,14 @@ + + + + + \ No newline at end of file diff --git a/TGServiceInterface/packages.config b/TGServiceInterface/packages.config new file mode 100644 index 0000000000..bfd9f475da --- /dev/null +++ b/TGServiceInterface/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/TGStationServer3.sln b/TGStationServer3.sln index d98810c9a8..77d969b67f 100644 --- a/TGStationServer3.sln +++ b/TGStationServer3.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26430.12 +VisualStudioVersion = 15.0.26430.15 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TGServerService", "TGServerService\TGServerService.csproj", "{F32EDA25-0855-411C-AF5E-F0D042917E2D}" EndProject @@ -65,57 +65,33 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {F32EDA25-0855-411C-AF5E-F0D042917E2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F32EDA25-0855-411C-AF5E-F0D042917E2D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F32EDA25-0855-411C-AF5E-F0D042917E2D}.Debug|x86.ActiveCfg = Debug|Any CPU - {F32EDA25-0855-411C-AF5E-F0D042917E2D}.Debug|x86.Build.0 = Debug|Any CPU {F32EDA25-0855-411C-AF5E-F0D042917E2D}.Release|Any CPU.ActiveCfg = Release|Any CPU {F32EDA25-0855-411C-AF5E-F0D042917E2D}.Release|Any CPU.Build.0 = Release|Any CPU - {F32EDA25-0855-411C-AF5E-F0D042917E2D}.Release|x86.ActiveCfg = Release|Any CPU - {F32EDA25-0855-411C-AF5E-F0D042917E2D}.Release|x86.Build.0 = Release|Any CPU {394E7643-6B8C-416F-AB18-95AC12648CDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {394E7643-6B8C-416F-AB18-95AC12648CDC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {394E7643-6B8C-416F-AB18-95AC12648CDC}.Debug|x86.ActiveCfg = Debug|Any CPU - {394E7643-6B8C-416F-AB18-95AC12648CDC}.Debug|x86.Build.0 = Debug|Any CPU {394E7643-6B8C-416F-AB18-95AC12648CDC}.Release|Any CPU.ActiveCfg = Release|Any CPU {394E7643-6B8C-416F-AB18-95AC12648CDC}.Release|Any CPU.Build.0 = Release|Any CPU - {394E7643-6B8C-416F-AB18-95AC12648CDC}.Release|x86.ActiveCfg = Release|Any CPU - {394E7643-6B8C-416F-AB18-95AC12648CDC}.Release|x86.Build.0 = Release|Any CPU {89191F69-B18E-4B59-B72E-E12F9B6811A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {89191F69-B18E-4B59-B72E-E12F9B6811A0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {89191F69-B18E-4B59-B72E-E12F9B6811A0}.Debug|x86.ActiveCfg = Debug|Any CPU - {89191F69-B18E-4B59-B72E-E12F9B6811A0}.Debug|x86.Build.0 = Debug|Any CPU {89191F69-B18E-4B59-B72E-E12F9B6811A0}.Release|Any CPU.ActiveCfg = Release|Any CPU {89191F69-B18E-4B59-B72E-E12F9B6811A0}.Release|Any CPU.Build.0 = Release|Any CPU - {89191F69-B18E-4B59-B72E-E12F9B6811A0}.Release|x86.ActiveCfg = Release|Any CPU - {89191F69-B18E-4B59-B72E-E12F9B6811A0}.Release|x86.Build.0 = Release|Any CPU - {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Debug|x86.ActiveCfg = Debug|Any CPU - {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Debug|x86.Build.0 = Debug|Any CPU - {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Release|Any CPU.Build.0 = Release|Any CPU - {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Release|x86.ActiveCfg = Release|Any CPU - {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Release|x86.Build.0 = Release|Any CPU + {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Debug|Any CPU.ActiveCfg = Debug|x86 + {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Debug|Any CPU.Build.0 = Debug|x86 + {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Release|Any CPU.ActiveCfg = Release|x86 + {AC4E7E8B-F83A-481C-A8B0-8FA4E8AE59AB}.Release|Any CPU.Build.0 = Release|x86 {154435F6-0890-42D4-9AEC-B743D4FBC1CB}.Debug|Any CPU.ActiveCfg = Debug|x86 - {154435F6-0890-42D4-9AEC-B743D4FBC1CB}.Debug|x86.ActiveCfg = Debug|x86 - {154435F6-0890-42D4-9AEC-B743D4FBC1CB}.Debug|x86.Build.0 = Debug|x86 + {154435F6-0890-42D4-9AEC-B743D4FBC1CB}.Debug|Any CPU.Build.0 = Debug|x86 {154435F6-0890-42D4-9AEC-B743D4FBC1CB}.Release|Any CPU.ActiveCfg = Release|x86 {154435F6-0890-42D4-9AEC-B743D4FBC1CB}.Release|Any CPU.Build.0 = Release|x86 - {154435F6-0890-42D4-9AEC-B743D4FBC1CB}.Release|x86.ActiveCfg = Release|x86 - {154435F6-0890-42D4-9AEC-B743D4FBC1CB}.Release|x86.Build.0 = Release|x86 {8956D4C3-BFB9-448E-BF5F-EE7E6F9996F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8956D4C3-BFB9-448E-BF5F-EE7E6F9996F9}.Debug|x86.ActiveCfg = Debug|Any CPU - {8956D4C3-BFB9-448E-BF5F-EE7E6F9996F9}.Debug|x86.Build.0 = Debug|Any CPU + {8956D4C3-BFB9-448E-BF5F-EE7E6F9996F9}.Debug|Any CPU.Build.0 = Debug|Any CPU {8956D4C3-BFB9-448E-BF5F-EE7E6F9996F9}.Release|Any CPU.ActiveCfg = Release|Any CPU {8956D4C3-BFB9-448E-BF5F-EE7E6F9996F9}.Release|Any CPU.Build.0 = Release|Any CPU - {8956D4C3-BFB9-448E-BF5F-EE7E6F9996F9}.Release|x86.ActiveCfg = Release|Any CPU - {8956D4C3-BFB9-448E-BF5F-EE7E6F9996F9}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE