Ejemplo n.º 1
0
        static AchievementManager()
        {
            if (File.Exists(Version.AchievementFilename))
            {
                var br = new BinaryReader(File.Open(Version.AchievementFilename, FileMode.Open));
                Achievements = bnet.protocol.achievements.AchievementFile.ParseFrom(br.ReadBytes((int)br.BaseStream.Length));
                br.Close();
                Logger.Info("Achievement file loaded from disk.");
            }
            else
            {
                Logger.Info("Achievement file not found. Attempting to download...");
                var attempts = 0;
                byte[] data = new byte[] { };
                while (attempts < 5)
                {
                    try
                    {
                        data = new System.Net.WebClient().DownloadData(Version.AchievementURL);
                        break;
                    }
                    catch (System.Net.WebException)
                    {
                        attempts++;
                    }
                }
                try
                {
                    Achievements = bnet.protocol.achievements.AchievementFile.ParseFrom(data);
                    if (attempts < 5)
                    {
                        var br = new BinaryWriter(File.Open(Version.AchievementFilename, FileMode.CreateNew));
                        br.Write(data);
                        br.Close();
                    }
                    else
                    {
                        Logger.Error("AchievementFile could not be downloaded. Aborted after 5 tries.");
                    }
                }
                catch (Google.ProtocolBuffers.InvalidProtocolBufferException)
                {
                    Achievements = bnet.protocol.achievements.AchievementFile.CreateBuilder().Build();
                    Logger.Error("AchievementFile could not be downloaded and parsed correctly.");
                }
                catch (IOException)
                {
                    Logger.Error("{0} could not be written to.", Version.AchievementFilename);
                }

            }
        }
Ejemplo n.º 2
0
 static AchievementManager()
 {
     if (File.Exists(Version.AchievementFilename))
     {
         var br = new BinaryReader(File.Open(Version.AchievementFilename, FileMode.Open));
         Achievements = bnet.protocol.achievements.AchievementFile.ParseFrom(br.ReadBytes((int)br.BaseStream.Length));
         br.Close();
         Logger.Info("Achievement file loaded from disk.");
     }
     else
     {
         Logger.Info("Achievement file not found. Attempting to download...");
         var    attempts = 0;
         byte[] data     = new byte[] { };
         while (attempts < 5)
         {
             try
             {
                 data = new System.Net.WebClient().DownloadData(Version.AchievementURL);
                 break;
             }
             catch (System.Net.WebException)
             {
                 attempts++;
             }
         }
         try
         {
             Achievements = bnet.protocol.achievements.AchievementFile.ParseFrom(data);
             if (attempts < 5)
             {
                 var br = new BinaryWriter(File.Open(Version.AchievementFilename, FileMode.CreateNew));
                 br.Write(data);
                 br.Close();
             }
             else
             {
                 Logger.Error("AchievementFile could not be downloaded. Aborted after 5 tries.");
             }
         }
         catch (Google.ProtocolBuffers.InvalidProtocolBufferException)
         {
             Achievements = bnet.protocol.achievements.AchievementFile.CreateBuilder().Build();
             Logger.Error("AchievementFile could not be downloaded and parsed correctly.");
         }
         catch (IOException)
         {
             Logger.Error("{0} could not be written to.", Version.AchievementFilename);
         }
     }
 }
Ejemplo n.º 3
0
 static AchievementManager()
 {
     if (File.Exists(VersionInfo.MooNet.AchievementFileHash + ".achv"))
     {
         var br = new BinaryReader(File.Open(VersionInfo.MooNet.AchievementFileHash + ".achv", FileMode.Open));
         Achievements = bnet.protocol.achievements.AchievementFile.ParseFrom(br.ReadBytes((int)br.BaseStream.Length));
         br.Close();
         Logger.Info("Achievement file loaded from disk.");
     }
     else
     {
         Logger.Info("Achievement file not found. Downloading...");
         byte[] data = new System.Net.WebClient().DownloadData("http://us.depot.battle.net:1119/" + VersionInfo.MooNet.AchievementFileHash + ".achv");
         var br = new BinaryWriter(File.Open(VersionInfo.MooNet.AchievementFileHash + ".achv", FileMode.CreateNew));
         br.Write(data);
         br.Close();
         Achievements = bnet.protocol.achievements.AchievementFile.ParseFrom(data);
     }
 }