private static void LoadRegServers(AtlasServerManager ArkMgr) { key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\AtlasServerManager\\Servers"); if (key != null) { string[] Servers = key.GetSubKeyNames(); foreach (string Srv in Servers) { if (Srv.StartsWith("Server")) { AtlasServerData ASD = LoadRegServer(ArkMgr, Srv); try { if (ASD.PID != 0) { ASD.ServerProcess = Process.GetProcessById(ASD.PID); } } catch { ASD.PID = 0; } ArkMgr.ServerList.Items.Add(new ArkServerListViewItem(ASD)); } } key.Close(); } }
public static bool SaveRegServer(AtlasServerManager ArkMgr, AtlasServerData Asd, int ActIndex, bool DefaultServerSave = false, bool SaveLastOverride = false) { key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\AtlasServerManager\\Servers\\" + (DefaultServerSave ? (SaveLastOverride ? "LastSaved" : "Default") : "Server" + ActIndex), true); if (key == null) { key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("SOFTWARE\\AtlasServerManager\\Servers\\" + (DefaultServerSave ? (SaveLastOverride ? "LastSaved" : "Default") : "Server" + ActIndex)); } else if (DefaultServerSave && !SaveLastOverride) { return(true); } if (key != null) { /* BOOL */ key.SetValue("Rcon", Asd.Rcon ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("WildWipe", Asd.WildWipe ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("PVP", Asd.PVP ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("MapB", Asd.MapB ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("Gamma", Asd.Gamma ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("Third", Asd.Third ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("Crosshair", Asd.Crosshair ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("HitMarker", Asd.HitMarker ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("Imprint", Asd.Imprint ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("FTD", Asd.FTD ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); if (Asd.ProcessAffinity == null) { Asd.ProcessAffinity = new bool[Environment.ProcessorCount]; for (int i = 0; i < Environment.ProcessorCount; i++) { Asd.ProcessAffinity[i] = true; } } for (int i = 0; i < Environment.ProcessorCount; i++) { key.SetValue("ProcessAffinity" + i, Asd.ProcessAffinity[i] ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); } /* INT */ key.SetValue("ServerPort", Asd.ServerPort, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("QueryPort", Asd.QueryPort, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("RconPort", Asd.RconPort, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("MaxPlayers", Asd.MaxPlayers, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("ReservedPlayers", Asd.ReservedPlayers, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("ServerX", Asd.ServerX, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("ServerY", Asd.ServerY, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("PID", Asd.PID, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("ProcessPriority", Asd.ProcessPriority, Microsoft.Win32.RegistryValueKind.DWord); /* STRING */ key.SetValue("Pass", Asd.Pass, Microsoft.Win32.RegistryValueKind.String); key.SetValue("CustomArgs", Asd.CustomArgs, Microsoft.Win32.RegistryValueKind.String); key.SetValue("ServerPath", Asd.ServerPath, Microsoft.Win32.RegistryValueKind.String); key.SetValue("AltSaveDirectory", Asd.AltSaveDirectory, Microsoft.Win32.RegistryValueKind.String); key.SetValue("ServerIp", Asd.ServerIp, Microsoft.Win32.RegistryValueKind.String); return(true); } return(false); }
public static AtlasServerData LoadRegServer(string Srv) { AtlasServerData Asd = new AtlasServerData(); key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\AtlasServerManager\\Servers\\" + Srv); if (key != null) { /* BOOL */ Asd.Rcon = (int)key.GetValue("Rcon", Asd.Rcon ? 1 : 0) == 1 ? true : false; Asd.WildWipe = (int)key.GetValue("WildWipe", Asd.WildWipe ? 1 : 0) == 1 ? true : false; Asd.PVP = (int)key.GetValue("PVP", Asd.PVP ? 1 : 0) == 1 ? true : false; Asd.MapB = (int)key.GetValue("MapB", Asd.MapB ? 1 : 0) == 1 ? true : false; Asd.Gamma = (int)key.GetValue("Gamma", Asd.Gamma ? 1 : 0) == 1 ? true : false; Asd.Third = (int)key.GetValue("Third", Asd.Third ? 1 : 0) == 1 ? true : false; Asd.Crosshair = (int)key.GetValue("Crosshair", Asd.Crosshair ? 1 : 0) == 1 ? true : false; Asd.HitMarker = (int)key.GetValue("HitMarker", Asd.HitMarker ? 1 : 0) == 1 ? true : false; Asd.Imprint = (int)key.GetValue("Imprint", Asd.Imprint ? 1 : 0) == 1 ? true : false; Asd.FTD = (int)key.GetValue("FTD", Asd.FTD ? 1 : 0) == 1 ? true : false; Asd.Upnp = (int)key.GetValue("UPNP", Asd.Upnp ? 1 : 0) == 1 ? true : false; Asd.BattleEye = (int)key.GetValue("BattleEye", 1) == 1 ? true : false; Asd.ProcessAffinity = new bool[Environment.ProcessorCount]; for (int i = 0; i < Environment.ProcessorCount; i++) { Asd.ProcessAffinity[i] = (int)key.GetValue("ProcessAffinity" + i, 1) == 1 ? true : false; } /* INT */ Asd.ServerPort = (int)key.GetValue("ServerPort", Asd.ServerPort); Asd.QueryPort = (int)key.GetValue("QueryPort", Asd.QueryPort); Asd.RconPort = (int)key.GetValue("RconPort", Asd.RconPort); Asd.MaxPlayers = (int)key.GetValue("MaxPlayers", Asd.MaxPlayers); Asd.ReservedPlayers = (int)key.GetValue("ReservedPlayers", Asd.ReservedPlayers); Asd.ServerX = (int)key.GetValue("ServerX", Asd.ServerX); Asd.ServerY = (int)key.GetValue("ServerY", Asd.ServerY); Asd.PID = (int)key.GetValue("PID", Asd.PID); Asd.ProcessPriority = (int)key.GetValue("ProcessPriority", 0); /* STRING */ Asd.Pass = (string)key.GetValue("Pass", Asd.Pass); Asd.CustomArgs = (string)key.GetValue("CustomArgs", Asd.CustomArgs); Asd.CustomAfterArgs = (string)key.GetValue("CustomAfterArgs", ""); Asd.ServerPath = (string)key.GetValue("ServerPath", Asd.ServerPath); Asd.AltSaveDirectory = (string)key.GetValue("AltSaveDirectory", Asd.AltSaveDirectory); Asd.ServerIp = (string)key.GetValue("ServerIp", Asd.ServerIp); Asd.RCONIP = (string)key.GetValue("RconIP", Asd.RCONIP); Asd.Loaded = true; } else { Asd.Loaded = false; } return(Asd); }
public ArkServerListViewItem(AtlasServerData ServerData) { Checked = true; SetServerData(ServerData); UseItemStyleForSubItems = false; Text = ServerData.ServerPort.ToString(); SubItems.AddRange(new string[] { ServerData.ServerX.ToString().ToString(), ServerData.ServerY.ToString(), "Offline", "0", "0%", ServerData.AltSaveDirectory }); SubItems[0].ForeColor = Color.LightSlateGray; SubItems[1].ForeColor = Color.LightSkyBlue; SubItems[2].ForeColor = Color.YellowGreen; SubItems[4].ForeColor = Color.LightSeaGreen; SubItems[5].ForeColor = Color.LightCoral; SubItems[6].ForeColor = Color.LightSlateGray; UpdateStatus(); }
public static bool SendCommand(string Command, AtlasServerData ASD) { try { if (!ConnectToRcon(ASD.RconConnection, ASD.RCONIP == string.Empty ? ASD.ServerIp : ASD.RCONIP, ASD.RconPort, ASD.Pass, ASD.AltSaveDirectory)) { return(false); } ASD.RconConnection.ServerCommand(Command); return(true); } catch (Exception e) { AtlasServerManager.GetInstance().Log("[Rcon->BroadCastMessage] Connection failed: " + e.Message + ", " + ASD.RCONIP == string.Empty ? ASD.ServerIp : ASD.RCONIP); return(false); } }
public void SetServerData(AtlasServerData ServerData) { this.ServerData = ServerData; UpdateSubItemText(); }