diff --git a/PokemonGo/RocketAPI/Client.cs b/PokemonGo/RocketAPI/Client.cs
index ed290d5..4e24ed0 100644
--- a/PokemonGo/RocketAPI/Client.cs
+++ b/PokemonGo/RocketAPI/Client.cs
@@ -93,5 +93,9 @@ namespace PokemonGo.RocketAPI
{
return await _httpClient.PostProto<Request, ProfileResponse>($"https://{apiUrl}/rpc", profileRequest);
}
+ public async Task<SettingsResponse> GetSettings(string apiUrl, Request settingsRequest)
+ {
+ return await _httpClient.PostProto<Request, SettingsResponse>($"https://{apiUrl}/rpc", settingsRequest);
+ }
}
}
diff --git a/PokemonGo/RocketAPI/Console/Program.cs b/PokemonGo/RocketAPI/Console/Program.cs
index a93f1ae..e2f7d59 100644
--- a/PokemonGo/RocketAPI/Console/Program.cs
+++ b/PokemonGo/RocketAPI/Console/Program.cs
@@ -22,10 +22,12 @@ namespace PokemonGo.RocketAPI.Console
var accessToken = await client.GetGoogleAccessToken(Settings.DeviceId, Settings.ClientSig, Settings.Email, Settings.LongDurationToken);
var profileRequest = RequestBuilder.GetRequest(RequestType.Profile, accessToken, Settings.DefaultLatitude, Settings.DefaultLongitude, 30);
+ var serverSettingsRequest = RequestBuilder.GetRequest(RequestType.Settings, accessToken, Settings.DefaultLatitude, Settings.DefaultLongitude, 30);
var serverResponse = await client.GetServer(profileRequest);
var profile = await client.GetProfile(serverResponse.ApiUrl, profileRequest);
+ var serverSettings = await client.GetSettings(serverResponse.ApiUrl, serverSettingsRequest);
}
}
}
diff --git a/PokemonGo/RocketAPI/GeneratedCode/SettingsResponse.cs b/PokemonGo/RocketAPI/GeneratedCode/SettingsResponse.cs
new file mode 100644
index 0000000..160159d
--- /dev/null
+++ b/PokemonGo/RocketAPI/GeneratedCode/SettingsResponse.cs
@@ -0,0 +1,1993 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SettingsResponse.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace PokemonGo.RocketAPI.GeneratedCode {
+
+ /// <summary>Holder for reflection information generated from SettingsResponse.proto</summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class SettingsResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for SettingsResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static SettingsResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChZTZXR0aW5nc1Jlc3BvbnNlLnByb3RvEiFQb2tlbW9uR28uUm9ja2V0QVBJ",
+ "LkdlbmVyYXRlZENvZGUipg4KEFNldHRpbmdzUmVzcG9uc2USEAoIdW5rbm93",
+ "bjEYASABKAUSEAoIdW5rbm93bjIYAiABKAMSDwoHYXBpX3VybBgDIAEoCRJO",
+ "Cgh1bmtub3duNhgGIAEoCzI8LlBva2Vtb25Hby5Sb2NrZXRBUEkuR2VuZXJh",
+ "dGVkQ29kZS5TZXR0aW5nc1Jlc3BvbnNlLlVua25vd242Ek4KCHVua25vd243",
+ "GAcgASgLMjwuUG9rZW1vbkdvLlJvY2tldEFQSS5HZW5lcmF0ZWRDb2RlLlNl",
+ "dHRpbmdzUmVzcG9uc2UuVW5rbm93bjcSTAoHcGF5bG9hZBhkIAMoCzI7LlBv",
+ "a2Vtb25Hby5Sb2NrZXRBUEkuR2VuZXJhdGVkQ29kZS5TZXR0aW5nc1Jlc3Bv",
+ "bnNlLlBheWxvYWQSFAoMZXJyb3JNZXNzYWdlGGUgASgJGpMBCghVbmtub3du",
+ "NhIQCgh1bmtub3duMRgBIAEoBRJXCgh1bmtub3duMhgCIAEoCzJFLlBva2Vt",
+ "b25Hby5Sb2NrZXRBUEkuR2VuZXJhdGVkQ29kZS5TZXR0aW5nc1Jlc3BvbnNl",
+ "LlVua25vd242LlVua25vd24yGhwKCFVua25vd24yEhAKCHVua25vd24xGAEg",
+ "ASgMGkMKCFVua25vd243EhEKCXVua25vd243MRgBIAEoDBIRCgl1bmtub3du",
+ "NzIYAiABKAMSEQoJdW5rbm93bjczGAMgASgMGv0JCgdQYXlsb2FkEgwKBGd1",
+ "aWQYAiABKAkSYQoIc2V0dGluZ3MYAyABKAsyTy5Qb2tlbW9uR28uUm9ja2V0",
+ "QVBJLkdlbmVyYXRlZENvZGUuU2V0dGluZ3NSZXNwb25zZS5QYXlsb2FkLkds",
+ "b2JhbFNldHRpbmdzUHJvdG8a0QMKE0dsb2JhbFNldHRpbmdzUHJvdG8SYwoM",
+ "Rm9ydFNldHRpbmdzGAIgASgLMk0uUG9rZW1vbkdvLlJvY2tldEFQSS5HZW5l",
+ "cmF0ZWRDb2RlLlNldHRpbmdzUmVzcG9uc2UuUGF5bG9hZC5Gb3J0U2V0dGlu",
+ "Z3NQcm90bxJhCgtNYXBTZXR0aW5ncxgDIAEoCzJMLlBva2Vtb25Hby5Sb2Nr",
+ "ZXRBUEkuR2VuZXJhdGVkQ29kZS5TZXR0aW5nc1Jlc3BvbnNlLlBheWxvYWQu",
+ "TWFwU2V0dGluZ3NQcm90bxJlCg1MZXZlbFNldHRpbmdzGAQgASgLMk4uUG9r",
+ "ZW1vbkdvLlJvY2tldEFQSS5HZW5lcmF0ZWRDb2RlLlNldHRpbmdzUmVzcG9u",
+ "c2UuUGF5bG9hZC5MZXZlbFNldHRpbmdzUHJvdG8SbQoRSW52ZW50b3J5U2V0",
+ "dGluZ3MYBSABKAsyUi5Qb2tlbW9uR28uUm9ja2V0QVBJLkdlbmVyYXRlZENv",
+ "ZGUuU2V0dGluZ3NSZXNwb25zZS5QYXlsb2FkLkludmVudG9yeVNldHRpbmdz",
+ "UHJvdG8SHAoUTWluaW11bUNsaWVudFZlcnNpb24YBiABKAka2gEKEUZvcnRT",
+ "ZXR0aW5nc1Byb3RvEh4KFkludGVyYWN0aW9uUmFuZ2VNZXRlcnMYASABKAES",
+ "HwoXTWF4VG90YWxEZXBsb3llZFBva2Vtb24YAiABKAUSIAoYTWF4UGxheWVy",
+ "RGVwbG95ZWRQb2tlbW9uGAMgASgFEh8KF0RlcGxveVN0YW1pbmFNdWx0aXBs",
+ "aWVyGAQgASgBEh4KFkRlcGxveUF0dGFja011bHRpcGxpZXIYBSABKAESIQoZ",
+ "RmFySW50ZXJhY3Rpb25SYW5nZU1ldGVycxgGIAEoARr7AQoQTWFwU2V0dGlu",
+ "Z3NQcm90bxIbChNQb2tlbW9uVmlzaWJsZVJhbmdlGAEgASgBEhoKElBva2VO",
+ "YXZSYW5nZU1ldGVycxgCIAEoARIcChRFbmNvdW50ZXJSYW5nZU1ldGVycxgD",
+ "IAEoARImCh5HZXRNYXBPYmplY3RzTWluUmVmcmVzaFNlY29uZHMYBCABKAIS",
+ "JgoeR2V0TWFwT2JqZWN0c01heFJlZnJlc2hTZWNvbmRzGAUgASgCEiYKHkdl",
+ "dE1hcE9iamVjdHNNaW5EaXN0YW5jZU1ldGVycxgGIAEoAhIYChBHb29nbGVN",
+ "YXBzQXBpS2V5GAcgASgJGlIKEkxldmVsU2V0dGluZ3NQcm90bxIZChFUcmFp",
+ "bmVyQ3BNb2RpZmllchgCIAEoARIhChlUcmFpbmVyRGlmZmljdWx0eU1vZGlm",
+ "aWVyGAMgASgBGn4KFkludmVudG9yeVNldHRpbmdzUHJvdG8SEgoKTWF4UG9r",
+ "ZW1vbhgBIAEoBRITCgtNYXhCYWdJdGVtcxgCIAEoBRITCgtCYXNlUG9rZW1v",
+ "bhgDIAEoBRIUCgxCYXNlQmFnSXRlbXMYBCABKAUSEAoIQmFzZUVnZ3MYBSAB",
+ "KAViBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Parser, new[]{ "Unknown1", "Unknown2", "ApiUrl", "Unknown6", "Unknown7", "Payload", "ErrorMessage" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6.Parser, new[]{ "Unknown1", "Unknown2" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6.Types.Unknown2), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6.Types.Unknown2.Parser, new[]{ "Unknown1" }, null, null, null)}),
+ new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown7), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown7.Parser, new[]{ "Unknown71", "Unknown72", "Unknown73" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Parser, new[]{ "Guid", "Settings" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.GlobalSettingsProto), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.GlobalSettingsProto.Parser, new[]{ "FortSettings", "MapSettings", "LevelSettings", "InventorySettings", "MinimumClientVersion" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.FortSettingsProto), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.FortSettingsProto.Parser, new[]{ "InteractionRangeMeters", "MaxTotalDeployedPokemon", "MaxPlayerDeployedPokemon", "DeployStaminaMultiplier", "DeployAttackMultiplier", "FarInteractionRangeMeters" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.MapSettingsProto), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.MapSettingsProto.Parser, new[]{ "PokemonVisibleRange", "PokeNavRangeMeters", "EncounterRangeMeters", "GetMapObjectsMinRefreshSeconds", "GetMapObjectsMaxRefreshSeconds", "GetMapObjectsMinDistanceMeters", "GoogleMapsApiKey" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.LevelSettingsProto), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.LevelSettingsProto.Parser, new[]{ "TrainerCpModifier", "TrainerDifficultyModifier" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.InventorySettingsProto), global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.InventorySettingsProto.Parser, new[]{ "MaxPokemon", "MaxBagItems", "BasePokemon", "BaseBagItems", "BaseEggs" }, null, null, null)})})
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SettingsResponse : pb::IMessage<SettingsResponse> {
+ private static readonly pb::MessageParser<SettingsResponse> _parser = new pb::MessageParser<SettingsResponse>(() => new SettingsResponse());
+ public static pb::MessageParser<SettingsResponse> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public SettingsResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public SettingsResponse(SettingsResponse other) : this() {
+ unknown1_ = other.unknown1_;
+ unknown2_ = other.unknown2_;
+ apiUrl_ = other.apiUrl_;
+ Unknown6 = other.unknown6_ != null ? other.Unknown6.Clone() : null;
+ Unknown7 = other.unknown7_ != null ? other.Unknown7.Clone() : null;
+ payload_ = other.payload_.Clone();
+ errorMessage_ = other.errorMessage_;
+ }
+
+ public SettingsResponse Clone() {
+ return new SettingsResponse(this);
+ }
+
+ /// <summary>Field number for the "unknown1" field.</summary>
+ public const int Unknown1FieldNumber = 1;
+ private int unknown1_;
+ public int Unknown1 {
+ get { return unknown1_; }
+ set {
+ unknown1_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "unknown2" field.</summary>
+ public const int Unknown2FieldNumber = 2;
+ private long unknown2_;
+ public long Unknown2 {
+ get { return unknown2_; }
+ set {
+ unknown2_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "api_url" field.</summary>
+ public const int ApiUrlFieldNumber = 3;
+ private string apiUrl_ = "";
+ public string ApiUrl {
+ get { return apiUrl_; }
+ set {
+ apiUrl_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "unknown6" field.</summary>
+ public const int Unknown6FieldNumber = 6;
+ private global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6 unknown6_;
+ public global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6 Unknown6 {
+ get { return unknown6_; }
+ set {
+ unknown6_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "unknown7" field.</summary>
+ public const int Unknown7FieldNumber = 7;
+ private global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown7 unknown7_;
+ public global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown7 Unknown7 {
+ get { return unknown7_; }
+ set {
+ unknown7_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "payload" field.</summary>
+ public const int PayloadFieldNumber = 100;
+ private static readonly pb::FieldCodec<global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload> _repeated_payload_codec
+ = pb::FieldCodec.ForMessage(802, global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Parser);
+ private readonly pbc::RepeatedField<global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload> payload_ = new pbc::RepeatedField<global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload>();
+ public pbc::RepeatedField<global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload> Payload {
+ get { return payload_; }
+ }
+
+ /// <summary>Field number for the "errorMessage" field.</summary>
+ public const int ErrorMessageFieldNumber = 101;
+ private string errorMessage_ = "";
+ /// <summary>
+ /// Should be moved to an error-proto file if error is always 101 field
+ /// </summary>
+ public string ErrorMessage {
+ get { return errorMessage_; }
+ set {
+ errorMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as SettingsResponse);
+ }
+
+ public bool Equals(SettingsResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Unknown1 != other.Unknown1) return false;
+ if (Unknown2 != other.Unknown2) return false;
+ if (ApiUrl != other.ApiUrl) return false;
+ if (!object.Equals(Unknown6, other.Unknown6)) return false;
+ if (!object.Equals(Unknown7, other.Unknown7)) return false;
+ if(!payload_.Equals(other.payload_)) return false;
+ if (ErrorMessage != other.ErrorMessage) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Unknown1 != 0) hash ^= Unknown1.GetHashCode();
+ if (Unknown2 != 0L) hash ^= Unknown2.GetHashCode();
+ if (ApiUrl.Length != 0) hash ^= ApiUrl.GetHashCode();
+ if (unknown6_ != null) hash ^= Unknown6.GetHashCode();
+ if (unknown7_ != null) hash ^= Unknown7.GetHashCode();
+ hash ^= payload_.GetHashCode();
+ if (ErrorMessage.Length != 0) hash ^= ErrorMessage.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Unknown1 != 0) {
+ output.WriteRawTag(8);
+ output.WriteInt32(Unknown1);
+ }
+ if (Unknown2 != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(Unknown2);
+ }
+ if (ApiUrl.Length != 0) {
+ output.WriteRawTag(26);
+ output.WriteString(ApiUrl);
+ }
+ if (unknown6_ != null) {
+ output.WriteRawTag(50);
+ output.WriteMessage(Unknown6);
+ }
+ if (unknown7_ != null) {
+ output.WriteRawTag(58);
+ output.WriteMessage(Unknown7);
+ }
+ payload_.WriteTo(output, _repeated_payload_codec);
+ if (ErrorMessage.Length != 0) {
+ output.WriteRawTag(170, 6);
+ output.WriteString(ErrorMessage);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (Unknown1 != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Unknown1);
+ }
+ if (Unknown2 != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Unknown2);
+ }
+ if (ApiUrl.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(ApiUrl);
+ }
+ if (unknown6_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Unknown6);
+ }
+ if (unknown7_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Unknown7);
+ }
+ size += payload_.CalculateSize(_repeated_payload_codec);
+ if (ErrorMessage.Length != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeStringSize(ErrorMessage);
+ }
+ return size;
+ }
+
+ public void MergeFrom(SettingsResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Unknown1 != 0) {
+ Unknown1 = other.Unknown1;
+ }
+ if (other.Unknown2 != 0L) {
+ Unknown2 = other.Unknown2;
+ }
+ if (other.ApiUrl.Length != 0) {
+ ApiUrl = other.ApiUrl;
+ }
+ if (other.unknown6_ != null) {
+ if (unknown6_ == null) {
+ unknown6_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6();
+ }
+ Unknown6.MergeFrom(other.Unknown6);
+ }
+ if (other.unknown7_ != null) {
+ if (unknown7_ == null) {
+ unknown7_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown7();
+ }
+ Unknown7.MergeFrom(other.Unknown7);
+ }
+ payload_.Add(other.payload_);
+ if (other.ErrorMessage.Length != 0) {
+ ErrorMessage = other.ErrorMessage;
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ Unknown1 = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ Unknown2 = input.ReadInt64();
+ break;
+ }
+ case 26: {
+ ApiUrl = input.ReadString();
+ break;
+ }
+ case 50: {
+ if (unknown6_ == null) {
+ unknown6_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6();
+ }
+ input.ReadMessage(unknown6_);
+ break;
+ }
+ case 58: {
+ if (unknown7_ == null) {
+ unknown7_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown7();
+ }
+ input.ReadMessage(unknown7_);
+ break;
+ }
+ case 802: {
+ payload_.AddEntriesFrom(input, _repeated_payload_codec);
+ break;
+ }
+ case 810: {
+ ErrorMessage = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+ #region Nested types
+ /// <summary>Container for nested types declared in the SettingsResponse message type.</summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Unknown6 : pb::IMessage<Unknown6> {
+ private static readonly pb::MessageParser<Unknown6> _parser = new pb::MessageParser<Unknown6>(() => new Unknown6());
+ public static pb::MessageParser<Unknown6> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Descriptor.NestedTypes[0]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public Unknown6() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public Unknown6(Unknown6 other) : this() {
+ unknown1_ = other.unknown1_;
+ Unknown2 = other.unknown2_ != null ? other.Unknown2.Clone() : null;
+ }
+
+ public Unknown6 Clone() {
+ return new Unknown6(this);
+ }
+
+ /// <summary>Field number for the "unknown1" field.</summary>
+ public const int Unknown1FieldNumber = 1;
+ private int unknown1_;
+ public int Unknown1 {
+ get { return unknown1_; }
+ set {
+ unknown1_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "unknown2" field.</summary>
+ public const int Unknown2FieldNumber = 2;
+ private global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6.Types.Unknown2 unknown2_;
+ public global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6.Types.Unknown2 Unknown2 {
+ get { return unknown2_; }
+ set {
+ unknown2_ = value;
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as Unknown6);
+ }
+
+ public bool Equals(Unknown6 other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Unknown1 != other.Unknown1) return false;
+ if (!object.Equals(Unknown2, other.Unknown2)) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Unknown1 != 0) hash ^= Unknown1.GetHashCode();
+ if (unknown2_ != null) hash ^= Unknown2.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Unknown1 != 0) {
+ output.WriteRawTag(8);
+ output.WriteInt32(Unknown1);
+ }
+ if (unknown2_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Unknown2);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (Unknown1 != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Unknown1);
+ }
+ if (unknown2_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Unknown2);
+ }
+ return size;
+ }
+
+ public void MergeFrom(Unknown6 other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Unknown1 != 0) {
+ Unknown1 = other.Unknown1;
+ }
+ if (other.unknown2_ != null) {
+ if (unknown2_ == null) {
+ unknown2_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6.Types.Unknown2();
+ }
+ Unknown2.MergeFrom(other.Unknown2);
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ Unknown1 = input.ReadInt32();
+ break;
+ }
+ case 18: {
+ if (unknown2_ == null) {
+ unknown2_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6.Types.Unknown2();
+ }
+ input.ReadMessage(unknown2_);
+ break;
+ }
+ }
+ }
+ }
+
+ #region Nested types
+ /// <summary>Container for nested types declared in the Unknown6 message type.</summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Unknown2 : pb::IMessage<Unknown2> {
+ private static readonly pb::MessageParser<Unknown2> _parser = new pb::MessageParser<Unknown2>(() => new Unknown2());
+ public static pb::MessageParser<Unknown2> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Unknown6.Descriptor.NestedTypes[0]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public Unknown2() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public Unknown2(Unknown2 other) : this() {
+ unknown1_ = other.unknown1_;
+ }
+
+ public Unknown2 Clone() {
+ return new Unknown2(this);
+ }
+
+ /// <summary>Field number for the "unknown1" field.</summary>
+ public const int Unknown1FieldNumber = 1;
+ private pb::ByteString unknown1_ = pb::ByteString.Empty;
+ public pb::ByteString Unknown1 {
+ get { return unknown1_; }
+ set {
+ unknown1_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as Unknown2);
+ }
+
+ public bool Equals(Unknown2 other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Unknown1 != other.Unknown1) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Unknown1.Length != 0) hash ^= Unknown1.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Unknown1.Length != 0) {
+ output.WriteRawTag(10);
+ output.WriteBytes(Unknown1);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (Unknown1.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeBytesSize(Unknown1);
+ }
+ return size;
+ }
+
+ public void MergeFrom(Unknown2 other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Unknown1.Length != 0) {
+ Unknown1 = other.Unknown1;
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 10: {
+ Unknown1 = input.ReadBytes();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ }
+ #endregion
+
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Unknown7 : pb::IMessage<Unknown7> {
+ private static readonly pb::MessageParser<Unknown7> _parser = new pb::MessageParser<Unknown7>(() => new Unknown7());
+ public static pb::MessageParser<Unknown7> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Descriptor.NestedTypes[1]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public Unknown7() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public Unknown7(Unknown7 other) : this() {
+ unknown71_ = other.unknown71_;
+ unknown72_ = other.unknown72_;
+ unknown73_ = other.unknown73_;
+ }
+
+ public Unknown7 Clone() {
+ return new Unknown7(this);
+ }
+
+ /// <summary>Field number for the "unknown71" field.</summary>
+ public const int Unknown71FieldNumber = 1;
+ private pb::ByteString unknown71_ = pb::ByteString.Empty;
+ public pb::ByteString Unknown71 {
+ get { return unknown71_; }
+ set {
+ unknown71_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "unknown72" field.</summary>
+ public const int Unknown72FieldNumber = 2;
+ private long unknown72_;
+ public long Unknown72 {
+ get { return unknown72_; }
+ set {
+ unknown72_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "unknown73" field.</summary>
+ public const int Unknown73FieldNumber = 3;
+ private pb::ByteString unknown73_ = pb::ByteString.Empty;
+ public pb::ByteString Unknown73 {
+ get { return unknown73_; }
+ set {
+ unknown73_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as Unknown7);
+ }
+
+ public bool Equals(Unknown7 other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Unknown71 != other.Unknown71) return false;
+ if (Unknown72 != other.Unknown72) return false;
+ if (Unknown73 != other.Unknown73) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Unknown71.Length != 0) hash ^= Unknown71.GetHashCode();
+ if (Unknown72 != 0L) hash ^= Unknown72.GetHashCode();
+ if (Unknown73.Length != 0) hash ^= Unknown73.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Unknown71.Length != 0) {
+ output.WriteRawTag(10);
+ output.WriteBytes(Unknown71);
+ }
+ if (Unknown72 != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(Unknown72);
+ }
+ if (Unknown73.Length != 0) {
+ output.WriteRawTag(26);
+ output.WriteBytes(Unknown73);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (Unknown71.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeBytesSize(Unknown71);
+ }
+ if (Unknown72 != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Unknown72);
+ }
+ if (Unknown73.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeBytesSize(Unknown73);
+ }
+ return size;
+ }
+
+ public void MergeFrom(Unknown7 other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Unknown71.Length != 0) {
+ Unknown71 = other.Unknown71;
+ }
+ if (other.Unknown72 != 0L) {
+ Unknown72 = other.Unknown72;
+ }
+ if (other.Unknown73.Length != 0) {
+ Unknown73 = other.Unknown73;
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 10: {
+ Unknown71 = input.ReadBytes();
+ break;
+ }
+ case 16: {
+ Unknown72 = input.ReadInt64();
+ break;
+ }
+ case 26: {
+ Unknown73 = input.ReadBytes();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Payload : pb::IMessage<Payload> {
+ private static readonly pb::MessageParser<Payload> _parser = new pb::MessageParser<Payload>(() => new Payload());
+ public static pb::MessageParser<Payload> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Descriptor.NestedTypes[2]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public Payload() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public Payload(Payload other) : this() {
+ guid_ = other.guid_;
+ Settings = other.settings_ != null ? other.Settings.Clone() : null;
+ }
+
+ public Payload Clone() {
+ return new Payload(this);
+ }
+
+ /// <summary>Field number for the "guid" field.</summary>
+ public const int GuidFieldNumber = 2;
+ private string guid_ = "";
+ public string Guid {
+ get { return guid_; }
+ set {
+ guid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "settings" field.</summary>
+ public const int SettingsFieldNumber = 3;
+ private global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.GlobalSettingsProto settings_;
+ public global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.GlobalSettingsProto Settings {
+ get { return settings_; }
+ set {
+ settings_ = value;
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as Payload);
+ }
+
+ public bool Equals(Payload other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Guid != other.Guid) return false;
+ if (!object.Equals(Settings, other.Settings)) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Guid.Length != 0) hash ^= Guid.GetHashCode();
+ if (settings_ != null) hash ^= Settings.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Guid.Length != 0) {
+ output.WriteRawTag(18);
+ output.WriteString(Guid);
+ }
+ if (settings_ != null) {
+ output.WriteRawTag(26);
+ output.WriteMessage(Settings);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (Guid.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Guid);
+ }
+ if (settings_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Settings);
+ }
+ return size;
+ }
+
+ public void MergeFrom(Payload other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Guid.Length != 0) {
+ Guid = other.Guid;
+ }
+ if (other.settings_ != null) {
+ if (settings_ == null) {
+ settings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.GlobalSettingsProto();
+ }
+ Settings.MergeFrom(other.Settings);
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 18: {
+ Guid = input.ReadString();
+ break;
+ }
+ case 26: {
+ if (settings_ == null) {
+ settings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.GlobalSettingsProto();
+ }
+ input.ReadMessage(settings_);
+ break;
+ }
+ }
+ }
+ }
+
+ #region Nested types
+ /// <summary>Container for nested types declared in the Payload message type.</summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class GlobalSettingsProto : pb::IMessage<GlobalSettingsProto> {
+ private static readonly pb::MessageParser<GlobalSettingsProto> _parser = new pb::MessageParser<GlobalSettingsProto>(() => new GlobalSettingsProto());
+ public static pb::MessageParser<GlobalSettingsProto> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Descriptor.NestedTypes[0]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public GlobalSettingsProto() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public GlobalSettingsProto(GlobalSettingsProto other) : this() {
+ FortSettings = other.fortSettings_ != null ? other.FortSettings.Clone() : null;
+ MapSettings = other.mapSettings_ != null ? other.MapSettings.Clone() : null;
+ LevelSettings = other.levelSettings_ != null ? other.LevelSettings.Clone() : null;
+ InventorySettings = other.inventorySettings_ != null ? other.InventorySettings.Clone() : null;
+ minimumClientVersion_ = other.minimumClientVersion_;
+ }
+
+ public GlobalSettingsProto Clone() {
+ return new GlobalSettingsProto(this);
+ }
+
+ /// <summary>Field number for the "FortSettings" field.</summary>
+ public const int FortSettingsFieldNumber = 2;
+ private global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.FortSettingsProto fortSettings_;
+ public global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.FortSettingsProto FortSettings {
+ get { return fortSettings_; }
+ set {
+ fortSettings_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "MapSettings" field.</summary>
+ public const int MapSettingsFieldNumber = 3;
+ private global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.MapSettingsProto mapSettings_;
+ public global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.MapSettingsProto MapSettings {
+ get { return mapSettings_; }
+ set {
+ mapSettings_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "LevelSettings" field.</summary>
+ public const int LevelSettingsFieldNumber = 4;
+ private global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.LevelSettingsProto levelSettings_;
+ public global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.LevelSettingsProto LevelSettings {
+ get { return levelSettings_; }
+ set {
+ levelSettings_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "InventorySettings" field.</summary>
+ public const int InventorySettingsFieldNumber = 5;
+ private global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.InventorySettingsProto inventorySettings_;
+ public global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.InventorySettingsProto InventorySettings {
+ get { return inventorySettings_; }
+ set {
+ inventorySettings_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "MinimumClientVersion" field.</summary>
+ public const int MinimumClientVersionFieldNumber = 6;
+ private string minimumClientVersion_ = "";
+ public string MinimumClientVersion {
+ get { return minimumClientVersion_; }
+ set {
+ minimumClientVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as GlobalSettingsProto);
+ }
+
+ public bool Equals(GlobalSettingsProto other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(FortSettings, other.FortSettings)) return false;
+ if (!object.Equals(MapSettings, other.MapSettings)) return false;
+ if (!object.Equals(LevelSettings, other.LevelSettings)) return false;
+ if (!object.Equals(InventorySettings, other.InventorySettings)) return false;
+ if (MinimumClientVersion != other.MinimumClientVersion) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (fortSettings_ != null) hash ^= FortSettings.GetHashCode();
+ if (mapSettings_ != null) hash ^= MapSettings.GetHashCode();
+ if (levelSettings_ != null) hash ^= LevelSettings.GetHashCode();
+ if (inventorySettings_ != null) hash ^= InventorySettings.GetHashCode();
+ if (MinimumClientVersion.Length != 0) hash ^= MinimumClientVersion.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (fortSettings_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(FortSettings);
+ }
+ if (mapSettings_ != null) {
+ output.WriteRawTag(26);
+ output.WriteMessage(MapSettings);
+ }
+ if (levelSettings_ != null) {
+ output.WriteRawTag(34);
+ output.WriteMessage(LevelSettings);
+ }
+ if (inventorySettings_ != null) {
+ output.WriteRawTag(42);
+ output.WriteMessage(InventorySettings);
+ }
+ if (MinimumClientVersion.Length != 0) {
+ output.WriteRawTag(50);
+ output.WriteString(MinimumClientVersion);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (fortSettings_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(FortSettings);
+ }
+ if (mapSettings_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(MapSettings);
+ }
+ if (levelSettings_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(LevelSettings);
+ }
+ if (inventorySettings_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(InventorySettings);
+ }
+ if (MinimumClientVersion.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(MinimumClientVersion);
+ }
+ return size;
+ }
+
+ public void MergeFrom(GlobalSettingsProto other) {
+ if (other == null) {
+ return;
+ }
+ if (other.fortSettings_ != null) {
+ if (fortSettings_ == null) {
+ fortSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.FortSettingsProto();
+ }
+ FortSettings.MergeFrom(other.FortSettings);
+ }
+ if (other.mapSettings_ != null) {
+ if (mapSettings_ == null) {
+ mapSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.MapSettingsProto();
+ }
+ MapSettings.MergeFrom(other.MapSettings);
+ }
+ if (other.levelSettings_ != null) {
+ if (levelSettings_ == null) {
+ levelSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.LevelSettingsProto();
+ }
+ LevelSettings.MergeFrom(other.LevelSettings);
+ }
+ if (other.inventorySettings_ != null) {
+ if (inventorySettings_ == null) {
+ inventorySettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.InventorySettingsProto();
+ }
+ InventorySettings.MergeFrom(other.InventorySettings);
+ }
+ if (other.MinimumClientVersion.Length != 0) {
+ MinimumClientVersion = other.MinimumClientVersion;
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 18: {
+ if (fortSettings_ == null) {
+ fortSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.FortSettingsProto();
+ }
+ input.ReadMessage(fortSettings_);
+ break;
+ }
+ case 26: {
+ if (mapSettings_ == null) {
+ mapSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.MapSettingsProto();
+ }
+ input.ReadMessage(mapSettings_);
+ break;
+ }
+ case 34: {
+ if (levelSettings_ == null) {
+ levelSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.LevelSettingsProto();
+ }
+ input.ReadMessage(levelSettings_);
+ break;
+ }
+ case 42: {
+ if (inventorySettings_ == null) {
+ inventorySettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Types.InventorySettingsProto();
+ }
+ input.ReadMessage(inventorySettings_);
+ break;
+ }
+ case 50: {
+ MinimumClientVersion = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FortSettingsProto : pb::IMessage<FortSettingsProto> {
+ private static readonly pb::MessageParser<FortSettingsProto> _parser = new pb::MessageParser<FortSettingsProto>(() => new FortSettingsProto());
+ public static pb::MessageParser<FortSettingsProto> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Descriptor.NestedTypes[1]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public FortSettingsProto() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public FortSettingsProto(FortSettingsProto other) : this() {
+ interactionRangeMeters_ = other.interactionRangeMeters_;
+ maxTotalDeployedPokemon_ = other.maxTotalDeployedPokemon_;
+ maxPlayerDeployedPokemon_ = other.maxPlayerDeployedPokemon_;
+ deployStaminaMultiplier_ = other.deployStaminaMultiplier_;
+ deployAttackMultiplier_ = other.deployAttackMultiplier_;
+ farInteractionRangeMeters_ = other.farInteractionRangeMeters_;
+ }
+
+ public FortSettingsProto Clone() {
+ return new FortSettingsProto(this);
+ }
+
+ /// <summary>Field number for the "InteractionRangeMeters" field.</summary>
+ public const int InteractionRangeMetersFieldNumber = 1;
+ private double interactionRangeMeters_;
+ public double InteractionRangeMeters {
+ get { return interactionRangeMeters_; }
+ set {
+ interactionRangeMeters_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "MaxTotalDeployedPokemon" field.</summary>
+ public const int MaxTotalDeployedPokemonFieldNumber = 2;
+ private int maxTotalDeployedPokemon_;
+ public int MaxTotalDeployedPokemon {
+ get { return maxTotalDeployedPokemon_; }
+ set {
+ maxTotalDeployedPokemon_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "MaxPlayerDeployedPokemon" field.</summary>
+ public const int MaxPlayerDeployedPokemonFieldNumber = 3;
+ private int maxPlayerDeployedPokemon_;
+ public int MaxPlayerDeployedPokemon {
+ get { return maxPlayerDeployedPokemon_; }
+ set {
+ maxPlayerDeployedPokemon_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "DeployStaminaMultiplier" field.</summary>
+ public const int DeployStaminaMultiplierFieldNumber = 4;
+ private double deployStaminaMultiplier_;
+ public double DeployStaminaMultiplier {
+ get { return deployStaminaMultiplier_; }
+ set {
+ deployStaminaMultiplier_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "DeployAttackMultiplier" field.</summary>
+ public const int DeployAttackMultiplierFieldNumber = 5;
+ private double deployAttackMultiplier_;
+ public double DeployAttackMultiplier {
+ get { return deployAttackMultiplier_; }
+ set {
+ deployAttackMultiplier_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "FarInteractionRangeMeters" field.</summary>
+ public const int FarInteractionRangeMetersFieldNumber = 6;
+ private double farInteractionRangeMeters_;
+ public double FarInteractionRangeMeters {
+ get { return farInteractionRangeMeters_; }
+ set {
+ farInteractionRangeMeters_ = value;
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as FortSettingsProto);
+ }
+
+ public bool Equals(FortSettingsProto other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (InteractionRangeMeters != other.InteractionRangeMeters) return false;
+ if (MaxTotalDeployedPokemon != other.MaxTotalDeployedPokemon) return false;
+ if (MaxPlayerDeployedPokemon != other.MaxPlayerDeployedPokemon) return false;
+ if (DeployStaminaMultiplier != other.DeployStaminaMultiplier) return false;
+ if (DeployAttackMultiplier != other.DeployAttackMultiplier) return false;
+ if (FarInteractionRangeMeters != other.FarInteractionRangeMeters) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (InteractionRangeMeters != 0D) hash ^= InteractionRangeMeters.GetHashCode();
+ if (MaxTotalDeployedPokemon != 0) hash ^= MaxTotalDeployedPokemon.GetHashCode();
+ if (MaxPlayerDeployedPokemon != 0) hash ^= MaxPlayerDeployedPokemon.GetHashCode();
+ if (DeployStaminaMultiplier != 0D) hash ^= DeployStaminaMultiplier.GetHashCode();
+ if (DeployAttackMultiplier != 0D) hash ^= DeployAttackMultiplier.GetHashCode();
+ if (FarInteractionRangeMeters != 0D) hash ^= FarInteractionRangeMeters.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (InteractionRangeMeters != 0D) {
+ output.WriteRawTag(9);
+ output.WriteDouble(InteractionRangeMeters);
+ }
+ if (MaxTotalDeployedPokemon != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(MaxTotalDeployedPokemon);
+ }
+ if (MaxPlayerDeployedPokemon != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(MaxPlayerDeployedPokemon);
+ }
+ if (DeployStaminaMultiplier != 0D) {
+ output.WriteRawTag(33);
+ output.WriteDouble(DeployStaminaMultiplier);
+ }
+ if (DeployAttackMultiplier != 0D) {
+ output.WriteRawTag(41);
+ output.WriteDouble(DeployAttackMultiplier);
+ }
+ if (FarInteractionRangeMeters != 0D) {
+ output.WriteRawTag(49);
+ output.WriteDouble(FarInteractionRangeMeters);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (InteractionRangeMeters != 0D) {
+ size += 1 + 8;
+ }
+ if (MaxTotalDeployedPokemon != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxTotalDeployedPokemon);
+ }
+ if (MaxPlayerDeployedPokemon != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxPlayerDeployedPokemon);
+ }
+ if (DeployStaminaMultiplier != 0D) {
+ size += 1 + 8;
+ }
+ if (DeployAttackMultiplier != 0D) {
+ size += 1 + 8;
+ }
+ if (FarInteractionRangeMeters != 0D) {
+ size += 1 + 8;
+ }
+ return size;
+ }
+
+ public void MergeFrom(FortSettingsProto other) {
+ if (other == null) {
+ return;
+ }
+ if (other.InteractionRangeMeters != 0D) {
+ InteractionRangeMeters = other.InteractionRangeMeters;
+ }
+ if (other.MaxTotalDeployedPokemon != 0) {
+ MaxTotalDeployedPokemon = other.MaxTotalDeployedPokemon;
+ }
+ if (other.MaxPlayerDeployedPokemon != 0) {
+ MaxPlayerDeployedPokemon = other.MaxPlayerDeployedPokemon;
+ }
+ if (other.DeployStaminaMultiplier != 0D) {
+ DeployStaminaMultiplier = other.DeployStaminaMultiplier;
+ }
+ if (other.DeployAttackMultiplier != 0D) {
+ DeployAttackMultiplier = other.DeployAttackMultiplier;
+ }
+ if (other.FarInteractionRangeMeters != 0D) {
+ FarInteractionRangeMeters = other.FarInteractionRangeMeters;
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 9: {
+ InteractionRangeMeters = input.ReadDouble();
+ break;
+ }
+ case 16: {
+ MaxTotalDeployedPokemon = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ MaxPlayerDeployedPokemon = input.ReadInt32();
+ break;
+ }
+ case 33: {
+ DeployStaminaMultiplier = input.ReadDouble();
+ break;
+ }
+ case 41: {
+ DeployAttackMultiplier = input.ReadDouble();
+ break;
+ }
+ case 49: {
+ FarInteractionRangeMeters = input.ReadDouble();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MapSettingsProto : pb::IMessage<MapSettingsProto> {
+ private static readonly pb::MessageParser<MapSettingsProto> _parser = new pb::MessageParser<MapSettingsProto>(() => new MapSettingsProto());
+ public static pb::MessageParser<MapSettingsProto> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Descriptor.NestedTypes[2]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public MapSettingsProto() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public MapSettingsProto(MapSettingsProto other) : this() {
+ pokemonVisibleRange_ = other.pokemonVisibleRange_;
+ pokeNavRangeMeters_ = other.pokeNavRangeMeters_;
+ encounterRangeMeters_ = other.encounterRangeMeters_;
+ getMapObjectsMinRefreshSeconds_ = other.getMapObjectsMinRefreshSeconds_;
+ getMapObjectsMaxRefreshSeconds_ = other.getMapObjectsMaxRefreshSeconds_;
+ getMapObjectsMinDistanceMeters_ = other.getMapObjectsMinDistanceMeters_;
+ googleMapsApiKey_ = other.googleMapsApiKey_;
+ }
+
+ public MapSettingsProto Clone() {
+ return new MapSettingsProto(this);
+ }
+
+ /// <summary>Field number for the "PokemonVisibleRange" field.</summary>
+ public const int PokemonVisibleRangeFieldNumber = 1;
+ private double pokemonVisibleRange_;
+ public double PokemonVisibleRange {
+ get { return pokemonVisibleRange_; }
+ set {
+ pokemonVisibleRange_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "PokeNavRangeMeters" field.</summary>
+ public const int PokeNavRangeMetersFieldNumber = 2;
+ private double pokeNavRangeMeters_;
+ public double PokeNavRangeMeters {
+ get { return pokeNavRangeMeters_; }
+ set {
+ pokeNavRangeMeters_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EncounterRangeMeters" field.</summary>
+ public const int EncounterRangeMetersFieldNumber = 3;
+ private double encounterRangeMeters_;
+ public double EncounterRangeMeters {
+ get { return encounterRangeMeters_; }
+ set {
+ encounterRangeMeters_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "GetMapObjectsMinRefreshSeconds" field.</summary>
+ public const int GetMapObjectsMinRefreshSecondsFieldNumber = 4;
+ private float getMapObjectsMinRefreshSeconds_;
+ public float GetMapObjectsMinRefreshSeconds {
+ get { return getMapObjectsMinRefreshSeconds_; }
+ set {
+ getMapObjectsMinRefreshSeconds_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "GetMapObjectsMaxRefreshSeconds" field.</summary>
+ public const int GetMapObjectsMaxRefreshSecondsFieldNumber = 5;
+ private float getMapObjectsMaxRefreshSeconds_;
+ public float GetMapObjectsMaxRefreshSeconds {
+ get { return getMapObjectsMaxRefreshSeconds_; }
+ set {
+ getMapObjectsMaxRefreshSeconds_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "GetMapObjectsMinDistanceMeters" field.</summary>
+ public const int GetMapObjectsMinDistanceMetersFieldNumber = 6;
+ private float getMapObjectsMinDistanceMeters_;
+ public float GetMapObjectsMinDistanceMeters {
+ get { return getMapObjectsMinDistanceMeters_; }
+ set {
+ getMapObjectsMinDistanceMeters_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "GoogleMapsApiKey" field.</summary>
+ public const int GoogleMapsApiKeyFieldNumber = 7;
+ private string googleMapsApiKey_ = "";
+ public string GoogleMapsApiKey {
+ get { return googleMapsApiKey_; }
+ set {
+ googleMapsApiKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as MapSettingsProto);
+ }
+
+ public bool Equals(MapSettingsProto other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (PokemonVisibleRange != other.PokemonVisibleRange) return false;
+ if (PokeNavRangeMeters != other.PokeNavRangeMeters) return false;
+ if (EncounterRangeMeters != other.EncounterRangeMeters) return false;
+ if (GetMapObjectsMinRefreshSeconds != other.GetMapObjectsMinRefreshSeconds) return false;
+ if (GetMapObjectsMaxRefreshSeconds != other.GetMapObjectsMaxRefreshSeconds) return false;
+ if (GetMapObjectsMinDistanceMeters != other.GetMapObjectsMinDistanceMeters) return false;
+ if (GoogleMapsApiKey != other.GoogleMapsApiKey) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (PokemonVisibleRange != 0D) hash ^= PokemonVisibleRange.GetHashCode();
+ if (PokeNavRangeMeters != 0D) hash ^= PokeNavRangeMeters.GetHashCode();
+ if (EncounterRangeMeters != 0D) hash ^= EncounterRangeMeters.GetHashCode();
+ if (GetMapObjectsMinRefreshSeconds != 0F) hash ^= GetMapObjectsMinRefreshSeconds.GetHashCode();
+ if (GetMapObjectsMaxRefreshSeconds != 0F) hash ^= GetMapObjectsMaxRefreshSeconds.GetHashCode();
+ if (GetMapObjectsMinDistanceMeters != 0F) hash ^= GetMapObjectsMinDistanceMeters.GetHashCode();
+ if (GoogleMapsApiKey.Length != 0) hash ^= GoogleMapsApiKey.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (PokemonVisibleRange != 0D) {
+ output.WriteRawTag(9);
+ output.WriteDouble(PokemonVisibleRange);
+ }
+ if (PokeNavRangeMeters != 0D) {
+ output.WriteRawTag(17);
+ output.WriteDouble(PokeNavRangeMeters);
+ }
+ if (EncounterRangeMeters != 0D) {
+ output.WriteRawTag(25);
+ output.WriteDouble(EncounterRangeMeters);
+ }
+ if (GetMapObjectsMinRefreshSeconds != 0F) {
+ output.WriteRawTag(37);
+ output.WriteFloat(GetMapObjectsMinRefreshSeconds);
+ }
+ if (GetMapObjectsMaxRefreshSeconds != 0F) {
+ output.WriteRawTag(45);
+ output.WriteFloat(GetMapObjectsMaxRefreshSeconds);
+ }
+ if (GetMapObjectsMinDistanceMeters != 0F) {
+ output.WriteRawTag(53);
+ output.WriteFloat(GetMapObjectsMinDistanceMeters);
+ }
+ if (GoogleMapsApiKey.Length != 0) {
+ output.WriteRawTag(58);
+ output.WriteString(GoogleMapsApiKey);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (PokemonVisibleRange != 0D) {
+ size += 1 + 8;
+ }
+ if (PokeNavRangeMeters != 0D) {
+ size += 1 + 8;
+ }
+ if (EncounterRangeMeters != 0D) {
+ size += 1 + 8;
+ }
+ if (GetMapObjectsMinRefreshSeconds != 0F) {
+ size += 1 + 4;
+ }
+ if (GetMapObjectsMaxRefreshSeconds != 0F) {
+ size += 1 + 4;
+ }
+ if (GetMapObjectsMinDistanceMeters != 0F) {
+ size += 1 + 4;
+ }
+ if (GoogleMapsApiKey.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(GoogleMapsApiKey);
+ }
+ return size;
+ }
+
+ public void MergeFrom(MapSettingsProto other) {
+ if (other == null) {
+ return;
+ }
+ if (other.PokemonVisibleRange != 0D) {
+ PokemonVisibleRange = other.PokemonVisibleRange;
+ }
+ if (other.PokeNavRangeMeters != 0D) {
+ PokeNavRangeMeters = other.PokeNavRangeMeters;
+ }
+ if (other.EncounterRangeMeters != 0D) {
+ EncounterRangeMeters = other.EncounterRangeMeters;
+ }
+ if (other.GetMapObjectsMinRefreshSeconds != 0F) {
+ GetMapObjectsMinRefreshSeconds = other.GetMapObjectsMinRefreshSeconds;
+ }
+ if (other.GetMapObjectsMaxRefreshSeconds != 0F) {
+ GetMapObjectsMaxRefreshSeconds = other.GetMapObjectsMaxRefreshSeconds;
+ }
+ if (other.GetMapObjectsMinDistanceMeters != 0F) {
+ GetMapObjectsMinDistanceMeters = other.GetMapObjectsMinDistanceMeters;
+ }
+ if (other.GoogleMapsApiKey.Length != 0) {
+ GoogleMapsApiKey = other.GoogleMapsApiKey;
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 9: {
+ PokemonVisibleRange = input.ReadDouble();
+ break;
+ }
+ case 17: {
+ PokeNavRangeMeters = input.ReadDouble();
+ break;
+ }
+ case 25: {
+ EncounterRangeMeters = input.ReadDouble();
+ break;
+ }
+ case 37: {
+ GetMapObjectsMinRefreshSeconds = input.ReadFloat();
+ break;
+ }
+ case 45: {
+ GetMapObjectsMaxRefreshSeconds = input.ReadFloat();
+ break;
+ }
+ case 53: {
+ GetMapObjectsMinDistanceMeters = input.ReadFloat();
+ break;
+ }
+ case 58: {
+ GoogleMapsApiKey = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class LevelSettingsProto : pb::IMessage<LevelSettingsProto> {
+ private static readonly pb::MessageParser<LevelSettingsProto> _parser = new pb::MessageParser<LevelSettingsProto>(() => new LevelSettingsProto());
+ public static pb::MessageParser<LevelSettingsProto> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Descriptor.NestedTypes[3]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public LevelSettingsProto() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public LevelSettingsProto(LevelSettingsProto other) : this() {
+ trainerCpModifier_ = other.trainerCpModifier_;
+ trainerDifficultyModifier_ = other.trainerDifficultyModifier_;
+ }
+
+ public LevelSettingsProto Clone() {
+ return new LevelSettingsProto(this);
+ }
+
+ /// <summary>Field number for the "TrainerCpModifier" field.</summary>
+ public const int TrainerCpModifierFieldNumber = 2;
+ private double trainerCpModifier_;
+ public double TrainerCpModifier {
+ get { return trainerCpModifier_; }
+ set {
+ trainerCpModifier_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "TrainerDifficultyModifier" field.</summary>
+ public const int TrainerDifficultyModifierFieldNumber = 3;
+ private double trainerDifficultyModifier_;
+ public double TrainerDifficultyModifier {
+ get { return trainerDifficultyModifier_; }
+ set {
+ trainerDifficultyModifier_ = value;
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as LevelSettingsProto);
+ }
+
+ public bool Equals(LevelSettingsProto other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (TrainerCpModifier != other.TrainerCpModifier) return false;
+ if (TrainerDifficultyModifier != other.TrainerDifficultyModifier) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (TrainerCpModifier != 0D) hash ^= TrainerCpModifier.GetHashCode();
+ if (TrainerDifficultyModifier != 0D) hash ^= TrainerDifficultyModifier.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (TrainerCpModifier != 0D) {
+ output.WriteRawTag(17);
+ output.WriteDouble(TrainerCpModifier);
+ }
+ if (TrainerDifficultyModifier != 0D) {
+ output.WriteRawTag(25);
+ output.WriteDouble(TrainerDifficultyModifier);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (TrainerCpModifier != 0D) {
+ size += 1 + 8;
+ }
+ if (TrainerDifficultyModifier != 0D) {
+ size += 1 + 8;
+ }
+ return size;
+ }
+
+ public void MergeFrom(LevelSettingsProto other) {
+ if (other == null) {
+ return;
+ }
+ if (other.TrainerCpModifier != 0D) {
+ TrainerCpModifier = other.TrainerCpModifier;
+ }
+ if (other.TrainerDifficultyModifier != 0D) {
+ TrainerDifficultyModifier = other.TrainerDifficultyModifier;
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 17: {
+ TrainerCpModifier = input.ReadDouble();
+ break;
+ }
+ case 25: {
+ TrainerDifficultyModifier = input.ReadDouble();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class InventorySettingsProto : pb::IMessage<InventorySettingsProto> {
+ private static readonly pb::MessageParser<InventorySettingsProto> _parser = new pb::MessageParser<InventorySettingsProto>(() => new InventorySettingsProto());
+ public static pb::MessageParser<InventorySettingsProto> Parser { get { return _parser; } }
+
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::PokemonGo.RocketAPI.GeneratedCode.SettingsResponse.Types.Payload.Descriptor.NestedTypes[4]; }
+ }
+
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ public InventorySettingsProto() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ public InventorySettingsProto(InventorySettingsProto other) : this() {
+ maxPokemon_ = other.maxPokemon_;
+ maxBagItems_ = other.maxBagItems_;
+ basePokemon_ = other.basePokemon_;
+ baseBagItems_ = other.baseBagItems_;
+ baseEggs_ = other.baseEggs_;
+ }
+
+ public InventorySettingsProto Clone() {
+ return new InventorySettingsProto(this);
+ }
+
+ /// <summary>Field number for the "MaxPokemon" field.</summary>
+ public const int MaxPokemonFieldNumber = 1;
+ private int maxPokemon_;
+ public int MaxPokemon {
+ get { return maxPokemon_; }
+ set {
+ maxPokemon_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "MaxBagItems" field.</summary>
+ public const int MaxBagItemsFieldNumber = 2;
+ private int maxBagItems_;
+ public int MaxBagItems {
+ get { return maxBagItems_; }
+ set {
+ maxBagItems_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "BasePokemon" field.</summary>
+ public const int BasePokemonFieldNumber = 3;
+ private int basePokemon_;
+ public int BasePokemon {
+ get { return basePokemon_; }
+ set {
+ basePokemon_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "BaseBagItems" field.</summary>
+ public const int BaseBagItemsFieldNumber = 4;
+ private int baseBagItems_;
+ public int BaseBagItems {
+ get { return baseBagItems_; }
+ set {
+ baseBagItems_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "BaseEggs" field.</summary>
+ public const int BaseEggsFieldNumber = 5;
+ private int baseEggs_;
+ public int BaseEggs {
+ get { return baseEggs_; }
+ set {
+ baseEggs_ = value;
+ }
+ }
+
+ public override bool Equals(object other) {
+ return Equals(other as InventorySettingsProto);
+ }
+
+ public bool Equals(InventorySettingsProto other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (MaxPokemon != other.MaxPokemon) return false;
+ if (MaxBagItems != other.MaxBagItems) return false;
+ if (BasePokemon != other.BasePokemon) return false;
+ if (BaseBagItems != other.BaseBagItems) return false;
+ if (BaseEggs != other.BaseEggs) return false;
+ return true;
+ }
+
+ public override int GetHashCode() {
+ int hash = 1;
+ if (MaxPokemon != 0) hash ^= MaxPokemon.GetHashCode();
+ if (MaxBagItems != 0) hash ^= MaxBagItems.GetHashCode();
+ if (BasePokemon != 0) hash ^= BasePokemon.GetHashCode();
+ if (BaseBagItems != 0) hash ^= BaseBagItems.GetHashCode();
+ if (BaseEggs != 0) hash ^= BaseEggs.GetHashCode();
+ return hash;
+ }
+
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (MaxPokemon != 0) {
+ output.WriteRawTag(8);
+ output.WriteInt32(MaxPokemon);
+ }
+ if (MaxBagItems != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(MaxBagItems);
+ }
+ if (BasePokemon != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(BasePokemon);
+ }
+ if (BaseBagItems != 0) {
+ output.WriteRawTag(32);
+ output.WriteInt32(BaseBagItems);
+ }
+ if (BaseEggs != 0) {
+ output.WriteRawTag(40);
+ output.WriteInt32(BaseEggs);
+ }
+ }
+
+ public int CalculateSize() {
+ int size = 0;
+ if (MaxPokemon != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxPokemon);
+ }
+ if (MaxBagItems != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxBagItems);
+ }
+ if (BasePokemon != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(BasePokemon);
+ }
+ if (BaseBagItems != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(BaseBagItems);
+ }
+ if (BaseEggs != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(BaseEggs);
+ }
+ return size;
+ }
+
+ public void MergeFrom(InventorySettingsProto other) {
+ if (other == null) {
+ return;
+ }
+ if (other.MaxPokemon != 0) {
+ MaxPokemon = other.MaxPokemon;
+ }
+ if (other.MaxBagItems != 0) {
+ MaxBagItems = other.MaxBagItems;
+ }
+ if (other.BasePokemon != 0) {
+ BasePokemon = other.BasePokemon;
+ }
+ if (other.BaseBagItems != 0) {
+ BaseBagItems = other.BaseBagItems;
+ }
+ if (other.BaseEggs != 0) {
+ BaseEggs = other.BaseEggs;
+ }
+ }
+
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ MaxPokemon = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ MaxBagItems = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ BasePokemon = input.ReadInt32();
+ break;
+ }
+ case 32: {
+ BaseBagItems = input.ReadInt32();
+ break;
+ }
+ case 40: {
+ BaseEggs = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ }
+ #endregion
+
+ }
+
+ }
+ #endregion
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj b/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
index 6dcd628..2cc2931 100644
--- a/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
+++ b/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
@@ -65,6 +65,7 @@
<ItemGroup>
<Compile Include="Enums\RequestType.cs" />
<Compile Include="GeneratedCode\Request.cs" />
+ <Compile Include="GeneratedCode\SettingsResponse.cs" />
<Compile Include="Settings.cs" />
<None Include="app.config" />
<Compile Include="Client.cs" />
@@ -77,6 +78,7 @@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
+ <None Include="Proto\SettingsResponse.proto" />
<None Include="Proto\Request.proto" />
</ItemGroup>
<ItemGroup>
diff --git a/PokemonGo/RocketAPI/Proto/ProfileResponse.proto b/PokemonGo/RocketAPI/Proto/ProfileResponse.proto
index 6e4dd93..55120a4 100644
--- a/PokemonGo/RocketAPI/Proto/ProfileResponse.proto
+++ b/PokemonGo/RocketAPI/Proto/ProfileResponse.proto
@@ -62,42 +62,6 @@ message ProfileResponse {
string type = 1;
int32 amount = 2;
}
- }
-
- message GlobalSettingsProto {
- FortSettingsProto FortSettings = 2;
- MapSettingsProto MapSettings = 3;
- LevelSettingsProto LevelSettings = 4;
- InventorySettingsProto InventorySettings = 5;
- string MinimumClientVersion = 6;
- }
- message FortSettingsProto {
- double InteractionRangeMeters = 1;
- int32 MaxTotalDeployedPokemon = 2;
- int32 MaxPlayerDeployedPokemon = 3;
- double DeployStaminaMultiplier = 4;
- double DeployAttackMultiplier = 5;
- double FarInteractionRangeMeters = 6;
- }
- message MapSettingsProto {
- double PokemonVisibleRange = 1;
- double PokeNavRangeMeters = 2;
- double EncounterRangeMeters = 3;
- float GetMapObjectsMinRefreshSeconds = 4;
- float GetMapObjectsMaxRefreshSeconds = 5;
- float GetMapObjectsMinDistanceMeters = 6;
- string GoogleMapsApiKey = 7;
- }
- message LevelSettingsProto {
- double TrainerCpModifier = 2;
- double TrainerDifficultyModifier = 3;
- }
- message InventorySettingsProto {
- int32 MaxPokemon = 1;
- int32 MaxBagItems = 2;
- int32 BasePokemon = 3;
- int32 BaseBagItems = 4;
- int32 BaseEggs = 5;
- }
- }
+}
+}
}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Proto/SettingsResponse.proto b/PokemonGo/RocketAPI/Proto/SettingsResponse.proto
new file mode 100644
index 0000000..da188ec
--- /dev/null
+++ b/PokemonGo/RocketAPI/Proto/SettingsResponse.proto
@@ -0,0 +1,70 @@
+syntax = "proto3";
+
+package PokemonGo.RocketAPI.GeneratedCode;
+
+message SettingsResponse {
+ int32 unknown1 = 1;
+ int64 unknown2 = 2;
+ string api_url = 3;
+ Unknown6 unknown6 = 6;
+ Unknown7 unknown7 = 7;
+ repeated Payload payload = 100;
+ string errorMessage = 101; //Should be moved to an error-proto file if error is always 101 field
+
+ message Unknown6 {
+ int32 unknown1 = 1;
+ Unknown2 unknown2 = 2;
+
+ message Unknown2 {
+ bytes unknown1 = 1;
+ }
+
+ }
+
+ message Unknown7 {
+ bytes unknown71 = 1;
+ int64 unknown72 = 2;
+ bytes unknown73 = 3;
+ }
+
+ message Payload {
+ string guid = 2;
+ GlobalSettingsProto settings = 3;
+
+ message GlobalSettingsProto {
+ FortSettingsProto FortSettings = 2;
+ MapSettingsProto MapSettings = 3;
+ LevelSettingsProto LevelSettings = 4;
+ InventorySettingsProto InventorySettings = 5;
+ string MinimumClientVersion = 6;
+ }
+ message FortSettingsProto {
+ double InteractionRangeMeters = 1;
+ int32 MaxTotalDeployedPokemon = 2;
+ int32 MaxPlayerDeployedPokemon = 3;
+ double DeployStaminaMultiplier = 4;
+ double DeployAttackMultiplier = 5;
+ double FarInteractionRangeMeters = 6;
+ }
+ message MapSettingsProto {
+ double PokemonVisibleRange = 1;
+ double PokeNavRangeMeters = 2;
+ double EncounterRangeMeters = 3;
+ float GetMapObjectsMinRefreshSeconds = 4;
+ float GetMapObjectsMaxRefreshSeconds = 5;
+ float GetMapObjectsMinDistanceMeters = 6;
+ string GoogleMapsApiKey = 7;
+ }
+ message LevelSettingsProto {
+ double TrainerCpModifier = 2;
+ double TrainerDifficultyModifier = 3;
+ }
+ message InventorySettingsProto {
+ int32 MaxPokemon = 1;
+ int32 MaxBagItems = 2;
+ int32 BasePokemon = 3;
+ int32 BaseBagItems = 4;
+ int32 BaseEggs = 5;
+ }
+ }
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index a55f633..cb48285 100644
--- a/README.md
+++ b/README.md
@@ -6,8 +6,11 @@ Working:
-Retrieve Profile:
-```{{ "unknown1": 1, "profile": { "creationTime": "1467979220161", "username": "FeroxRev", "team": 1, "tutorial": "AAEDBAc=", "avatar": { "unknown3": 1, "unknown9": 4 }, "pokeStorage": 250, "itemStorage": 350, "dailyBonus": { }, "currency": [ { "type": "POKECOIN" }, { "type": "STARDUST", "amount": 5300 } ] } }}```
+```{{ "unknown1": 1, "profile": { "creationTime": "1467979220181", "username": "SEKRET", "team": 1, "tutorial": "AAEDBAc=", "avatar": { "unknown3": 1, "unknown9": 4 }, "pokeStorage": 250, "itemStorage": 350, "dailyBonus": { }, "currency": [ { "type": "POKECOIN" }, { "type": "STARDUST", "amount": 5300 } ] } }}```
+-Retrieve Server Settings
+
+```{{ "fortSettings": { "interactionRangeMeters": 40, "maxTotalDeployedPokemon": 10, "maxPlayerDeployedPokemon": 1, "deployStaminaMultiplier": 2, "farInteractionRangeMeters": 1000 }, "mapSettings": { "pokemonVisibleRange": 100, "pokeNavRangeMeters": 201, "encounterRangeMeters": 50, "getMapObjectsMinRefreshSeconds": 5, "getMapObjectsMaxRefreshSeconds": 30, "getMapObjectsMinDistanceMeters": 10, "googleMapsApiKey": "AIzaSyDF9rksdsdsgVFzjnNo13WtmJIM" }, "inventorySettings": { "maxPokemon": 1000, "maxBagItems": 1000, "basePokemon": 250, "baseBagItems": 350, "baseEggs": 9 }, "minimumClientVersion": "0.29.0" }}```
Todo:
You may download the files in Public Git.