SHARE
TWEET

Untitled

a guest Dec 23rd, 2017 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. // Add any other using statements you need up here, of course.
  4. // As a note, MCLawl is designed for .NET 3.5.
  5. using System;
  6. using System.Collections.Generic;
  7. using System.ComponentModel;
  8. using System.Data;
  9. using System.Drawing;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Windows.Forms;
  13. using System.IO;
  14.  
  15. namespace MCLawl
  16. {
  17.    public class Cmdnewmain : Command
  18.    {
  19.       // The command's name, in all lowercase.  What you'll be putting behind the slash when using it.
  20.       public override string name { get { return "newmain"; } }
  21.  
  22.       // Command's shortcut (please take care not to use an existing one, or you may have issues.
  23.       public override string shortcut { get { return "nm"; } }
  24.  
  25.       // Determines which submenu the command displays in under /help.
  26.       public override string type { get { return "mod"; } }
  27.  
  28.       // Determines whether or not this command can be used in a museum.  Block/map altering commands should be made false to avoid errors.
  29.       public override bool museumUsable { get { return false; } }
  30.  
  31.       // Determines the command's default rank.  Valid values are:
  32.       // LevelPermission.Nobody, LevelPermission.Banned, LevelPermission.Guest
  33.       // LevelPermission.Builder, LevelPermission.AdvBuilder, LevelPermission.Operator, LevelPermission.Admin
  34.       public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
  35.  
  36.       // This is where the magic happens, naturally.
  37.       // p is the player object for the player executing the command.  message is everything after the command invocation itself.
  38.       public override void Use(Player p, string message)
  39.       {
  40.             Command.all.Find("newlvl").Use(p, message + " 512 128 256 flat");
  41.             System.Threading.Thread.Sleep(10000);
  42.             Command.all.Find("load").Use(p, message);
  43.             System.Threading.Thread.Sleep(5000);
  44.             Command.all.Find("perbuild").Use(p, message+" guest");
  45.             Command.all.Find("pervisit").Use(p, message+" guest");
  46.             Command.all.Find("physics").Use(p, message+" 1");
  47.             Player.GlobalMessage("New main set up.");
  48.             try
  49.             {
  50.                 string[] lines = File.ReadAllLines("properties/server.properties");
  51.  
  52.                 foreach (string line in lines) {
  53.                     if (line != "" && line[0] != '#') {
  54.                         //int index = line.IndexOf('=') + 1; // not needed if we use Split('=')
  55.                         string key = line.Split('=')[0].Trim();
  56.                         string value = line.Split('=')[1].Trim();
  57.                         string color = "";
  58.  
  59.                         switch (key.ToLower())
  60.                         {
  61.                             case "server-name":
  62.                                 if (ValidString(value, "![]:.,{}~-+()?_/\\ ")) txtName.Text = value;
  63.                                 else txtName.Text = "[MCZall] Minecraft server";
  64.                                 break;
  65.                             case "motd":
  66.                                 if (ValidString(value, "![]&:.,{}~-+()?_/\\ ")) txtMOTD.Text = value;
  67.                                 else txtMOTD.Text = "Welcome to my server!";
  68.                                 break;
  69.                             case "port":
  70.                                 try { txtPort.Text = Convert.ToInt32(value).ToString(); }
  71.                                 catch { txtPort.Text = "25565"; }
  72.                                 break;
  73.                             case "verify-names":
  74.                                 chkVerify.Checked = (value.ToLower() == "true") ? true : false;
  75.                                 break;
  76.                             case "public":
  77.                                 chkPublic.Checked = (value.ToLower() == "true") ? true : false;
  78.                                 break;
  79.                             case "world-chat":
  80.                                 chkWorld.Checked = (value.ToLower() == "true") ? true : false;
  81.                                 break;
  82.                             case "max-players":
  83.                                 try {
  84.                                     if (Convert.ToByte(value) > 128) {
  85.                                         value = "128";
  86.                                     } else if (Convert.ToByte(value) < 1) {
  87.                                         value = "1";
  88.                                     }
  89.                                     txtPlayers.Text = value;
  90.                                 } catch {
  91.                                     Server.s.Log("max-players invalid! setting to default.");
  92.                                     txtPlayers.Text = "12";
  93.                                 }
  94.                                 break;
  95.                             case "max-maps":
  96.                                 try {
  97.                                     if (Convert.ToByte(value) > 100) {
  98.                                         value = "100";
  99.                                     } else if (Convert.ToByte(value) < 1) {
  100.                                         value = "1";
  101.                                     }
  102.                                     txtMaps.Text = value;
  103.                                 } catch {
  104.                                     Server.s.Log("max-maps invalid! setting to default.");
  105.                                     txtMaps.Text = "5";
  106.                                 }
  107.                                 break;
  108.                             case "irc":
  109.                                 chkIRC.Checked = (value.ToLower() == "true") ? true : false;
  110.                                 break;
  111.                             case "irc-server":
  112.                                 txtIRCServer.Text = value;
  113.                                 break;
  114.                             case "irc-nick":
  115.                                 txtNick.Text = value;
  116.                                 break;
  117.                             case "irc-channel":
  118.                                 txtChannel.Text = value;
  119.                                 break;
  120.                             case "irc-opchannel":
  121.                                 txtOpChannel.Text = value;
  122.                                 break;
  123.                             case "anti-tunnels":
  124.                                 ChkTunnels.Checked = (value.ToLower() == "true") ? true : false;
  125.                                 break;
  126.                             case "max-depth":
  127.                                 txtDepth.Text= value;
  128.                                 break;
  129.  
  130.                             case "rplimit":
  131.                                 try { txtRP.Text = value; } catch { txtRP.Text = "500"; }
  132.                                 break;
  133.                             case "rplimit-norm":
  134.                                 try { txtNormRp.Text = value; } catch { txtNormRp.Text = "10000"; }
  135.                                 break;
  136.  
  137.                             case "log-heartbeat":
  138.                                 chkLogBeat.Checked = (value.ToLower() == "true") ? true : false;
  139.                                 break;
  140.  
  141.                             case "force-cuboid":
  142.                                 chkForceCuboid.Checked = (value.ToLower() == "true") ? true : false;
  143.                                 break;
  144.  
  145.                             case "backup-time":
  146.                                 if (Convert.ToInt32(value) > 1) txtBackup.Text = value; else txtBackup.Text = "300";
  147.                                 break;
  148.  
  149.                             case "backup-location":
  150.                                 if (!value.Contains("System.Windows.Forms.TextBox, Text:"))
  151.                                     txtBackupLocation.Text = value;
  152.                                 break;
  153.  
  154.                             case "physicsrestart":
  155.                                 chkPhysicsRest.Checked = (value.ToLower() == "true") ? true : false;
  156.                                 break;
  157.                             case "deathcount":
  158.                                 chkDeath.Checked = (value.ToLower() == "true") ? true : false;
  159.                                 break;
  160.  
  161.                             case "defaultcolor":
  162.                                 color = c.Parse(value);
  163.                                 if (color == "") {
  164.                                     color = c.Name(value); if (color != "") color = value; else { Server.s.Log("Could not find " + value); return; }
  165.                                 }
  166.                                 cmbDefaultColour.SelectedIndex = cmbDefaultColour.Items.IndexOf(c.Name(value)); break;
  167.  
  168.                             case "irc-color":
  169.                                 color = c.Parse(value);
  170.                                 if (color == "") {
  171.                                     color = c.Name(value); if (color != "") color = value; else { Server.s.Log("Could not find " + value); return; }
  172.                                 }
  173.                                 cmbIRCColour.SelectedIndex = cmbIRCColour.Items.IndexOf(c.Name(value)); break;
  174.                             case "default-rank":
  175.                                 try {
  176.                                     if (cmbDefaultRank.Items.IndexOf(value.ToLower()) != -1)
  177.                                         cmbDefaultRank.SelectedIndex = cmbDefaultRank.Items.IndexOf(value.ToLower());
  178.                                 } catch { cmbDefaultRank.SelectedIndex = 1; }
  179.                                 break;
  180.  
  181.                             case "old-help":
  182.                                 chkHelp.Checked = (value.ToLower() == "true") ? true : false;                                
  183.                                 break;
  184.  
  185.                             case "cheapmessage":
  186.                                 chkCheap.Checked = (value.ToLower() == "true") ? true : false;
  187.                                 break;
  188.                             case "cheap-message-given":
  189.                                 txtCheap.Text = value;
  190.                                 break;
  191.  
  192.                             case "rank-super":
  193.                                 chkrankSuper.Checked = (value.ToLower() == "true") ? true : false;
  194.                                 break;
  195.  
  196.                             case "custom-ban":
  197.                                 chkBanMessage.Checked = (value.ToLower() == "true") ? true : false;
  198.                                 break;
  199.  
  200.                             case "custom-ban-message":
  201.                                 txtBanMessage.Text = value;
  202.                                 break;
  203.  
  204.                             case "custom-shutdown":
  205.                                 chkShutdown.Checked = (value.ToLower() == "true") ? true : false;
  206.                                 break;
  207.  
  208.                             case "custom-shutdown-message":
  209.                                 txtShutdown.Text = value;
  210.                                 break;
  211.  
  212.                             case "auto-restart":
  213.                                 chkRestartTime.Checked = (value.ToLower() == "true") ? true : false;
  214.                                 break;
  215.                             case "restarttime":
  216.                                 txtRestartTime.Text = value;
  217.                                 break;
  218.                             case "afk-minutes":
  219.                                 try { txtafk.Text = Convert.ToInt16(value).ToString(); } catch { txtafk.Text = "10"; }
  220.                                 break;
  221.  
  222.                             case "afk-kick":
  223.                                 try { txtAFKKick.Text = Convert.ToInt16(value).ToString(); } catch { txtAFKKick.Text = "45"; }
  224.                                 break;
  225.  
  226.                             case "check-updates":
  227.                                 chkUpdates.Checked = (value.ToLower() == "true") ? true : false;
  228.                                 break;
  229.                             case "autoload":
  230.                                 chkAutoload.Checked = (value.ToLower() == "true") ? true : false;
  231.                                 break;
  232.                             case "parse-emotes":
  233.                                 chkSmile.Checked = (value.ToLower() == "true") ? true : false;
  234.                                 break;
  235.                             case "main-name":
  236.                                 txtMain.Text = value;
  237.                                 break;
  238.                             case "dollar-before-dollar":
  239.                                 chk17Dollar.Checked = (value.ToLower() == "true") ? true : false;
  240.                                 break;
  241.                             case "money-name":
  242.                                 txtMoneys.Text = value;
  243.                                 break;
  244.                             case "mono":
  245.                                 chkMono.Checked = (value.ToLower() == "true") ? true : false;
  246.                                 break;
  247.                             case "restart-on-error":
  248.                                 chkRestart.Checked = (value.ToLower() == "true") ? true : false;
  249.                                 break;
  250.                             case "repeat-messages":
  251.                                 chkRepeatMessages.Checked = (value.ToLower() == "true") ? true : false;
  252.                                 break;
  253.                             case "host-state":
  254.                                 if (value != "") txtHost.Text = value;
  255.                                 break;
  256.                         }
  257.                     }
  258.                    
  259.                 }
  260.                 string levelMain = message;
  261.                 try {
  262.                 StreamWriter w = new StreamWriter(File.Create(givenPath));
  263.                 if (givenPath.IndexOf("server") != -1) {
  264.                     w.WriteLine("# Edit the settings below to modify how your server operates. This is an explanation of what each setting does.");
  265.                     w.WriteLine("#   server-name\t=\tThe name which displays on minecraft.net");
  266.                     w.WriteLine("#   motd\t=\tThe message which displays when a player connects");
  267.                     w.WriteLine("#   port\t=\tThe port to operate from");
  268.                     w.WriteLine("#   console-only\t=\tRun without a GUI (useful for Linux servers with mono)");
  269.                     w.WriteLine("#   verify-names\t=\tVerify the validity of names");
  270.                     w.WriteLine("#   public\t=\tSet to true to appear in the public server list");
  271.                     w.WriteLine("#   max-players\t=\tThe maximum number of connections");
  272.                     w.WriteLine("#   max-maps\t=\tThe maximum number of maps loaded at once");
  273.                     w.WriteLine("#   world-chat\t=\tSet to true to enable world chat");
  274.                     w.WriteLine("#   guest-goto\t=\tSet to true to give guests goto and levels commands");
  275.                     w.WriteLine("#   irc\t=\tSet to true to enable the IRC bot");
  276.                     w.WriteLine("#   irc-nick\t=\tThe name of the IRC bot");
  277.                     w.WriteLine("#   irc-server\t=\tThe server to connect to");
  278.                     w.WriteLine("#   irc-channel\t=\tThe channel to join");
  279.                     w.WriteLine("#   irc-opchannel\t=\tThe channel to join (posts OpChat)");
  280.                     w.WriteLine("#   irc-port\t=\tThe port to use to connect");
  281.                     w.WriteLine("#   irc-identify\t=(true/false)\tDo you want the IRC bot to Identify itself with nickserv. Note: You will need to register it's name with nickserv manually.");
  282.                     w.WriteLine("#   irc-password\t=\tThe password you want to use if you're identifying with nickserv");
  283.                     w.WriteLine("#   anti-tunnels\t=\tStops people digging below max-depth");
  284.                     w.WriteLine("#   max-depth\t=\tThe maximum allowed depth to dig down");
  285.                     w.WriteLine("#   backup-time\t=\tThe number of seconds between automatic backups");
  286.                     w.WriteLine("#   overload\t=\tThe higher this is, the longer the physics is allowed to lag. Default 1500");
  287.                     w.WriteLine("#   use-whitelist\t=\tSwitch to allow use of a whitelist to override IP bans for certain players.  Default false.");
  288.                     w.WriteLine("#   force-cuboid\t=\tRun cuboid until the limit is hit, instead of canceling the whole operation.  Default false.");
  289.                     w.WriteLine();
  290.                     w.WriteLine("#   Host\t=\tThe host name for the database (usually 127.0.0.1)");
  291.                     w.WriteLine("#   SQLPort\t=\tPort number to be used for MySQL.  Unless you manually changed the port, leave this alone.  Default 3306.");
  292.                     w.WriteLine("#   Username\t=\tThe username you used to create the database (usually root)");
  293.                     w.WriteLine("#   Password\t=\tThe password set while making the database");
  294.                     w.WriteLine("#   DatabaseName\t=\tThe name of the database stored (Default = MCZall)");
  295.                     w.WriteLine();
  296.                     w.WriteLine("#   defaultColor\t=\tThe color code of the default messages (Default = &e)");
  297.                     w.WriteLine();
  298.                     w.WriteLine();
  299.                     w.WriteLine("# Server options");
  300.                     w.WriteLine("server-name = " + txtName.Text);
  301.                     w.WriteLine("motd = " + txtMOTD.Text);
  302.                     w.WriteLine("port = " + txtPort.Text);
  303.                     w.WriteLine("verify-names = " + chkVerify.Checked.ToString().ToLower());
  304.                     w.WriteLine("public = " + chkPublic.Checked.ToString().ToLower());
  305.                     w.WriteLine("max-players = " + txtPlayers.Text);
  306.                     w.WriteLine("max-maps = " + txtMaps.Text);
  307.                     w.WriteLine("world-chat = " + chkWorld.Checked.ToString().ToLower());
  308.                     w.WriteLine("check-updates = " + chkUpdates.Checked.ToString().ToLower());
  309.                     w.WriteLine("autoload = " + chkAutoload.Checked.ToString().ToLower());
  310.                     w.WriteLine("auto-restart = " + chkRestartTime.Checked.ToString().ToLower());
  311.                     w.WriteLine("restarttime = " + txtRestartTime.Text);
  312.                     w.WriteLine("restart-on-error = " + chkRestart.Checked);
  313.                     if (Player.ValidName(levelMain)) w.WriteLine("main-name = " + levelMain);
  314.                     else w.WriteLine("main-name = main");
  315.                     w.WriteLine();
  316.                     w.WriteLine("# irc bot options");
  317.                     w.WriteLine("irc = " + chkIRC.Checked.ToString());
  318.                     w.WriteLine("irc-nick = " + txtNick.Text);
  319.                     w.WriteLine("irc-server = " + txtIRCServer.Text);
  320.                     w.WriteLine("irc-channel = " + txtChannel.Text);
  321.                     w.WriteLine("irc-opchannel = " + txtOpChannel.Text);
  322.                     w.WriteLine("irc-port = " + Server.ircPort.ToString());
  323.                     w.WriteLine("irc-identify = " + Server.ircIdentify.ToString());
  324.                     w.WriteLine("irc-password = " + Server.ircPassword);
  325.                     w.WriteLine();
  326.                     w.WriteLine("# other options");
  327.                     w.WriteLine("anti-tunnels = " + ChkTunnels.Checked.ToString().ToLower());
  328.                     w.WriteLine("max-depth = " + txtDepth.Text);
  329.                     w.WriteLine("rplimit = " + txtRP.Text);
  330.                     w.WriteLine("physicsrestart = " + chkPhysicsRest.Checked.ToString().ToLower());
  331.                     w.WriteLine("old-help = " + chkHelp.Checked.ToString().ToLower());
  332.                     w.WriteLine("deathcount = " + chkDeath.Checked.ToString().ToLower());
  333.                     w.WriteLine("afk-minutes = " + txtafk.Text);
  334.                     w.WriteLine("afk-kick = " + txtAFKKick.Text);
  335.                     w.WriteLine("parse-emotes = " + chkSmile.Checked.ToString().ToLower());
  336.                     w.WriteLine("dollar-before-dollar = " + chk17Dollar.Checked.ToString().ToLower());
  337.                     w.WriteLine("use-whitelist = " + Server.useWhitelist.ToString().ToLower());
  338.                     w.WriteLine("money-name = " + txtMoneys.Text);
  339.                     w.WriteLine("opchat-perm = " + ((sbyte)Group.GroupList.Find(grp => grp.name == cmbOpChat.Items[cmbOpChat.SelectedIndex].ToString()).Permission).ToString());
  340.                     w.WriteLine("log-heartbeat = " + chkLogBeat.Checked.ToString().ToLower());
  341.                     w.WriteLine("force-cuboid = " + chkForceCuboid.Checked.ToString().ToLower());
  342.                     w.WriteLine("repeat-messages = " + chkRepeatMessages.Checked.ToString());
  343.                     w.WriteLine("host-state = " + txtHost.Text.ToString());
  344.                     w.WriteLine();
  345.                     w.WriteLine("# backup options");
  346.                     w.WriteLine("backup-time = " + txtBackup.Text);
  347.                     w.WriteLine("backup-location = " + txtBackupLocation.Text);
  348.                     w.WriteLine();
  349.                     w.WriteLine("#Error logging");
  350.                     w.WriteLine("report-back = " + Server.reportBack.ToString().ToLower());
  351.                     w.WriteLine();
  352.                     w.WriteLine("#MySQL information");
  353.                     w.WriteLine("UseMySQL = " + Server.useMySQL);
  354.                     w.WriteLine("Host = " + Server.MySQLHost);
  355.                     w.WriteLine("SQLPort = " + Server.MySQLPort);
  356.                     w.WriteLine("Username = " + Server.MySQLUsername);
  357.                     w.WriteLine("Password = " + Server.MySQLPassword);
  358.                     w.WriteLine("DatabaseName = " + Server.MySQLDatabaseName);
  359.                     w.WriteLine("Pooling = " + Server.MySQLPooling);
  360.                     w.WriteLine();
  361.                     w.WriteLine("#Colors");
  362.                     w.WriteLine("defaultColor = " + cmbDefaultColour.Items[cmbDefaultColour.SelectedIndex].ToString());
  363.                     w.WriteLine("irc-color = " + cmbIRCColour.Items[cmbIRCColour.SelectedIndex].ToString());
  364.                     w.WriteLine();
  365.                     w.WriteLine("#Running on mono?");
  366.                     w.WriteLine("mono = " + chkMono.Checked.ToString().ToLower());
  367.                     w.WriteLine();
  368.                     w.WriteLine("#Custom Messages");
  369.                     w.WriteLine("custom-ban = " + chkBanMessage.Checked.ToString().ToLower());
  370.                     w.WriteLine("custom-ban-message = " + txtBanMessage.Text);
  371.                     w.WriteLine("custom-shutdown = " + chkShutdown.Checked.ToString().ToLower());
  372.                     w.WriteLine("custom-shutdown-message = " + txtShutdown.Text);
  373.                     w.WriteLine();
  374.                     w.WriteLine("cheapmessage = " + chkCheap.Checked.ToString().ToLower());
  375.                     w.WriteLine("cheap-message-given = " + txtCheap.Text);
  376.                     w.WriteLine("rank-super = " + chkrankSuper.Checked.ToString().ToLower());
  377.                     w.WriteLine("default-rank = " + cmbDefaultRank.Items[cmbDefaultRank.SelectedIndex].ToString());
  378.                 }
  379.                 w.Flush();
  380.                 w.Close();
  381.                 w.Dispose();
  382.             }
  383.             catch
  384.             {
  385.                 Server.s.Log("SAVE FAILED! " + givenPath);
  386.             }
  387.            
  388.             Player.GlobalMessage("Level "+message+" set to main");
  389.            
  390.             Command.all.Find("restart").Use(p, "");
  391.            
  392.                
  393.                
  394.            
  395.             } catch (Exception e) {
  396.                 Player.SendMessage(p, "Something went wrong")
  397.             }
  398.       }
  399.  
  400.       // This one controls what happens when you use /help [commandname].
  401.       public override void Help(Player p)
  402.       {
  403.           Player.SendMessage(p, "/newmain [mapname]; makes a new map ready to be main (and sets it to main?).");
  404.       }
  405.    }
  406. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top