Ejemplo n.º 1
0
        bool TellServiceWereComingForThem()
        {
            var connectionVerified = Interface.ConnectionStatus().HasFlag(ConnectivityLevel.Administrator);

            try
            {
                Interface.GetServiceComponent <ITGSService>().PrepareForUpdate();
                Thread.Sleep(3000);                 //chat messages
                return(true);
            }
            catch
            {
                return(ConfirmDangerousUpgrade());
            }
        }
Ejemplo n.º 2
0
        void CheckForExistingVersion()
        {
            Interface = new ServerInterface();
            var verifiedConnection = Interface.ConnectionStatus().HasFlag(ConnectivityLevel.Administrator);

            try
            {
                VersionLabel.Text = Interface.GetServiceComponent <ITGSService>().Version();
                var splits      = VersionLabel.Text.Split(' ');
                var realVersion = new Version(splits[splits.Length - 1].Substring(1));
                var isV0        = realVersion < new Version(3, 1, 0, 0);
                if (isV0)                 //OH GOD!!!!
                {
                    MessageBox.Show("Upgrading from version 3.0 may trigger a bug that can delete /config and /data. IT IS STRONGLY RECCOMMENDED THAT YOU BACKUP THESE FOLDERS BEFORE UPDATING!", "Warning");
                }
                var isUnderV2 = isV0 || realVersion < new Version(3, 2, 0, 0);
                if (isUnderV2)
                {
                    //Friendly reminger
                    MessageBox.Show("Upgrading to service version 3.2 will break the 3.1 DMAPI. It is recommended you update your game to the 3.2 API before updating the servive to avoid having to trigger hard restarts.", "Note");
                }
                attemptNetSettingsMigration = isUnderV2;
            }
            catch
            {
                if (verifiedConnection)
                {
                    VersionLabel.Text = "< v3.0.85.0 (Missing ITGService.Version())";
                }
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Constructs a <see cref="ControlPanel"/>
 /// </summary>
 /// <param name="I">The <see cref="IServerInterface"/> for the <see cref="ControlPanel"/></param>
 public ControlPanel(IServerInterface I)
 {
     InitializeComponent();
     FormClosed += ControlPanel_FormClosed;
     Interface   = I;
     if (Interface.IsRemoteConnection)
     {
         var splits = Interface.GetServiceComponent <ITGLanding>().Version().Split(' ');
         Text = String.Format("TGS {0}: {1}:{2}", splits[splits.Length - 1], Interface.HTTPSURL, Interface.HTTPSPort);
     }
     Text += " Instance: " + I.InstanceName;
     if (Interface.VersionMismatch(out string error) && MessageBox.Show(error, "Warning", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
     {
         Close();
         return;
     }
     Panels.SelectedIndexChanged += Panels_SelectedIndexChanged;
     Panels.SelectedIndex        += Math.Min(Properties.Settings.Default.LastPageIndex, Panels.TabCount - 1);
     InitRepoPage();
     InitBYONDPage();
     InitServerPage();
     UpdateSelectedPanel();
     InstancesInUse.Add(I.InstanceName, this);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Loads the <see cref="InstanceListBox"/> using <see cref="ITGLanding.ListInstances"/>
        /// </summary>
        async void RefreshInstances()
        {
            InstanceListBox.Items.Clear();
            await WrapServerOp(() => {
                InstanceData = masterInterface.GetServiceComponent <ITGLanding>().ListInstances();
            });

            foreach (var I in InstanceData)
            {
                InstanceListBox.Items.Add(String.Format("{0}: {1} - {2} - {3}", I.LoggingID, I.Name, I.Path, I.Enabled ? "ONLINE" : "OFFLINE"));
            }
            var HasServerAdmin = masterInterface.ConnectionStatus().HasFlag(ConnectivityLevel.Administrator);

            CreateInstanceButton.Enabled = HasServerAdmin;
            ImportInstanceButton.Enabled = HasServerAdmin;
            RenameInstanceButton.Enabled = HasServerAdmin;
            DetachInstanceButton.Enabled = HasServerAdmin;
            EnabledCheckBox.Enabled      = HasServerAdmin;
            if (InstanceData.Count > 0)
            {
                InstanceListBox.SelectedIndex = 0;
            }
        }
Ejemplo n.º 5
0
        static Command.ExitCode RunCommandLine(IList <string> argsAsList)
        {
            //first lookup the connection string
            bool badConnectionString = false;

            for (var I = 0; I < argsAsList.Count - 1; ++I)
            {
                var lowerarg = argsAsList[I].ToLower();
                if (lowerarg == "-c" || lowerarg == "--connect")
                {
                    var connectionString = argsAsList[I + 1];
                    var splits           = connectionString.Split('@');
                    var userpass         = splits[0].Split(':');
                    if (splits.Length != 2 || userpass.Length != 2)
                    {
                        badConnectionString = true;
                        break;
                    }
                    var addrport = splits[1].Split(':');
                    if (addrport.Length != 2)
                    {
                        badConnectionString = true;
                        break;
                    }
                    var    username = userpass[0];
                    var    password = userpass[1];
                    var    address  = addrport[0];
                    ushort port;
                    try
                    {
                        port = Convert.ToUInt16(addrport[1]);
                    }
                    catch
                    {
                        badConnectionString = true;
                        break;
                    }
                    if (String.IsNullOrWhiteSpace(username) || String.IsNullOrWhiteSpace(password) || String.IsNullOrWhiteSpace(address))
                    {
                        badConnectionString = true;
                        break;
                    }
                    argsAsList.RemoveAt(I);
                    argsAsList.RemoveAt(I);
                    ReplaceInterface(new ServerInterface(address, port, username, password));
                    break;
                }
            }

            if (badConnectionString)
            {
                Console.WriteLine("Remote connection usage: <-c/--connect> username:password@address:port");
                return(Command.ExitCode.BadCommand);
            }

            var res = currentInterface.ConnectionStatus(out string error);

            if (!res.HasFlag(ConnectivityLevel.Connected))
            {
                Console.WriteLine("Unable to connect to service: " + error);
                Console.WriteLine("Remote connection usage: <-c/--connect> username:password@address:port");
                return(Command.ExitCode.ConnectionError);
            }

            if (!res.HasFlag(ConnectivityLevel.Authenticated))
            {
                Console.WriteLine("Authentication error: Username/password/windows identity is not authorized!");
                return(Command.ExitCode.ConnectionError);
            }

            if (!SentVMMWarning && currentInterface.VersionMismatch(out error))
            {
                SentVMMWarning = true;
                Console.WriteLine(error);
            }
            else if (interactive && !saidSrvVersion)
            {
                Console.WriteLine("Connectd to service version: " + currentInterface.GetServiceComponent <ITGLanding>().Version());
                saidSrvVersion = true;
            }

            try
            {
                return(new CLICommand(currentInterface).DoRun(argsAsList));
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.ToString());
                return(Command.ExitCode.ConnectionError);
            };
        }