Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- namespace MegaCraft
- {
- public static class Properties
- {
- public static void Load(string givenPath, bool skipsalt = false)
- {
- if (!skipsalt)
- {
- Server.salt = "";
- string rndchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-/?.><,\";
- Random rnd = new Random();
- for (int i = 0; i < 16; ++i) { Server.salt += rndchars[rnd.Next(rndchars.Length)]; }
- }
- if (File.Exists(givenPath))
- {
- string[] lines = File.ReadAllLines(givenPath);
- 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, "![]:.,{}~-+()?_/\\ "))
- {
- Server.name = value;
- }
- else { Server.s.Log("server-name invalid! setting to default."); }
- break;
- case "motd":
- if (ValidString(value, "![]&:.,{}~-+()?_/\\ "))
- {
- Server.motd = value;
- }
- else { Server.s.Log("motd invalid! setting to default."); }
- break;
- case "port":
- try { Server.port = Convert.ToInt32(value); }
- catch { Server.s.Log("port invalid! setting to default."); }
- break;
- case "public":
- Server.pub = (value.ToLower() == "true") ? true : false;
- break;
- case "world-chat":
- Server.worldChat = (value.ToLower() == "true") ? true : false;
- break;
- case "guest-goto":
- Server.guestGoto = (value.ToLower() == "true") ? true : false;
- break;
- case "max-players":
- try
- {
- if (Convert.ToByte(value) > 128)
- {
- value = "128"; Server.s.Log("Max players has been lowered to 128.");
- }
- else if (Convert.ToByte(value) < 1)
- {
- value = "1"; Server.s.Log("Max players has been increased to 1.");
- }
- Server.players = Convert.ToByte(value);
- }
- catch { Server.s.Log("max-players invalid! setting to default."); }
- break;
- case "max-maps":
- try
- {
- if (Convert.ToByte(value) > 100)
- {
- value = "100";
- Server.s.Log("Max maps has been lowered to 100.");
- }
- else if (Convert.ToByte(value) < 1)
- {
- value = "1";
- Server.s.Log("Max maps has been increased to 1.");
- }
- Server.maps = Convert.ToByte(value);
- }
- catch
- {
- Server.s.Log("max-maps invalid! setting to default.");
- }
- break;
- case "irc":
- Server.irc = (value.ToLower() == "true") ? true : false;
- break;
- case "irc-server":
- Server.ircServer = value;
- break;
- case "irc-nick":
- Server.ircNick = value;
- break;
- case "irc-channel":
- Server.ircChannel = value;
- break;
- case "irc-opchannel":
- Server.ircOpChannel = value;
- break;
- case "irc-port":
- try
- {
- Server.ircPort = Convert.ToInt32(value);
- }
- catch
- {
- Server.s.Log("irc-port invalid! setting to default.");
- }
- break;
- case "irc-identify":
- try
- {
- Server.ircIdentify = Convert.ToBoolean(value);
- }
- catch
- {
- Server.s.Log("irc-identify boolean value invalid! Setting to the default of: " + Server.ircIdentify + ".");
- }
- break;
- case "irc-password":
- Server.ircPassword = value;
- break;
- case "anti-tunnels":
- Server.antiTunnel = (value.ToLower() == "true") ? true : false;
- break;
- case "max-depth":
- try
- {
- Server.maxDepth = Convert.ToByte(value);
- }
- catch
- {
- Server.s.Log("maxDepth invalid! setting to default.");
- }
- break;
- case "rplimit":
- try { Server.rpLimit = Convert.ToInt16(value); }
- catch { Server.s.Log("rpLimit invalid! setting to default."); }
- break;
- case "rplimit-norm":
- try { Server.rpNormLimit = Convert.ToInt16(value); }
- catch { Server.s.Log("rpLimit-norm invalid! setting to default."); }
- break;
- case "report-back":
- Server.reportBack = (value.ToLower() == "true") ? true : false;
- break;
- case "backup-time":
- if (Convert.ToInt32(value) > 1) { Server.backupInterval = Convert.ToInt32(value); }
- break;
- case "backup-location":
- if (!value.Contains("System.Windows.Forms.TextBox, Text:"))
- Server.backupLocation = value;
- break;
- case "console-only":
- Server.console = (value.ToLower() == "true") ? true : false;
- break;
- case "physicsrestart":
- Server.physicsRestart = (value.ToLower() == "true") ? true : false;
- break;
- case "deathcount":
- Server.deathcount = (value.ToLower() == "true") ? true : false;
- break;
- case "usemysql":
- Server.useMySQL = (value.ToLower() == "true") ? true : false;
- break;
- case "host":
- Server.MySQLHost = value;
- break;
- case "sqlport":
- Server.MySQLPort = value;
- break;
- case "username":
- Server.MySQLUsername = value;
- break;
- case "password":
- Server.MySQLPassword = value;
- break;
- case "databasename":
- Server.MySQLDatabaseName = value;
- break;
- case "pooling":
- try { Server.MySQLPooling = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- 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; }
- }
- Server.DefaultColor = color;
- 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; }
- }
- Server.IRCColour = color;
- break;
- case "opchat-perm":
- try
- {
- sbyte parsed = sbyte.Parse(value);
- if (parsed < -50 || parsed > 120)
- {
- throw new FormatException();
- }
- Server.opchatperm = (LevelPermission)parsed;
- }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "log-heartbeat":
- try { Server.logbeat = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "force-cuboid":
- try { Server.forceCuboid = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "cheapmessage":
- try { Server.cheapMessage = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "cheap-message-given":
- if (value != "") Server.cheapMessageGiven = value;
- break;
- case "custom-ban":
- try { Server.customBan = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "custom-ban-message":
- if (value != "") Server.customBanMessage = value;
- break;
- case "custom-shutdown":
- try { Server.customShutdown = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "custom-shutdown-message":
- if (value != "") Server.customShutdownMessage = value;
- break;
- case "rank-super":
- try { Server.rankSuper = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "default-rank":
- try { Server.defaultRank = value.ToLower(); }
- catch { }
- break;
- case "afk-minutes":
- try
- {
- Server.afkminutes = Convert.ToInt32(value);
- }
- catch
- {
- Server.s.Log("irc-port invalid! setting to default.");
- }
- break;
- case "afk-kick":
- try { Server.afkkick = Convert.ToInt32(value); }
- catch { Server.s.Log("irc-port invalid! setting to default."); }
- break;
- case "check-updates":
- try { Server.checkUpdates = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "autoload":
- try { Server.AutoLoad = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "auto-restart":
- try { Server.autorestart = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "restarttime":
- try { Server.restarttime = DateTime.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using defualt."); break; }
- break;
- case "parse-emotes":
- try { Server.parseSmiley = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); break; }
- break;
- case "main-name":
- if (Player.ValidName(value)) Server.level = value;
- else Server.s.Log("Invalid main name");
- break;
- case "dollar-before-dollar":
- try { Server.dollardollardollar = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); }
- break;
- case "money-name":
- if (value != "") Server.moneys = value;
- break;
- case "mono":
- try { Server.mono = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); }
- break;
- case "restart-on-error":
- try { Server.restartOnError = bool.Parse(value); }
- catch { Server.s.Log("Invalid " + key + ". Using default."); }
- break;
- case "host-state":
- if (value != "")
- Server.ZallState = value;
- break;
- }
- }
- }
- Server.s.SettingsUpdate();
- Save(givenPath);
- }
- else Save(givenPath);
- }
- public static bool ValidString(string str, string allowed)
- {
- string allowedchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890" + allowed;
- foreach (char ch in str)
- {
- if (allowedchars.IndexOf(ch) == -1)
- {
- return false;
- }
- } return true;
- }
Add Comment
Please, Sign In to add comment