Guest User

Untitled

a guest
Dec 23rd, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.30 KB | None | 0 0
  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. }
Add Comment
Please, Sign In to add comment