public override void Initialize()
        {
            if (Environment.OSVersion.Platform != PlatformID.Win32NT)
            {
                WriteLine("Other OS detected; do not use this plugin.", ConsoleColor.DarkCyan);
                return;
            }

            var name = new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem")
                       .Get()
                       .Cast <ManagementObject>()
                       .Select(x => x.GetPropertyValue("Caption"))
                       .FirstOrDefault()?
                       .ToString() ?? "Unknown";

            string versionString;

            if (!name.StartsWith("Microsoft Windows") || string.IsNullOrWhiteSpace(versionString = name.Split(' ').FirstOrDefault(x => x.All(char.IsDigit))))
            {
                WriteLine("Couldn't detect version; the version string is: " + name, ConsoleColor.Red);
                return;
            }

            var windowsServer = name.Contains("Server");
            var version       = int.Parse(versionString);

            if (version < 2008 && windowsServer || (version < 7 || version == 10) && !windowsServer)
            {
                WriteLine("Terraria Server on your Windows version doesn't need be fixed.", ConsoleColor.DarkCyan);
                return;
            }

            try
            {
                Console.OutputEncoding = Encoding.Default;
                WriteLine("Fixed console output successfully! OSVersion: " + name, ConsoleColor.Cyan);
            }
            catch
            {
                // ignored
            }
        }
Exemple #2
0
        private void MemmoryCart(object sender, System.EventArgs e)
        {
            List <string> usbDrivesLetters = new ManagementObjectSearcher("select * from Win32_DiskDrive WHERE InterfaceType='USB'").Get().Cast <ManagementObject>()
                                             .SelectMany(drive => drive.GetRelated("Win32_DiskPartition").Cast <ManagementObject>())
                                             .SelectMany(o => o.GetRelated("Win32_LogicalDisk").Cast <ManagementObject>())
                                             .Select(i => Convert.ToString(i["Name"]) + "\\").ToList();
            List <string> cardDrivesLetters = new ManagementObjectSearcher("select * from Win32_DiskDrive").Get().Cast <ManagementObject>()
                                              .SelectMany(drive => drive.GetRelated("Win32_DiskPartition").Cast <ManagementObject>())
                                              .SelectMany(o => o.GetRelated("Win32_LogicalDisk").Cast <ManagementObject>())
                                              .Select(i => Convert.ToString(i["Name"]) + "\\").ToList();

            foreach (var c in usbDrivesLetters)
            {
                cardDrivesLetters.Remove(c);
            }
            _cardDriveInfos = DriveInfo.GetDrives().Where(drive => drive.DriveType == DriveType.Removable && cardDrivesLetters.Contains(drive.RootDirectory.Name)).ToList();
            OnInsertCard();
        }