예제 #1
0
 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();
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
        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();
 }
예제 #5
0
 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();
 }