Remove some usage of X.Parse in LS commands

This commit is contained in:
UnknownShadow200 2017-11-02 20:37:55 +11:00
parent 8af50e208f
commit 03b2806779
4 changed files with 41 additions and 61 deletions

View File

@ -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];

View File

@ -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;
}

View File

@ -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"));
}
}
}

View File

@ -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<string, int> kvp in votes)
sb.AppendFormat("%S, &5{0}", kvp.Key.Capitalize());
sb.Remove(0, 4);
return sb.ToString();
}
return String.Empty;
}
}
public List<string> Maps
{
get