diff --git a/Player/PlayerCollection.cs b/GUI/PlayerCollection.cs similarity index 100% rename from Player/PlayerCollection.cs rename to GUI/PlayerCollection.cs diff --git a/MCGalaxy_.csproj b/MCGalaxy_.csproj index 597e327f2..0aa8f8ed6 100644 --- a/MCGalaxy_.csproj +++ b/MCGalaxy_.csproj @@ -576,7 +576,6 @@ - diff --git a/Player/Player.Handlers.cs b/Player/Player.Handlers.cs index 028d789c3..2c08671ed 100644 --- a/Player/Player.Handlers.cs +++ b/Player/Player.Handlers.cs @@ -1064,26 +1064,18 @@ try { SendBlockchange(pos1.x, pos1.y, pos1.z, Block.waterstill); } catch { } // Put this after vote collection so that people can vote even when chat is moderated if ( Server.chatmod && !voice ) { this.SendMessage("Chat moderation is on, you cannot speak."); return; } - if ( Server.checkspam ) { - if ( Player.lastMSG == this.name ) { + if (Server.checkspam) { + if (Player.lastMSG == name) { consecutivemessages++; } else { consecutivemessages--; } - if ( this.consecutivemessages >= Server.spamcounter ) { - int total = Server.mutespamtime; + if (consecutivemessages >= Server.spamcounter) { + muteCooldown = Server.mutespamtime; Command.all.Find("mute").Use(null, name); Player.GlobalMessage(color + DisplayName + " %Shas been &0muted &efor spamming!"); - muteTimer.Elapsed += delegate { - total--; - if ( total <= 0 ) { - muteTimer.Stop(); - if (muted) Command.all.Find("mute").Use(null, name); - this.consecutivemessages = 0; - Player.Message(this, "Remember, no &cspamming %Snext time!"); - } - }; + muteTimer.Elapsed += MuteTimerElapsed; muteTimer.Start(); return; } diff --git a/Player/Player.Timers.cs b/Player/Player.Timers.cs index c7d04ab39..5d7cd113f 100644 --- a/Player/Player.Timers.cs +++ b/Player/Player.Timers.cs @@ -45,6 +45,7 @@ namespace MCGalaxy { CP437Writer.WriteAllText("text/welcome.txt", "Welcome to my server!"); SendMessage("Welcome to my server!"); } + loginTimer.Elapsed -= LoginTimerElapsed; loginTimer.Dispose(); extraTimer.Start(); } @@ -83,11 +84,12 @@ namespace MCGalaxy { if (Server.lava.active) SendMessage("There is a &aLava Survival %Sgame active! Join it by typing /ls go"); + extraTimer.Elapsed -= ExtraTimerElapsed; extraTimer.Dispose(); } void CheckTimerElapsed(object sender, ElapsedEventArgs e) { - if ( name == "" ) return; + if (name == "") return; SendRaw(Opcode.Ping); if (Server.afkminutes <= 0) return; @@ -117,5 +119,17 @@ namespace MCGalaxy { } } } + + int muteCooldown = 0; + void MuteTimerElapsed(object sender, ElapsedEventArgs e) { + muteCooldown--; + if ( muteCooldown > 0) return; + + muteTimer.Stop(); + muteTimer.Elapsed -= MuteTimerElapsed; + if (muted) Command.all.Find("mute").Use(null, name); + consecutivemessages = 0; + Player.Message(this, "Remember, no &cspamming %Snext time!"); + } } } diff --git a/Player/Player.cs b/Player/Player.cs index e3a277c18..87a01aa45 100644 --- a/Player/Player.cs +++ b/Player/Player.cs @@ -562,8 +562,10 @@ namespace MCGalaxy { // FlyBuffer.Clear(); SaveIgnores(); checkTimer.Stop(); + checkTimer.Elapsed -= CheckTimerElapsed; checkTimer.Dispose(); muteTimer.Stop(); + muteTimer.Elapsed -= MuteTimerElapsed; muteTimer.Dispose(); afkCount = 0; afkStart = DateTime.Now; diff --git a/Starter.csproj b/Starter.csproj index b3466b671..fa9b1b157 100644 --- a/Starter.csproj +++ b/Starter.csproj @@ -49,6 +49,7 @@ + Form