daily pastebin goal
61%
SHARE
TWEET

Untitled

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