diff --git a/Commands/other/CmdServer.cs b/Commands/other/CmdServer.cs
index cd9b2718e..b5ac2c43f 100644
--- a/Commands/other/CmdServer.cs
+++ b/Commands/other/CmdServer.cs
@@ -300,7 +300,6 @@ namespace MCGalaxy.Commands
Server.adminsjoinsilent = false;
//Server.mono = false;
Server.server_owner = "Notch";
- Server.WomDirect = false;
Server.flipHead = false;
@@ -313,9 +312,6 @@ namespace MCGalaxy.Commands
Server.showEmptyRanks = false;
- //WOM Direct
- Server.WomDirect = false;
-
#endregion
}
diff --git a/GUI/PropertyWindow.Designer.cs b/GUI/PropertyWindow.Designer.cs
index 05b7cf2fc..7693c85a5 100644
--- a/GUI/PropertyWindow.Designer.cs
+++ b/GUI/PropertyWindow.Designer.cs
@@ -133,10 +133,6 @@ namespace MCGalaxy.Gui
this.lsNudRoundTime = new System.Windows.Forms.NumericUpDown();
this.lsNudFloodTime = new System.Windows.Forms.NumericUpDown();
this.lsCmbControlRank = new System.Windows.Forms.ComboBox();
- this.cmbGrieferStoneType = new System.Windows.Forms.ComboBox();
- this.chkGrieferStoneBan = new System.Windows.Forms.CheckBox();
- this.txtGrieferStone = new System.Windows.Forms.TextBox();
- this.cmbGrieferStoneRank = new System.Windows.Forms.ComboBox();
this.lsNudLives = new System.Windows.Forms.NumericUpDown();
this.cmbAFKKickPerm = new System.Windows.Forms.ComboBox();
this.chkGuestLimitNotify = new System.Windows.Forms.CheckBox();
@@ -179,8 +175,6 @@ namespace MCGalaxy.Gui
this.lblGlobalChatColor = new System.Windows.Forms.Label();
this.chkGlobalChat = new System.Windows.Forms.CheckBox();
this.groupBox13 = new System.Windows.Forms.GroupBox();
- this.label48 = new System.Windows.Forms.Label();
- this.label47 = new System.Windows.Forms.Label();
this.chkShowEmptyRanks = new System.Windows.Forms.CheckBox();
this.chkIgnoreGlobal = new System.Windows.Forms.CheckBox();
this.chkNotifyOnJoinLeave = new System.Windows.Forms.CheckBox();
@@ -192,7 +186,6 @@ namespace MCGalaxy.Gui
this.chkSmile = new System.Windows.Forms.CheckBox();
this.label34 = new System.Windows.Forms.Label();
this.groupBox12 = new System.Windows.Forms.GroupBox();
- this.chkGrieferStone = new System.Windows.Forms.CheckBox();
this.chkShutdown = new System.Windows.Forms.CheckBox();
this.txtShutdown = new System.Windows.Forms.TextBox();
this.hackrank_kick_time = new System.Windows.Forms.TextBox();
@@ -253,10 +246,8 @@ namespace MCGalaxy.Gui
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label30 = new System.Windows.Forms.Label();
this.txechx = new System.Windows.Forms.CheckBox();
- this.button3 = new System.Windows.Forms.Button();
this.editTxtsBt = new System.Windows.Forms.Button();
this.txtHost = new System.Windows.Forms.TextBox();
- this.chkWomDirect = new System.Windows.Forms.CheckBox();
this.chkRestart = new System.Windows.Forms.CheckBox();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.label7 = new System.Windows.Forms.Label();
@@ -1507,46 +1498,6 @@ namespace MCGalaxy.Gui
this.lsCmbControlRank.TabIndex = 9;
this.toolTip.SetToolTip( this.lsCmbControlRank, "Minimum rank required to administrate Lava Survival." );
//
- // cmbGrieferStoneType
- //
- this.cmbGrieferStoneType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.cmbGrieferStoneType.FormattingEnabled = true;
- this.cmbGrieferStoneType.Location = new System.Drawing.Point( 110, 138 );
- this.cmbGrieferStoneType.Name = "cmbGrieferStoneType";
- this.cmbGrieferStoneType.Size = new System.Drawing.Size( 94, 21 );
- this.cmbGrieferStoneType.TabIndex = 13;
- this.toolTip.SetToolTip( this.cmbGrieferStoneType, "The block type that griefer_stone will look like in-game." );
- //
- // chkGrieferStoneBan
- //
- this.chkGrieferStoneBan.Appearance = System.Windows.Forms.Appearance.Button;
- this.chkGrieferStoneBan.AutoSize = true;
- this.chkGrieferStoneBan.Location = new System.Drawing.Point( 210, 137 );
- this.chkGrieferStoneBan.Name = "chkGrieferStoneBan";
- this.chkGrieferStoneBan.Size = new System.Drawing.Size( 127, 23 );
- this.chkGrieferStoneBan.TabIndex = 43;
- this.chkGrieferStoneBan.Text = "Griefer_stone Tempban";
- this.toolTip.SetToolTip( this.chkGrieferStoneBan, "Should griefer_stone tempban the player or just kick them?" );
- this.chkGrieferStoneBan.UseVisualStyleBackColor = true;
- //
- // txtGrieferStone
- //
- this.txtGrieferStone.Location = new System.Drawing.Point( 186, 129 );
- this.txtGrieferStone.Name = "txtGrieferStone";
- this.txtGrieferStone.Size = new System.Drawing.Size( 134, 21 );
- this.txtGrieferStone.TabIndex = 36;
- this.toolTip.SetToolTip( this.txtGrieferStone, "Kick message for griefer_stone. Only works if tempban is off!" );
- //
- // cmbGrieferStoneRank
- //
- this.cmbGrieferStoneRank.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.cmbGrieferStoneRank.FormattingEnabled = true;
- this.cmbGrieferStoneRank.Location = new System.Drawing.Point( 148, 112 );
- this.cmbGrieferStoneRank.Name = "cmbGrieferStoneRank";
- this.cmbGrieferStoneRank.Size = new System.Drawing.Size( 87, 21 );
- this.cmbGrieferStoneRank.TabIndex = 45;
- this.toolTip.SetToolTip( this.cmbGrieferStoneRank, "The maximum rank that griefer_stone will kick or ban." );
- //
// lsNudLives
//
this.lsNudLives.Location = new System.Drawing.Point( 71, 133 );
@@ -1991,11 +1942,6 @@ namespace MCGalaxy.Gui
this.groupBox13.AutoSize = true;
this.groupBox13.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.groupBox13.Controls.Add( this.chkGuestLimitNotify );
- this.groupBox13.Controls.Add( this.cmbGrieferStoneRank );
- this.groupBox13.Controls.Add( this.label48 );
- this.groupBox13.Controls.Add( this.chkGrieferStoneBan );
- this.groupBox13.Controls.Add( this.cmbGrieferStoneType );
- this.groupBox13.Controls.Add( this.label47 );
this.groupBox13.Controls.Add( this.chkShowEmptyRanks );
this.groupBox13.Controls.Add( this.chkIgnoreGlobal );
this.groupBox13.Controls.Add( this.chkNotifyOnJoinLeave );
@@ -2015,24 +1961,6 @@ namespace MCGalaxy.Gui
this.groupBox13.TabStop = false;
this.groupBox13.Text = "Extra";
//
- // label48
- //
- this.label48.AutoSize = true;
- this.label48.Location = new System.Drawing.Point( 6, 115 );
- this.label48.Name = "label48";
- this.label48.Size = new System.Drawing.Size( 140, 13 );
- this.label48.TabIndex = 44;
- this.label48.Text = "Griefer_stone kick/ban rank:";
- //
- // label47
- //
- this.label47.AutoSize = true;
- this.label47.Location = new System.Drawing.Point( 6, 140 );
- this.label47.Name = "label47";
- this.label47.Size = new System.Drawing.Size( 98, 13 );
- this.label47.TabIndex = 42;
- this.label47.Text = "Griefer_stone type:";
- //
// chkShowEmptyRanks
//
this.chkShowEmptyRanks.Appearance = System.Windows.Forms.Appearance.Button;
@@ -2137,8 +2065,6 @@ namespace MCGalaxy.Gui
//
this.groupBox12.AutoSize = true;
this.groupBox12.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.groupBox12.Controls.Add( this.txtGrieferStone );
- this.groupBox12.Controls.Add( this.chkGrieferStone );
this.groupBox12.Controls.Add( this.chkShutdown );
this.groupBox12.Controls.Add( this.txtShutdown );
this.groupBox12.Controls.Add( this.hackrank_kick );
@@ -2155,16 +2081,6 @@ namespace MCGalaxy.Gui
this.groupBox12.TabStop = false;
this.groupBox12.Text = "Messages";
//
- // chkGrieferStone
- //
- this.chkGrieferStone.AutoSize = true;
- this.chkGrieferStone.Location = new System.Drawing.Point( 12, 132 );
- this.chkGrieferStone.Name = "chkGrieferStone";
- this.chkGrieferStone.Size = new System.Drawing.Size( 174, 17 );
- this.chkGrieferStone.TabIndex = 35;
- this.chkGrieferStone.Text = "Custom griefer_stone message:";
- this.chkGrieferStone.UseVisualStyleBackColor = true;
- //
// chkShutdown
//
this.chkShutdown.AutoSize = true;
@@ -2755,10 +2671,8 @@ namespace MCGalaxy.Gui
this.groupBox2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.groupBox2.Controls.Add( this.label30 );
this.groupBox2.Controls.Add( this.txechx );
- this.groupBox2.Controls.Add( this.button3 );
this.groupBox2.Controls.Add( this.editTxtsBt );
this.groupBox2.Controls.Add( this.txtHost );
- this.groupBox2.Controls.Add( this.chkWomDirect );
this.groupBox2.Controls.Add( this.chkRestart );
this.groupBox2.Controls.Add( this.chkPublic );
this.groupBox2.Controls.Add( this.chkVerify );
@@ -2791,16 +2705,6 @@ namespace MCGalaxy.Gui
this.txechx.UseVisualStyleBackColor = true;
this.txechx.CheckedChanged += new System.EventHandler( this.txechx_CheckedChanged );
//
- // button3
- //
- this.button3.Location = new System.Drawing.Point( 10, 49 );
- this.button3.Name = "button3";
- this.button3.Size = new System.Drawing.Size( 120, 27 );
- this.button3.TabIndex = 43;
- this.button3.Text = "Edit WoM Direct Options";
- this.button3.UseVisualStyleBackColor = true;
- this.button3.Click += new System.EventHandler( this.button3_Click );
- //
// editTxtsBt
//
this.editTxtsBt.Cursor = System.Windows.Forms.Cursors.Hand;
@@ -2821,18 +2725,6 @@ namespace MCGalaxy.Gui
this.txtHost.TabIndex = 2;
this.txtHost.TextChanged += new System.EventHandler( this.txtPort_TextChanged );
//
- // chkWomDirect
- //
- this.chkWomDirect.Appearance = System.Windows.Forms.Appearance.Button;
- this.chkWomDirect.AutoSize = true;
- this.chkWomDirect.Location = new System.Drawing.Point( 135, 49 );
- this.chkWomDirect.Name = "chkWomDirect";
- this.chkWomDirect.Size = new System.Drawing.Size( 107, 23 );
- this.chkWomDirect.TabIndex = 25;
- this.chkWomDirect.Text = "Enable WoM Direct";
- this.chkWomDirect.UseVisualStyleBackColor = true;
- this.chkWomDirect.CheckedChanged += new System.EventHandler( this.chkWomDirect_CheckedChanged );
- //
// chkRestart
//
this.chkRestart.Appearance = System.Windows.Forms.Appearance.Button;
@@ -4911,8 +4803,6 @@ namespace MCGalaxy.Gui
private System.Windows.Forms.Label lblGlobalChatColor;
private System.Windows.Forms.TextBox txtMaxUndo;
private System.Windows.Forms.Label label52;
- private System.Windows.Forms.TextBox txtGrieferStone;
- private System.Windows.Forms.CheckBox chkGrieferStone;
private System.Windows.Forms.GroupBox groupBox20;
private System.Windows.Forms.Label label54;
private System.Windows.Forms.Label label53;
@@ -4958,14 +4848,8 @@ namespace MCGalaxy.Gui
private System.Windows.Forms.ComboBox lsCmbControlRank;
private System.Windows.Forms.Label label68;
private System.Windows.Forms.Button lsBtnEndVote;
- private System.Windows.Forms.ComboBox cmbGrieferStoneType;
- private System.Windows.Forms.Label label47;
- private System.Windows.Forms.CheckBox chkGrieferStoneBan;
- private System.Windows.Forms.ComboBox cmbGrieferStoneRank;
- private System.Windows.Forms.Label label48;
private System.Windows.Forms.NumericUpDown numCountReset;
private System.Windows.Forms.Label label69;
- private System.Windows.Forms.CheckBox chkWomDirect;
private System.Windows.Forms.NumericUpDown lsNudLives;
private System.Windows.Forms.TextBox txtSQLPort;
private System.Windows.Forms.Label label70;
@@ -4987,7 +4871,6 @@ namespace MCGalaxy.Gui
private System.Windows.Forms.Label label75;
private System.Windows.Forms.Label label76;
private System.Windows.Forms.ComboBox cmbAFKKickPerm;
- private System.Windows.Forms.Button button3;
private System.Windows.Forms.CheckBox chkGuestLimitNotify;
private System.Windows.Forms.TextBox levelList;
private System.Windows.Forms.Label label78;
@@ -5066,4 +4949,4 @@ namespace MCGalaxy.Gui
private System.Windows.Forms.ListBox lstCommands;
private System.Windows.Forms.GroupBox groupBox24;
}
-}
+}
\ No newline at end of file
diff --git a/GUI/PropertyWindow.cs b/GUI/PropertyWindow.cs
index b337d76b9..b0c783117 100644
--- a/GUI/PropertyWindow.cs
+++ b/GUI/PropertyWindow.cs
@@ -62,7 +62,6 @@ namespace MCGalaxy.Gui {
cmbIRCColour.Items.AddRange(colors);
cmbColor.Items.AddRange(colors);
cmbGlobalChatColor.Items.AddRange(colors);
- button3.Enabled = Server.WomDirect;
grpIRC.BackColor = Server.irc ? Color.White : Color.LightGray;
grpSQL.BackColor = Server.useMySQL ? Color.White : Color.LightGray;
@@ -85,7 +84,6 @@ namespace MCGalaxy.Gui {
cmbVerificationRank.Items.Add(grp.name);
lsCmbSetupRank.Items.Add(grp.name);
lsCmbControlRank.Items.Add(grp.name);
- cmbGrieferStoneRank.Items.Add(grp.name);
cmbAFKKickPerm.Items.Add(grp.name);
cmbViewQueue.Items.Add(grp.name);
cmbEnterQueue.Items.Add(grp.name);
@@ -125,7 +123,6 @@ namespace MCGalaxy.Gui {
cmbOpChat.SelectedIndex = ( opchatperm != String.Empty ? cmbOpChat.Items.IndexOf(opchatperm) : 1 );
cmbAdminChat.SelectedIndex = ( adminchatperm != String.Empty ? cmbAdminChat.Items.IndexOf(adminchatperm) : 1 );
cmbVerificationRank.SelectedIndex = ( verifyadminsperm != String.Empty ? cmbVerificationRank.Items.IndexOf(verifyadminsperm) : 1 );
- cmbGrieferStoneRank.SelectedIndex = ( grieferstonerank != String.Empty ? cmbGrieferStoneRank.Items.IndexOf(grieferstonerank) : 1 );
cmbAFKKickPerm.SelectedIndex = ( afkkickrank != String.Empty ? cmbAFKKickPerm.Items.IndexOf(afkkickrank) : 1 );
cmbEnterQueue.SelectedIndex = ( enterqueuerank != String.Empty ? cmbEnterQueue.Items.IndexOf(enterqueuerank) : 1 );
cmbLeaveQueue.SelectedIndex = ( leavequeuerank != String.Empty ? cmbLeaveQueue.Items.IndexOf(leavequeuerank) : 1 );
@@ -133,9 +130,6 @@ namespace MCGalaxy.Gui {
cmbClearQueue.SelectedIndex = ( clearqueuerank != String.Empty ? cmbClearQueue.Items.IndexOf(clearqueuerank) : 1 );
cmbGotoNext.SelectedIndex = ( gotonextrank != String.Empty ? cmbGotoNext.Items.IndexOf(gotonextrank) : 1 );
- for ( byte b = 1; b < 50; b++ )
- cmbGrieferStoneType.Items.Add(Block.Name(b));
-
//Load server stuff
LoadProp("properties/server.properties");
LoadRanks();
@@ -458,14 +452,6 @@ namespace MCGalaxy.Gui {
txtShutdown.Text = value;
break;
- case "custom-griefer-stone":
- chkGrieferStone.Checked = ( value.ToLower() == "true" );
- break;
-
- case "custom-griefer-stone-message":
- txtGrieferStone.Text = value;
- break;
-
case "auto-restart":
chkRestartTime.Checked = ( value.ToLower() == "true" );
break;
@@ -646,21 +632,6 @@ namespace MCGalaxy.Gui {
color = c.Name(value); if ( color != "" ) color = value; else { Server.s.Log("Could not find " + value); return; }
}
cmbGlobalChatColor.SelectedIndex = cmbGlobalChatColor.Items.IndexOf(c.Name(color)); break;
-
- case "griefer-stone-tempban":
- chkGrieferStoneBan.Checked = value.ToLower() == "true";
- break;
-
- case "griefer-stone-type":
- try { cmbGrieferStoneType.SelectedIndex = cmbGrieferStoneType.Items.IndexOf(value); }
- catch {
- try { cmbGrieferStoneType.SelectedIndex = cmbGrieferStoneType.Items.IndexOf(Block.Name(Convert.ToByte(value))); }
- catch { Server.s.Log("Could not find " + value); }
- }
- break;
- case "wom-direct":
- chkWomDirect.Checked = value.ToLower() == "true";
- break;
case "premium-only":
chkPrmOnly.Checked = value.ToLower() == "true";
break;
@@ -813,8 +784,6 @@ namespace MCGalaxy.Gui {
Server.customBanMessage = txtBanMessage.Text;
Server.customShutdown = chkShutdown.Checked;
Server.customShutdownMessage = txtShutdown.Text;
- Server.customGrieferStone = chkGrieferStone.Checked;
- Server.customGrieferStoneMessage = txtGrieferStone.Text;
Server.higherranktp = chkTpToHigherRanks.Checked;
Server.globalignoreops = chkIgnoreGlobal.Checked; // Wasn't in previous setting-saver
@@ -844,10 +813,6 @@ namespace MCGalaxy.Gui {
Server.UseGlobalChat = chkGlobalChat.Checked;
Server.GlobalChatColor = cmbGlobalChatColor.SelectedItem.ToString();
- Server.WomDirect = chkWomDirect.Checked;
- //Server.Server_ALT = ;
- //Server.Server_Disc = ;
- //Server.Server_Flag = ;
Server.PremiumPlayersOnly = chkPrmOnly.Checked;
Server.reviewview = Group.GroupList.Find(grp => grp.name == cmbViewQueue.SelectedItem.ToString()).Permission;
@@ -1677,14 +1642,6 @@ txtBackupLocation.Text = folderDialog.SelectedPath;
}
- private void button3_Click(object sender, EventArgs e) {
- new GUI.WoM().Show();
- }
-
- private void chkWomDirect_CheckedChanged(object sender, EventArgs e) {
- button3.Enabled = chkWomDirect.Checked;
- }
-
private void forceUpdateBtn_Click(object sender, EventArgs e) {
forceUpdateBtn.Enabled = false;
if ( MessageBox.Show("Would you like to force update MCGalaxy now?", "Force Update", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK ) {
diff --git a/GUI/WoM.Designer.cs b/GUI/WoM.Designer.cs
deleted file mode 100644
index 3eb0a9f5c..000000000
--- a/GUI/WoM.Designer.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-namespace MCGalaxy.GUI
-{
- partial class WoM
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WoM));
- this.label1 = new System.Windows.Forms.Label();
- this.textBox1 = new System.Windows.Forms.TextBox();
- this.label2 = new System.Windows.Forms.Label();
- this.textBox2 = new System.Windows.Forms.TextBox();
- this.textBox3 = new System.Windows.Forms.TextBox();
- this.label3 = new System.Windows.Forms.Label();
- this.button1 = new System.Windows.Forms.Button();
- this.SuspendLayout();
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(31, 29);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(69, 13);
- this.label1.TabIndex = 0;
- this.label1.Text = "Server Name";
- this.label1.Click += new System.EventHandler(this.label1_Click);
- //
- // textBox1
- //
- this.textBox1.Location = new System.Drawing.Point(12, 45);
- this.textBox1.Name = "textBox1";
- this.textBox1.Size = new System.Drawing.Size(100, 20);
- this.textBox1.TabIndex = 1;
- this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
- //
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(31, 78);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(60, 13);
- this.label2.TabIndex = 2;
- this.label2.Text = "Description";
- //
- // textBox2
- //
- this.textBox2.Location = new System.Drawing.Point(12, 94);
- this.textBox2.Name = "textBox2";
- this.textBox2.Size = new System.Drawing.Size(100, 20);
- this.textBox2.TabIndex = 3;
- //
- // textBox3
- //
- this.textBox3.Location = new System.Drawing.Point(12, 135);
- this.textBox3.Name = "textBox3";
- this.textBox3.Size = new System.Drawing.Size(100, 20);
- this.textBox3.TabIndex = 4;
- this.textBox3.TextChanged += new System.EventHandler(this.textBox3_TextChanged);
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(46, 119);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(27, 13);
- this.label3.TabIndex = 5;
- this.label3.Text = "Flag";
- //
- // button1
- //
- this.button1.Location = new System.Drawing.Point(25, 165);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(75, 23);
- this.button1.TabIndex = 6;
- this.button1.Text = "Save";
- this.button1.UseVisualStyleBackColor = true;
- this.button1.Click += new System.EventHandler(this.button1_Click);
- //
- // WoM
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(130, 200);
- this.Controls.Add(this.button1);
- this.Controls.Add(this.label3);
- this.Controls.Add(this.textBox3);
- this.Controls.Add(this.textBox2);
- this.Controls.Add(this.label2);
- this.Controls.Add(this.textBox1);
- this.Controls.Add(this.label1);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MaximizeBox = false;
- this.Name = "WoM";
- this.Text = "WoM Direct";
- this.Load += new System.EventHandler(this.WoM_Load);
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.TextBox textBox1;
- private System.Windows.Forms.Label label2;
- private System.Windows.Forms.TextBox textBox2;
- private System.Windows.Forms.TextBox textBox3;
- private System.Windows.Forms.Label label3;
- private System.Windows.Forms.Button button1;
- }
-}
\ No newline at end of file
diff --git a/GUI/WoM.cs b/GUI/WoM.cs
deleted file mode 100644
index 325c06dfd..000000000
--- a/GUI/WoM.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-
-namespace MCGalaxy.GUI
-{
- public partial class WoM : Form
- {
- public WoM()
- {
- InitializeComponent();
- }
-
- private void label1_Click(object sender, EventArgs e)
- {
-
- }
-
- private void textBox1_TextChanged(object sender, EventArgs e)
- {
-
- }
-
- private void textBox3_TextChanged(object sender, EventArgs e)
- {
- if (textBox3.Text.ToCharArray().Length > 15)
- {
- MessageBox.Show("Only 15 characters allowed!", "Warning");
- return;
- }
- }
-
- private void button1_Click(object sender, EventArgs e)
- {
- if (WOMBeat.SetSettings(Server.IP, "" + Server.port, textBox1.Text, textBox2.Text, textBox3.Text))
- {
- MessageBox.Show("Your settings have been saved!", "Results", MessageBoxButtons.OK, MessageBoxIcon.Information);
- Server.Server_ALT = textBox1.Text;
- Server.Server_Disc = textBox2.Text;
- Server.Server_Flag = textBox3.Text;
- this.Close();
- }
- else
- MessageBox.Show("There was an error, check the error log for more details!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
-
- private void WoM_Load(object sender, EventArgs e)
- {
- textBox1.Text = Server.Server_ALT;
- textBox2.Text = Server.Server_Disc;
- textBox3.Text = Server.Server_Flag;
- }
- }
-}
diff --git a/GUI/WoM.resx b/GUI/WoM.resx
deleted file mode 100644
index 4b2287ade..000000000
--- a/GUI/WoM.resx
+++ /dev/null
@@ -1,1150 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
-
-
- 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
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACx4o/wse
- KP8LHij/Cx4o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAVNkn/FTZJ/ydnif8nZ4n/Cx4o/wseKP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAABU2Sf8VNkn/J2eJ/ydnif8LHij/Cx4o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVNkn/FTZJ/ydnif8nZ4n/Cx4o/wseKP8AAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU2Sf8VNkn/J2eJ/ydnif8LHij/Cx4o/wAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVNkn/FTZJ/x5O
- aP8eTmj/Cx4o/wseKP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU2
- Sf8VNkn/Hk5o/x5OaP8LHij/Cx4o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAVNkn/FTZJ/ydnif8nZ4n/Cx4o/wseKP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAERERP9ERET/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAABU2Sf8VNkn/J2eJ/ydnif8LHij/Cx4o/wAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAARERE/0RERP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVNkn/FTZJ/x5OaP8eTmj/Cx4o/wse
- KP8AAAAAAAAAAAAAAAAAAAAARERE/0RERP///////////xU2Sf8VNkn//P39//z9/f8AAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU2Sf8VNkn/Hk5o/x5O
- aP8LHij/Cx4o/wAAAAAAAAAAAAAAAAAAAABERET/RERE////////////FTZJ/xU2Sf/8/f3//P39/wAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAVNkn/FTZJ/ydnif8nZ4n/Cx4o/wseKP9ERET/RERE////////////2NjY/9jY2P/BwcH/wcHB/wse
- KP8LHij/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAABU2Sf8VNkn/J2eJ/ydnif8LHij/Cx4o/0RERP9ERET////////////Y2Nj/2NjY/8HB
- wf/BwcH/Cx4o/wseKP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVNkn/FTZJ/0RERP9ERET////////////Y2Nj/2NjY/8HB
- wf/BwcH/2NjY/9jY2P///////////0RERP9ERET/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU2Sf8VNkn/RERE/0RERP///////////9jY
- 2P/Y2Nj/wcHB/8HBwf/Y2Nj/2NjY////////////RERE/0RERP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARERE/0RERP//////////////
- ////////wcHB/8HBwf/Y2Nj/2NjY////////////RERE/0RERP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERET/RERE////
- ///////////////////BwcH/wcHB/9jY2P/Y2Nj///////////9ERET/RERE/wAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERET/RERE////
- ////////2NjY/9jY2P/BwcH/wcHB//////////////////////9ERET/RERE/wAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERE
- RP9ERET////////////Y2Nj/2NjY/8HBwf/BwcH//////////////////////0RERP9ERET/AAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERE
- RP9ERET////////////Y2Nj/2NjY/8HBwf/BwcH/2NjY/9jY2P///////////0RERP9ERET/Cx4o/wse
- KP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAARERE/0RERP///////////9jY2P/Y2Nj/wcHB/8HBwf/Y2Nj/2NjY////////////RERE/0RE
- RP8LHij/Cx4o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAseKP8LHij/wcHB/8HBwf/Y2Nj/2NjY////////////RERE/0RE
- RP8VNkn/FTZJ/ydnif8nZ4n/+Pn5//j5+f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACx4o/wseKP/BwcH/wcHB/9jY2P/Y2Nj/////////
- //9ERET/RERE/xU2Sf8VNkn/J2eJ/ydnif/4+fn/+Pn5/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/f3//P39/xU2Sf8VNkn/////////
- //9ERET/RERE/wAAAAAAAAAAAAAAAAAAAADJ0NX/ydDV/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz9/f/8/f3/FTZJ/xU2
- Sf///////////0RERP9ERET/AAAAAAAAAAAAAAAAAAAAAMnQ1f/J0NX/AAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAERERP9ERET/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAARERE/0RERP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////8P////D////wP///8D/
- ///wP///8D////wP///8D////wP8//8D/P//wPAP/8DwD//wAA//8AAP//wAA//8AAP//AAP//wAD//w
- AD//8AA//8AAP//AAD//8AAP//AAD//wDz//8A8///8/////P////////////w==
-
-
-
\ No newline at end of file
diff --git a/IRC/ForgeBot.cs b/IRC/ForgeBot.cs
index caa5457bb..c33676b49 100644
--- a/IRC/ForgeBot.cs
+++ b/IRC/ForgeBot.cs
@@ -1,19 +1,19 @@
/*
- Copyright 2011 MCGalaxy
-
- Dual-licensed under the Educational Community License, Version 2.0 and
- the GNU General Public License, Version 3 (the "Licenses"); you may
- not use this file except in compliance with the Licenses. You may
- obtain a copy of the Licenses at
-
- http://www.opensource.org/licenses/ecl2.php
- http://www.gnu.org/licenses/gpl-3.0.html
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the Licenses are distributed on an "AS IS"
- BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- or implied. See the Licenses for the specific language governing
- permissions and limitations under the Licenses.
+ Copyright 2011 MCGalaxy
+
+ Dual-licensed under the Educational Community License, Version 2.0 and
+ the GNU General Public License, Version 3 (the "Licenses"); you may
+ not use this file except in compliance with the Licenses. You may
+ obtain a copy of the Licenses at
+
+ http://www.opensource.org/licenses/ecl2.php
+ http://www.gnu.org/licenses/gpl-3.0.html
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the Licenses are distributed on an "AS IS"
+ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ or implied. See the Licenses for the specific language governing
+ permissions and limitations under the Licenses.
*/
using System;
using System.Collections.Generic;
@@ -23,153 +23,162 @@ using MCGalaxy.Commands;
using Sharkbite.Irc;
namespace MCGalaxy {
- public sealed class ForgeBot {
- public static readonly string ColorSignal = "\x03";
+ public sealed class ForgeBot {
+ public static readonly string ColorSignal = "\x03";
public static readonly string ColorSignal2 = "\x030";
- public static readonly string ResetSignal = "\x03";
- private Connection connection;
- private List banCmd;
- private string channel, opchannel;
- private string nick;
- private string server;
- private bool reset = false;
- private byte retries = 0;
- public string usedCmd = "";
- public ForgeBot(string channel, string opchannel, string nick, string server) {
- /*if (!File.Exists("Sharkbite.Thresher.dll"))
- {
- Server.irc = false;
- Server.s.Log("[IRC] The IRC dll was not found!");
- return;
- }*/
- this.channel = channel.Trim(); this.opchannel = opchannel.Trim(); this.nick = nick.Replace(" ", ""); this.server = server;
- banCmd = new List();
- banCmd.Add("resetbot");
- banCmd.Add("oprules");
-
- if (Server.irc) {
+ public static readonly string ResetSignal = "\x03";
+ private Connection connection;
+ private List banCmd;
+ private string channel, opchannel;
+ private string nick;
+ private string server;
+ private bool reset = false;
+ private byte retries = 0;
+ public string usedCmd = "";
+ Dictionary> users = new Dictionary>();
+
+ public ForgeBot(string channel, string opchannel, string nick, string server) {
+ this.channel = channel.Trim(); this.opchannel = opchannel.Trim(); this.nick = nick.Replace(" ", ""); this.server = server;
+ banCmd = new List();
+ banCmd.Add("resetbot");
+ banCmd.Add("oprules");
+
+ if (Server.irc) {
ConnectionArgs con = new ConnectionArgs(nick, server);
con.Port = Server.ircPort;
connection = new Connection(con, false, false);
- // Regster events for outgoing
- Player.PlayerChat += new Player.OnPlayerChat(Player_PlayerChat);
- Player.PlayerConnect += new Player.OnPlayerConnect(Player_PlayerConnect);
- Player.PlayerDisconnect += new Player.OnPlayerDisconnect(Player_PlayerDisconnect);
+ // Regster events for outgoing
+ Player.PlayerChat += new Player.OnPlayerChat(Player_PlayerChat);
+ Player.PlayerConnect += new Player.OnPlayerConnect(Player_PlayerConnect);
+ Player.PlayerDisconnect += new Player.OnPlayerDisconnect(Player_PlayerDisconnect);
- // Regster events for incoming
- connection.Listener.OnNick += new NickEventHandler(Listener_OnNick);
- connection.Listener.OnRegistered += new RegisteredEventHandler(Listener_OnRegistered);
- connection.Listener.OnPublic += new PublicMessageEventHandler(Listener_OnPublic);
- connection.Listener.OnPrivate += new PrivateMessageEventHandler(Listener_OnPrivate);
- connection.Listener.OnError += new ErrorMessageEventHandler(Listener_OnError);
- connection.Listener.OnQuit += new QuitEventHandler(Listener_OnQuit);
- connection.Listener.OnJoin += new JoinEventHandler(Listener_OnJoin);
- connection.Listener.OnPart += new PartEventHandler(Listener_OnPart);
- connection.Listener.OnDisconnected += new DisconnectedEventHandler(Listener_OnDisconnected);
+ // Regster events for incoming
+ connection.Listener.OnNick += new NickEventHandler(Listener_OnNick);
+ connection.Listener.OnRegistered += new RegisteredEventHandler(Listener_OnRegistered);
+ connection.Listener.OnPublic += new PublicMessageEventHandler(Listener_OnPublic);
+ connection.Listener.OnPrivate += new PrivateMessageEventHandler(Listener_OnPrivate);
+ connection.Listener.OnError += new ErrorMessageEventHandler(Listener_OnError);
+ connection.Listener.OnQuit += new QuitEventHandler(Listener_OnQuit);
+ connection.Listener.OnJoin += new JoinEventHandler(Listener_OnJoin);
+ connection.Listener.OnPart += new PartEventHandler(Listener_OnPart);
+ connection.Listener.OnDisconnected += new DisconnectedEventHandler(Listener_OnDisconnected);
+ connection.Listener.OnChannelModeChange += new ChannelModeChangeEventHandler(Listener_OnChannelModeChange);
+ connection.Listener.OnNames += new NamesEventHandler(Listener_OnNames);
+ connection.Listener.OnKick += new KickEventHandler(Listener_OnKick);
+ connection.Listener.OnKill += new KillEventHandler(Listener_OnKill);
- // Load banned commands list
- if (File.Exists("text/ircbancmd.txt")) // Backwards compatibility
- {
- using (StreamWriter sw = File.CreateText("text/irccmdblacklist.txt")) {
- sw.WriteLine("#Here you can put commands that cannot be used from the IRC bot.");
- sw.WriteLine("#Lines starting with \"#\" are ignored.");
- foreach (string line in File.ReadAllLines("text/ircbancmd.txt"))
- sw.WriteLine(line);
- }
- File.Delete("text/ircbancmd.txt");
- }
- else {
- if (!File.Exists("text/irccmdblacklist.txt"))
- File.WriteAllLines("text/irccmdblacklist.txt", new String[] { "#Here you can put commands that cannot be used from the IRC bot.", "#Lines starting with \"#\" are ignored." });
- foreach (string line in File.ReadAllLines("text/irccmdblacklist.txt"))
- if (line[0] != '#') banCmd.Add(line);
- }
- }
- }
- public void Say(string message, bool opchat = false, bool color = true) {
- if (!Server.irc || !IsConnected()) return;
+ // Load banned commands list
+ if (File.Exists("text/ircbancmd.txt")) { // Backwards compatibility
+ using (StreamWriter sw = File.CreateText("text/irccmdblacklist.txt")) {
+ sw.WriteLine("#Here you can put commands that cannot be used from the IRC bot.");
+ sw.WriteLine("#Lines starting with \"#\" are ignored.");
+ foreach (string line in File.ReadAllLines("text/ircbancmd.txt"))
+ sw.WriteLine(line);
+ }
+ File.Delete("text/ircbancmd.txt");
+ } else {
+ if (!File.Exists("text/irccmdblacklist.txt"))
+ File.WriteAllLines("text/irccmdblacklist.txt", new String[] { "#Here you can put commands that cannot be used from the IRC bot.", "#Lines starting with \"#\" are ignored." });
+ foreach (string line in File.ReadAllLines("text/irccmdblacklist.txt"))
+ if (line[0] != '#') banCmd.Add(line);
+ }
+ }
+ }
- if(String.IsNullOrEmpty(message.Trim()))
- message = ".";
+ public void Say(string message, bool opchat = false, bool color = true) {
+ if (!Server.irc || !IsConnected()) return;
- if (color) {
- message = c.MinecraftToIrcColors(message.Replace("%r", ResetSignal));
- }
+ if(String.IsNullOrEmpty(message.Trim()))
+ message = ".";
- connection.Sender.PublicMessage(opchat ? opchannel : channel, message);
- }
- public void Pm(string user, string message) {
- if (Server.irc && IsConnected())
- connection.Sender.PrivateMessage(user, message);
- }
- public void Reset() {
- if (!Server.irc) return;
- reset = true;
- retries = 0;
- Disconnect("IRC Bot resetting...");
- Connect();
- }
- void Listener_OnJoin(UserInfo user, string channel) {
- doJoinLeaveMessage(user.Nick, "joined", channel);
- }
- void Listener_OnPart(UserInfo user, string channel, string reason) {
- if (user.Nick == nick) return;
- doJoinLeaveMessage(user.Nick, "left", channel);
- }
+ if (color) {
+ message = c.MinecraftToIrcColors(message.Replace("%r", ResetSignal));
+ }
- private void doJoinLeaveMessage(string who, string verb, string channel) {
- Server.s.Log(String.Format("{0} has {1} channel {2}", who, verb, channel));
- Player.GlobalMessage(String.Format("%I[IRC] {0} has {1} the{2} channel", who, verb, (channel.ToLower() == opchannel.ToLower() ? " operator" : "")));
- }
- void Player_PlayerDisconnect(Player p, string reason) {
- if (Server.irc && IsConnected())
- if (Server.guestLeaveNotify == false && p.group.Permission <= LevelPermission.Guest) {
- return;
- }
- connection.Sender.PublicMessage(channel, p.name + " left the game (" + reason + ")");
- }
+ connection.Sender.PublicMessage(opchat ? opchannel : channel, message);
+ }
+
+ public void Pm(string user, string message) {
+ if (Server.irc && IsConnected())
+ connection.Sender.PrivateMessage(user, message);
+ }
+
+ public void Reset() {
+ if (!Server.irc) return;
+ reset = true;
+ retries = 0;
+ Disconnect("IRC Bot resetting...");
+ Connect();
+ }
+
+ void Listener_OnJoin(UserInfo user, string channel) {
+ connection.Sender.Names(channel);
+ doJoinLeaveMessage(user.Nick, "joined", channel);
+ }
+
+ void Listener_OnPart(UserInfo user, string channel, string reason) {
+ List chanNicks = GetNicks(channel);
+ RemoveNick(user.Nick, chanNicks);
+ if (user.Nick == nick) return;
+ doJoinLeaveMessage(user.Nick, "left", channel);
+ }
- void Player_PlayerConnect(Player p) {
- if (Server.irc && IsConnected())
- if (Server.guestJoinNotify == false && p.group.Permission <= LevelPermission.Guest) {
- return;
- }
- connection.Sender.PublicMessage(channel, p.name + " joined the game");
- }
+ private void doJoinLeaveMessage(string who, string verb, string channel) {
+ Server.s.Log(String.Format("{0} has {1} channel {2}", who, verb, channel));
+ Player.GlobalMessage(String.Format("%I[IRC] {0} has {1} the{2} channel", who, verb, (channel.ToLower() == opchannel.ToLower() ? " operator" : "")));
+ }
+
+ void Player_PlayerDisconnect(Player p, string reason) {
+ if (Server.irc && IsConnected())
+ if (Server.guestLeaveNotify == false && p.group.Permission <= LevelPermission.Guest) {
+ return;
+ }
+ connection.Sender.PublicMessage(channel, p.name + " left the game (" + reason + ")");
+ }
- void Listener_OnQuit(UserInfo user, string reason) {
- if (user.Nick == nick) return;
- Server.s.Log(user.Nick + " has left IRC");
- Player.GlobalMessage("%I" + user.Nick + Server.DefaultColor + " has left IRC");
- }
+ void Player_PlayerConnect(Player p) {
+ if (Server.irc && IsConnected())
+ if (Server.guestJoinNotify == false && p.group.Permission <= LevelPermission.Guest) {
+ return;
+ }
+ connection.Sender.PublicMessage(channel, p.name + " joined the game");
+ }
- void Listener_OnError(ReplyCode code, string message) {
- Server.s.Log("IRC Error: " + message);
- }
+ void Listener_OnQuit(UserInfo user, string reason) {
+ List chanNicks = GetNicks(channel);
+ RemoveNick(user.Nick, chanNicks);
+ if (user.Nick == nick) return;
+ Server.s.Log(user.Nick + " has left IRC");
+ Player.GlobalMessage("%I" + user.Nick + Server.DefaultColor + " has left IRC");
+ }
- void Listener_OnPrivate(UserInfo user, string message) {
- if (!Server.ircControllers.Contains(user.Nick)) { Pm(user.Nick, "You are not an IRC controller!"); return; }
- if (message.Split(' ')[0] == "resetbot" || banCmd.Contains(message.Split(' ')[0])) { Pm(user.Nick, "You cannot use this command from IRC!"); return; }
- if (Player.CommandHasBadColourCodes(null, message)) { Pm(user.Nick, "Your command had invalid color codes!"); return; }
+ void Listener_OnError(ReplyCode code, string message) {
+ Server.s.Log("IRC Error: " + message);
+ }
- Command cmd = Command.all.Find(message.Split(' ')[0]);
- if (cmd != null) {
- Server.s.Log("IRC Command: /" + message);
- usedCmd = user.Nick;
- try { cmd.Use(new Player("IRC"), message.Split(' ').Length > 1 ? message.Substring(message.IndexOf(' ')).Trim() : ""); }
- catch { Pm(user.Nick, "Failed command!"); }
- usedCmd = "";
- }
- else
- Pm(user.Nick, "Unknown command!");
- }
+ void Listener_OnPrivate(UserInfo user, string message) {
+ if (!Server.ircControllers.Contains(user.Nick)) { Pm(user.Nick, "You are not an IRC controller!"); return; }
+ if (message.Split(' ')[0] == "resetbot" || banCmd.Contains(message.Split(' ')[0])) { Pm(user.Nick, "You cannot use this command from IRC!"); return; }
+ if (Player.CommandHasBadColourCodes(null, message)) { Pm(user.Nick, "Your command had invalid color codes!"); return; }
- void Listener_OnPublic(UserInfo user, string channel, string message) {
- string[] parts = message.Split(new char[] { ' ' }, 3);
- //string allowedchars = "1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./!@#$%^*()_+QWERTYUIOPASDFGHJKL:\"ZXCVBNM<>? ";
- // Allowed chars are any ASCII char between 20h/32 and 7Ah/122 inclusive, except for 26h/38 (&) and 60h/96 (`)
+ Command cmd = Command.all.Find(message.Split(' ')[0]);
+ if (cmd != null) {
+ Server.s.Log("IRC Command: /" + message);
+ usedCmd = user.Nick;
+ try { cmd.Use(new Player("IRC"), message.Split(' ').Length > 1 ? message.Substring(message.IndexOf(' ')).Trim() : ""); }
+ catch { Pm(user.Nick, "Failed command!"); }
+ usedCmd = "";
+ }
+ else
+ Pm(user.Nick, "Unknown command!");
+ }
+
+ void Listener_OnPublic(UserInfo user, string channel, string message) {
+ string[] parts = message.Split(new char[] { ' ' }, 3);
+ //string allowedchars = "1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./!@#$%^*()_+QWERTYUIOPASDFGHJKL:\"ZXCVBNM<>? ";
+ // Allowed chars are any ASCII char between 20h/32 and 7Ah/122 inclusive, except for 26h/38 (&) and 60h/96 (`)
string ircCommand = parts[0].ToLower();
if (ircCommand == ".who" || ircCommand == ".players") {
try {
@@ -181,13 +190,26 @@ namespace MCGalaxy {
if (ircCommand == ".x") {
if (Server.ircControllers.Contains(user.Nick))
{
- string cmdName = parts.Length >= 2 ? parts[1] : "";
+ List chanNicks;
+ if (!users.TryGetValue(channel, out chanNicks))
+ return;
+ int index = GetNickIndex(user.Nick, chanNicks);
+ if (index < 0) {
+ Server.IRC.Say("You are not on the bot's list of " +
+ "users for some reason, please leave and rejoin."); return;
+ }
+ string prefix = GetPrefix(chanNicks[index]);
+ if (prefix == "" || prefix == "+") {
+ Server.IRC.Say("You must be at least a half-op on the channel to use commands from IRC."); return;
+ }
+
+ string cmdName = parts.Length >= 2 ? parts[1] : "";
if (banCmd.Contains(cmdName)) {
- Server.IRC.Say("You are not allowed to use this command from IRC."); return;
- }
+ Server.IRC.Say("You are not allowed to use this command from IRC."); return;
+ }
if (Player.CommandHasBadColourCodes(null, message)) {
- Server.IRC.Say("Your command had invalid color codes!"); return;
- }
+ Server.IRC.Say("Your command had invalid color codes!"); return;
+ }
Command cmd = Command.all.Find(cmdName);
if (cmdName != "" && cmd != null)
@@ -208,110 +230,197 @@ namespace MCGalaxy {
}
message = c.IrcToMinecraftColors(message);
- if(String.IsNullOrEmpty(message.Trim()))
- message = ".";
+ if(String.IsNullOrEmpty(message.Trim()))
+ message = ".";
- if (channel.ToLower() == opchannel.ToLower()) {
- Server.s.Log(String.Format("(OPs): [IRC] {0}: {1}", user.Nick, message));
- Chat.GlobalMessageOps(String.Format("To Ops &f-%I[IRC] {0}&f- {1}", user.Nick, Server.profanityFilter ? ProfanityFilter.Parse(message) : message));
- } else {
- Server.s.Log(String.Format("[IRC] {0}: {1}", user.Nick, message));
- Player.GlobalMessage(String.Format("%I[IRC] {0}: &f{1}", user.Nick, Server.profanityFilter ? ProfanityFilter.Parse(message) : message));
- }
- }
+ if (channel.ToLower() == opchannel.ToLower()) {
+ Server.s.Log(String.Format("(OPs): [IRC] {0}: {1}", user.Nick, message));
+ Chat.GlobalMessageOps(String.Format("To Ops &f-%I[IRC] {0}&f- {1}", user.Nick, Server.profanityFilter ? ProfanityFilter.Parse(message) : message));
+ } else {
+ Server.s.Log(String.Format("[IRC] {0}: {1}", user.Nick, message));
+ Player.GlobalMessage(String.Format("%I[IRC] {0}: &f{1}", user.Nick, Server.profanityFilter ? ProfanityFilter.Parse(message) : message));
+ }
+ }
- void Listener_OnRegistered() {
- Server.s.Log("Connected to IRC!");
- reset = false;
- retries = 0;
- if (Server.ircIdentify && Server.ircPassword != "") {
- Server.s.Log("Identifying with NickServ");
- connection.Sender.PrivateMessage("NickServ", "IDENTIFY " + Server.ircPassword);
- }
+ void Listener_OnRegistered() {
+ Server.s.Log("Connected to IRC!");
+ reset = false;
+ retries = 0;
+ if (Server.ircIdentify && Server.ircPassword != "") {
+ Server.s.Log("Identifying with NickServ");
+ connection.Sender.PrivateMessage("NickServ", "IDENTIFY " + Server.ircPassword);
+ }
- Server.s.Log("Joining channels...");
+ Server.s.Log("Joining channels...");
- if (!String.IsNullOrEmpty(channel))
- connection.Sender.Join(channel);
- if (!String.IsNullOrEmpty(opchannel))
- connection.Sender.Join(opchannel);
- }
+ if (!String.IsNullOrEmpty(channel))
+ connection.Sender.Join(channel);
+ if (!String.IsNullOrEmpty(opchannel))
+ connection.Sender.Join(opchannel);
+ }
- void Listener_OnDisconnected() {
- if (!reset && retries < 3) { retries++; Connect(); }
- }
+ void Listener_OnDisconnected() {
+ if (!reset && retries < 3) { retries++; Connect(); }
+ }
- void Listener_OnNick(UserInfo user, string newNick) {
- //Player.GlobalMessage(Server.IRCColour + "[IRC] " + user.Nick + " changed nick to " + newNick);
+ void Listener_OnNick(UserInfo user, string newNick) {
+ //Player.GlobalMessage(Server.IRCColour + "[IRC] " + user.Nick + " changed nick to " + newNick);
- if (newNick.Trim() == "") {
- this.Pm(user.Nick, "You cannot have that username");
- return;
- }
+ if (newNick.Trim() == "") {
+ this.Pm(user.Nick, "You cannot have that username");
+ return;
+ }
+
+ foreach (var kvp in users) {
+ int index = GetNickIndex(user.Nick, kvp.Value);
+ if (index >= 0) {
+ string prefix = GetPrefix(kvp.Value[index]);
+ kvp.Value[index] = prefix + newNick;
+ } else {
+ // should never happen, but just in case.
+ connection.Sender.Names(kvp.Key);
+ }
+ }
- string key;
- if (newNick.Split('|').Length == 2) {
- key = newNick.Split('|')[1];
- if (key != null && key != "") {
- switch (key) {
- case "AFK":
- Player.GlobalMessage("[IRC] %I" + user.Nick + Server.DefaultColor + " is AFK"); Server.ircafkset.Add(user.Nick); break;
- case "Away":
- Player.GlobalMessage("[IRC] %I" + user.Nick + Server.DefaultColor + " is Away"); Server.ircafkset.Add(user.Nick); break;
- }
- }
- }
- else if (Server.ircafkset.Contains(newNick)) {
- Player.GlobalMessage("[IRC] %I" + newNick + Server.DefaultColor + " is back");
- Server.ircafkset.Remove(newNick);
- }
- else
- Player.GlobalMessage("[IRC] %I" + user.Nick + Server.DefaultColor + " is now known as " + newNick);
- }
- void Player_PlayerChat(Player p, string message) {
+ string key;
+ if (newNick.Split('|').Length == 2) {
+ key = newNick.Split('|')[1];
+ if (key != null && key != "") {
+ switch (key) {
+ case "AFK":
+ Player.GlobalMessage("[IRC] %I" + user.Nick + Server.DefaultColor + " is AFK"); Server.ircafkset.Add(user.Nick); break;
+ case "Away":
+ Player.GlobalMessage("[IRC] %I" + user.Nick + Server.DefaultColor + " is Away"); Server.ircafkset.Add(user.Nick); break;
+ }
+ }
+ }
+ else if (Server.ircafkset.Contains(newNick)) {
+ Player.GlobalMessage("[IRC] %I" + newNick + Server.DefaultColor + " is back");
+ Server.ircafkset.Remove(newNick);
+ }
+ else
+ Player.GlobalMessage("[IRC] %I" + user.Nick + Server.DefaultColor + " is now known as " + newNick);
+ }
+
+ void Player_PlayerChat(Player p, string message) {
+ if (String.IsNullOrEmpty(message.Trim())) {
+ Player.SendMessage(p, "You cannot send that message");
+ return;
+ }
-
- if (String.IsNullOrEmpty(message.Trim())) {
- Player.SendMessage(p, "You cannot send that message");
- return;
- }
-
-
- if (Server.ircColorsEnable && Server.irc && IsConnected())
- Say(p.color + p.prefix + p.DisplayName + "%r: " + message, p.opchat);
+ if (Server.ircColorsEnable && Server.irc && IsConnected())
+ Say(p.color + p.prefix + p.DisplayName + "%r: " + message, p.opchat);
if (Server.ircColorsEnable == false && Server.irc && IsConnected())
{
Say(p.DisplayName + ": " + message, p.opchat);
}
- }
- public void Connect() {
- if (!Server.irc || Server.shuttingDown) return;
+ }
+
+ public void Connect() {
+ if (!Server.irc || Server.shuttingDown) return;
- /*new Thread(new ThreadStart(delegate
- {
- try { connection.Connect(); }
- catch (Exception e)
- {
- Server.s.Log("Failed to connect to IRC");
- Server.ErrorLog(e);
- }
- })).Start();*/
+ /*new Thread(new ThreadStart(delegate
+ {
+ try { connection.Connect(); }
+ catch (Exception e)
+ {
+ Server.s.Log("Failed to connect to IRC");
+ Server.ErrorLog(e);
+ }
+ })).Start();*/
- Server.s.Log("Connecting to IRC...");
+ Server.s.Log("Connecting to IRC...");
- try { connection.Connect(); }
- catch (Exception e) {
- Server.s.Log("Failed to connect to IRC!");
- Server.ErrorLog(e);
- }
- }
- public void Disconnect(string reason) {
- if (IsConnected()) { connection.Disconnect(reason); Server.s.Log("Disconnected from IRC!"); }
- }
- public bool IsConnected() {
- if (!Server.irc) return false;
- try { return connection.Connected; }
- catch { return false; }
+ try { connection.Connect(); }
+ catch (Exception e) {
+ Server.s.Log("Failed to connect to IRC!");
+ Server.ErrorLog(e);
+ }
+ }
+
+ public void Disconnect(string reason) {
+ if (IsConnected()) {
+ connection.Disconnect(reason);
+ Server.s.Log("Disconnected from IRC!");
+ users.Clear();
+ }
+ }
+
+ public bool IsConnected() {
+ if (!Server.irc) return false;
+ try { return connection.Connected; }
+ catch { return false; }
+ }
+
+
+ void Listener_OnNames(string channel, string[] nicks, bool last) {
+ List chanNicks = GetNicks(channel);
+ foreach (string n in nicks)
+ UpdateNick(n, chanNicks);
+ }
+
+ void Listener_OnChannelModeChange(UserInfo who, string channel, ChannelModeInfo[] modes) {
+ connection.Sender.Names(channel);
+ }
+
+ void Listener_OnKick(UserInfo user, string channel, string kickee, string reason) {
+ List chanNicks = GetNicks(channel);
+ RemoveNick(user.Nick, chanNicks);
+ }
+
+ void Listener_OnKill(UserInfo user, string nick, string reason) {
+ foreach (var kvp in users)
+ RemoveNick(user.Nick, kvp.Value);
+ }
+
+ List GetNicks(string channel) {
+ List chanNicks;
+ if (!users.TryGetValue(channel, out chanNicks)) {
+ chanNicks = new List();
+ users[channel] = chanNicks;
+ }
+ return chanNicks;
+ }
+
+ void UpdateNick(string n, List chanNicks) {
+ string unprefixNick = Unprefix(n);
+ for (int i = 0; i < chanNicks.Count; i++ ) {
+ if (unprefixNick == Unprefix(chanNicks[i])) {
+ chanNicks[i] = n; return;
+ }
+ }
+ chanNicks.Add(n);
+ }
+
+ void RemoveNick(string n, List chanNicks) {
+ int index = GetNickIndex(n, chanNicks);
+ if (index >= 0) chanNicks.RemoveAt(index);
+ }
+
+ int GetNickIndex(string n, List chanNicks) {
+ string unprefixNick = Unprefix(n);
+ for (int i = 0; i < chanNicks.Count; i++ ) {
+ if (unprefixNick == Unprefix(chanNicks[i]))
+ return i;
+ }
+ return -1;
+ }
+
+ string Unprefix(string nick) {
+ if (nick.Length == 0 || IsNickChar(nick[0]))
+ return nick;
+ return nick.Substring(1);
+ }
+
+ string GetPrefix(string nick) {
+ if (nick.Length == 0 || IsNickChar(nick[0]))
+ return "";
+ return nick.Substring(0, 1);
+ }
+
+ bool IsNickChar(char c) {
+ return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ||
+ c == '[' || c == ']' || c == '{' || c == '}' || c == '^' || c == '`' || c == '_' || c == '|';
}
}
}
diff --git a/MCGalaxy_.csproj b/MCGalaxy_.csproj
index a15055348..115328a66 100644
--- a/MCGalaxy_.csproj
+++ b/MCGalaxy_.csproj
@@ -501,12 +501,6 @@
-
- Form
-
-
- WoM.cs
-
@@ -522,7 +516,6 @@
EditText.cs
-
@@ -611,9 +604,6 @@
Window.cs
Designer
-
- WoM.cs
-
diff --git a/Network/WOMBeat.cs b/Network/WOMBeat.cs
deleted file mode 100644
index d30c17a34..000000000
--- a/Network/WOMBeat.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- Copyright 2011 MCGalaxy
-
- Dual-licensed under the Educational Community License, Version 2.0 and
- the GNU General Public License, Version 3 (the "Licenses"); you may
- not use this file except in compliance with the Licenses. You may
- obtain a copy of the Licenses at
-
- http://www.opensource.org/licenses/ecl2.php
- http://www.gnu.org/licenses/gpl-3.0.html
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the Licenses are distributed on an "AS IS"
- BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- or implied. See the Licenses for the specific language governing
- permissions and limitations under the Licenses.
-*/
-using System;
-using System.IO;
-using System.Net;
-using System.Text;
-namespace MCGalaxy
-{
- internal sealed class WOMBeat : IBeat
- {
-
- public string URL
- {
- get
- {
- return "http://direct.worldofminecraft.com/hb.php";
- }
- }
-
- public bool Persistance
- {
- get
- {
- return true;
- }
- }
-
- public static bool SetSettings(string IP, string Port, string Name, string Disc, string flags)
- {
-
- string url = "http://direct.worldofminecraft.com/server.php";
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
- string flag = "&flags=%5B" + flags + "%5D";
- if (flags.StartsWith("["))
- flag = "&flags=" + flags;
- string Parameters = "ip=" + IP + "&port=" + Port + "&salt=" + Server.salt + "&alt=" + Name.Replace(' ', '+') + "&desc=" + Disc.Replace(' ', '+') + "&noforward=1" + flag;
-
- int totalTries = 0;
- int totalTriesStream = 0;
- try
- {
- totalTries++;
- totalTriesStream = 0;
- // Set all the request settings
- //Server.s.Log(beat.Parameters);
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
- byte[] formData = Encoding.ASCII.GetBytes(Parameters);
- request.ContentLength = formData.Length;
- request.Timeout = 15000; // 15 seconds
- try
- {
- totalTriesStream++;
- using (Stream requestStream = request.GetRequestStream())
- {
- requestStream.Write(formData, 0, formData.Length);
- requestStream.Flush();
- requestStream.Close();
- requestStream.Dispose();
- }
- return true;
- }
- catch (Exception e)
- {
- Server.ErrorLog(e);
- return false;
- }
- }
- catch (Exception e)
- {
- Server.ErrorLog(e);
- return false;
- }
- }
-
- public string Prepare()
- {
- return "&port=" + Server.port +
- "&max=" + Server.players +
- "&name=" + Heart.EncodeUrl(Server.name) +
- "&public=" + Server.pub +
- "&version=" + Server.version +
- "&salt=" + Server.salt +
- "&users=" + Player.number +
- "&alt=" + Server.Server_ALT +
- "&desc=" + Server.Server_Disc +
- "&flags=" + Server.Server_Flag;
- }
-
- public void OnResponse(string line)
- {
-
- }
-
- }
-}
diff --git a/Server/Server.cs b/Server/Server.cs
index bd30777de..8b5ba5e1e 100644
--- a/Server/Server.cs
+++ b/Server/Server.cs
@@ -349,7 +349,6 @@ namespace MCGalaxy
public static bool adminsjoinsilent = false;
public static bool mono { get { return (Type.GetType("Mono.Runtime") != null); } }
public static string server_owner = "Notch";
- public static bool WomDirect = false;
public static bool UseSeasons = false;
public static bool guestLimitNotify = false;
public static bool guestJoinNotify = true;