/// <summary> /// Updates the Dynamic yams.at DNS. /// </summary> public static void UpdateDNS() { string externalIP = Networking.GetExternalIP().ToString(); if (externalIP != Database.GetSetting("LastExternalIP", "YAMS")) { //IP has changed since last time we checked so update the DNS string strVars = "action=update&domain=" + Database.GetSetting("DNSName", "YAMS") + "&secret=" + Database.GetSetting("DNSSecret", "YAMS") + "&ip=" + externalIP; try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://yams.in/dns/?" + strVars); request.Method = "GET"; //Grab the response HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Database.AddLog("Updated Dynamic DNS"); Database.SaveSetting("LastExternalIP", externalIP); } catch (System.Net.WebException ex) { Database.AddLog("Couldn't update DNS: " + ex.Message); } } }
//Initial Set-up for first run only public static void FirstRun() { //Grab latest server jar YAMS.AutoUpdate.UpdateIfNeeded(YAMS.AutoUpdate.strMCServerURL, YAMS.Core.RootFolder + @"\lib\minecraft_server.jar.UPDATE"); //Set our MC Defaults in the DB var NewServer = new List <KeyValuePair <string, string> >(); NewServer.Add(new KeyValuePair <string, string>("admin-slot", "true")); NewServer.Add(new KeyValuePair <string, string>("enable-health", "true")); NewServer.Add(new KeyValuePair <string, string>("hellworld", "false")); NewServer.Add(new KeyValuePair <string, string>("level-name", @"world")); NewServer.Add(new KeyValuePair <string, string>("max-players", "20")); NewServer.Add(new KeyValuePair <string, string>("motd", "Welcome to a YAMS server!")); NewServer.Add(new KeyValuePair <string, string>("online-mode", "true")); NewServer.Add(new KeyValuePair <string, string>("public", "false")); NewServer.Add(new KeyValuePair <string, string>("pvp", "true")); NewServer.Add(new KeyValuePair <string, string>("server-ip", "")); NewServer.Add(new KeyValuePair <string, string>("server-name", "My YAMS MC Server")); NewServer.Add(new KeyValuePair <string, string>("server-port", "25565")); NewServer.Add(new KeyValuePair <string, string>("spawn-animals", "true")); NewServer.Add(new KeyValuePair <string, string>("spawn-monsters", "true")); NewServer.Add(new KeyValuePair <string, string>("verify-names", "true")); NewServer.Add(new KeyValuePair <string, string>("white-list", "false")); Database.NewServer(NewServer, "My First YAMS Server"); //Set our YAMS Defaults Database.SaveSetting("UpdateJAR", "true"); Database.SaveSetting("UpdateSVC", "true"); Database.SaveSetting("UpdateGUI", "true"); Database.SaveSetting("UpdateWeb", "true"); Database.SaveSetting("UpdateAddons", "true"); Database.SaveSetting("RestartOnJarUpdate", "true"); Database.SaveSetting("RestartOnSVCUpdate", "true"); Database.SaveSetting("Memory", "1024"); Database.SaveSetting("EnableJavaOptimisations", "true"); Database.SaveSetting("AdminListenPort", "56552"); //Use an IANA legal internal port 49152 - 65535 Database.SaveSetting("PublicListenPort", Convert.ToString(Networking.TcpPort.FindNextAvailablePort(80))); //Find nearest open port to 80 for public site Database.SaveSetting("ExternalIP", Networking.GetExternalIP().ToString()); Database.SaveSetting("ListenIP", Networking.GetListenIP().ToString()); Database.SaveSetting("UpdateBranch", "live"); //Run an update now AutoUpdate.CheckUpdates(); //Tell the DB that we've run this Database.SaveSetting("FirstRun", "true"); }