diff --git a/Commands/Moderation/CmdWhitelist.cs b/Commands/Moderation/CmdWhitelist.cs index aa3e1dcbb..f8b740e47 100644 --- a/Commands/Moderation/CmdWhitelist.cs +++ b/Commands/Moderation/CmdWhitelist.cs @@ -1,100 +1,70 @@ /* - Copyright 2010 MCLawl Team - Written by Valek (Modified for use with MCGalaxy) + Copyright 2010 MCLawl Team - Written by Valek (Modified for use with 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. -*/ -namespace MCGalaxy.Commands -{ - public sealed class CmdWhitelist : Command - { + 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. + */ +namespace MCGalaxy.Commands { + public sealed class CmdWhitelist : Command { public override string name { get { return "whitelist"; } } public override string shortcut { get { return "w"; } } - public override string type { get { return CommandTypes.Moderation; } } + public override string type { get { return CommandTypes.Moderation; } } public override bool museumUsable { get { return true; } } public override LevelPermission defaultRank { get { return LevelPermission.Operator; } } public CmdWhitelist() { } - public override void Use(Player p, string message) - { + public override void Use(Player p, string message) { if (!Server.useWhitelist) { Player.Message(p, "Whitelist is not enabled."); return; } if (message == "") { Help(p); return; } - int pos = message.IndexOf(' '); - if (pos != -1) - { - string action = message.Substring(0, pos); - string player = message.Substring(pos + 1); - - switch (action) - { - case "add": - if (Server.whiteList.Contains(player)) - { - Player.Message(p, "&f" + player + " %Sis already on the whitelist!"); - break; - } - Server.whiteList.Add(player); - Chat.GlobalMessageOps(p.ColoredName + " %Sadded &f" + player + " %Sto the whitelist."); - Server.whiteList.Save(); - Server.s.Log("WHITELIST: Added " + player); - break; - case "del": - if (!Server.whiteList.Contains(player)) - { - Player.Message(p, "&f" + player + " %Sis not on the whitelist!"); - break; - } - Server.whiteList.Remove(player); - Chat.GlobalMessageOps(p.ColoredName + " %Sremoved &f" + player + " %Sfrom the whitelist."); - Server.whiteList.Save(); - Server.s.Log("WHITELIST: Removed " + player); - break; - case "list": - string output = "Whitelist:&f"; - foreach (string wlName in Server.whiteList.All()) - { - output += " " + wlName + ","; - } - output = output.Substring(0, output.Length - 1); - Player.Message(p, output); - break; - default: - Help(p); - return; - } + int sep = message.IndexOf(' '); + string action = sep >= 0 ? message.Substring(0, sep) : message; + string player = sep >= 0 ? message.Substring(sep + 1) : ""; + + if (action.CaselessEq("list")) { + string output = "Whitelist: &f"; + foreach (string name in Server.whiteList.All()) + output += name + ", "; + output = output.Substring(0, output.Length - 2); + Player.Message(p, output); + return; } - else - { - if (message == "list") - { - string output = "Whitelist:&f"; - foreach (string wlName in Server.whiteList.All()) - { - output += " " + wlName + ","; - } - output = output.Substring(0, output.Length - 1); - Player.Message(p, output); + if (player == "") { Help(p); return; } + + if (action.CaselessEq("add")) { + if (Server.whiteList.Contains(player)) { + Player.Message(p, "&f" + player + " %Sis already on the whitelist!"); return; } - else - { - Help(p); + + Server.whiteList.Add(player); + Chat.GlobalMessageOps(p.ColoredName + " %Sadded &f" + player + " %Sto the whitelist."); + Server.whiteList.Save(); + Server.s.Log("WHITELIST: Added " + player); + } else if (action.CaselessEq("del")) { + if (!Server.whiteList.Contains(player)) { + Player.Message(p, "&f" + player + " %Sis not on the whitelist!"); return; } + + Server.whiteList.Remove(player); + Chat.GlobalMessageOps(p.ColoredName + " %Sremoved &f" + player + " %Sfrom the whitelist."); + Server.whiteList.Save(); + Server.s.Log("WHITELIST: Removed " + player); + } else { + Help(p); } } - public override void Help(Player p) - { + public override void Help(Player p) { Player.Message(p, "/whitelist [player] - Handles whitelist entry for [player], or lists all entries."); } } diff --git a/sharkbite.thresher/CommandBuilder.cs b/sharkbite.thresher/CommandBuilder.cs index 7b5eb9e12..ad958a8af 100644 --- a/sharkbite.thresher/CommandBuilder.cs +++ b/sharkbite.thresher/CommandBuilder.cs @@ -43,34 +43,20 @@ namespace Sharkbite.Irc internal const int MAX_COMMAND_SIZE = 512; internal const char CtcpQuote = '\u0001'; - internal CommandBuilder(Connection connection ) - { + internal CommandBuilder(Connection connection) { this.connection = connection; commandBuffer = new StringBuilder(MAX_COMMAND_SIZE); } - internal Connection Connection - { - get - { - return connection; - } - } - internal StringBuilder Buffer - { - get - { - return commandBuffer; - } - } + internal Connection Connection { get { return connection; } } + internal StringBuilder Buffer { get { return commandBuffer; } } /// /// This methods actually sends the notice and privmsg commands. /// It assumes that the message has already been broken up /// and has a valid target. /// - internal void SendMessage(string type, string target, string message) - { + internal void SendMessage(string type, string target, string message) { commandBuffer.Append(type); commandBuffer.Append(SPACE); commandBuffer.Append(target); @@ -78,13 +64,14 @@ namespace Sharkbite.Irc commandBuffer.Append(message); connection.SendCommand( commandBuffer ); } + /// /// Clear the contents of the string buffer. /// - internal void ClearBuffer() - { + internal void ClearBuffer() { commandBuffer.Remove(0, commandBuffer.Length ); } + /// /// Break up a large message into smaller peices that will fit within the IRC /// max message size.