diff --git a/PokemonGo.RocketBot.Window/Forms/MainForm.cs b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
index d647a3f..c1949cd 100644
--- a/PokemonGo.RocketBot.Window/Forms/MainForm.cs
+++ b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
@@ -36,6 +36,9 @@ using POGOProtos.Inventory.Item;
using POGOProtos.Map.Fort;
using POGOProtos.Map.Pokemon;
using POGOProtos.Networking.Responses;
+using Segment;
+using Segment.Model;
+using Logger = PokemonGo.RocketBot.Logic.Logging.Logger;
namespace PokemonGo.RocketBot.Window.Forms
{
@@ -43,7 +46,6 @@ namespace PokemonGo.RocketBot.Window.Forms
{
public static MainForm Instance;
public static SynchronizationContext SynchronizationContext;
-
private static readonly ManualResetEvent QuitEvent = new ManualResetEvent(false);
private static readonly string subPath = "";
private static Session _session;
@@ -71,6 +73,13 @@ namespace PokemonGo.RocketBot.Window.Forms
private void MainForm_Load(object sender, EventArgs e)
{
Text = @"RocketBot v" + Assembly.GetExecutingAssembly().GetName().Version;
+
+ //User activity tracking, help us get more information to make RocketBot better
+ //Everything is anonymous
+ Analytics.Initialize("UzL1tnZa9Yw2qcJWRIbcwGFmWGuovXez");
+ Analytics.Client.Identify(MachineIdHelper.GetMachineId(), new Traits());
+ Analytics.Client.Track(MachineIdHelper.GetMachineId(), "App start");
+
InitializeBot();
InitializePokemonForm();
InitializeMap();
@@ -194,26 +203,26 @@ 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;
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;
}
@@ -242,8 +251,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();
var route = new GMapRoute(routePoint, "Walking Path")
{
@@ -267,7 +276,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);
@@ -444,20 +453,20 @@ namespace PokemonGo.RocketBot.Window.Forms
{
//olvPokemonList.ButtonClick += PokemonListButton_Click;
- pkmnName.ImageGetter = delegate (object rowObject)
+ pkmnName.ImageGetter = delegate(object rowObject)
{
var pokemon = rowObject as PokemonObject;
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.Cast<PokemonObject>()
@@ -475,7 +484,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();
@@ -776,7 +785,7 @@ namespace PokemonGo.RocketBot.Window.Forms
{
var pokemonObject = new PokemonObject(pokemon);
var family =
- _families.Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId)
+ _families.Where(i => (int) i.FamilyId <= (int) pokemon.PokemonId)
.First();
pokemonObject.Candy = family.Candy_;
pokemonObjects.Add(pokemonObject);
@@ -830,7 +839,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))
{
diff --git a/PokemonGo.RocketBot.Window/Helpers/MachineIdHelper.cs b/PokemonGo.RocketBot.Window/Helpers/MachineIdHelper.cs
new file mode 100644
index 0000000..88bc2a3
--- /dev/null
+++ b/PokemonGo.RocketBot.Window/Helpers/MachineIdHelper.cs
@@ -0,0 +1,36 @@
+using System.Management;
+
+namespace PokemonGo.RocketBot.Window.Helpers
+{
+ public class MachineIdHelper
+ {
+ public static string GetCpuId()
+ {
+ var cpuInfo = string.Empty;
+ var mc = new ManagementClass("win32_processor");
+ var moc = mc.GetInstances();
+
+ foreach (var o in moc)
+ {
+ var mo = (ManagementObject) o;
+ cpuInfo = mo.Properties["processorID"].Value.ToString();
+ break;
+ }
+ return cpuInfo;
+ }
+
+ public static string GetHardDriveId()
+ {
+ var drive = "C";
+ var dsk = new ManagementObject(
+ @"win32_logicaldisk.deviceid=""" + drive + @":""");
+ dsk.Get();
+ return dsk["VolumeSerialNumber"].ToString();
+ }
+
+ public static string GetMachineId()
+ {
+ return GetCpuId() + GetHardDriveId();
+ }
+ }
+}
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/Helpers/ResourceHelper.cs b/PokemonGo.RocketBot.Window/Helpers/ResourceHelper.cs
index e976e5a..9ea7874 100644
--- a/PokemonGo.RocketBot.Window/Helpers/ResourceHelper.cs
+++ b/PokemonGo.RocketBot.Window/Helpers/ResourceHelper.cs
@@ -1,10 +1,5 @@
using System;
-using System.Collections.Generic;
using System.Drawing;
-using System.Drawing.Drawing2D;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
namespace PokemonGo.RocketBot.Window.Helpers
{
@@ -12,18 +7,18 @@ namespace PokemonGo.RocketBot.Window.Helpers
{
public static Image GetImage(string name)
{
- return (Image)Properties.Resources.ResourceManager.GetObject(name);
+ return (Image) Properties.Resources.ResourceManager.GetObject(name);
}
public static Image GetImage(string name, int maxHeight, int maxWidth)
{
- Image image = GetImage(name);
- var ratioX = (double)maxWidth / image.Width;
- var ratioY = (double)maxHeight / image.Height;
+ var image = GetImage(name);
+ var ratioX = (double) maxWidth/image.Width;
+ var ratioY = (double) maxHeight/image.Height;
var ratio = Math.Min(ratioX, ratioY);
- var newWidth = (int)(image.Width * ratio);
- var newHeight = (int)(image.Height * ratio);
+ var newWidth = (int) (image.Width*ratio);
+ var newHeight = (int) (image.Height*ratio);
var newImage = new Bitmap(newWidth, newHeight);
@@ -33,4 +28,4 @@ namespace PokemonGo.RocketBot.Window.Helpers
return newImage;
}
}
-}
+}
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/PokemomObject.cs b/PokemonGo.RocketBot.Window/PokemomObject.cs
index 75c100d..739e2e0 100644
--- a/PokemonGo.RocketBot.Window/PokemomObject.cs
+++ b/PokemonGo.RocketBot.Window/PokemomObject.cs
@@ -51,7 +51,7 @@ namespace PokemonGo.RocketBot.Window
public double GetIV
{
- get { return Math.Round(PokemonInfo.CalculatePokemonPerfection(PokemonData) / 100, 2); }
+ get { return Math.Round(PokemonInfo.CalculatePokemonPerfection(PokemonData)/100, 2); }
}
public double GetLv
@@ -84,7 +84,7 @@ namespace PokemonGo.RocketBot.Window
{
if (CandyToEvolve > 0)
{
- return Candy / CandyToEvolve;
+ return Candy/CandyToEvolve;
}
return 0;
}
diff --git a/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj b/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
index 8eb59ad..e91f81c 100644
--- a/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
+++ b/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
@@ -87,6 +87,10 @@
<StartupObject />
</PropertyGroup>
<ItemGroup>
+ <Reference Include="Analytics.NET, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Analytics.2.0.2\lib\Analytics.NET.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
<Reference Include="GMap.NET.Core, Version=1.7.0.0, Culture=neutral, PublicKeyToken=b85b9027b614afef, processorArchitecture=MSIL">
<HintPath>..\packages\GMap.NET.WindowsForms.1.7.1\lib\net40\GMap.NET.Core.dll</HintPath>
<Private>True</Private>
@@ -124,6 +128,7 @@
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
+ <Reference Include="System.Management" />
<Reference Include="System.Windows.Forms" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
@@ -149,6 +154,7 @@
<Compile Include="Forms\MainForm.designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
+ <Compile Include="Helpers\MachineIdHelper.cs" />
<Compile Include="Helpers\ResourceHelper.cs" />
<Compile Include="Helpers\S2GMapDrawer.cs" />
<Compile Include="Models\GMapMarkerPokestops.cs" />
diff --git a/PokemonGo.RocketBot.Window/Resources/client_secret.json b/PokemonGo.RocketBot.Window/Resources/client_secret.json
new file mode 100644
index 0000000..30bb0a1
--- /dev/null
+++ b/PokemonGo.RocketBot.Window/Resources/client_secret.json
@@ -0,0 +1 @@
+{"installed":{"client_id":"1085850728336-5c0olh427pnpdrvtuq86ub2d6kkern48.apps.googleusercontent.com","project_id":"jovial-engine-140704","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"mtvRhbM1B9_bxrMAdHSK6Abm","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/packages.config b/PokemonGo.RocketBot.Window/packages.config
index 7fd6988..a4501d6 100644
--- a/PokemonGo.RocketBot.Window/packages.config
+++ b/PokemonGo.RocketBot.Window/packages.config
@@ -1,10 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
+ <package id="Analytics" version="2.0.2" targetFramework="net452" />
+ <package id="BouncyCastle" version="1.8.1" targetFramework="net452" />
<package id="C5" version="2.4.5947.17249" targetFramework="net452" />
<package id="Costura.Fody" version="1.3.3.0" targetFramework="net45" developmentDependency="true" />
<package id="Fody" version="1.29.4" targetFramework="net45" developmentDependency="true" />
<package id="GMap.NET.WindowsForms" version="1.7.1" targetFramework="net452" />
+ <package id="Google.Apis" version="1.15.0" targetFramework="net452" />
+ <package id="Google.Apis.Auth" version="1.15.0" targetFramework="net452" />
+ <package id="Google.Apis.Core" version="1.15.0" targetFramework="net452" />
<package id="Google.Protobuf" version="3.0.0" targetFramework="net452" />
<package id="log4net" version="2.0.5" targetFramework="net45" />
<package id="Microsoft.NETCore.Platforms" version="1.0.1" targetFramework="net452" />
@@ -45,4 +50,5 @@
<package id="System.Threading.Timer" version="4.0.1" targetFramework="net452" />
<package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="net452" />
<package id="System.Xml.XDocument" version="4.0.11" targetFramework="net452" />
+ <package id="Zlib.Portable.Signed" version="1.11.0" targetFramework="net452" />
</packages>
\ No newline at end of file
You may download the files in Public Git.