Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Add any other using statements you need up here, of course.
- // As a note, MCLawl is designed for .NET 3.5.
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.IO;
- namespace MCLawl
- {
- public class Cmdnewmain : Command
- {
- // The command's name, in all lowercase. What you'll be putting behind the slash when using it.
- public override string name { get { return "newmain"; } }
- // Command's shortcut (please take care not to use an existing one, or you may have issues.
- public override string shortcut { get { return "nm"; } }
- // Determines which submenu the command displays in under /help.
- public override string type { get { return "mod"; } }
- // Determines whether or not this command can be used in a museum. Block/map altering commands should be made false to avoid errors.
- public override bool museumUsable { get { return false; } }
- // Determines the command's default rank. Valid values are:
- // LevelPermission.Nobody, LevelPermission.Banned, LevelPermission.Guest
- // LevelPermission.Builder, LevelPermission.AdvBuilder, LevelPermission.Operator, LevelPermission.Admin
- public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
- // This is where the magic happens, naturally.
- // p is the player object for the player executing the command. message is everything after the command invocation itself.
- public override void Use(Player p, string message)
- {
- Command.all.Find("newlvl").Use(p, message + " 512 128 256 flat");
- System.Threading.Thread.Sleep(10000);
- Command.all.Find("load").Use(p, message);
- System.Threading.Thread.Sleep(5000);
- Command.all.Find("perbuild").Use(p, message+" guest");
- Command.all.Find("pervisit").Use(p, message+" guest");
- Command.all.Find("physics").Use(p, message+" 1");
- Player.GlobalMessage("New main set up.");
- try
- {
- string[] lines = File.ReadAllLines("properties/server.properties");
- foreach (string line in lines) {
- if (line != "" && line[0] != '#') {
- //int index = line.IndexOf('=') + 1; // not needed if we use Split('=')
- string key = line.Split('=')[0].Trim();
- string value = line.Split('=')[1].Trim();
- string color = "";
- switch (key.ToLower())
- {
- case "server-name":
- if (ValidString(value, "![]:.,{}~-+()?_/\\ ")) txtName.Text = value;
- else txtName.Text = "[MCZall] Minecraft server";
- break;
- case "motd":
- if (ValidString(value, "![]&:.,{}~-+()?_/\\ ")) txtMOTD.Text = value;
- else txtMOTD.Text = "Welcome to my server!";
- break;
- case "port":
- try { txtPort.Text = Convert.ToInt32(value).ToString(); }
- catch { txtPort.Text = "25565"; }
- break;
- case "verify-names":
- chkVerify.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "public":
- chkPublic.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "world-chat":
- chkWorld.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "max-players":
- try {
- if (Convert.ToByte(value) > 128) {
- value = "128";
- } else if (Convert.ToByte(value) < 1) {
- value = "1";
- }
- txtPlayers.Text = value;
- } catch {
- Server.s.Log("max-players invalid! setting to default.");
- txtPlayers.Text = "12";
- }
- break;
- case "max-maps":
- try {
- if (Convert.ToByte(value) > 100) {
- value = "100";
- } else if (Convert.ToByte(value) < 1) {
- value = "1";
- }
- txtMaps.Text = value;
- } catch {
- Server.s.Log("max-maps invalid! setting to default.");
- txtMaps.Text = "5";
- }
- break;
- case "irc":
- chkIRC.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "irc-server":
- txtIRCServer.Text = value;
- break;
- case "irc-nick":
- txtNick.Text = value;
- break;
- case "irc-channel":
- txtChannel.Text = value;
- break;
- case "irc-opchannel":
- txtOpChannel.Text = value;
- break;
- case "anti-tunnels":
- ChkTunnels.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "max-depth":
- txtDepth.Text= value;
- break;
- case "rplimit":
- try { txtRP.Text = value; } catch { txtRP.Text = "500"; }
- break;
- case "rplimit-norm":
- try { txtNormRp.Text = value; } catch { txtNormRp.Text = "10000"; }
- break;
- case "log-heartbeat":
- chkLogBeat.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "force-cuboid":
- chkForceCuboid.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "backup-time":
- if (Convert.ToInt32(value) > 1) txtBackup.Text = value; else txtBackup.Text = "300";
- break;
- case "backup-location":
- if (!value.Contains("System.Windows.Forms.TextBox, Text:"))
- txtBackupLocation.Text = value;
- break;
- case "physicsrestart":
- chkPhysicsRest.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "deathcount":
- chkDeath.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "defaultcolor":
- color = c.Parse(value);
- if (color == "") {
- color = c.Name(value); if (color != "") color = value; else { Server.s.Log("Could not find " + value); return; }
- }
- cmbDefaultColour.SelectedIndex = cmbDefaultColour.Items.IndexOf(c.Name(value)); break;
- case "irc-color":
- color = c.Parse(value);
- if (color == "") {
- color = c.Name(value); if (color != "") color = value; else { Server.s.Log("Could not find " + value); return; }
- }
- cmbIRCColour.SelectedIndex = cmbIRCColour.Items.IndexOf(c.Name(value)); break;
- case "default-rank":
- try {
- if (cmbDefaultRank.Items.IndexOf(value.ToLower()) != -1)
- cmbDefaultRank.SelectedIndex = cmbDefaultRank.Items.IndexOf(value.ToLower());
- } catch { cmbDefaultRank.SelectedIndex = 1; }
- break;
- case "old-help":
- chkHelp.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "cheapmessage":
- chkCheap.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "cheap-message-given":
- txtCheap.Text = value;
- break;
- case "rank-super":
- chkrankSuper.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "custom-ban":
- chkBanMessage.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "custom-ban-message":
- txtBanMessage.Text = value;
- break;
- case "custom-shutdown":
- chkShutdown.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "custom-shutdown-message":
- txtShutdown.Text = value;
- break;
- case "auto-restart":
- chkRestartTime.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "restarttime":
- txtRestartTime.Text = value;
- break;
- case "afk-minutes":
- try { txtafk.Text = Convert.ToInt16(value).ToString(); } catch { txtafk.Text = "10"; }
- break;
- case "afk-kick":
- try { txtAFKKick.Text = Convert.ToInt16(value).ToString(); } catch { txtAFKKick.Text = "45"; }
- break;
- case "check-updates":
- chkUpdates.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "autoload":
- chkAutoload.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "parse-emotes":
- chkSmile.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "main-name":
- txtMain.Text = value;
- break;
- case "dollar-before-dollar":
- chk17Dollar.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "money-name":
- txtMoneys.Text = value;
- break;
- case "mono":
- chkMono.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "restart-on-error":
- chkRestart.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "repeat-messages":
- chkRepeatMessages.Checked = (value.ToLower() == "true") ? true : false;
- break;
- case "host-state":
- if (value != "") txtHost.Text = value;
- break;
- }
- }
- }
- string levelMain = message;
- try {
- StreamWriter w = new StreamWriter(File.Create(givenPath));
- if (givenPath.IndexOf("server") != -1) {
- w.WriteLine("# Edit the settings below to modify how your server operates. This is an explanation of what each setting does.");
- w.WriteLine("# server-name\t=\tThe name which displays on minecraft.net");
- w.WriteLine("# motd\t=\tThe message which displays when a player connects");
- w.WriteLine("# port\t=\tThe port to operate from");
- w.WriteLine("# console-only\t=\tRun without a GUI (useful for Linux servers with mono)");
- w.WriteLine("# verify-names\t=\tVerify the validity of names");
- w.WriteLine("# public\t=\tSet to true to appear in the public server list");
- w.WriteLine("# max-players\t=\tThe maximum number of connections");
- w.WriteLine("# max-maps\t=\tThe maximum number of maps loaded at once");
- w.WriteLine("# world-chat\t=\tSet to true to enable world chat");
- w.WriteLine("# guest-goto\t=\tSet to true to give guests goto and levels commands");
- w.WriteLine("# irc\t=\tSet to true to enable the IRC bot");
- w.WriteLine("# irc-nick\t=\tThe name of the IRC bot");
- w.WriteLine("# irc-server\t=\tThe server to connect to");
- w.WriteLine("# irc-channel\t=\tThe channel to join");
- w.WriteLine("# irc-opchannel\t=\tThe channel to join (posts OpChat)");
- w.WriteLine("# irc-port\t=\tThe port to use to connect");
- 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.");
- w.WriteLine("# irc-password\t=\tThe password you want to use if you're identifying with nickserv");
- w.WriteLine("# anti-tunnels\t=\tStops people digging below max-depth");
- w.WriteLine("# max-depth\t=\tThe maximum allowed depth to dig down");
- w.WriteLine("# backup-time\t=\tThe number of seconds between automatic backups");
- w.WriteLine("# overload\t=\tThe higher this is, the longer the physics is allowed to lag. Default 1500");
- w.WriteLine("# use-whitelist\t=\tSwitch to allow use of a whitelist to override IP bans for certain players. Default false.");
- w.WriteLine("# force-cuboid\t=\tRun cuboid until the limit is hit, instead of canceling the whole operation. Default false.");
- w.WriteLine();
- w.WriteLine("# Host\t=\tThe host name for the database (usually 127.0.0.1)");
- w.WriteLine("# SQLPort\t=\tPort number to be used for MySQL. Unless you manually changed the port, leave this alone. Default 3306.");
- w.WriteLine("# Username\t=\tThe username you used to create the database (usually root)");
- w.WriteLine("# Password\t=\tThe password set while making the database");
- w.WriteLine("# DatabaseName\t=\tThe name of the database stored (Default = MCZall)");
- w.WriteLine();
- w.WriteLine("# defaultColor\t=\tThe color code of the default messages (Default = &e)");
- w.WriteLine();
- w.WriteLine();
- w.WriteLine("# Server options");
- w.WriteLine("server-name = " + txtName.Text);
- w.WriteLine("motd = " + txtMOTD.Text);
- w.WriteLine("port = " + txtPort.Text);
- w.WriteLine("verify-names = " + chkVerify.Checked.ToString().ToLower());
- w.WriteLine("public = " + chkPublic.Checked.ToString().ToLower());
- w.WriteLine("max-players = " + txtPlayers.Text);
- w.WriteLine("max-maps = " + txtMaps.Text);
- w.WriteLine("world-chat = " + chkWorld.Checked.ToString().ToLower());
- w.WriteLine("check-updates = " + chkUpdates.Checked.ToString().ToLower());
- w.WriteLine("autoload = " + chkAutoload.Checked.ToString().ToLower());
- w.WriteLine("auto-restart = " + chkRestartTime.Checked.ToString().ToLower());
- w.WriteLine("restarttime = " + txtRestartTime.Text);
- w.WriteLine("restart-on-error = " + chkRestart.Checked);
- if (Player.ValidName(levelMain)) w.WriteLine("main-name = " + levelMain);
- else w.WriteLine("main-name = main");
- w.WriteLine();
- w.WriteLine("# irc bot options");
- w.WriteLine("irc = " + chkIRC.Checked.ToString());
- w.WriteLine("irc-nick = " + txtNick.Text);
- w.WriteLine("irc-server = " + txtIRCServer.Text);
- w.WriteLine("irc-channel = " + txtChannel.Text);
- w.WriteLine("irc-opchannel = " + txtOpChannel.Text);
- w.WriteLine("irc-port = " + Server.ircPort.ToString());
- w.WriteLine("irc-identify = " + Server.ircIdentify.ToString());
- w.WriteLine("irc-password = " + Server.ircPassword);
- w.WriteLine();
- w.WriteLine("# other options");
- w.WriteLine("anti-tunnels = " + ChkTunnels.Checked.ToString().ToLower());
- w.WriteLine("max-depth = " + txtDepth.Text);
- w.WriteLine("rplimit = " + txtRP.Text);
- w.WriteLine("physicsrestart = " + chkPhysicsRest.Checked.ToString().ToLower());
- w.WriteLine("old-help = " + chkHelp.Checked.ToString().ToLower());
- w.WriteLine("deathcount = " + chkDeath.Checked.ToString().ToLower());
- w.WriteLine("afk-minutes = " + txtafk.Text);
- w.WriteLine("afk-kick = " + txtAFKKick.Text);
- w.WriteLine("parse-emotes = " + chkSmile.Checked.ToString().ToLower());
- w.WriteLine("dollar-before-dollar = " + chk17Dollar.Checked.ToString().ToLower());
- w.WriteLine("use-whitelist = " + Server.useWhitelist.ToString().ToLower());
- w.WriteLine("money-name = " + txtMoneys.Text);
- w.WriteLine("opchat-perm = " + ((sbyte)Group.GroupList.Find(grp => grp.name == cmbOpChat.Items[cmbOpChat.SelectedIndex].ToString()).Permission).ToString());
- w.WriteLine("log-heartbeat = " + chkLogBeat.Checked.ToString().ToLower());
- w.WriteLine("force-cuboid = " + chkForceCuboid.Checked.ToString().ToLower());
- w.WriteLine("repeat-messages = " + chkRepeatMessages.Checked.ToString());
- w.WriteLine("host-state = " + txtHost.Text.ToString());
- w.WriteLine();
- w.WriteLine("# backup options");
- w.WriteLine("backup-time = " + txtBackup.Text);
- w.WriteLine("backup-location = " + txtBackupLocation.Text);
- w.WriteLine();
- w.WriteLine("#Error logging");
- w.WriteLine("report-back = " + Server.reportBack.ToString().ToLower());
- w.WriteLine();
- w.WriteLine("#MySQL information");
- w.WriteLine("UseMySQL = " + Server.useMySQL);
- w.WriteLine("Host = " + Server.MySQLHost);
- w.WriteLine("SQLPort = " + Server.MySQLPort);
- w.WriteLine("Username = " + Server.MySQLUsername);
- w.WriteLine("Password = " + Server.MySQLPassword);
- w.WriteLine("DatabaseName = " + Server.MySQLDatabaseName);
- w.WriteLine("Pooling = " + Server.MySQLPooling);
- w.WriteLine();
- w.WriteLine("#Colors");
- w.WriteLine("defaultColor = " + cmbDefaultColour.Items[cmbDefaultColour.SelectedIndex].ToString());
- w.WriteLine("irc-color = " + cmbIRCColour.Items[cmbIRCColour.SelectedIndex].ToString());
- w.WriteLine();
- w.WriteLine("#Running on mono?");
- w.WriteLine("mono = " + chkMono.Checked.ToString().ToLower());
- w.WriteLine();
- w.WriteLine("#Custom Messages");
- w.WriteLine("custom-ban = " + chkBanMessage.Checked.ToString().ToLower());
- w.WriteLine("custom-ban-message = " + txtBanMessage.Text);
- w.WriteLine("custom-shutdown = " + chkShutdown.Checked.ToString().ToLower());
- w.WriteLine("custom-shutdown-message = " + txtShutdown.Text);
- w.WriteLine();
- w.WriteLine("cheapmessage = " + chkCheap.Checked.ToString().ToLower());
- w.WriteLine("cheap-message-given = " + txtCheap.Text);
- w.WriteLine("rank-super = " + chkrankSuper.Checked.ToString().ToLower());
- w.WriteLine("default-rank = " + cmbDefaultRank.Items[cmbDefaultRank.SelectedIndex].ToString());
- }
- w.Flush();
- w.Close();
- w.Dispose();
- }
- catch
- {
- Server.s.Log("SAVE FAILED! " + givenPath);
- }
- Player.GlobalMessage("Level "+message+" set to main");
- Command.all.Find("restart").Use(p, "");
- } catch (Exception e) {
- Player.SendMessage(p, "Something went wrong")
- }
- }
- // This one controls what happens when you use /help [commandname].
- public override void Help(Player p)
- {
- Player.SendMessage(p, "/newmain [mapname]; makes a new map ready to be main (and sets it to main?).");
- }
- }
- }
Add Comment
Please, Sign In to add comment