Fix when integer/long column is an empty string breaking PlayerData.Load, causing a stats reset for that player.

This commit is contained in:
UnknownShadow200 2016-08-02 10:27:03 +10:00
parent 8c51525fb9
commit 6bcb988dfb
2 changed files with 15 additions and 7 deletions

View File

@ -255,7 +255,7 @@ namespace MCGalaxy.Commands {
Player.Message(p, value + " has been allowed building on your map.");
} else if (cmd == "DEL") {
// TODO: Delete zone by name
if (value == "ALL" || value == "")
if (value.CaselessEq("ALL") || value == "")
CmdZone.DeleteAll(p);
} else if (cmd == "BLOCK") {
if (value == "") {

View File

@ -94,13 +94,13 @@ namespace MCGalaxy {
data.TitleColor = ParseColor(row["title_color"]);
data.Color = ParseColor(row["color"]);
data.Money = int.Parse(row["Money"].ToString());
data.Deaths = int.Parse(row["TotalDeaths"].ToString());
data.Logins = int.Parse(row["totalLogin"].ToString());
data.Kicks = int.Parse(row["totalKicked"].ToString());
data.Money = ParseInt(row["Money"].ToString());
data.Deaths = ParseInt(row["TotalDeaths"].ToString());
data.Logins = ParseInt(row["totalLogin"].ToString());
data.Kicks = ParseInt(row["totalKicked"].ToString());
long blocks = long.Parse(row["totalBlocks"].ToString());
long cuboided = long.Parse(row["totalCuboided"].ToString());
long blocks = ParseLong(row["totalBlocks"].ToString());
long cuboided = ParseLong(row["totalCuboided"].ToString());
data.TotalModified = blocks & LowerBitsMask;
data.TotalPlaced = blocks >> LowerBits;
data.TotalDrawn = cuboided & LowerBitsMask;
@ -109,6 +109,14 @@ namespace MCGalaxy {
}
static long ParseLong(string value) {
return value == "" ? 0 : long.Parse(value);
}
static int ParseInt(string value) {
return value == "" ? 0 : int.Parse(value);
}
static string ParseColor(object value) {
string col = value.ToString().Trim();
if (col == "") return col;