diff --git a/PokemonGo.RocketBot.Window/Forms/MainForm.cs b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
index 47e6eea..20efd8c 100644
--- a/PokemonGo.RocketBot.Window/Forms/MainForm.cs
+++ b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
@@ -94,7 +94,7 @@ namespace PokemonGo.RocketBot.Window.Forms
CheckVersion();
if (BoolNeedsSetup)
{
- startStopBotToolStripMenuItem.Enabled = false;
+ //startStopBotToolStripMenuItem.Enabled = false;
Logger.Write("First time here? Go to settings to set your basic info.");
GlobalSettings.Load("");
}
@@ -170,12 +170,6 @@ namespace PokemonGo.RocketBot.Window.Forms
_session = new Session(new ClientSettings(_settings), new LogicSettings(_settings));
- if (BoolNeedsSetup)
- {
- menuStrip1.ShowItemToolTips = true;
- startStopBotToolStripMenuItem.ToolTipText = @"Please goto settings and enter your basic info";
- return;
- }
_session.Client.ApiFailure = new ApiFailureStrategy(_session);
_machine = new StateMachine();
@@ -214,31 +208,31 @@ namespace PokemonGo.RocketBot.Window.Forms
Logger.SetLoggerContext(_session);
_session.Navigation.UpdatePositionEvent +=
- (lat, lng) => _session.EventDispatcher.Send(new UpdatePositionEvent {Latitude = lat, Longitude = lng});
+ (lat, lng) => _session.EventDispatcher.Send(new UpdatePositionEvent { Latitude = lat, Longitude = lng });
_session.Navigation.UpdatePositionEvent += Navigation_UpdatePositionEvent;
RouteOptimizeUtil.RouteOptimizeEvent +=
optimizedroute =>
- _session.EventDispatcher.Send(new OptimizeRouteEvent {OptimizedRoute = optimizedroute});
+ _session.EventDispatcher.Send(new OptimizeRouteEvent { OptimizedRoute = optimizedroute });
RouteOptimizeUtil.RouteOptimizeEvent += InitializePokestopsAndRoute;
Navigation.GetHumanizeRouteEvent +=
(route, destination) =>
- _session.EventDispatcher.Send(new GetHumanizeRouteEvent {Route = route, Destination = destination});
+ _session.EventDispatcher.Send(new GetHumanizeRouteEvent { Route = route, Destination = destination });
Navigation.GetHumanizeRouteEvent += UpdateMap;
FarmPokestopsTask.LootPokestopEvent +=
- pokestop => _session.EventDispatcher.Send(new LootPokestopEvent {Pokestop = pokestop});
+ pokestop => _session.EventDispatcher.Send(new LootPokestopEvent { Pokestop = pokestop });
FarmPokestopsTask.LootPokestopEvent += UpdateMap;
CatchNearbyPokemonsTask.PokemonEncounterEvent +=
mappokemons =>
- _session.EventDispatcher.Send(new PokemonsEncounterEvent {EncounterPokemons = mappokemons});
+ _session.EventDispatcher.Send(new PokemonsEncounterEvent { EncounterPokemons = mappokemons });
CatchNearbyPokemonsTask.PokemonEncounterEvent += UpdateMap;
CatchIncensePokemonsTask.PokemonEncounterEvent +=
mappokemons =>
- _session.EventDispatcher.Send(new PokemonsEncounterEvent {EncounterPokemons = mappokemons});
+ _session.EventDispatcher.Send(new PokemonsEncounterEvent { EncounterPokemons = mappokemons });
CatchIncensePokemonsTask.PokemonEncounterEvent += UpdateMap;
}
@@ -267,8 +261,8 @@ namespace PokemonGo.RocketBot.Window.Forms
_playerLocations.Clear();
var routePoint =
(from pokeStop in pokeStops
- where pokeStop != null
- select new PointLatLng(pokeStop.Latitude, pokeStop.Longitude)).ToList();
+ where pokeStop != null
+ select new PointLatLng(pokeStop.Latitude, pokeStop.Longitude)).ToList();
_routePoints = routePoint;
togglePrecalRoute.Enabled = true;
@@ -295,7 +289,7 @@ namespace PokemonGo.RocketBot.Window.Forms
{
var route = new GMapRoute(_playerLocations, "step")
{
- Stroke = new Pen(Color.FromArgb(175, 175, 175), 2) {DashStyle = DashStyle.Dot}
+ Stroke = new Pen(Color.FromArgb(175, 175, 175), 2) { DashStyle = DashStyle.Dot }
};
_playerOverlay.Routes.Clear();
_playerOverlay.Routes.Add(route);
@@ -311,7 +305,7 @@ namespace PokemonGo.RocketBot.Window.Forms
}
var routes = new GMapRoute(routePointLatLngs, routePointLatLngs.ToString())
{
- Stroke = new Pen(Color.FromArgb(128, 0, 179, 253), 4) {DashStyle = DashStyle.Dash}
+ Stroke = new Pen(Color.FromArgb(128, 0, 179, 253), 4) { DashStyle = DashStyle.Dash }
};
_playerRouteOverlay.Routes.Add(routes);
/* Logger.Write("new call");
@@ -565,6 +559,7 @@ namespace PokemonGo.RocketBot.Window.Forms
private void startStopBotToolStripMenuItem_Click(object sender, EventArgs e)
{
startStopBotToolStripMenuItem.Enabled = false;
+ settingToolStripMenuItem.Enabled = false;
Task.Run(StartBot);
}
@@ -583,7 +578,8 @@ namespace PokemonGo.RocketBot.Window.Forms
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
Analytics.Client.Track(MachineIdHelper.GetMachineId(), "App stopped");
- Environment.Exit(0);
+ Analytics.Dispose();
+ //Environment.Exit(0);
}
#endregion EVENTS
@@ -596,7 +592,7 @@ namespace PokemonGo.RocketBot.Window.Forms
{
//olvPokemonList.ButtonClick += PokemonListButton_Click;
- pkmnName.ImageGetter = delegate(object rowObject)
+ pkmnName.ImageGetter = delegate (object rowObject)
{
var pokemon = rowObject as PokemonObject;
@@ -604,13 +600,13 @@ namespace PokemonGo.RocketBot.Window.Forms
var key = pokemon.PokemonId.ToString();
if (!olvPokemonList.SmallImageList.Images.ContainsKey(key))
{
- var img = GetPokemonImage((int) pokemon.PokemonId);
+ var img = GetPokemonImage((int)pokemon.PokemonId);
olvPokemonList.SmallImageList.Images.Add(key, img);
}
return key;
};
- olvPokemonList.FormatRow += delegate(object sender, FormatRowEventArgs e)
+ olvPokemonList.FormatRow += delegate (object sender, FormatRowEventArgs e)
{
var pok = e.Model as PokemonObject;
if (olvPokemonList.Objects
@@ -630,7 +626,7 @@ namespace PokemonGo.RocketBot.Window.Forms
}
};
- cmsPokemonList.Opening += delegate(object sender, CancelEventArgs e)
+ cmsPokemonList.Opening += delegate (object sender, CancelEventArgs e)
{
e.Cancel = false;
cmsPokemonList.Items.Clear();
@@ -653,7 +649,7 @@ namespace PokemonGo.RocketBot.Window.Forms
item.Click += delegate { TransferPokemon(pokemons); };
cmsPokemonList.Items.Add(item);
- item = new ToolStripMenuItem {Text = @"Rename"};
+ item = new ToolStripMenuItem { Text = @"Rename" };
item.Click += delegate
{
using (var form = count == 1 ? new NicknamePokemonForm(pokemonObject) : new NicknamePokemonForm())
@@ -668,30 +664,30 @@ namespace PokemonGo.RocketBot.Window.Forms
if (canAllEvolve)
{
- item = new ToolStripMenuItem {Text = $"Evolve {count} pokemon"};
+ item = new ToolStripMenuItem { Text = $"Evolve {count} pokemon" };
item.Click += delegate { EvolvePokemon(pokemons); };
cmsPokemonList.Items.Add(item);
}
if (count != 1) return;
- item = new ToolStripMenuItem {Text = @"PowerUp"};
+ item = new ToolStripMenuItem { Text = @"PowerUp" };
item.Click += delegate { PowerUpPokemon(pokemons); };
cmsPokemonList.Items.Add(item);
cmsPokemonList.Items.Add(separator);
- item = new ToolStripMenuItem {Text = @"Transfer Clean Up (Keep highest IV)"};
+ item = new ToolStripMenuItem { Text = @"Transfer Clean Up (Keep highest IV)" };
item.Click += delegate { CleanUpTransferPokemon(pokemonObject, "IV"); };
cmsPokemonList.Items.Add(item);
- item = new ToolStripMenuItem {Text = @"Transfer Clean Up (Keep highest CP)"};
+ item = new ToolStripMenuItem { Text = @"Transfer Clean Up (Keep highest CP)" };
item.Click += delegate { CleanUpTransferPokemon(pokemonObject, "CP"); };
cmsPokemonList.Items.Add(item);
- item = new ToolStripMenuItem {Text = @"Evolve Clean Up (Highest IV)"};
+ item = new ToolStripMenuItem { Text = @"Evolve Clean Up (Highest IV)" };
item.Click += delegate { CleanUpEvolvePokemon(pokemonObject, "IV"); };
cmsPokemonList.Items.Add(item);
- item = new ToolStripMenuItem {Text = @"Evolve Clean Up (Highest CP)"};
+ item = new ToolStripMenuItem { Text = @"Evolve Clean Up (Highest CP)" };
item.Click += delegate { CleanUpEvolvePokemon(pokemonObject, "CP"); };
cmsPokemonList.Items.Add(item);
@@ -708,17 +704,17 @@ namespace PokemonGo.RocketBot.Window.Forms
if (cName.Equals("Transfer"))
{
// ReSharper disable once PossibleNullReferenceException
- TransferPokemon(new List<PokemonData> {pokemon.PokemonData});
+ TransferPokemon(new List<PokemonData> { pokemon.PokemonData });
}
else if (cName.Equals("Power Up"))
{
// ReSharper disable once PossibleNullReferenceException
- PowerUpPokemon(new List<PokemonData> {pokemon.PokemonData});
+ PowerUpPokemon(new List<PokemonData> { pokemon.PokemonData });
}
else if (cName.Equals("Evolve"))
{
// ReSharper disable once PossibleNullReferenceException
- EvolvePokemon(new List<PokemonData> {pokemon.PokemonData});
+ EvolvePokemon(new List<PokemonData> { pokemon.PokemonData });
}
}
catch (Exception ex)
@@ -941,7 +937,7 @@ namespace PokemonGo.RocketBot.Window.Forms
foreach (var pokemon in pokemons)
{
var pokemonObject = new PokemonObject(pokemon);
- var family = _families.First(i => (int) i.FamilyId <= (int) pokemon.PokemonId);
+ var family = _families.First(i => (int)i.FamilyId <= (int)pokemon.PokemonId);
pokemonObject.Candy = family.Candy_;
pokemonObjects.Add(pokemonObject);
}
@@ -1001,7 +997,7 @@ namespace PokemonGo.RocketBot.Window.Forms
private async void ItemBox_ItemClick(object sender, EventArgs e)
{
- var item = (ItemData) sender;
+ var item = (ItemData)sender;
using (var form = new ItemForm(item))
{
@@ -1011,67 +1007,67 @@ namespace PokemonGo.RocketBot.Window.Forms
switch (item.ItemId)
{
case ItemId.ItemLuckyEgg:
- {
- if (_session.Client == null)
{
- Logger.Write($"Bot must be running first!", LogLevel.Warning);
- SetState(true);
- return;
+ if (_session.Client == null)
+ {
+ Logger.Write($"Bot must be running first!", LogLevel.Warning);
+ SetState(true);
+ return;
+ }
+ var response = await _session.Client.Inventory.UseItemXpBoost();
+ switch (response.Result)
+ {
+ case UseItemXpBoostResponse.Types.Result.Success:
+ Logger.Write($"Using a Lucky Egg");
+ Logger.Write($"Lucky Egg valid until: {DateTime.Now.AddMinutes(30)}");
+ break;
+ case UseItemXpBoostResponse.Types.Result.ErrorXpBoostAlreadyActive:
+ Logger.Write($"A Lucky Egg is already active!", LogLevel.Warning);
+ break;
+ case UseItemXpBoostResponse.Types.Result.ErrorLocationUnset:
+ Logger.Write($"Bot must be running first!", LogLevel.Error);
+ break;
+ case UseItemXpBoostResponse.Types.Result.Unset:
+ break;
+ case UseItemXpBoostResponse.Types.Result.ErrorInvalidItemType:
+ break;
+ case UseItemXpBoostResponse.Types.Result.ErrorNoItemsRemaining:
+ break;
+ default:
+ Logger.Write($"Failed using a Lucky Egg!", LogLevel.Error);
+ break;
+ }
}
- var response = await _session.Client.Inventory.UseItemXpBoost();
- switch (response.Result)
- {
- case UseItemXpBoostResponse.Types.Result.Success:
- Logger.Write($"Using a Lucky Egg");
- Logger.Write($"Lucky Egg valid until: {DateTime.Now.AddMinutes(30)}");
- break;
- case UseItemXpBoostResponse.Types.Result.ErrorXpBoostAlreadyActive:
- Logger.Write($"A Lucky Egg is already active!", LogLevel.Warning);
- break;
- case UseItemXpBoostResponse.Types.Result.ErrorLocationUnset:
- Logger.Write($"Bot must be running first!", LogLevel.Error);
- break;
- case UseItemXpBoostResponse.Types.Result.Unset:
- break;
- case UseItemXpBoostResponse.Types.Result.ErrorInvalidItemType:
- break;
- case UseItemXpBoostResponse.Types.Result.ErrorNoItemsRemaining:
- break;
- default:
- Logger.Write($"Failed using a Lucky Egg!", LogLevel.Error);
- break;
- }
- }
break;
case ItemId.ItemIncenseOrdinary:
- {
- if (_session.Client == null)
- {
- Logger.Write($"Bot must be running first!", LogLevel.Error);
- SetState(true);
- return;
- }
- var response = await _session.Client.Inventory.UseIncense(ItemId.ItemIncenseOrdinary);
- switch (response.Result)
{
- case UseIncenseResponse.Types.Result.Success:
- Logger.Write($"Incense valid until: {DateTime.Now.AddMinutes(30)}");
- break;
- case UseIncenseResponse.Types.Result.IncenseAlreadyActive:
- Logger.Write($"An incense is already active!", LogLevel.Warning);
- break;
- case UseIncenseResponse.Types.Result.LocationUnset:
+ if (_session.Client == null)
+ {
Logger.Write($"Bot must be running first!", LogLevel.Error);
- break;
- case UseIncenseResponse.Types.Result.Unknown:
- break;
- case UseIncenseResponse.Types.Result.NoneInInventory:
- break;
- default:
- Logger.Write($"Failed using an incense!", LogLevel.Error);
- break;
+ SetState(true);
+ return;
+ }
+ var response = await _session.Client.Inventory.UseIncense(ItemId.ItemIncenseOrdinary);
+ switch (response.Result)
+ {
+ case UseIncenseResponse.Types.Result.Success:
+ Logger.Write($"Incense valid until: {DateTime.Now.AddMinutes(30)}");
+ break;
+ case UseIncenseResponse.Types.Result.IncenseAlreadyActive:
+ Logger.Write($"An incense is already active!", LogLevel.Warning);
+ break;
+ case UseIncenseResponse.Types.Result.LocationUnset:
+ Logger.Write($"Bot must be running first!", LogLevel.Error);
+ break;
+ case UseIncenseResponse.Types.Result.Unknown:
+ break;
+ case UseIncenseResponse.Types.Result.NoneInInventory:
+ break;
+ default:
+ Logger.Write($"Failed using an incense!", LogLevel.Error);
+ break;
+ }
}
- }
break;
case ItemId.ItemUnknown:
break;
@@ -1130,23 +1126,23 @@ namespace PokemonGo.RocketBot.Window.Forms
case ItemId.ItemItemStorageUpgrade:
break;
default:
- {
- var response =
- await
- _session.Client.Inventory.RecycleItem(item.ItemId, decimal.ToInt32(form.numCount.Value));
- if (response.Result == RecycleInventoryItemResponse.Types.Result.Success)
- {
- Logger.Write(
- $"Recycled {decimal.ToInt32(form.numCount.Value)}x {item.ItemId.ToString().Substring(4)}",
- LogLevel.Recycling);
- }
- else
{
- Logger.Write(
- $"Unable to recycle {decimal.ToInt32(form.numCount.Value)}x {item.ItemId.ToString().Substring(4)}",
- LogLevel.Error);
+ var response =
+ await
+ _session.Client.Inventory.RecycleItem(item.ItemId, decimal.ToInt32(form.numCount.Value));
+ if (response.Result == RecycleInventoryItemResponse.Types.Result.Success)
+ {
+ Logger.Write(
+ $"Recycled {decimal.ToInt32(form.numCount.Value)}x {item.ItemId.ToString().Substring(4)}",
+ LogLevel.Recycling);
+ }
+ else
+ {
+ Logger.Write(
+ $"Unable to recycle {decimal.ToInt32(form.numCount.Value)}x {item.ItemId.ToString().Substring(4)}",
+ LogLevel.Error);
+ }
}
- }
break;
}
await ReloadPokemonList();
diff --git a/PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs b/PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs
index 55dcf24..d01589c 100644
--- a/PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs
+++ b/PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs
@@ -37,7 +37,7 @@ namespace PokemonGo.RocketBot.Window.Forms
this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.startStopBotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.todoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.settingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.showAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.showAllToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.gMapControl1 = new GMap.NET.WindowsForms.GMapControl();
@@ -122,7 +122,7 @@ namespace PokemonGo.RocketBot.Window.Forms
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.startStopBotToolStripMenuItem,
- this.todoToolStripMenuItem});
+ this.settingToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(1254, 25);
@@ -136,12 +136,12 @@ namespace PokemonGo.RocketBot.Window.Forms
this.startStopBotToolStripMenuItem.Text = "▶ Start Bot";
this.startStopBotToolStripMenuItem.Click += new System.EventHandler(this.startStopBotToolStripMenuItem_Click);
//
- // todoToolStripMenuItem
+ // settingToolStripMenuItem
//
- this.todoToolStripMenuItem.Name = "todoToolStripMenuItem";
- this.todoToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
- this.todoToolStripMenuItem.Text = "Settings";
- this.todoToolStripMenuItem.Click += new System.EventHandler(this.todoToolStripMenuItem_Click);
+ this.settingToolStripMenuItem.Name = "settingToolStripMenuItem";
+ this.settingToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
+ this.settingToolStripMenuItem.Text = "Settings";
+ this.settingToolStripMenuItem.Click += new System.EventHandler(this.todoToolStripMenuItem_Click);
//
// showAllToolStripMenuItem
//
@@ -553,7 +553,7 @@ namespace PokemonGo.RocketBot.Window.Forms
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.ToolStripMenuItem settingToolStripMenuItem;
private System.Windows.Forms.ToolStripStatusLabel statusLabel;
private System.Windows.Forms.ToolStripMenuItem startStopBotToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem showAllToolStripMenuItem;
diff --git a/PokemonGo.RocketBot.Window/Forms/SettingForm.Designer.cs b/PokemonGo.RocketBot.Window/Forms/SettingForm.Designer.cs
index 0715b62..1b873ad 100644
--- a/PokemonGo.RocketBot.Window/Forms/SettingForm.Designer.cs
+++ b/PokemonGo.RocketBot.Window/Forms/SettingForm.Designer.cs
@@ -1438,7 +1438,7 @@
this.clbIgnore.Location = new System.Drawing.Point(6, 44);
this.clbIgnore.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.clbIgnore.Name = "clbIgnore";
- this.clbIgnore.Size = new System.Drawing.Size(259, 166);
+ this.clbIgnore.Size = new System.Drawing.Size(259, 148);
this.clbIgnore.TabIndex = 0;
//
// tBMaxBerriesToUsePerPokemon
@@ -1500,7 +1500,7 @@
this.groupBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.groupBox1.Size = new System.Drawing.Size(220, 446);
+ this.groupBox1.Size = new System.Drawing.Size(220, 448);
this.groupBox1.TabIndex = 20;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Exclude Transfer";
@@ -1845,7 +1845,7 @@
this.groupBox4.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.groupBox4.Size = new System.Drawing.Size(220, 449);
+ this.groupBox4.Size = new System.Drawing.Size(220, 451);
this.groupBox4.TabIndex = 5;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Power Up";
@@ -2025,7 +2025,7 @@
this.groupBox3.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.groupBox3.Size = new System.Drawing.Size(220, 449);
+ this.groupBox3.Size = new System.Drawing.Size(220, 451);
this.groupBox3.TabIndex = 16;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Evolve";
@@ -2611,12 +2611,12 @@
// saveBtn
//
this.saveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.saveBtn.Location = new System.Drawing.Point(700, 540);
+ this.saveBtn.Location = new System.Drawing.Point(541, 540);
this.saveBtn.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
this.saveBtn.Name = "saveBtn";
- this.saveBtn.Size = new System.Drawing.Size(104, 32);
+ this.saveBtn.Size = new System.Drawing.Size(263, 32);
this.saveBtn.TabIndex = 29;
- this.saveBtn.Text = "Save";
+ this.saveBtn.Text = "Save (This will automatically restart RocketBot)";
this.saveBtn.UseVisualStyleBackColor = true;
this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
//
diff --git a/PokemonGo.RocketBot.Window/Forms/SettingForm.cs b/PokemonGo.RocketBot.Window/Forms/SettingForm.cs
index b079e38..993aa50 100644
--- a/PokemonGo.RocketBot.Window/Forms/SettingForm.cs
+++ b/PokemonGo.RocketBot.Window/Forms/SettingForm.cs
@@ -598,6 +598,7 @@ namespace PokemonGo.RocketBot.Window.Forms
#endregion
_setting.Save(ConfigFilePath);
+ Application.Restart();
#endregion
You may download the files in Public Git.