From 03b2806779011f73b511569e9e4dbd4bb1abd457 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Thu, 2 Nov 2017 20:37:55 +1100 Subject: [PATCH] Remove some usage of X.Parse in LS commands --- MCGalaxy/Commands/Fun/CmdLavaSurvival.cs | 76 ++++++++++--------- MCGalaxy/Commands/Fun/CmdTntWars.cs | 7 +- .../Games/LavaSurvival/LavaSurvival.Game.cs | 2 +- MCGalaxy/Games/LavaSurvival/LavaSurvival.cs | 17 ----- 4 files changed, 41 insertions(+), 61 deletions(-) diff --git a/MCGalaxy/Commands/Fun/CmdLavaSurvival.cs b/MCGalaxy/Commands/Fun/CmdLavaSurvival.cs index 8aba8150f..38544690e 100644 --- a/MCGalaxy/Commands/Fun/CmdLavaSurvival.cs +++ b/MCGalaxy/Commands/Fun/CmdLavaSurvival.cs @@ -95,19 +95,24 @@ namespace MCGalaxy.Commands.Fun { void HandleSetup(Player p, string[] args) { if (!CheckExtraPerm(p, 1)) return; - if (p == null) { Player.Message(p, "/{0} setup can only be used in-game.", name); return; } + if (p == null) { Player.Message(p, "/{0} setup can only be used in-game.", name); return; } if (args.Length < 2) { SetupHelp(p); return; } if (Server.lava.active) { Player.Message(p, "You cannot configure Lava Survival while a game is active."); return; } + string group = args[1]; - switch (args[1]) { - case "map": HandleSetupMap(p, args); return; - case "block": HandleSetupBlock(p, args); return; - case "safe": HandleSetupSafeZone(p, args); return; - case "safezone": HandleSetupSafeZone(p, args); return; - case "settings": HandleSetupSettings(p, args); return; - case "mapsettings": HandleSetupMapSettings(p, args); return; + if (group.CaselessEq("map")) { + HandleSetupMap(p, args); + } else if (group.CaselessEq("block")) { + HandleSetupBlock(p, args); + } else if (group.CaselessEq("safe") || group.CaselessEq("safezone")) { + HandleSetupSafeZone(p, args); + } else if (group.CaselessEq("settings")) { + HandleSetupSettings(p, args); + } else if (group.CaselessEq("mapsettings")) { + HandleSetupMapSettings(p, args); + } else { + SetupHelp(p); } - SetupHelp(p); } void HandleSetupMap(Player p, string[] args) { @@ -166,28 +171,25 @@ namespace MCGalaxy.Commands.Fun { Player.Message(p, "Start on server startup: " + (Server.lava.startOnStartup ? "&aON" : "&cOFF")); Player.Message(p, "Send AFK to main: " + (Server.lava.sendAfkMain ? "&aON" : "&cOFF")); Player.Message(p, "Vote count: &b" + Server.lava.voteCount); - Player.Message(p, "Vote time: &b" + Server.lava.voteTime + " minute" + (Server.lava.voteTime == 1 ? "" : "s")); + Player.Message(p, "Vote time: &b" + Server.lava.voteTime + " minutes"); return; } - try { - switch (args[2]) { - case "sendafkmain": - Server.lava.sendAfkMain = !Server.lava.sendAfkMain; - Player.Message(p, "Send AFK to main: " + (Server.lava.sendAfkMain ? "&aON" : "&cOFF")); - break; - case "votecount": - Server.lava.voteCount = (byte)Utils.Clamp(int.Parse(args[3]), 2, 10); - Player.Message(p, "Vote count: &b" + Server.lava.voteCount); - break; - case "votetime": - Server.lava.voteTime = double.Parse(args[3]); - Player.Message(p, "Vote time: &b" + Server.lava.voteTime + "minute" + (Server.lava.voteTime == 1 ? "" : "s")); - break; - default: - SetupHelp(p, "settings"); return; - } - } catch { Player.Message(p, "INVALID INPUT"); return; } + string opt = args[2], value = args[3]; + TimeSpan span = default(TimeSpan); + if (opt.CaselessEq("sendafkmain")) { + Server.lava.sendAfkMain = !Server.lava.sendAfkMain; + Player.Message(p, "Send AFK to main: " + (Server.lava.sendAfkMain ? "&aON" : "&cOFF")); + } else if (opt.CaselessEq("votecount")) { + if (!CommandParser.GetByte(p, value, "Count", ref Server.lava.voteCount, 2, 10)) return; + Player.Message(p, "Vote count: &b" + Server.lava.voteCount); + } else if (opt.CaselessEq("votetime")) { + if (!CommandParser.GetTimespan(p, value, ref span, "set time to", "m")) return; + Server.lava.voteTime = span.TotalMinutes; + Player.Message(p, "Vote time: &b" + span.Shorten(true)); + } else { + SetupHelp(p, "settings"); return; + } Server.lava.SaveSettings(); } @@ -200,11 +202,11 @@ namespace MCGalaxy.Commands.Fun { Player.Message(p, "Destroy blocks chance: &b" + settings.destroy + "%"); Player.Message(p, "Water flood chance: &b" + settings.water + "%"); Player.Message(p, "Layer flood chance: &b" + settings.layer + "%"); - Player.Message(p, "Layer height: &b" + settings.layerHeight + " block" + (settings.layerHeight == 1 ? "" : "s")); + Player.Message(p, "Layer height: &b" + settings.layerHeight + " blocks"); Player.Message(p, "Layer count: &b" + settings.layerCount); - Player.Message(p, "Layer time: &b" + settings.layerInterval + " minute" + (settings.layerInterval == 1 ? "" : "s")); - Player.Message(p, "Round time: &b" + settings.roundTime + " minute" + (settings.roundTime == 1 ? "" : "s")); - Player.Message(p, "Flood time: &b" + settings.floodTime + " minute" + (settings.floodTime == 1 ? "" : "s")); + Player.Message(p, "Layer time: &b" + settings.layerInterval + " minutes"); + Player.Message(p, "Round time: &b" + settings.roundTime + " minutes"); + Player.Message(p, "Flood time: &b" + settings.floodTime + " minutes"); Player.Message(p, "Flood position: &b" + settings.blockFlood.ToString(", ")); Player.Message(p, "Layer position: &b" + settings.blockLayer.ToString(", ")); Player.Message(p, "Safe zone: &b({0}) ({1})", settings.safeZone[0].ToString(", "), settings.safeZone[1].ToString(", ")); @@ -235,7 +237,7 @@ namespace MCGalaxy.Commands.Fun { break; case "layerheight": settings.layerHeight = int.Parse(args[3]); - Player.Message(p, "Layer height: &b" + settings.layerHeight + " block" + (settings.layerHeight == 1 ? "" : "s")); + Player.Message(p, "Layer height: &b" + settings.layerHeight + " blocks"); break; case "layercount": settings.layerCount = int.Parse(args[3]); @@ -243,15 +245,15 @@ namespace MCGalaxy.Commands.Fun { break; case "layertime": settings.layerInterval = double.Parse(args[3]); - Player.Message(p, "Layer time: &b" + settings.layerInterval + " minute" + (settings.layerInterval == 1 ? "" : "s")); + Player.Message(p, "Layer time: &b" + settings.layerInterval + " minutes"); break; case "roundtime": settings.roundTime = double.Parse(args[3]); - Player.Message(p, "Round time: &b" + settings.roundTime + " minute" + (settings.roundTime == 1 ? "" : "s")); + Player.Message(p, "Round time: &b" + settings.roundTime + " minutes"); break; case "floodtime": settings.floodTime = double.Parse(args[3]); - Player.Message(p, "Flood time: &b" + settings.floodTime + " minute" + (settings.floodTime == 1 ? "" : "s")); + Player.Message(p, "Flood time: &b" + settings.floodTime + " minutes"); break; default: SetupHelp(p, "mapsettings"); return; @@ -324,7 +326,7 @@ namespace MCGalaxy.Commands.Fun { Player.Message(p, "Position set! &b({0}, {1}, {2})", m[0].X, m[0].Y, m[0].Z); return false; } - + bool SetFloodLayerPos(Player p, Vec3S32[] m, object state, ExtBlock block) { LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name); settings.blockLayer = (Vec3U16)m[0]; diff --git a/MCGalaxy/Commands/Fun/CmdTntWars.cs b/MCGalaxy/Commands/Fun/CmdTntWars.cs index 38adf4e44..7ab43b333 100644 --- a/MCGalaxy/Commands/Fun/CmdTntWars.cs +++ b/MCGalaxy/Commands/Fun/CmdTntWars.cs @@ -105,8 +105,7 @@ namespace MCGalaxy.Commands.Fun { } TntWarsGame it; - if (text[1] == "red" || text[1] == "r" || text[1] == "1" || text[1] == "blue" - || text[1] == "b" || text[1] == "2" || text[1] == "auto" || text[1] == "a" || text[1].Length == 0) { + if (text[1] == "red" || text[1] == "r" || text[1] == "blue" || text[1] == "b" || text[1] == "auto" || text[1] == "a" || text[1].Length == 0) { it = TntWarsGame.Find(p.level); if (it == null) { Player.Message(p, "TNT Wars Error: There isn't a game on your current level!"); return; @@ -134,7 +133,6 @@ namespace MCGalaxy.Commands.Fun { switch (text[1]) { case "red": case "r": - case "1": if (it.Config.BalanceTeams && red > blue) { Player.Message(p, "TNT Wars Error: Red has too many players!"); return; } @@ -142,7 +140,6 @@ namespace MCGalaxy.Commands.Fun { case "blue": case "b": - case "2": if (it.Config.BalanceTeams && blue > red) { Player.Message(p, "TNT Wars Error: Blue has too many players!"); return; } @@ -445,13 +442,11 @@ namespace MCGalaxy.Commands.Fun { { case "red": case "r": - case "1": SetSpawn(p, ref it.RedSpawn, Colors.red + "Red %Sspawn"); break; case "blue": case "b": - case "2": SetSpawn(p, ref it.BlueSpawn, Colors.blue + "Blue %Sspawn"); break; } diff --git a/MCGalaxy/Games/LavaSurvival/LavaSurvival.Game.cs b/MCGalaxy/Games/LavaSurvival/LavaSurvival.Game.cs index dbae9317b..e639b31bc 100644 --- a/MCGalaxy/Games/LavaSurvival/LavaSurvival.Game.cs +++ b/MCGalaxy/Games/LavaSurvival/LavaSurvival.Game.cs @@ -48,7 +48,7 @@ namespace MCGalaxy.Games { AnnounceTimeLeft(!flooded, true, p); } else { Player.Message(p, "Vote for the next map!"); - Player.Message(p, "Choices: " + VoteString); + Player.Message(p, "Choices: &5" + votes.Keys.Join("%S, &5")); } } } diff --git a/MCGalaxy/Games/LavaSurvival/LavaSurvival.cs b/MCGalaxy/Games/LavaSurvival/LavaSurvival.cs index df2b5191c..479606621 100644 --- a/MCGalaxy/Games/LavaSurvival/LavaSurvival.cs +++ b/MCGalaxy/Games/LavaSurvival/LavaSurvival.cs @@ -457,23 +457,6 @@ namespace MCGalaxy.Games && y <= mapSettings.safeZone[1].Y && z >= mapSettings.safeZone[0].Z && z <= mapSettings.safeZone[1].Z; } - // Accessors - public string VoteString - { - get - { - if (votes.Count > 0) - { - StringBuilder sb = new StringBuilder(); - foreach (KeyValuePair kvp in votes) - sb.AppendFormat("%S, &5{0}", kvp.Key.Capitalize()); - sb.Remove(0, 4); - return sb.ToString(); - } - return String.Empty; - } - } - public List Maps { get