private void buttonOk_Click(object sender, EventArgs e) { if (edit) Economy.Settings.LevelsList.Remove(Economy.FindLevel(lvledit.oldname)); Economy.Settings.Level level = new Economy.Settings.Level(); level.name = textBoxName.Text.Split()[0]; level.price = (int)numericUpDownPrice.Value; level.x = comboBoxX.SelectedItem.ToString(); level.y = comboBoxY.SelectedItem.ToString(); level.z = comboBoxZ.SelectedItem.ToString(); level.type = comboBoxType.SelectedItem.ToString().ToLower(); Economy.Settings.LevelsList.Add(level); eco.UpdateLevels(); eco.CheckLevelEnables(); this.Close(); }
private void buttonOk_Click(object sender, EventArgs e) { if (edit) { Economy.Settings.LevelsList.Remove(Economy.FindLevel(lvledit.oldname)); } Economy.Settings.Level level = new Economy.Settings.Level(); level.name = textBoxName.Text.Split()[0]; level.price = (int)numericUpDownPrice.Value; level.x = comboBoxX.SelectedItem.ToString(); level.y = comboBoxY.SelectedItem.ToString(); level.z = comboBoxZ.SelectedItem.ToString(); level.type = comboBoxType.SelectedItem.ToString().ToLower(); Economy.Settings.LevelsList.Add(level); eco.UpdateLevels(); eco.CheckLevelEnables(); this.Close(); }
public override void Use(Player p, string message) { string[] command = message.Trim().Split(' '); string par0 = String.Empty; string par1 = String.Empty; string par2 = String.Empty; string par3 = String.Empty; string par4 = String.Empty; string par5 = String.Empty; string par6 = String.Empty; string par7 = String.Empty; string par8 = String.Empty; try { par0 = command[0].ToLower(); par1 = command[1].ToLower(); par2 = command[2]; par3 = command[3]; par4 = command[4]; par5 = command[5]; par6 = command[6]; par7 = command[7]; par8 = command[8]; } catch { } string ecoColor = "%3"; switch (par0) { case "setup": if ((int)p.group.Permission >= CommandOtherPerms.GetPerm(this)) { switch (par1) { case "apply": if (p != null) { if (p.name == Server.server_owner) { Economy.Load(); Player.SendMessage(p, "%aApplied changes"); } else Player.SendMessage(p, "%cThis command is only usable by the server owner: %6" + Server.server_owner); } else { //console fix Economy.Load(); Player.SendMessage(p, "%aApplied changes"); } return; case "maps": case "levels": case "map": case "level": Economy.Settings.Level lvl = Economy.FindLevel(par3); switch (par2) { case "new": case "create": case "add": if (Economy.FindLevel(par3) != null) { Player.SendMessage(p, "%cThat preset level already exists"); break; } else { Economy.Settings.Level level = new Economy.Settings.Level(); level.name = par3; if (isGood(par4) && isGood(par5) && isGood(par6)) { level.x = par4; level.y = par5; level.z = par6; } else { Player.SendMessage(p, "%cDimension must be a power of 2"); break; } switch (par7.ToLower()) { case "flat": case "pixel": case "island": case "mountains": case "ocean": case "forest": case "desert": case "space": level.type = par7.ToLower(); break; default: Player.SendMessage(p, "%cValid types are: island, mountains, forest, ocean, flat, pixel, desert, space"); break; } try { level.price = int.Parse(par8); } catch { Player.SendMessage(p, "%cInvalid price input: that wasn't a number!"); return; } Economy.Settings.LevelsList.Add(level); Player.SendMessage(p, "%aSuccessfully added the map preset with the following specs:"); Player.SendMessage(p, "Map Preset Name: %f" + level.name); Player.SendMessage(p, "x:" + level.x + ", y:" + level.y + ", z:" + level.z); Player.SendMessage(p, "Map Type: %f" + level.type); Player.SendMessage(p, "Map Price: %f" + level.price + " %3" + Server.moneys); break; } case "delete": case "remove": if (lvl == null) { Player.SendMessage(p, "%cThat preset level doesn't exist"); break; } else { Economy.Settings.LevelsList.Remove(lvl); Player.SendMessage(p, "%aSuccessfully removed preset: %f" + lvl.name); break; } case "edit": case "change": if (lvl == null) { Player.SendMessage(p, "%cThat preset level doesn't exist"); break; } else { switch (par4) { case "name": case "title": Economy.Settings.LevelsList.Remove(lvl); lvl.name = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "%aSuccessfully changed preset name to %f" + lvl.name); break; case "x": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.x = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "%aSuccessfully changed preset x size to %f" + lvl.x); } else { Player.SendMessage(p, "%cDimension was wrong, it must be a power of 2"); break; } break; case "y": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.y = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "%aSuccessfully changed preset y size to %f" + lvl.y); } else { Player.SendMessage(p, "%cDimension was wrong, it must be a power of 2"); break; } break; case "z": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.z = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "%aSuccessfully changed preset z size to %f" + lvl.z); } else { Player.SendMessage(p, "%cDimension was wrong, it must be a power of 2"); break; } break; case "type": Economy.Settings.LevelsList.Remove(lvl); switch (par5.ToLower()) { case "flat": case "pixel": case "island": case "mountains": case "ocean": case "forest": case "desert": case "space": lvl.type = par5.ToLower(); break; default: Player.SendMessage(p, "%cValid types are: island, mountains, forest, ocean, flat, pixel, desert, space"); Economy.Settings.LevelsList.Add(lvl); return; } Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "%aSuccessfully changed preset type to %f" + lvl.type); break; /*case "dimensions": case "sizes": case "dimension": case "size": Economy.Settings.LevelsList.Remove(lvl); if (isGood(par4)) { lvl.x = par4; } if (isGood(par5)) { lvl.y = par5; } if (isGood(par6)) { lvl.z = par6; } else { Player.SendMessage(p, "A Dimension was wrong, it must a power of 2"); Economy.Settings.LevelsList.Add(lvl); break; } Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset name"); break;*/ case "price": Economy.Settings.LevelsList.Remove(lvl); int old = lvl.price; try { lvl.price = int.Parse(par5); } catch { Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "%cInvalid amount of %3" + Server.moneys); return; } if (lvl.price < 0) { Player.SendMessage(p, "%cAmount of %3" + Server.moneys + "%c cannot be negative"); lvl.price = old; Economy.Settings.LevelsList.Add(lvl); return; } Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "%aSuccessfully changed preset price to %f" + lvl.price + " %3" + Server.moneys); break; default: Player.SendMessage(p, "%cThat wasn't a valid command addition!"); break; } } break; case "enable": if (Economy.Settings.Levels == true) { Player.SendMessage(p, "%cMaps are already enabled for the economy system"); break; } else { Economy.Settings.Levels = true; Player.SendMessage(p, "%aMaps are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Levels == false) { Player.SendMessage(p, "%cMaps are already disabled for the economy system"); break; } else { Economy.Settings.Levels = false; Player.SendMessage(p, "%aMaps are now disabled for the economy system"); break; } default: Player.SendMessage(p, "%cThat wasn't a valid command addition!"); break; } break; case "titles": case "title": switch (par2) { case "enable": if (Economy.Settings.Titles == true) { Player.SendMessage(p, "%cTitles are already enabled for the economy system"); break; } else { Economy.Settings.Titles = true; Player.SendMessage(p, "%aTitles are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Titles == false) { Player.SendMessage(p, "%cTitles are already disabled for the economy system"); break; } else { Economy.Settings.Titles = false; Player.SendMessage(p, "%aTitles are now disabled for the economy system"); break; } case "price": try { Economy.Settings.TitlePrice = int.Parse(par3); } catch { Player.SendMessage(p, "%cInvalid price input: that wasn't a number!"); return; } Player.SendMessage(p, "%aSuccessfully changed the title price to: %f" + Economy.Settings.TitlePrice + " %3" + Server.moneys); break; default: Player.SendMessage(p, "%cThat wasn't a valid command addition!"); break; } break; case "colors": case "colours": case "color": case "colour": switch (par2) { case "enable": if (Economy.Settings.Colors == true) { Player.SendMessage(p, "%cColors are already enabled for the economy system"); break; } else { Economy.Settings.Colors = true; Player.SendMessage(p, "%aColors are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Colors == false) { Player.SendMessage(p, "%cColors are already disabled for the economy system"); break; } else { Economy.Settings.Colors = false; Player.SendMessage(p, "%aColors are now disabled for the economy system"); break; } case "price": try { Economy.Settings.ColorPrice = int.Parse(par3); } catch { Player.SendMessage(p, "%cInvalid price input: that wasn't a number!"); return; } Player.SendMessage(p, "Successfully changed the color price to %f" + Economy.Settings.ColorPrice + " %3" + Server.moneys); break; default: Player.SendMessage(p, "%cThat wasn't a valid command addition!"); break; } break; case "tcolor": case "tcolors": case "titlecolor": case "titlecolors": case "tc": switch (par2) { case "enable": if (Economy.Settings.TColors == true) Player.SendMessage(p, "%cTitleColors are already enabled for the economy system"); else { Economy.Settings.TColors = true; Player.SendMessage(p, "%aTitleColors are now enabled for the economy system"); } break; case "disable": if (Economy.Settings.TColors == false) Player.SendMessage(p, "%cTitleColors are already disabled for the economy system"); else { Economy.Settings.TColors = false; Player.SendMessage(p, "%aTitleColors are now disabled for the economy system"); } break; case "price": try { Economy.Settings.TColorPrice = int.Parse(par3); } catch { Player.SendMessage(p, "%cInvalid price input: that wasn't a number!"); return; } Player.SendMessage(p, "%aSuccessfully changed the titlecolor price to %f" + Economy.Settings.TColorPrice + " %3" + Server.moneys); break; default: Player.SendMessage(p, "%cThat wasn't a valid command addition!"); break; } break; case "ranks": case "rank": switch (par2) { case "enable": if (Economy.Settings.Ranks == true) { Player.SendMessage(p, "%cRanks are already enabled for the economy system"); break; } else { Economy.Settings.Ranks = true; Player.SendMessage(p, "%aRanks are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Ranks == false) { Player.SendMessage(p, "%cRanks are already disabled for the economy system"); break; } else { Economy.Settings.Ranks = false; Player.SendMessage(p, "%aRanks are now disabled for the economy system"); break; } case "price": Economy.Settings.Rank rnk = Economy.FindRank(par3); if (rnk == null) { Player.SendMessage(p, "%cThat wasn't a rank or it's past the max rank (maxrank is: " + Group.Find(Economy.Settings.MaxRank).color + Economy.Settings.MaxRank + "%c)"); break; } else { try { rnk.price = int.Parse(par4); } catch { Player.SendMessage(p, "%cInvalid price input: that wasn't a number!"); return; } Player.SendMessage(p, "%aSuccesfully changed the rank price for " + rnk.group.color + rnk.group.name + " to: %f" + rnk.price + " %3" + Server.moneys); break; } case "maxrank": case "max": case "maximum": case "maximumrank": Group grp = Group.Find(par3); if (grp == null) { Player.SendMessage(p, "%cThat wasn't a rank!"); } else { if (p.group.Permission < grp.Permission) { Player.SendMessage(p, "%cCan't set a maxrank that is higher than yours!"); } else { Economy.Settings.MaxRank = par3.ToLower(); Player.SendMessage(p, "%aSuccessfully set max rank to: " + Group.Find(Economy.Settings.MaxRank).color + Economy.Settings.MaxRank); int lasttrueprice = 0; foreach (Group group in Group.GroupList) { if (group.Permission > grp.Permission) { break; } if (!(group.Permission <= Group.Find(Server.defaultRank).Permission)) { Economy.Settings.Rank rank = new Economy.Settings.Rank(); rank = Economy.FindRank(group.name); if (rank == null) { rank = new Economy.Settings.Rank(); rank.group = group; if (lasttrueprice == 0) { rank.price = 1000; } else { rank.price = lasttrueprice + 250; } Economy.Settings.RanksList.Add(rank); } else { lasttrueprice = rank.price; } } } } } break; default: Player.SendMessage(p, "%cThat wasn't a valid command addition!"); break; } break; case "enable": if (Economy.Settings.Enabled == true) { Player.SendMessage(p, "%cThe economy system is already enabled"); return; } else { Economy.Settings.Enabled = true; Player.SendMessage(p, "%aThe economy system is now enabled"); return; } case "disable": if (Economy.Settings.Enabled == false) { Player.SendMessage(p, "%cThe economy system is already disabled"); return; } else { Economy.Settings.Enabled = false; Player.SendMessage(p, "%aThe economy system is now disabled"); return; } default: if (par1 == null || par1 == "") { SetupHelp(p); return; } Player.SendMessage(p, "%cThat wasn't a valid command addition!"); return; } Economy.Save(); return; } else { Player.SendMessage(p, "%cYou are not allowed to use %f/eco setup"); return; } case "buy": if (p == null) { Player.SendMessage(p, "%cConsole cannot buy any items"); return; } Economy.EcoStats ecos = Economy.RetrieveEcoStats(p.name); switch (par1) { case "map": case "level": case "maps": case "levels": Economy.Settings.Level lvl = Economy.FindLevel(par2); if (lvl == null) { Player.SendMessage(p, "%cThat isn't a level preset"); return; } else { if (!p.EnoughMoney(lvl.price)) { Player.SendMessage(p, "%cYou don't have enough %3" + Server.moneys + "%c to buy that map"); return; } else { if (par3 == null) { Player.SendMessage(p, "%cYou didn't specify a name for your level"); return; } else { int old = p.money; int oldTS = ecos.totalSpent; string oldP = ecos.purchase; try { Command.all.Find("newlvl").Use(null, p.name + "_" + par3 + " " + lvl.x + " " + lvl.y + " " + lvl.z + " " + lvl.type); Player.SendMessage(p, "%aCreating level: '%f" + p.name + "_" + par3 + "%a' . . ."); p.money = p.money - lvl.price; ecos.money = p.money; ecos.totalSpent += lvl.price; ecos.purchase = "%3Map: %f" + lvl.name + "%3 - Price: %f" + lvl.price + " %3" + Server.moneys + " - Date: %f" + ecoColor + DateTime.Now.ToString(CultureInfo.InvariantCulture); Economy.UpdateEcoStats(ecos); Command.all.Find("load").Use(null, p.name + "_" + par3); Thread.Sleep(250); Level level = Level.FindExact(p.name + "_" + par3); if (level.permissionbuild > p.group.Permission) { level.permissionbuild = p.group.Permission; } if (level.permissionvisit > p.group.Permission) { level.permissionvisit = p.group.Permission; } Command.all.Find("goto").Use(p, p.name + "_" + par3); while (p.Loading) { Thread.Sleep(250); } Player.SendMessage(p, "%aSuccessfully created your map: '%f" + p.name + "_" + par3 + "%a'"); Player.SendMessage(p, "%aYour balance is now %f" + p.money.ToString() + " %3" + Server.moneys); try { //safe against SQL injections, but will be replaced soon by a new feature //DB //SQLite.executeQuery("INSERT INTO `Zone" + level.name + "` (SmallX, SmallY, SmallZ, BigX, BigY, BigZ, Owner) VALUES (0,0,0," + (level.width - 1) + "," + (level.depth - 1) + "," + (level.height - 1) + ",'" + p.name + "')"); //CHECK!!!! //DB //Player.SendMessage(p, "%aZoning Succesful"); return; } catch { Player.SendMessage(p, "%cZoning Failed"); return; } } catch { Player.SendMessage(p, "%cSomething went wrong, Money restored"); if (old != p.money) { p.money = old; ecos.money = old; ecos.totalSpent = oldTS; ecos.purchase = oldP; Economy.UpdateEcoStats(ecos); } return; } } } } case "colors": case "color": case "colours": case "colour": if (p.EnoughMoney(Economy.Settings.ColorPrice) == false) { Player.SendMessage(p, "%cYou don't have enough %3" + Server.moneys + "%c to buy a color"); return; } if (!par2.StartsWith("&") || !par2.StartsWith("%")) { switch (par2) { case "black": par2 = "&0"; break; case "navy": par2 = "&1"; break; case "green": par2 = "&2"; break; case "teal": par2 = "&3"; break; case "maroon": par2 = "&4"; break; case "purple": par2 = "&5"; break; case "gold": par2 = "&6"; break; case "silver": par2 = "&7"; break; case "gray": par2 = "&8"; break; case "blue": par2 = "&9"; break; case "lime": par2 = "&a"; break; case "aqua": par2 = "&b"; break; case "red": par2 = "&c"; break; case "pink": par2 = "&d"; break; case "yellow": par2 = "&e"; break; case "white": par2 = "&f"; break; default: Player.SendMessage(p, "%cThat wasn't a color"); return; } } if (par2 == p.color) { Player.SendMessage(p, "%cYou already have a " + par2 + c.Name(par2) + "%c color"); return; } else { Command.all.Find("color").Use(null, p.name + " " + c.Name(par2)); p.money = p.money - Economy.Settings.ColorPrice; ecos.money = p.money; ecos.totalSpent += Economy.Settings.ColorPrice; ecos.purchase = "%3Color: " + par2 + c.Name(par2) + "%3 - Price: %f" + Economy.Settings.ColorPrice + " %3" + Server.moneys + " - Date: %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); Economy.UpdateEcoStats(ecos); Player.SendMessage(p, "%aYour color has been successfully changed to " + par2 + c.Name(par2)); Player.SendMessage(p, "%aYour balance is now %f" + p.money.ToString() + " %3" + Server.moneys); return; } case "tcolor": case "tcolors": case "titlecolor": case "titlecolors": case "tc": if (!p.EnoughMoney(Economy.Settings.TColorPrice)) { Player.SendMessage(p, "%cYou don't have enough %3" + Server.moneys + "%c to buy a titlecolor"); return; } if (!par2.StartsWith("&") || !par2.StartsWith("%")) { switch (par2) { case "black": par2 = "&0"; break; case "navy": par2 = "&1"; break; case "green": par2 = "&2"; break; case "teal": par2 = "&3"; break; case "maroon": par2 = "&4"; break; case "purple": par2 = "&5"; break; case "gold": par2 = "&6"; break; case "silver": par2 = "&7"; break; case "gray": par2 = "&8"; break; case "blue": par2 = "&9"; break; case "lime": par2 = "&a"; break; case "aqua": par2 = "&b"; break; case "red": par2 = "&c"; break; case "pink": par2 = "&d"; break; case "yellow": par2 = "&e"; break; case "white": par2 = "&f"; break; default: Player.SendMessage(p, "%cThat wasn't a color"); return; } } if (par2 == p.titlecolor) { Player.SendMessage(p, "%cYou already have a " + par2 + c.Name(par2) + "%c titlecolor"); return; } else { Command.all.Find("tcolor").Use(null, p.name + " " + c.Name(par2)); p.money = p.money - Economy.Settings.TColorPrice; ecos.money = p.money; ecos.totalSpent += Economy.Settings.TColorPrice; ecos.purchase = "%3Titlecolor: " + par2 + c.Name(par2) + "%3 - Price: %f" + Economy.Settings.TColorPrice + " %3" + Server.moneys + " - Date: %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); Economy.UpdateEcoStats(ecos); Player.SendMessage(p, "%aYour titlecolor has been successfully changed to " + par2 + c.Name(par2)); Player.SendMessage(p, "%aYour balance is now %f" + p.money + " %3" + Server.moneys); return; } case "titles": case "title": if (p.EnoughMoney(Economy.Settings.TitlePrice) == false) { Player.SendMessage(p, "%cYou don't have enough %3" + Server.moneys + "%c to buy a title"); return; } if (par3 != string.Empty) { Player.SendMessage(p, "%cYour title cannot contain any spaces"); return; } if (par2 == p.title) { Player.SendMessage(p, "%cYou already have that title"); return; } if (par2.Length > 17) { Player.SendMessage(p, "%cTitles cannot be longer than 17 characters"); return; } var regex = new System.Text.RegularExpressions.Regex(@"^[a-zA-Z0-9-_\\.]*$"); if (!regex.IsMatch(par2)) { Player.SendMessage(p, "%cInvalid title! Titles may only contain alphanumeric characters and .-_"); return; } bool free = false; if (par2 == null || par2 == string.Empty || par2 == "") { par2 = ""; //just an extra check to make sure it's good free = true; } Command.all.Find("title").Use(null, p.name + " " + par2); if (!free) { p.money = p.money - Economy.Settings.TitlePrice; ecos.money = p.money; ecos.totalSpent += Economy.Settings.TitlePrice; ecos.purchase = "%3Title: %f" + par2 + "%3 - Price: %f" + Economy.Settings.TitlePrice + " %3" + Server.moneys + " - Date: %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); Economy.UpdateEcoStats(ecos); Player.SendMessage(p, "%aYour title has been successfully changed to [" + p.titlecolor + par2 + "%a]"); } else { Player.SendMessage(p, "%aYour title has been successfully removed for free"); } Player.SendMessage(p, "%aYour balance is now %f" + p.money + " %3" + Server.moneys); return; case "ranks": case "rank": if (par2 != "" && par2 != null && !string.IsNullOrEmpty(par2) && par2 != string.Empty) { Player.SendMessage(p, "%cYou cannot provide a rank name, use %a/eco buy rank %cto buy the NEXT rank."); return; } LevelPermission maxrank = Group.Find(Economy.Settings.MaxRank).Permission; if (p.group.Permission == maxrank || p.group.Permission >= maxrank) { Player.SendMessage(p, "%cYou cannot buy anymore ranks, because you passed the max buyable rank: " + Group.Find(Economy.Settings.MaxRank).color + Economy.Settings.MaxRank); return; } else { if (!p.EnoughMoney(Economy.NextRank(p).price)) { Player.SendMessage(p, "%cYou don't have enough %3" + Server.moneys + "%c to buy the next rank"); return; } Command.all.Find("promote").Use(null, p.name); p.money = p.money - Economy.FindRank(p.group.name).price; ecos.money = p.money; ecos.totalSpent += Economy.FindRank(p.group.name).price; ecos.purchase = "%3Rank: " + p.group.color + p.group.name + "%3 - Price: %f" + Economy.FindRank(p.group.name).price + " %3" + Server.moneys + " - Date: %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); Economy.UpdateEcoStats(ecos); Player.SendMessage(p, "%aYou've successfully bought the rank " + p.group.color + p.group.name); Player.SendMessage(p, "%aYour balance is now %f" + p.money + " %3" + Server.moneys); return; } default: Player.SendMessage(p, "%cThat wasn't a valid command addition!"); return; } case "stats": case "balance": case "amount": Economy.EcoStats ecostats; if (par1 != string.Empty && par1 != null && par1 != "") { Player who = Player.Find(par1); //is player online? if (who == null) { //player is offline ecostats = Economy.RetrieveEcoStats(par1); Player.SendMessage(p, "%3===Economy stats for: %f" + ecostats.playerName + "%7(offline)%3==="); } else { //player is online ecostats = Economy.RetrieveEcoStats(who.name); Player.SendMessage(p, "%3===Economy stats for: " + who.color + who.name + "%3==="); } } else if (p != null) { //this player ecostats = Economy.RetrieveEcoStats(p.name); Player.SendMessage(p, "%3===Economy stats for: " + p.color + p.name + "%3==="); } else { Player.SendMessage(p, "%cConsole cannot contain any eco stats"); return; } Player.SendMessage(p, "Balance: %f" + ecostats.money + " %3" + Server.moneys); Player.SendMessage(p, "Total spent: %f" + ecostats.totalSpent + " %3" + Server.moneys); Player.SendMessage(p, "Recent purchase: " + ecostats.purchase); Player.SendMessage(p, "Recent payment: " + ecostats.payment); Player.SendMessage(p, "Recent receivement: " + ecostats.salary); Player.SendMessage(p, "Recent fine: " + ecostats.fine); return; case "info": case "about": if (Economy.Settings.Enabled == true) { switch (par1) { case "map": case "level": case "maps": case "levels": if (Economy.Settings.Levels == false) { Player.SendMessage(p, "%cMaps are not enabled for the economy system"); return; } Player.SendMessage(p, ecoColor + "%3===Economy info: Maps==="); Player.SendMessage(p, "%aAvailable maps to buy:"); if (Economy.Settings.LevelsList.Count == 0) Player.SendMessage(p, "%8-None-"); else foreach (Economy.Settings.Level lvl in Economy.Settings.LevelsList) { Player.SendMessage(p, lvl.name + " (" + lvl.x + "," + lvl.y + "," + lvl.z + ") " + lvl.type + ": %f" + lvl.price + " %3" + Server.moneys); } return; case "title": case "titles": if (Economy.Settings.Titles == false) { Player.SendMessage(p, "%cTitles are not enabled for the economy system"); return; } Player.SendMessage(p, ecoColor + "%3===Economy info: Titles==="); Player.SendMessage(p, "Titles cost %f" + Economy.Settings.TitlePrice + " %3" + Server.moneys + Server.DefaultColor + " each"); return; case "tcolor": case "tcolors": case "titlecolor": case "titlecolors": case "tc": if (!Economy.Settings.TColors) { Player.SendMessage(p, "%cTitlecolors are not enabled for the economy system"); return; } Player.SendMessage(p, ecoColor + "%3===Economy info: Titlecolors==="); Player.SendMessage(p, "Titlecolors cost %f" + Economy.Settings.TColorPrice + " %3" + Server.moneys + Server.DefaultColor + " each"); return; case "colors": case "color": case "colours": case "colour": if (Economy.Settings.Colors == false) { Player.SendMessage(p, "%cColors are not enabled for the economy system"); return; } Player.SendMessage(p, ecoColor + "%3===Economy info: Colors==="); Player.SendMessage(p, "Colors cost %f" + Economy.Settings.ColorPrice + " %3" + Server.moneys + Server.DefaultColor + " each"); return; case "ranks": case "rank": if (Economy.Settings.Ranks == false) { Player.SendMessage(p, "%cRanks are not enabled for the economy system"); return; } Player.SendMessage(p, ecoColor + "%3===Economy info: Ranks==="); Player.SendMessage(p, "%fThe maximum buyable rank is: " + Group.Find(Economy.Settings.MaxRank).color + Economy.Settings.MaxRank); Player.SendMessage(p, "%cRanks purchased will be bought in order."); Player.SendMessage(p, "%fRanks cost:"); foreach (Economy.Settings.Rank rnk in Economy.Settings.RanksList) { Player.SendMessage(p, rnk.group.color + rnk.group.name + ": %f" + rnk.price + " %3" + Server.moneys); if (rnk.group.name == Economy.Settings.MaxRank.ToLower()) break; } return; default: Player.SendMessage(p, "%cThat wasn't a valid command addition!"); return; } } else { Player.SendMessage(p, "%cThe %3Economy System %cis currently disabled!"); return; } case "help": switch (par1) { case "": Help(p); return; case "buy": Player.SendMessage(p, "%3===Economy Help: Buy==="); Player.SendMessage(p, "Buying titles: %f/eco buy title [title_name]"); Player.SendMessage(p, "Buying colors: %f/eco buy color [color]"); Player.SendMessage(p, "Buying titlecolors: %f/eco buy tcolor [color]"); Player.SendMessage(p, "Buying ranks: %f/eco buy the NEXT rank"); Player.SendMessage(p, "%7Check out the ranks and their prices with: %f/eco info rank"); Player.SendMessage(p, "Buy your own maps: %f/eco buy map [map_preset_name] [custom_map_name]"); Player.SendMessage(p, "%7Check out the map presets with: %f/eco info map"); return; case "stats": case "balance": case "amount": Player.SendMessage(p, "%3===Economy Help: Stats==="); Player.SendMessage(p, "Check your stats: %f/eco stats"); Player.SendMessage(p, "Check the stats of a player: %f/eco stats [player_name]"); return; case "info": case "about": Player.SendMessage(p, "%3===Economy Help: Info==="); Player.SendMessage(p, "To get info and prices about features: %f/eco info [color/title/titlecolor/rank/map]"); return; case "setup": if ((int)p.group.Permission >= CommandOtherPerms.GetPerm(this)) { SetupHelp(p); return; } else { Player.SendMessage(p, "%cYou are not allowed to use %f/eco help setup"); return; } default: Player.SendMessage(p, "%cThat wasn't a valid command addition, sending you to help"); Help(p); return; } default: //Player.SendMessage(p, "%4That wasn't a valid command addition, Sending you to help:"); Help(p); return; } }
public override void Use(Player p, string message) { string[] command = message.ToLower().Trim().Split(' '); string par0 = String.Empty; string par1 = String.Empty; string par2 = String.Empty; string par3 = String.Empty; string par4 = String.Empty; string par5 = String.Empty; string par6 = String.Empty; string par7 = String.Empty; string par8 = String.Empty; try { par0 = command[0]; par1 = command[1]; par2 = command[2]; par3 = command[3]; par4 = command[4]; par5 = command[5]; par6 = command[6]; par7 = command[7]; par8 = command[8]; } catch { } switch (par0) { case "setup": if (p.group.Permission >= LevelPermission.Operator) { switch (par1) { case "maps": case "levels": case "map": case "level": Economy.Settings.Level lvl = Economy.FindLevel(par3); switch (par2) { case "new": case "create": case "add": if (Economy.FindLevel(par3) != null) { Player.SendMessage(p, "That preset level already exists"); break; } else { Economy.Settings.Level level = new Economy.Settings.Level(); level.name = par3; if (isGood(par4)) { level.x = par4; } if (isGood(par5)) { level.y = par5; } if (isGood(par6)) { level.z = par6; } else { Player.SendMessage(p, "A Dimension was wrong, it must a power of 2"); break; } switch (par7.ToLower()) { case "flat": case "pixel": case "island": case "mountains": case "ocean": case "forest": case "desert": case "space": level.type = par7.ToLower(); break; default: Player.SendMessage(p, "Valid types: island, mountains, forest, ocean, flat, pixel, desert, space"); break; } level.price = int.Parse(par8); Economy.Settings.LevelsList.Add(level); Player.SendMessage(p, "Added map to presets"); break; } case "delete": case "remove": if (lvl == null) { Player.SendMessage(p, "That preset level doesn't exist"); break; } else { Economy.Settings.LevelsList.Remove(lvl); Player.SendMessage(p, "Removed preset"); break; } case "edit": case "change": if (lvl == null) { Player.SendMessage(p, "That preset level doesn't exist"); break; } else { switch (par4) { case "name": case "title": Economy.Settings.LevelsList.Remove(lvl); lvl.name = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset name"); break; case "x": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.x = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset x size"); } else { Player.SendMessage(p, "Dimension was wrong, it must a power of 2"); break; } break; case "y": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.y = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset y size"); } else { Player.SendMessage(p, "Dimension was wrong, it must a power of 2"); break; } break; case"z": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.z = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset z size"); } else { Player.SendMessage(p, "Dimension was wrong, it must a power of 2"); break; } break; case "type": Economy.Settings.LevelsList.Remove(lvl); switch (par5.ToLower()) { case "flat": case "pixel": case "island": case "mountains": case "ocean": case "forest": case "desert": case "space": lvl.type = par5.ToLower(); break; default: Player.SendMessage(p, "Valid types: island, mountains, forest, ocean, flat, pixel, desert, space"); Economy.Settings.LevelsList.Add(lvl); break; } Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset type"); break; case "dimensions": case "sizes": case "dimension": case "size": Economy.Settings.LevelsList.Remove(lvl); if (isGood(par4)) { lvl.x = par4; } if (isGood(par5)) { lvl.y = par5; } if (isGood(par6)) { lvl.z = par6; } else { Player.SendMessage(p, "A Dimension was wrong, it must a power of 2"); Economy.Settings.LevelsList.Add(lvl); break; } Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset name"); break; case "price": Economy.Settings.LevelsList.Remove(lvl); lvl.price = int.Parse(par5); Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset price"); break; default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } } break; case "enable": if (Economy.Settings.Levels == true) { Player.SendMessage(p, "Maps are already enabled for the economy system"); break; } else { Economy.Settings.Levels = true; Player.SendMessage(p, "Maps are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Levels == false) { Player.SendMessage(p, "Maps are already disabled for the economy system"); break; } else { Economy.Settings.Levels = false; Player.SendMessage(p, "Maps are now disabled for the economy system"); break; } default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } break; case "titles": case "title": switch (par2) { case "enable": if (Economy.Settings.Titles == true) { Player.SendMessage(p, "Titles are already enabled for the economy system"); break; } else { Economy.Settings.Titles = true; Player.SendMessage(p, "Titles are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Titles == false) { Player.SendMessage(p, "Titles are already disabled for the economy system"); break; } else { Economy.Settings.Titles = false; Player.SendMessage(p, "Titles are now disabled for the economy system"); break; } case "price": Economy.Settings.TitlePrice = int.Parse(par3); Player.SendMessage(p, "Changed title price"); break; default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } break; case "colors": case "colours": case "color": case "colour": switch (par2) { case "enable": if (Economy.Settings.Colors == true) { Player.SendMessage(p, "Colors are already enabled for the economy system"); break; } else { Economy.Settings.Colors = true; Player.SendMessage(p, "Colors are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Colors == false) { Player.SendMessage(p, "Colors are already disabled for the economy system"); break; } else { Economy.Settings.Colors = false; Player.SendMessage(p, "Colors are now disabled for the economy system"); break; } case "price": Economy.Settings.ColorPrice = int.Parse(par3); Player.SendMessage(p, "Changed color price"); break; default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } break; case "ranks": case "rank": switch (par2) { case "enable": if (Economy.Settings.Ranks == true) { Player.SendMessage(p, "Ranks are already enabled for the economy system"); break; } else { Economy.Settings.Ranks = true; Player.SendMessage(p, "Ranks are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Ranks == false) { Player.SendMessage(p, "Ranks are already disabled for the economy system"); break; } else { Economy.Settings.Ranks = false; Player.SendMessage(p, "Ranks are now disabled for the economy system"); break; } case "price": Economy.Settings.Rank rnk = Economy.FindRank(par3); if (rnk == null) { Player.SendMessage(p, "That isn't a rank or it's past the max rank"); break; } else { rnk.price = int.Parse(par4); Player.SendMessage(p, "Changed rank price for " + rnk.group.name); break; } case "maxrank": case "max": case "maximum": case "maximumrank": Group grp = Group.Find(par3); if (grp == null) { Player.SendMessage(p, "That isn't a rank!!"); break; } else { Economy.Settings.MaxRank = grp.Permission; Player.SendMessage(p, "Set max rank"); int lasttrueprice = 0; foreach (Group group in Group.GroupList) { if (group.Permission > grp.Permission) { break; } if (!(group.Permission <= Group.Find(Server.defaultRank).Permission)) { Economy.Settings.Rank rank = new Economy.Settings.Rank(); rank = Economy.FindRank(group.name); if (rank == null) { rank = new Economy.Settings.Rank(); rank.group = group; if (lasttrueprice == 0) { rank.price = 1000; } else { rank.price = lasttrueprice + 250; } Economy.Settings.RanksList.Add(rank); } else { lasttrueprice = rank.price; } } } break; } default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } break; case "enable": if (Economy.Settings.Enabled == true) { Player.SendMessage(p, "The economy system is already enabled"); return; } else { Economy.Settings.Enabled = true; Player.SendMessage(p, "The economy system is now enabled"); return; } case "disable": if (Economy.Settings.Enabled == false) { Player.SendMessage(p, "The economy system is already disabled"); return; } else { Economy.Settings.Enabled = false; Player.SendMessage(p, "The economy system is now disabled"); return; } default: Player.SendMessage(p, "That wasn't a valid command addition"); return; } Economy.Save(); return; } else { Player.SendMessage(p, "You aren't a high enough rank for that"); return; } case "buy": switch (par1) { case "map": case "level": case "maps": case "levels": Economy.Settings.Level lvl = Economy.FindLevel(par2); if (lvl == null) { Player.SendMessage(p, "That isn't a level preset"); return; } else { if (p.EnoughMoney(lvl.price) == false) { Player.SendMessage(p, "You don't have enough " + Server.moneys + " to buy that map"); return; } else { if (par3 == null) {Player.SendMessage(p, "You didn't specify a name for your level"); return;} else { int old = p.money; try { Command.all.Find("newlvl").Use(null, p.name + "_" + par3 + " " + lvl.x + " " + lvl.y + " " + lvl.z + " " + lvl.type); Player.SendMessage(p, "Created level '" + p.name + "_" + par3 + "'"); p.money = p.money - lvl.price; Player.SendMessage(p, "Your balance is now " + p.money.ToString() + " " + Server.moneys); Command.all.Find("load").Use(null, p.name + "_" + par3); Thread.Sleep(250); Level level = Level.Find(p.name + "_" + par3); if (level.permissionbuild > p.group.Permission) { level.permissionbuild = p.group.Permission; } if (level.permissionvisit > p.group.Permission) { level.permissionvisit = p.group.Permission; } Command.all.Find("goto").Use(p, p.name + "_" + par3); while (p.Loading) { Thread.Sleep(250); } try { //DB MySQL.executeQuery("INSERT INTO `Zone" + level.name + "` (SmallX, SmallY, SmallZ, BigX, BigY, BigZ, Owner) VALUES (0,0,0," + (level.width - 1) + "," + (level.depth - 1) + "," + (level.height - 1) + ",'" + p.name + "')"); //CHECK!!!! //DB Player.SendMessage(p, "Zoning Succesful"); return; } catch { Player.SendMessage(p, "Zoning Failed"); return; } } catch { Player.SendMessage(p, "Something went wrong, Money restored"); if (old != p.money) { p.money = old; } return; } } } } case "colors": case "color": case "colours": case "colour": if (!par2.StartsWith("&") || !par2.StartsWith("%")) { switch (par2) { case "black": par2 = "&0"; break; case "navy": par2 = "&1"; break; case "green": par2 = "&2"; break; case "teal": par2 = "&3"; break; case "maroon": par2 = "&4"; break; case "purple": par2 = "&5"; break; case "gold": par2 = "&6"; break; case "silver": par2 = "&7"; break; case "gray": par2 = "&8"; break; case "blue": par2 = "&9"; break; case "lime": par2 = "&a"; break; case "aqua": par2 = "&b"; break; case "red": par2 = "&c"; break; case "pink": par2 = "&d"; break; case "yellow": par2 = "&e"; break; case "white": par2 = "&f"; break; default: Player.SendMessage(p, "That wasn't a color"); return; } } if (par2 == p.color) { Player.SendMessage(p, "You already have that color"); return; } if (p.EnoughMoney(Economy.Settings.ColorPrice) == false) { Player.SendMessage(p, "You don't have enough " + Server.moneys + " to buy a color"); return; } else { Command.all.Find("color").Use(null, p.name + " " + c.Name(par2)); p.money = p.money - Economy.Settings.ColorPrice; Player.SendMessage(p, "Changed color"); Player.SendMessage(p, "Your balance is now " + p.money.ToString() + " " + Server.moneys); return; } case "titles": case "title": if (par2 == p.title) { Player.SendMessage(p, "You already have that title"); return; } if (p.EnoughMoney(Economy.Settings.TitlePrice) == false) { Player.SendMessage(p, "You don't have enough " + Server.moneys + " to buy a title"); return; } else { Command.all.Find("title").Use(null, p.name + " " + par2); p.money = p.money - Economy.Settings.TitlePrice; Player.SendMessage(p, "Changed title"); Player.SendMessage(p, "Your balance is now " + p.money.ToString() + " " + Server.moneys); return; } case "ranks": case "rank": if (p.group.Permission == Economy.Settings.MaxRank || p.group.Permission >= Economy.Settings.MaxRank) { Player.SendMessage(p, "You are past the max buyable rank"); return; } if (p.EnoughMoney(Economy.NextRank(p).price) == false) { Player.SendMessage(p, "You don't have enough " + Server.moneys + " to buy the next rank"); return; } else { Command.all.Find("promote").Use(null, p.name); p.money = p.money - Economy.FindRank(p.group.name).price; Player.SendMessage(p, "You bought the rank " + p.group.name); Player.SendMessage(p, "Your balance is now " + p.money.ToString() + " " + Server.moneys); return; } default: Player.SendMessage(p, "That wasn't a valid command addition"); return; } case "stats": case "balance": case "amount": if (par1 != null) { Player who = Player.Find(par1); if (who == null) { Player.SendMessage(p, "That player doesn't exist"); return; } else { Player.SendMessage(p, "Stats for: " + who.color + who.name); Player.SendMessage(p, "============================================================"); Player.SendMessage(p, Server.moneys + ": &b$" + who.money); return; } } else { Player.SendMessage(p, "Stats for: " + p.color + p.name); Player.SendMessage(p, "============================================================"); Player.SendMessage(p, Server.moneys + ": &b$" + p.money); return; } case "info": case "about": if (Economy.Settings.Enabled == true) { switch (par1) { case "map": case "level": case "maps": case "levels": if (Economy.Settings.Levels == false) { Player.SendMessage(p, "Maps are not enabled for the economy system"); return; } Player.SendMessage(p, "Maps avaliable:"); foreach (Economy.Settings.Level lvl in Economy.Settings.LevelsList) { Player.SendMessage(p, lvl.name + " (" + lvl.x + "," + lvl.y + "," + lvl.z + ") " + lvl.type + ":" + lvl.price); } return; case "title": case "titles": if (Economy.Settings.Titles == false) { Player.SendMessage(p, "Titles are not enabled for the economy system"); return; } Player.SendMessage(p, "Titles cost " + Economy.Settings.TitlePrice.ToString() + " each"); return; case "colors": case "color": case "colours": case "colour": if (Economy.Settings.Colors == false) { Player.SendMessage(p, "Colors are not enabled for the economy system"); return; } Player.SendMessage(p, "Colors cost " + Economy.Settings.ColorPrice.ToString() + " each"); return; case "ranks": case "rank": if (Economy.Settings.Ranks == false) { Player.SendMessage(p, "Ranks are not enabled for the economy system"); return; } Player.SendMessage(p, "The maximum buyable rank is " + Economy.Settings.MaxRank.ToString()); Player.SendMessage(p, "Ranks cost:"); foreach (Economy.Settings.Rank rnk in Economy.Settings.RanksList) { Player.SendMessage(p, rnk.group.name + ": " + rnk.price); } return; default: Player.SendMessage(p, "That wasn't a valid command addition"); return; } } else { Player.SendMessage(p, "The economy system is currently disabled"); return; } case "help": switch (par1) { case "": Help(p); return; case "buy": Player.SendMessage(p, "Use '/eco buy' to buy things"); Player.SendMessage(p, "To buy a map do '/eco buy map [presetname] [custommapname]'"); Player.SendMessage(p, "You can view presets with /eco info maps, [custommapname] is the name for your map"); Player.SendMessage(p, "To buy a rank just type '/eco buy rank'"); Player.SendMessage(p, "To buy a color or title just type '/eco buy [color/title] <color/title>'"); return; case "stats": case "balance": case "amount": Player.SendMessage(p, "To find out your own balance of " + Server.moneys + " just do '/eco stats'"); Player.SendMessage(p, "To find out someone else's balance of " + Server.moneys + " just do '/eco stats [playername]'"); return; case "info": case "about": Player.SendMessage(p, "To find out info about buying anything just do '/eco info [map/title/color/rank]'"); return; case "setup": if (p.group.Permission >= LevelPermission.Operator) { Player.SendMessage(p, "Use '/eco setup' to setup the economy system"); Player.SendMessage(p, "Use '/eco setup [title/color] [price]' to setup the prices"); Player.SendMessage(p, "Use '/eco setup [title/color/rank/map] [enable/disable]' to enable/disable that feature"); Player.SendMessage(p, "Use '/eco setup map new [name] [x] [y] [z] [type] [price]' to setup a map preset"); Player.SendMessage(p, "Use '/eco setup map delete [name]' to delete a map"); Player.SendMessage(p, "Use '/eco setup map edit [name] [name/x/y/z/type/price] [value]' to edit a map preset"); Player.SendMessage(p, "Use '/eco setup rank price [rank] [price]' to set the price for that rank"); Player.SendMessage(p, "Use '/eco setup rank maxrank [rank]' to set the max buyable rank"); return; } else { Player.SendMessage(p, "You aren't a high enough rank for that"); return; } default: Player.SendMessage(p, "That wasn't a valid command addition, Sending you to help"); Help(p); return; } default: Player.SendMessage(p, "That wasn't a valid command addition, Sending you to help"); Help(p); return; } }
public override void Use(Player p, string message) { string[] command = message.Trim().Split(' '); string par0 = String.Empty; string par1 = String.Empty; string par2 = String.Empty; string par3 = String.Empty; string par4 = String.Empty; string par5 = String.Empty; string par6 = String.Empty; string par7 = String.Empty; string par8 = String.Empty; try { par0 = command[0].ToLower(); par1 = command[1].ToLower(); par2 = command[2]; par3 = command[3]; par4 = command[4]; par5 = command[5]; par6 = command[6]; par7 = command[7]; par8 = command[8]; } catch { } switch (par0) { case "setup": if ((int)p.group.Permission >= CommandOtherPerms.GetPerm(this)) { switch (par1) { case "maps": case "levels": case "map": case "level": Economy.Settings.Level lvl = Economy.FindLevel(par3); switch (par2) { case "new": case "create": case "add": if (Economy.FindLevel(par3) != null) { Player.SendMessage(p, "That preset level already exists"); break; } else { Economy.Settings.Level level = new Economy.Settings.Level(); level.name = par3; if (isGood(par4)) { level.x = par4; } if (isGood(par5)) { level.y = par5; } if (isGood(par6)) { level.z = par6; } else { Player.SendMessage(p, "A Dimension was wrong, it must a power of 2"); break; } switch (par7.ToLower()) { case "flat": case "pixel": case "island": case "mountains": case "ocean": case "forest": case "desert": case "space": level.type = par7.ToLower(); break; default: Player.SendMessage(p, "Valid types: island, mountains, forest, ocean, flat, pixel, desert, space"); break; } level.price = int.Parse(par8); Economy.Settings.LevelsList.Add(level); Player.SendMessage(p, "Added map to presets"); break; } case "delete": case "remove": if (lvl == null) { Player.SendMessage(p, "That preset level doesn't exist"); break; } else { Economy.Settings.LevelsList.Remove(lvl); Player.SendMessage(p, "Removed preset"); break; } case "edit": case "change": if (lvl == null) { Player.SendMessage(p, "That preset level doesn't exist"); break; } else { switch (par4) { case "name": case "title": Economy.Settings.LevelsList.Remove(lvl); lvl.name = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset name"); break; case "x": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.x = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset x size"); } else { Player.SendMessage(p, "Dimension was wrong, it must a power of 2"); break; } break; case "y": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.y = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset y size"); } else { Player.SendMessage(p, "Dimension was wrong, it must a power of 2"); break; } break; case "z": if (isGood(par5)) { Economy.Settings.LevelsList.Remove(lvl); lvl.z = par5; Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset z size"); } else { Player.SendMessage(p, "Dimension was wrong, it must a power of 2"); break; } break; case "type": Economy.Settings.LevelsList.Remove(lvl); switch (par5.ToLower()) { case "flat": case "pixel": case "island": case "mountains": case "ocean": case "forest": case "desert": case "space": lvl.type = par5.ToLower(); break; default: Player.SendMessage(p, "Valid types: island, mountains, forest, ocean, flat, pixel, desert, space"); Economy.Settings.LevelsList.Add(lvl); break; } Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset type"); break; case "dimensions": case "sizes": case "dimension": case "size": Economy.Settings.LevelsList.Remove(lvl); if (isGood(par4)) { lvl.x = par4; } if (isGood(par5)) { lvl.y = par5; } if (isGood(par6)) { lvl.z = par6; } else { Player.SendMessage(p, "A Dimension was wrong, it must a power of 2"); Economy.Settings.LevelsList.Add(lvl); break; } Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset name"); break; case "price": Economy.Settings.LevelsList.Remove(lvl); lvl.price = int.Parse(par5); Economy.Settings.LevelsList.Add(lvl); Player.SendMessage(p, "Changed preset price"); break; default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } } break; case "enable": if (Economy.Settings.Levels == true) { Player.SendMessage(p, "Maps are already enabled for the economy system"); break; } else { Economy.Settings.Levels = true; Player.SendMessage(p, "Maps are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Levels == false) { Player.SendMessage(p, "Maps are already disabled for the economy system"); break; } else { Economy.Settings.Levels = false; Player.SendMessage(p, "Maps are now disabled for the economy system"); break; } default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } break; case "titles": case "title": switch (par2) { case "enable": if (Economy.Settings.Titles == true) { Player.SendMessage(p, "Titles are already enabled for the economy system"); break; } else { Economy.Settings.Titles = true; Player.SendMessage(p, "Titles are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Titles == false) { Player.SendMessage(p, "Titles are already disabled for the economy system"); break; } else { Economy.Settings.Titles = false; Player.SendMessage(p, "Titles are now disabled for the economy system"); break; } case "price": Economy.Settings.TitlePrice = int.Parse(par3); Player.SendMessage(p, "Changed title price"); break; default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } break; case "colors": case "colours": case "color": case "colour": switch (par2) { case "enable": if (Economy.Settings.Colors == true) { Player.SendMessage(p, "Colors are already enabled for the economy system"); break; } else { Economy.Settings.Colors = true; Player.SendMessage(p, "Colors are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Colors == false) { Player.SendMessage(p, "Colors are already disabled for the economy system"); break; } else { Economy.Settings.Colors = false; Player.SendMessage(p, "Colors are now disabled for the economy system"); break; } case "price": Economy.Settings.ColorPrice = int.Parse(par3); Player.SendMessage(p, "Changed color price"); break; default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } break; case "ranks": case "rank": switch (par2) { case "enable": if (Economy.Settings.Ranks == true) { Player.SendMessage(p, "Ranks are already enabled for the economy system"); break; } else { Economy.Settings.Ranks = true; Player.SendMessage(p, "Ranks are now enabled for the economy system"); break; } case "disable": if (Economy.Settings.Ranks == false) { Player.SendMessage(p, "Ranks are already disabled for the economy system"); break; } else { Economy.Settings.Ranks = false; Player.SendMessage(p, "Ranks are now disabled for the economy system"); break; } case "price": Economy.Settings.Rank rnk = Economy.FindRank(par3); if (rnk == null) { Player.SendMessage(p, "That isn't a rank or it's past the max rank"); break; } else { rnk.price = int.Parse(par4); Player.SendMessage(p, "Changed rank price for " + rnk.group.name); break; } case "maxrank": case "max": case "maximum": case "maximumrank": Group grp = Group.Find(par3); if (grp == null) { Player.SendMessage(p, "That isn't a rank!!"); break; } else { Economy.Settings.MaxRank = grp.Permission; Player.SendMessage(p, "Set max rank"); int lasttrueprice = 0; foreach (Group group in Group.GroupList) { if (group.Permission > grp.Permission) { break; } if (!(group.Permission <= Group.Find(Server.defaultRank).Permission)) { Economy.Settings.Rank rank = new Economy.Settings.Rank(); rank = Economy.FindRank(group.name); if (rank == null) { rank = new Economy.Settings.Rank(); rank.group = group; if (lasttrueprice == 0) { rank.price = 1000; } else { rank.price = lasttrueprice + 250; } Economy.Settings.RanksList.Add(rank); } else { lasttrueprice = rank.price; } } } break; } default: Player.SendMessage(p, "That wasn't a valid command addition"); break; } break; case "enable": if (Economy.Settings.Enabled == true) { Player.SendMessage(p, "The economy system is already enabled"); return; } else { Economy.Settings.Enabled = true; Player.SendMessage(p, "The economy system is now enabled"); return; } case "disable": if (Economy.Settings.Enabled == false) { Player.SendMessage(p, "The economy system is already disabled"); return; } else { Economy.Settings.Enabled = false; Player.SendMessage(p, "The economy system is now disabled"); return; } default: Player.SendMessage(p, "That wasn't a valid command addition"); return; } Economy.Save(); return; } else { Player.SendMessage(p, "You aren't a high enough rank for that"); return; } case "buy": switch (par1) { case "map": case "level": case "maps": case "levels": Economy.Settings.Level lvl = Economy.FindLevel(par2); if (lvl == null) { Player.SendMessage(p, "That isn't a level preset"); return; } else { if (p.EnoughMoney(lvl.price) == false) { Player.SendMessage(p, "You don't have enough " + Server.moneys + " to buy that map"); return; } else { if (par3 == null) { Player.SendMessage(p, "You didn't specify a name for your level"); return; } else { int old = p.money; try { Command.all.Find("newlvl").Use(null, p.name + "_" + par3 + " " + lvl.x + " " + lvl.y + " " + lvl.z + " " + lvl.type); Player.SendMessage(p, "Created level '" + p.name + "_" + par3 + "'"); p.money = p.money - lvl.price; Player.SendMessage(p, "Your balance is now " + p.money.ToString() + " " + Server.moneys); Command.all.Find("load").Use(null, p.name + "_" + par3); Thread.Sleep(250); Level level = Level.Find(p.name + "_" + par3); if (level.permissionbuild > p.group.Permission) { level.permissionbuild = p.group.Permission; } if (level.permissionvisit > p.group.Permission) { level.permissionvisit = p.group.Permission; } Command.all.Find("goto").Use(p, p.name + "_" + par3); while (p.Loading) { Thread.Sleep(250); } try { //DB if (Server.useMySQL) { MySQL.executeQuery("INSERT INTO `Zone" + level.name + "` (SmallX, SmallY, SmallZ, BigX, BigY, BigZ, Owner) VALUES (0,0,0," + (level.width - 1) + "," + (level.depth - 1) + "," + (level.height - 1) + ",'" + p.name + "')"); } else { SQLite.executeQuery("INSERT INTO `Zone" + level.name + "` (SmallX, SmallY, SmallZ, BigX, BigY, BigZ, Owner) VALUES (0,0,0," + (level.width - 1) + "," + (level.depth - 1) + "," + (level.height - 1) + ",'" + p.name + "')"); //CHECK!!!! } //DB Player.SendMessage(p, "Zoning Succesful"); return; } catch { Player.SendMessage(p, "Zoning Failed"); return; } } catch { Player.SendMessage(p, "Something went wrong, Money restored"); if (old != p.money) { p.money = old; } return; } } } } case "colors": case "color": case "colours": case "colour": if (!par2.StartsWith("&") || !par2.StartsWith("%")) { switch (par2) { case "black": par2 = "&0"; break; case "navy": par2 = "&1"; break; case "green": par2 = "&2"; break; case "teal": par2 = "&3"; break; case "maroon": par2 = "&4"; break; case "purple": par2 = "&5"; break; case "gold": par2 = "&6"; break; case "silver": par2 = "&7"; break; case "gray": par2 = "&8"; break; case "blue": par2 = "&9"; break; case "lime": par2 = "&a"; break; case "aqua": par2 = "&b"; break; case "red": par2 = "&c"; break; case "pink": par2 = "&d"; break; case "yellow": par2 = "&e"; break; case "white": par2 = "&f"; break; default: Player.SendMessage(p, "That wasn't a color"); return; } } if (par2 == p.color) { Player.SendMessage(p, "You already have that color"); return; } if (p.EnoughMoney(Economy.Settings.ColorPrice) == false) { Player.SendMessage(p, "You don't have enough " + Server.moneys + " to buy a color"); return; } else { Command.all.Find("color").Use(null, p.name + " " + c.Name(par2)); p.money = p.money - Economy.Settings.ColorPrice; Player.SendMessage(p, "Changed color"); Player.SendMessage(p, "Your balance is now " + p.money.ToString() + " " + Server.moneys); return; } case "titles": case "title": if (par2 == p.title) { Player.SendMessage(p, "You already have that title"); return; } if (p.EnoughMoney(Economy.Settings.TitlePrice) == false) { Player.SendMessage(p, "You don't have enough " + Server.moneys + " to buy a title"); return; } if (par2.Length > 17) { Player.SendMessage(p, "Title cannot be longer than 17 characters."); return; } Command.all.Find("title").Use(null, p.name + " " + par2); p.money = p.money - Economy.Settings.TitlePrice; Player.SendMessage(p, "Changed title"); Player.SendMessage(p, "Your balance is now " + p.money + " " + Server.moneys); return; case "ranks": case "rank": if (p.group.Permission == Economy.Settings.MaxRank || p.group.Permission >= Economy.Settings.MaxRank) { Player.SendMessage(p, "You are past the max buyable rank"); return; } if (p.EnoughMoney(Economy.NextRank(p).price) == false) { Player.SendMessage(p, "You don't have enough " + Server.moneys + " to buy the next rank"); return; } else { Command.all.Find("promote").Use(null, p.name); p.money = p.money - Economy.FindRank(p.group.name).price; Player.SendMessage(p, "You bought the rank " + p.group.name); Player.SendMessage(p, "Your balance is now " + p.money.ToString() + " " + Server.moneys); return; } default: Player.SendMessage(p, "That wasn't a valid command addition"); return; } case "stats": case "balance": case "amount": if (par1 != null) { Player who = Player.Find(par1); if (who == null) { Player.SendMessage(p, "That player doesn't exist"); return; } else { Player.SendMessage(p, "Stats for: " + who.color + who.name); Player.SendMessage(p, "============================================================"); Player.SendMessage(p, Server.moneys + ": &b$" + who.money); return; } } else { Player.SendMessage(p, "Stats for: " + p.color + p.name); Player.SendMessage(p, "============================================================"); Player.SendMessage(p, Server.moneys + ": &b$" + p.money); return; } case "info": case "about": if (Economy.Settings.Enabled == true) { switch (par1) { case "map": case "level": case "maps": case "levels": if (Economy.Settings.Levels == false) { Player.SendMessage(p, "Maps are not enabled for the economy system"); return; } Player.SendMessage(p, "Maps avaliable:"); foreach (Economy.Settings.Level lvl in Economy.Settings.LevelsList) { Player.SendMessage(p, lvl.name + " (" + lvl.x + "," + lvl.y + "," + lvl.z + ") " + lvl.type + ":" + lvl.price); } return; case "title": case "titles": if (Economy.Settings.Titles == false) { Player.SendMessage(p, "Titles are not enabled for the economy system"); return; } Player.SendMessage(p, "Titles cost " + Economy.Settings.TitlePrice.ToString() + " each"); return; case "colors": case "color": case "colours": case "colour": if (Economy.Settings.Colors == false) { Player.SendMessage(p, "Colors are not enabled for the economy system"); return; } Player.SendMessage(p, "Colors cost " + Economy.Settings.ColorPrice.ToString() + " each"); return; case "ranks": case "rank": if (Economy.Settings.Ranks == false) { Player.SendMessage(p, "Ranks are not enabled for the economy system"); return; } Player.SendMessage(p, "The maximum buyable rank is " + Economy.Settings.MaxRank.ToString()); Player.SendMessage(p, "Ranks cost:"); foreach (Economy.Settings.Rank rnk in Economy.Settings.RanksList) { Player.SendMessage(p, rnk.group.name + ": " + rnk.price); } return; default: Player.SendMessage(p, "That wasn't a valid command addition"); return; } } else { Player.SendMessage(p, "The economy system is currently disabled"); return; } case "help": switch (par1) { case "": Help(p); return; case "buy": Player.SendMessage(p, "Use '/eco buy' to buy things"); Player.SendMessage(p, "To buy a map do '/eco buy map [presetname] [custommapname]'"); Player.SendMessage(p, "You can view presets with /eco info maps, [custommapname] is the name for your map"); Player.SendMessage(p, "To buy a rank just type '/eco buy rank'"); Player.SendMessage(p, "To buy a color or title just type '/eco buy [color/title] <color/title>'"); return; case "stats": case "balance": case "amount": Player.SendMessage(p, "To find out your own balance of " + Server.moneys + " just do '/eco stats'"); Player.SendMessage(p, "To find out someone else's balance of " + Server.moneys + " just do '/eco stats [playername]'"); return; case "info": case "about": Player.SendMessage(p, "To find out info about buying anything just do '/eco info [map/title/color/rank]'"); return; case "setup": if ((int)p.group.Permission >= CommandOtherPerms.GetPerm(this)) { Player.SendMessage(p, "Use '/eco setup' to setup the economy system"); Player.SendMessage(p, "Use '/eco setup [title/color] [price]' to setup the prices"); Player.SendMessage(p, "Use '/eco setup [title/color/rank/map] [enable/disable]' to enable/disable that feature"); Player.SendMessage(p, "Use '/eco setup map new [name] [x] [y] [z] [type] [price]' to setup a map preset"); Player.SendMessage(p, "Use '/eco setup map delete [name]' to delete a map"); Player.SendMessage(p, "Use '/eco setup map edit [name] [name/x/y/z/type/price] [value]' to edit a map preset"); Player.SendMessage(p, "Use '/eco setup rank price [rank] [price]' to set the price for that rank"); Player.SendMessage(p, "Use '/eco setup rank maxrank [rank]' to set the max buyable rank"); return; } else { Player.SendMessage(p, "You aren't a high enough rank for that"); return; } default: Player.SendMessage(p, "That wasn't a valid command addition, Sending you to help"); Help(p); return; } default: Player.SendMessage(p, "That wasn't a valid command addition, Sending you to help"); Help(p); return; } }