Big update (windowed version)

Detective Squirrel [2016-07-24 03:05:19]
Big update (windowed version)

Big update from Elfocrash!
Added windowed version
Added setting button with saving capability in the Windows form and start button.
Filename
PokemonGo/RocketAPI/Client.cs
PokemonGo/RocketAPI/Console/Program.cs
PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs
PokemonGo/RocketAPI/ISettings.cs
PokemonGo/RocketAPI/Window/MainForm.Designer.cs
PokemonGo/RocketAPI/Window/MainForm.cs
PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj
PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
PokemonGo/RocketAPI/Window/Settings.cs
PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
PokemonGo/RocketAPI/Window/SettingsForm.cs
PokemonGo/RocketAPI/Window/SettingsForm.resx
PokemonGo/RocketAPI/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
PokemonGo/RocketAPI/obj/Debug/Pokemon Go Rocket API.dll
PokemonGo/RocketAPI/obj/Debug/Pokemon Go Rocket API.pdb
PokemonGo/RocketAPI/obj/Debug/PokemonGo.RocketAPI.csproj.FileListAbsolute.txt
PokemonGo/RocketAPI/obj/Debug/PokemonGo.RocketAPI.csprojResolveAssemblyReference.cache
diff --git a/PokemonGo/RocketAPI/Client.cs b/PokemonGo/RocketAPI/Client.cs
index d35e1a5..8e6948e 100644
--- a/PokemonGo/RocketAPI/Client.cs
+++ b/PokemonGo/RocketAPI/Client.cs
@@ -116,8 +116,8 @@ namespace PokemonGo.RocketAPI
                 _accessToken = await PtcLogin.GetAccessToken(username, password);
                 _authType = AuthType.Ptc;
             }
-            catch (Newtonsoft.Json.JsonReaderException) { ColoredConsoleWrite(ConsoleColor.Red, "Json Reader Exception - Server down? - Restarting"); DoPtcLogin(username, password); }
-            catch (Exception ex) { ColoredConsoleWrite(ConsoleColor.Red, ex.ToString() + "       Exception - Please report - Restarting"); DoPtcLogin(username, password); }
+            catch (Newtonsoft.Json.JsonReaderException) { ColoredConsoleWrite(ConsoleColor.White, "Json Reader Exception - Server down? - Restarting"); DoPtcLogin(username, password); }
+            catch (Exception ex) { ColoredConsoleWrite(ConsoleColor.White, ex.ToString() + "Exception - Please report - Restarting"); DoPtcLogin(username, password); }
         }

         public async Task<EncounterResponse> EncounterPokemon(ulong encounterId, string spawnPointGuid)
diff --git a/PokemonGo/RocketAPI/Console/Program.cs b/PokemonGo/RocketAPI/Console/Program.cs
index 108a243..41ffcaf 100644
--- a/PokemonGo/RocketAPI/Console/Program.cs
+++ b/PokemonGo/RocketAPI/Console/Program.cs
@@ -183,8 +183,8 @@ namespace PokemonGo.RocketAPI.Console
                 ColoredConsoleWrite(ConsoleColor.DarkGray, "Longitude: " + ClientSettings.DefaultLongitude);
                 try
                 {
-                    ColoredConsoleWrite(ConsoleColor.DarkGray, "Area: " + CallAPI("place", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude));
                     ColoredConsoleWrite(ConsoleColor.DarkGray, "Country: " + CallAPI("country", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude));
+                    ColoredConsoleWrite(ConsoleColor.DarkGray, "Place: " + CallAPI("place", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude));
                 }
                 catch (Exception)
                 {
@@ -236,7 +236,7 @@ namespace PokemonGo.RocketAPI.Console

         private static string CallAPI(string elem, double lat, double lon)
         {
-            using (XmlReader reader = XmlReader.Create(@"http://api.geonames.org/findNearby?lat=" + lat + "&lng=" + lon + "&username=demo"))
+            using (XmlReader reader = XmlReader.Create(@"http://api.geonames.org/findNearby?lat" + lat + "&lng=" + lon + "&username=demo"))
             {
                 while (reader.Read())
                 {
diff --git a/PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs b/PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs
index 291154c..4c6ebc4 100644
--- a/PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs
+++ b/PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs
@@ -39,5 +39,5 @@ using System.Runtime.InteropServices;
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]

-[assembly: AssemblyVersion("1.2.2.7")]
-[assembly: AssemblyFileVersion("1.2.2.7")]
+[assembly: AssemblyVersion("1.2.2.6")]
+[assembly: AssemblyFileVersion("1.2.2.6")]
diff --git a/PokemonGo/RocketAPI/ISettings.cs b/PokemonGo/RocketAPI/ISettings.cs
index 20d4692..c6a607d 100644
--- a/PokemonGo/RocketAPI/ISettings.cs
+++ b/PokemonGo/RocketAPI/ISettings.cs
@@ -2,6 +2,7 @@

 using PokemonGo.RocketAPI.Enums;
 using System.Collections.Generic;
+using System.Runtime.CompilerServices;

 #endregion

diff --git a/PokemonGo/RocketAPI/Window/MainForm.Designer.cs b/PokemonGo/RocketAPI/Window/MainForm.Designer.cs
index 4ab3e9c..3ce9826 100644
--- a/PokemonGo/RocketAPI/Window/MainForm.Designer.cs
+++ b/PokemonGo/RocketAPI/Window/MainForm.Designer.cs
@@ -1,38 +1,40 @@
-namespace PokemonGo.RocketAPI.Window
-{
-    partial class MainForm
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
+namespace PokemonGo.RocketAPI.Window
+{
+    partial class MainForm
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
             this.logTextBox = new System.Windows.Forms.RichTextBox();
             this.statusStrip1 = new System.Windows.Forms.StatusStrip();
             this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel();
             this.menuStrip1 = new System.Windows.Forms.MenuStrip();
             this.todoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.startBotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.statusStrip1.SuspendLayout();
             this.menuStrip1.SuspendLayout();
             this.SuspendLayout();
@@ -42,22 +44,20 @@
             this.logTextBox.BackColor = System.Drawing.Color.Black;
             this.logTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
             this.logTextBox.ForeColor = System.Drawing.Color.White;
-            this.logTextBox.Location = new System.Drawing.Point(0, 22);
+            this.logTextBox.Location = new System.Drawing.Point(0, 24);
             this.logTextBox.Name = "logTextBox";
-            this.logTextBox.Size = new System.Drawing.Size(904, 494);
+            this.logTextBox.Size = new System.Drawing.Size(905, 471);
             this.logTextBox.TabIndex = 0;
             this.logTextBox.Text = "";
             this.logTextBox.TextChanged += new System.EventHandler(this.logTextBox_TextChanged);
             //
             // statusStrip1
             //
-            this.statusStrip1.Dock = System.Windows.Forms.DockStyle.Top;
             this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.statusLabel});
-            this.statusStrip1.Location = new System.Drawing.Point(0, 0);
+            this.statusStrip1.Location = new System.Drawing.Point(0, 495);
             this.statusStrip1.Name = "statusStrip1";
-            this.statusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
-            this.statusStrip1.Size = new System.Drawing.Size(904, 22);
+            this.statusStrip1.Size = new System.Drawing.Size(905, 22);
             this.statusStrip1.TabIndex = 1;
             this.statusStrip1.Text = "statusStrip1";
             //
@@ -70,29 +70,44 @@
             // menuStrip1
             //
             this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.todoToolStripMenuItem});
-            this.menuStrip1.Location = new System.Drawing.Point(0, 22);
+            this.todoToolStripMenuItem,
+            this.startBotToolStripMenuItem});
+            this.menuStrip1.Location = new System.Drawing.Point(0, 0);
             this.menuStrip1.Name = "menuStrip1";
-            this.menuStrip1.Size = new System.Drawing.Size(904, 24);
+            this.menuStrip1.Size = new System.Drawing.Size(905, 24);
             this.menuStrip1.TabIndex = 2;
             this.menuStrip1.Text = "menuStrip1";
-            this.menuStrip1.Visible = false;
             //
             // todoToolStripMenuItem
             //
+            this.todoToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.settingsToolStripMenuItem});
             this.todoToolStripMenuItem.Name = "todoToolStripMenuItem";
-            this.todoToolStripMenuItem.Size = new System.Drawing.Size(47, 20);
-            this.todoToolStripMenuItem.Text = "Todo";
+            this.todoToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+            this.todoToolStripMenuItem.Text = "Bot";
+            //
+            // settingsToolStripMenuItem
+            //
+            this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
+            this.settingsToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
+            this.settingsToolStripMenuItem.Text = "Settings";
+            this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
+            //
+            // startBotToolStripMenuItem
+            //
+            this.startBotToolStripMenuItem.Name = "startBotToolStripMenuItem";
+            this.startBotToolStripMenuItem.Size = new System.Drawing.Size(64, 20);
+            this.startBotToolStripMenuItem.Text = "Start bot";
+            this.startBotToolStripMenuItem.Click += new System.EventHandler(this.startBotToolStripMenuItem_Click);
             //
             // MainForm
             //
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.BackColor = System.Drawing.SystemColors.ControlLight;
-            this.ClientSize = new System.Drawing.Size(904, 516);
-            this.Controls.Add(this.menuStrip1);
+            this.ClientSize = new System.Drawing.Size(905, 517);
             this.Controls.Add(this.logTextBox);
             this.Controls.Add(this.statusStrip1);
+            this.Controls.Add(this.menuStrip1);
             this.MainMenuStrip = this.menuStrip1;
             this.Name = "MainForm";
             this.Text = "PokemonGo Rocket API";
@@ -104,15 +119,17 @@
             this.ResumeLayout(false);
             this.PerformLayout();

-        }
-
-        #endregion
-
-        private System.Windows.Forms.RichTextBox logTextBox;
-        private System.Windows.Forms.StatusStrip statusStrip1;
-        private System.Windows.Forms.MenuStrip menuStrip1;
-        private System.Windows.Forms.ToolStripMenuItem todoToolStripMenuItem;
-        private System.Windows.Forms.ToolStripStatusLabel statusLabel;
-    }
-}
-
+        }
+
+        #endregion
+
+        private System.Windows.Forms.RichTextBox logTextBox;
+        private System.Windows.Forms.StatusStrip statusStrip1;
+        private System.Windows.Forms.MenuStrip menuStrip1;
+        private System.Windows.Forms.ToolStripMenuItem todoToolStripMenuItem;
+        private System.Windows.Forms.ToolStripStatusLabel statusLabel;
+        private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem startBotToolStripMenuItem;
+    }
+}
+
diff --git a/PokemonGo/RocketAPI/Window/MainForm.cs b/PokemonGo/RocketAPI/Window/MainForm.cs
index 4281df3..31892a7 100644
--- a/PokemonGo/RocketAPI/Window/MainForm.cs
+++ b/PokemonGo/RocketAPI/Window/MainForm.cs
@@ -26,30 +26,15 @@ namespace PokemonGo.RocketAPI.Window
         public MainForm()
         {
             InitializeComponent();
+            ClientSettings = Settings.Instance;
         }

         private void MainForm_Load(object sender, EventArgs e)
         {
-            Task.Run(() =>
-            {
-                try
-                {
-                    //ColoredConsoleWrite(ConsoleColor.White, "Coded by Ferox - edited by NecronomiconCoding");
-                    CheckVersion();
-                    Execute();
-                }
-                catch (PtcOfflineException)
-                {
-                    ColoredConsoleWrite(Color.Red, "PTC Servers are probably down OR your credentials are wrong. Try google");
-                }
-                catch (Exception ex)
-                {
-                    ColoredConsoleWrite(Color.Red, $"Unhandled exception: {ex}");
-                }
-            });
+
         }

-        private static ISettings ClientSettings = new Settings();
+        public static ISettings ClientSettings;
         private static int Currentlevel = -1;
         private static int TotalExperience = 0;
         private static int TotalPokemon = 0;
@@ -109,7 +94,7 @@ namespace PokemonGo.RocketAPI.Window
                 Invoke(new Action<Color, string>(ColoredConsoleWrite), color, text);
                 return;
             }
-            string textToAppend = "[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text + "\r\n";
+            string textToAppend = DateTime.Now.ToString(CultureInfo.InvariantCulture) + " - " + text + "\r\n";
             logTextBox.SelectionColor = color;
             logTextBox.AppendText(textToAppend);
             File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Logs.txt", "[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text + "\n");
@@ -751,5 +736,33 @@ namespace PokemonGo.RocketAPI.Window
             logTextBox.SelectionStart = logTextBox.Text.Length;
             logTextBox.ScrollToCaret();
         }
+
+        private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            SettingsForm settingsForm = new SettingsForm();
+            settingsForm.Show();
+        }
+
+        private void startBotToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            startBotToolStripMenuItem.Enabled = false;
+            Task.Run(() =>
+            {
+                try
+                {
+                    //ColoredConsoleWrite(ConsoleColor.White, "Coded by Ferox - edited by NecronomiconCoding");
+                    CheckVersion();
+                    Execute();
+                }
+                catch (PtcOfflineException)
+                {
+                    ColoredConsoleWrite(Color.Red, "PTC Servers are probably down OR your credentials are wrong. Try google");
+                }
+                catch (Exception ex)
+                {
+                    ColoredConsoleWrite(Color.Red, $"Unhandled exception: {ex}");
+                }
+            });
+        }
     }
 }
diff --git a/PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj b/PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj
index 1f7cf66..ba6bb1f 100644
--- a/PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj
+++ b/PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj
@@ -58,6 +58,12 @@
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Settings.cs" />
+    <Compile Include="SettingsForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="SettingsForm.Designer.cs">
+      <DependentUpon>SettingsForm.cs</DependentUpon>
+    </Compile>
     <EmbeddedResource Include="MainForm.resx">
       <DependentUpon>MainForm.cs</DependentUpon>
     </EmbeddedResource>
@@ -70,6 +76,9 @@
       <AutoGen>True</AutoGen>
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
+    <EmbeddedResource Include="SettingsForm.resx">
+      <DependentUpon>SettingsForm.cs</DependentUpon>
+    </EmbeddedResource>
     <None Include="Properties\Settings.settings">
       <Generator>SettingsSingleFileGenerator</Generator>
       <LastGenOutput>Settings.Designer.cs</LastGenOutput>
diff --git a/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs b/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
index d5c726b..f6e8701 100644
--- a/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
+++ b/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.1.0")]
-[assembly: AssemblyFileVersion("1.0.1.0")]
+[assembly: AssemblyVersion("1.1.0.0")]
+[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/PokemonGo/RocketAPI/Window/Settings.cs b/PokemonGo/RocketAPI/Window/Settings.cs
index 61887cc..5279e36 100644
--- a/PokemonGo/RocketAPI/Window/Settings.cs
+++ b/PokemonGo/RocketAPI/Window/Settings.cs
@@ -4,6 +4,7 @@ using System;
 using System.Collections.Generic;
 using System.Configuration;
 using System.Globalization;
+using System.Reflection;
 using System.Runtime.CompilerServices;
 using AllEnum;
 using PokemonGo.RocketAPI.Enums;
@@ -14,15 +15,48 @@ namespace PokemonGo.RocketAPI.Window
 {
     public class Settings : ISettings
     {
+        private static volatile Settings _instance;
+        private static readonly object SyncRoot = new object();
+
+        public static Settings Instance
+        {
+            get
+            {
+                if (_instance != null)
+                    return _instance;
+
+                lock (SyncRoot)
+                {
+                    if (_instance == null)
+                        _instance = new Settings();
+                }
+
+                return _instance;
+            }
+        }
+
+        public void Reload()
+        {
+            ConfigurationManager.RefreshSection("appSettings");
+        }
+
         /// <summary>
         ///     Don't touch. User settings are in Console/App.config
         /// </summary>
         public string TransferType => GetSetting() != string.Empty ? GetSetting() : "none";
         public int TransferCPThreshold => GetSetting() != string.Empty ? int.Parse(GetSetting(), CultureInfo.InvariantCulture) : 0;
-        public bool EvolveAllGivenPokemons => GetSetting() != string.Empty ? System.Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture) : false;
+        public bool EvolveAllGivenPokemons => GetSetting() != string.Empty && Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture);


-        public AuthType AuthType => (GetSetting() != string.Empty ? GetSetting() : "Ptc") == "Ptc" ? AuthType.Ptc : AuthType.Google;
+        public AuthType AuthType
+        {
+            get
+            {
+                return (GetSetting() != string.Empty ? GetSetting() : "Ptc") == "Ptc" ? AuthType.Ptc : AuthType.Google;
+            }
+            set { SetSetting(value.ToString()); }
+        }
+
         public string PtcUsername => GetSetting() != string.Empty ? GetSetting() : "username";
         public string PtcPassword => GetSetting() != string.Empty ? GetSetting() : "password";

@@ -42,29 +76,22 @@ namespace PokemonGo.RocketAPI.Window

         public string LevelOutput => GetSetting() != string.Empty ? GetSetting() : "time";

-        public int LevelTimeInterval => GetSetting() != string.Empty ? System.Convert.ToInt16(GetSetting()) : 600;
+        public int LevelTimeInterval => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 600;

-        public bool Recycler => GetSetting() != string.Empty ? System.Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture) : false;
+        public bool Recycler => GetSetting() != string.Empty && Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture);

-        ICollection<KeyValuePair<ItemId, int>> ISettings.ItemRecycleFilter
+        ICollection<KeyValuePair<ItemId, int>> ISettings.ItemRecycleFilter => new[]
         {
-            get
-            {
-                //Type and amount to keep
-                return new[]
-                {
-                    new KeyValuePair<ItemId, int>(ItemId.ItemPokeBall, 20),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemGreatBall, 50),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemUltraBall, 100),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemMasterBall, 200),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemRazzBerry, 20),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemRevive, 20),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemPotion, 0),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemSuperPotion, 0),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemHyperPotion, 50)
-                };
-            }
-        }
+            new KeyValuePair<ItemId, int>(ItemId.ItemPokeBall, 20),
+            new KeyValuePair<ItemId, int>(ItemId.ItemGreatBall, 50),
+            new KeyValuePair<ItemId, int>(ItemId.ItemUltraBall, 100),
+            new KeyValuePair<ItemId, int>(ItemId.ItemMasterBall, 200),
+            new KeyValuePair<ItemId, int>(ItemId.ItemRazzBerry, 20),
+            new KeyValuePair<ItemId, int>(ItemId.ItemRevive, 20),
+            new KeyValuePair<ItemId, int>(ItemId.ItemPotion, 0),
+            new KeyValuePair<ItemId, int>(ItemId.ItemSuperPotion, 0),
+            new KeyValuePair<ItemId, int>(ItemId.ItemHyperPotion, 50)
+        };

         public int RecycleItemsInterval => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 60;

@@ -85,21 +112,24 @@ namespace PokemonGo.RocketAPI.Window
             return ConfigurationManager.AppSettings[key];
         }

-        private void SetSetting(string value, [CallerMemberName] string key = null)
+        public void SetSetting(string value, [CallerMemberName] string key = null)
         {
             var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
-            if (key != null) configFile.AppSettings.Settings[key].Value = value;
-            configFile.Save();
+            if (key != null)
+            {
+                configFile.AppSettings.Settings[key].Value = value;
+            }
+            configFile.Save(ConfigurationSaveMode.Full);
         }

-        private void SetSetting(double value, [CallerMemberName] string key = null)
+        public void SetSetting(double value, [CallerMemberName] string key = null)
         {
             CultureInfo customCulture = (CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
             customCulture.NumberFormat.NumberDecimalSeparator = ".";
             System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
             var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
             if (key != null) configFile.AppSettings.Settings[key].Value = value.ToString();
-            configFile.Save();
+            configFile.Save(ConfigurationSaveMode.Full);
         }
     }
 }
diff --git a/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs b/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
new file mode 100644
index 0000000..d753e53
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
@@ -0,0 +1,305 @@
+namespace PokemonGo.RocketAPI.Window
+{
+    partial class SettingsForm
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.authTypeLabel = new System.Windows.Forms.Label();
+            this.authTypeCb = new System.Windows.Forms.ComboBox();
+            this.ptcUserLabel = new System.Windows.Forms.Label();
+            this.ptcPasswordLabel = new System.Windows.Forms.Label();
+            this.latLabel = new System.Windows.Forms.Label();
+            this.longiLabel = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
+            this.label4 = new System.Windows.Forms.Label();
+            this.label5 = new System.Windows.Forms.Label();
+            this.ptcUserText = new System.Windows.Forms.TextBox();
+            this.ptcPassText = new System.Windows.Forms.TextBox();
+            this.latitudeText = new System.Windows.Forms.TextBox();
+            this.longitudeText = new System.Windows.Forms.TextBox();
+            this.razzmodeCb = new System.Windows.Forms.ComboBox();
+            this.razzSettingText = new System.Windows.Forms.TextBox();
+            this.transferTypeCb = new System.Windows.Forms.ComboBox();
+            this.transferCpThresText = new System.Windows.Forms.TextBox();
+            this.evolveAllChk = new System.Windows.Forms.CheckBox();
+            this.saveBtn = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            //
+            // authTypeLabel
+            //
+            this.authTypeLabel.AutoSize = true;
+            this.authTypeLabel.Location = new System.Drawing.Point(12, 13);
+            this.authTypeLabel.Name = "authTypeLabel";
+            this.authTypeLabel.Size = new System.Drawing.Size(59, 13);
+            this.authTypeLabel.TabIndex = 0;
+            this.authTypeLabel.Text = "Auth Type:";
+            //
+            // authTypeCb
+            //
+            this.authTypeCb.FormattingEnabled = true;
+            this.authTypeCb.Items.AddRange(new object[] {
+            "Ptc",
+            "Google"});
+            this.authTypeCb.Location = new System.Drawing.Point(113, 10);
+            this.authTypeCb.Name = "authTypeCb";
+            this.authTypeCb.Size = new System.Drawing.Size(75, 21);
+            this.authTypeCb.TabIndex = 1;
+            //
+            // ptcUserLabel
+            //
+            this.ptcUserLabel.AutoSize = true;
+            this.ptcUserLabel.Location = new System.Drawing.Point(12, 42);
+            this.ptcUserLabel.Name = "ptcUserLabel";
+            this.ptcUserLabel.Size = new System.Drawing.Size(77, 13);
+            this.ptcUserLabel.TabIndex = 2;
+            this.ptcUserLabel.Text = "Ptc Username:";
+            //
+            // ptcPasswordLabel
+            //
+            this.ptcPasswordLabel.AutoSize = true;
+            this.ptcPasswordLabel.Location = new System.Drawing.Point(12, 68);
+            this.ptcPasswordLabel.Name = "ptcPasswordLabel";
+            this.ptcPasswordLabel.Size = new System.Drawing.Size(75, 13);
+            this.ptcPasswordLabel.TabIndex = 3;
+            this.ptcPasswordLabel.Text = "Ptc Password:";
+            //
+            // latLabel
+            //
+            this.latLabel.AutoSize = true;
+            this.latLabel.Location = new System.Drawing.Point(12, 94);
+            this.latLabel.Name = "latLabel";
+            this.latLabel.Size = new System.Drawing.Size(48, 13);
+            this.latLabel.TabIndex = 4;
+            this.latLabel.Text = "Latitude:";
+            //
+            // longiLabel
+            //
+            this.longiLabel.AutoSize = true;
+            this.longiLabel.Location = new System.Drawing.Point(12, 120);
+            this.longiLabel.Name = "longiLabel";
+            this.longiLabel.Size = new System.Drawing.Size(57, 13);
+            this.longiLabel.TabIndex = 5;
+            this.longiLabel.Text = "Longitude:";
+            //
+            // label1
+            //
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(12, 146);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(86, 13);
+            this.label1.TabIndex = 6;
+            this.label1.Text = "Razzberry mode:";
+            //
+            // label2
+            //
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(12, 199);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(76, 13);
+            this.label2.TabIndex = 7;
+            this.label2.Text = "Transfer Type:";
+            //
+            // label3
+            //
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(12, 256);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(103, 13);
+            this.label3.TabIndex = 8;
+            this.label3.Text = "Evolve all pokemon:";
+            //
+            // label4
+            //
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(12, 227);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(98, 13);
+            this.label4.TabIndex = 9;
+            this.label4.Text = "Trsfr CP Threshold:";
+            //
+            // label5
+            //
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(12, 173);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(93, 13);
+            this.label5.TabIndex = 10;
+            this.label5.Text = "Razzberry Setting:";
+            //
+            // ptcUserText
+            //
+            this.ptcUserText.Location = new System.Drawing.Point(113, 39);
+            this.ptcUserText.Name = "ptcUserText";
+            this.ptcUserText.Size = new System.Drawing.Size(100, 20);
+            this.ptcUserText.TabIndex = 11;
+            //
+            // ptcPassText
+            //
+            this.ptcPassText.Location = new System.Drawing.Point(113, 65);
+            this.ptcPassText.Name = "ptcPassText";
+            this.ptcPassText.Size = new System.Drawing.Size(100, 20);
+            this.ptcPassText.TabIndex = 12;
+            //
+            // latitudeText
+            //
+            this.latitudeText.Location = new System.Drawing.Point(113, 91);
+            this.latitudeText.Name = "latitudeText";
+            this.latitudeText.Size = new System.Drawing.Size(100, 20);
+            this.latitudeText.TabIndex = 13;
+            //
+            // longitudeText
+            //
+            this.longitudeText.Location = new System.Drawing.Point(113, 117);
+            this.longitudeText.Name = "longitudeText";
+            this.longitudeText.Size = new System.Drawing.Size(100, 20);
+            this.longitudeText.TabIndex = 14;
+            //
+            // razzmodeCb
+            //
+            this.razzmodeCb.FormattingEnabled = true;
+            this.razzmodeCb.Items.AddRange(new object[] {
+            "probability",
+            "cp"});
+            this.razzmodeCb.Location = new System.Drawing.Point(113, 143);
+            this.razzmodeCb.Name = "razzmodeCb";
+            this.razzmodeCb.Size = new System.Drawing.Size(100, 21);
+            this.razzmodeCb.TabIndex = 15;
+            //
+            // razzSettingText
+            //
+            this.razzSettingText.Location = new System.Drawing.Point(113, 170);
+            this.razzSettingText.Name = "razzSettingText";
+            this.razzSettingText.Size = new System.Drawing.Size(37, 20);
+            this.razzSettingText.TabIndex = 16;
+            //
+            // transferTypeCb
+            //
+            this.transferTypeCb.FormattingEnabled = true;
+            this.transferTypeCb.Items.AddRange(new object[] {
+            "none",
+            "cp",
+            "leaveStrongest",
+            "duplicate",
+            "all"});
+            this.transferTypeCb.Location = new System.Drawing.Point(113, 196);
+            this.transferTypeCb.Name = "transferTypeCb";
+            this.transferTypeCb.Size = new System.Drawing.Size(100, 21);
+            this.transferTypeCb.TabIndex = 17;
+            //
+            // transferCpThresText
+            //
+            this.transferCpThresText.Location = new System.Drawing.Point(113, 224);
+            this.transferCpThresText.Name = "transferCpThresText";
+            this.transferCpThresText.Size = new System.Drawing.Size(100, 20);
+            this.transferCpThresText.TabIndex = 18;
+            //
+            // evolveAllChk
+            //
+            this.evolveAllChk.AutoSize = true;
+            this.evolveAllChk.Location = new System.Drawing.Point(113, 256);
+            this.evolveAllChk.Name = "evolveAllChk";
+            this.evolveAllChk.Size = new System.Drawing.Size(15, 14);
+            this.evolveAllChk.TabIndex = 19;
+            this.evolveAllChk.UseVisualStyleBackColor = true;
+            //
+            // saveBtn
+            //
+            this.saveBtn.Location = new System.Drawing.Point(75, 276);
+            this.saveBtn.Name = "saveBtn";
+            this.saveBtn.Size = new System.Drawing.Size(75, 23);
+            this.saveBtn.TabIndex = 20;
+            this.saveBtn.Text = "Save";
+            this.saveBtn.UseVisualStyleBackColor = true;
+            this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
+            //
+            // SettingsForm
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(233, 310);
+            this.Controls.Add(this.saveBtn);
+            this.Controls.Add(this.evolveAllChk);
+            this.Controls.Add(this.transferCpThresText);
+            this.Controls.Add(this.transferTypeCb);
+            this.Controls.Add(this.razzSettingText);
+            this.Controls.Add(this.razzmodeCb);
+            this.Controls.Add(this.longitudeText);
+            this.Controls.Add(this.latitudeText);
+            this.Controls.Add(this.ptcPassText);
+            this.Controls.Add(this.ptcUserText);
+            this.Controls.Add(this.label5);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.longiLabel);
+            this.Controls.Add(this.latLabel);
+            this.Controls.Add(this.ptcPasswordLabel);
+            this.Controls.Add(this.ptcUserLabel);
+            this.Controls.Add(this.authTypeCb);
+            this.Controls.Add(this.authTypeLabel);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+            this.MaximizeBox = false;
+            this.MinimizeBox = false;
+            this.Name = "SettingsForm";
+            this.Padding = new System.Windows.Forms.Padding(9);
+            this.ShowIcon = false;
+            this.ShowInTaskbar = false;
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            this.Text = "Settings";
+            this.Load += new System.EventHandler(this.SettingsForm_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label authTypeLabel;
+        private System.Windows.Forms.ComboBox authTypeCb;
+        private System.Windows.Forms.Label ptcUserLabel;
+        private System.Windows.Forms.Label ptcPasswordLabel;
+        private System.Windows.Forms.Label latLabel;
+        private System.Windows.Forms.Label longiLabel;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.TextBox ptcUserText;
+        private System.Windows.Forms.TextBox ptcPassText;
+        private System.Windows.Forms.TextBox latitudeText;
+        private System.Windows.Forms.TextBox longitudeText;
+        private System.Windows.Forms.ComboBox razzmodeCb;
+        private System.Windows.Forms.TextBox razzSettingText;
+        private System.Windows.Forms.ComboBox transferTypeCb;
+        private System.Windows.Forms.TextBox transferCpThresText;
+        private System.Windows.Forms.CheckBox evolveAllChk;
+        private System.Windows.Forms.Button saveBtn;
+    }
+}
diff --git a/PokemonGo/RocketAPI/Window/SettingsForm.cs b/PokemonGo/RocketAPI/Window/SettingsForm.cs
new file mode 100644
index 0000000..b75867c
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/SettingsForm.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Reflection;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace PokemonGo.RocketAPI.Window
+{
+    partial class SettingsForm : Form
+    {
+        public SettingsForm()
+        {
+            InitializeComponent();
+        }
+
+        private void SettingsForm_Load(object sender, EventArgs e)
+        {
+            authTypeCb.Text = Settings.Instance.AuthType.ToString();
+            ptcUserText.Text = Settings.Instance.PtcUsername;
+            ptcPassText.Text = Settings.Instance.PtcPassword;
+            latitudeText.Text = Settings.Instance.DefaultLatitude.ToString();
+            longitudeText.Text = Settings.Instance.DefaultLongitude.ToString();
+            razzmodeCb.Text = Settings.Instance.RazzBerryMode;
+            razzSettingText.Text = Settings.Instance.RazzBerrySetting.ToString();
+            transferTypeCb.Text = Settings.Instance.TransferType;
+            transferCpThresText.Text = Settings.Instance.TransferCPThreshold.ToString();
+            evolveAllChk.Checked = Settings.Instance.EvolveAllGivenPokemons;
+        }
+
+        private void saveBtn_Click(object sender, EventArgs e)
+        {
+            Settings.Instance.SetSetting(authTypeCb.Text , "AuthType");
+            Settings.Instance.SetSetting(ptcUserText.Text , "PtcUsername");
+            Settings.Instance.SetSetting(ptcPassText.Text , "PtcPassword");
+            Settings.Instance.SetSetting(latitudeText.Text , "DefaultLatitude");
+            Settings.Instance.SetSetting(longitudeText.Text , "DefaultLongitude");
+            Settings.Instance.SetSetting(razzmodeCb.Text , "RazzBerryMode");
+            Settings.Instance.SetSetting(razzSettingText.Text , "RazzBerrySetting");
+            Settings.Instance.SetSetting(transferTypeCb.Text , "TransferType");
+            Settings.Instance.SetSetting(transferCpThresText.Text , "TransferCPThreshold");
+            Settings.Instance.SetSetting(evolveAllChk.Checked ? "true" : "false", "EvolveAllGivenPokemons");
+            Settings.Instance.Reload();
+            Close();
+        }
+    }
+}
diff --git a/PokemonGo/RocketAPI/Window/SettingsForm.resx b/PokemonGo/RocketAPI/Window/SettingsForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/SettingsForm.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/PokemonGo/RocketAPI/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..72e16e2
Binary files /dev/null and b/PokemonGo/RocketAPI/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/PokemonGo/RocketAPI/obj/Debug/Pokemon Go Rocket API.dll b/PokemonGo/RocketAPI/obj/Debug/Pokemon Go Rocket API.dll
new file mode 100644
index 0000000..6b9dd35
Binary files /dev/null and b/PokemonGo/RocketAPI/obj/Debug/Pokemon Go Rocket API.dll differ
diff --git a/PokemonGo/RocketAPI/obj/Debug/Pokemon Go Rocket API.pdb b/PokemonGo/RocketAPI/obj/Debug/Pokemon Go Rocket API.pdb
new file mode 100644
index 0000000..0cf8ccf
Binary files /dev/null and b/PokemonGo/RocketAPI/obj/Debug/Pokemon Go Rocket API.pdb differ
diff --git a/PokemonGo/RocketAPI/obj/Debug/PokemonGo.RocketAPI.csproj.FileListAbsolute.txt b/PokemonGo/RocketAPI/obj/Debug/PokemonGo.RocketAPI.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..7401b97
--- /dev/null
+++ b/PokemonGo/RocketAPI/obj/Debug/PokemonGo.RocketAPI.csproj.FileListAbsolute.txt
@@ -0,0 +1,17 @@
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\Pokemon Go Rocket API.dll.config
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\Pokemon Go Rocket API.dll
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\Pokemon Go Rocket API.pdb
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\C5.dll
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\Google.Protobuf.dll
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\Newtonsoft.Json.dll
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\S2Geometry.dll
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\System.Net.Http.Formatting.dll
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\System.VarintBitConverter.dll
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\C5.xml
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\Google.Protobuf.xml
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\Newtonsoft.Json.xml
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\S2Geometry.xml
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\bin\Debug\System.Net.Http.Formatting.xml
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\obj\Debug\PokemonGo.RocketAPI.csprojResolveAssemblyReference.cache
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\obj\Debug\Pokemon Go Rocket API.dll
+Z:\Pokeman Bots\Necros Bot\Pokemon-Go-Rocket-API\PokemonGo\RocketAPI\obj\Debug\Pokemon Go Rocket API.pdb
diff --git a/PokemonGo/RocketAPI/obj/Debug/PokemonGo.RocketAPI.csprojResolveAssemblyReference.cache b/PokemonGo/RocketAPI/obj/Debug/PokemonGo.RocketAPI.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..0643b08
Binary files /dev/null and b/PokemonGo/RocketAPI/obj/Debug/PokemonGo.RocketAPI.csprojResolveAssemblyReference.cache differ
You may download the files in Public Git.