refactoring. Rewriting code to spring-boot service, changing token-based filtering to data-based filtering.
This commit is contained in:
parent
c405fe60ba
commit
5a1ac47828
@ -19,6 +19,9 @@ public class TcpConnection extends Thread {
|
||||
private final SSLSocket fromClient;
|
||||
private OutputStream outToClient;
|
||||
|
||||
@Getter
|
||||
private int token;
|
||||
|
||||
@Getter
|
||||
private Map<Integer, Processor> processors;
|
||||
|
||||
@ -99,4 +102,8 @@ public class TcpConnection extends Thread {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public int nextToken() {
|
||||
return this.token++;
|
||||
}
|
||||
}
|
||||
|
@ -27,24 +27,24 @@ public class AuthProcessor extends Processor {
|
||||
h = Protocol.Header.newBuilder()
|
||||
.setServiceId(1)
|
||||
.setObjectId(0)
|
||||
.setToken(0)
|
||||
.setToken(conn.nextToken())
|
||||
.setMethodId(12)
|
||||
.setStatus(0)
|
||||
.setSize(b.length)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(h, b));
|
||||
|
||||
|
||||
h = Protocol.Header.newBuilder()
|
||||
.setServiceId(1)
|
||||
.setObjectId(0)
|
||||
.setToken(1)
|
||||
.setToken(conn.nextToken())
|
||||
.setMethodId(13)
|
||||
.setStatus(0)
|
||||
.setSize(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(h, new byte[0]));
|
||||
|
||||
//120C7765625F617574685F75726C1A16687474703A2F2F68732F6C6F67696E2F7A2E68746D6C
|
||||
byte[] us = "http://0.0.0.0:8080".getBytes(StandardCharsets.UTF_8);
|
||||
byte[] bb = Util.hexStringToByteArray("120C7765625F617574685F75726C1A"+Util.intToHex(us.length)+Util.bytesToHex(us));
|
||||
@ -52,13 +52,14 @@ public class AuthProcessor extends Processor {
|
||||
h = Protocol.Header.newBuilder()
|
||||
.setServiceId(8)
|
||||
.setObjectId(0)
|
||||
.setToken(2)
|
||||
.setToken(conn.nextToken())
|
||||
.setMethodId(3)
|
||||
.setStatus(0)
|
||||
.setSize(bb.length)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(h, bb));
|
||||
|
||||
}
|
||||
|
||||
private void selectGameAccount(BattleNetPacket packet, TcpConnection conn) throws Exception {
|
||||
@ -78,24 +79,25 @@ public class AuthProcessor extends Processor {
|
||||
h = Protocol.Header.newBuilder()
|
||||
.setServiceId(10)
|
||||
.setMethodId(1)
|
||||
.setToken(4)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(2)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(h, Util.hexStringToByteArray("0800")));
|
||||
|
||||
|
||||
h = Protocol.Header.newBuilder()
|
||||
.setServiceId(10)
|
||||
.setMethodId(1)
|
||||
.setToken(5)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(2)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(h, Util.hexStringToByteArray("0800")));
|
||||
|
||||
// THIRD
|
||||
//Protocol.LogonResult lr = Protocol.LogonResult.parseFrom(Util.hexStringToByteArray("080012120900000000000000011193710E1A000000001A12094743545702000002116739AB040000000022002801280228032806286230023A0F517569726B794F72632332393638384202534B4A40AA15061771938C7790CDA59BD500BF2AA3205912148098F8B68ADA802F1122B2792D90FA2952A338032A03895322DD02C4E2F3CFE6CD72415466B3798C9ADB015000"));
|
||||
|
||||
@ -117,13 +119,14 @@ public class AuthProcessor extends Processor {
|
||||
h = Protocol.Header.newBuilder()
|
||||
.setServiceId(1)
|
||||
.setMethodId(5)
|
||||
.setToken(6)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(logonResult.getSerializedSize())
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(h, logonResult.toByteArray()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -3,10 +3,8 @@ package com.alterdekim.hearthhack.component.processor;
|
||||
|
||||
import com.alterdekim.Protocol;
|
||||
import com.alterdekim.hearthhack.component.TcpConnection;
|
||||
import com.alterdekim.hearthhack.util.BattleNetPacket;
|
||||
import com.alterdekim.hearthhack.util.ClientRequestBody;
|
||||
import com.alterdekim.hearthhack.util.ClientRequestManager;
|
||||
import com.alterdekim.hearthhack.util.Util;
|
||||
import com.alterdekim.hearthhack.util.*;
|
||||
import com.google.protobuf.ByteString;
|
||||
import com.google.protobuf.InvalidProtocolBufferException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@ -36,11 +34,157 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
return requestBody;
|
||||
}
|
||||
|
||||
private void parseRequestNetCacheObject(ClientRequestBody body, TcpConnection conn) throws InvalidProtocolBufferException {
|
||||
parseGenericRequest(Protocol.UtilGenericRequest.parseFrom(body.getBody()), conn);
|
||||
}
|
||||
|
||||
private void processGoldBalance( TcpConnection conn ) throws Exception {
|
||||
Protocol.GoldBalance gb = Protocol.GoldBalance.newBuilder()
|
||||
.setCap(999999)
|
||||
.setBonusBalance(165)
|
||||
.setCappedBalance(160)
|
||||
.setCapWarning(2000)
|
||||
.build();
|
||||
|
||||
byte[] b = generateNotification(278, gb.toByteString(), gb.getSerializedSize()).toByteArray();
|
||||
|
||||
Protocol.Header header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
}
|
||||
|
||||
private void parseGenericRequest(Protocol.UtilGenericRequest genericRequest, TcpConnection conn) {
|
||||
// body = genericRequest.getGenericData().getData().toByteArray()
|
||||
GetAccountInfoRequest req = GetAccountInfoRequest.parseFromInt(genericRequest.getRequestSubId());
|
||||
try {
|
||||
switch (req) {
|
||||
case GOLD_BALANCE -> processGoldBalance(conn);
|
||||
default -> log.warn("Unknown generic request: {}", req);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private void parseRequestNetCacheObjectList(ClientRequestBody body, TcpConnection conn) throws InvalidProtocolBufferException {
|
||||
Protocol.GenericRequestList genericRequestList = Protocol.GenericRequestList.parseFrom(body.getBody());
|
||||
genericRequestList.getRequestsList().forEach(gr -> this.parseGenericRequest(gr, conn));
|
||||
}
|
||||
|
||||
private void parseSubscriptionRequest(ClientRequestBody body) throws InvalidProtocolBufferException {
|
||||
Protocol.Subscribe subscribe = Protocol.Subscribe.parseFrom(body.getBody());
|
||||
log.info("parseSubscriptionRequest: {}", subscribe);
|
||||
}
|
||||
|
||||
private void parseGetAssetsVersion(ClientRequestBody body) {
|
||||
log.info("parseGetAssetsVersion: got");
|
||||
}
|
||||
|
||||
private void parseCheckAccountLicenses(ClientRequestBody body) {
|
||||
// CheckAccountLicensesResponse
|
||||
log.info("parseCheckAccountLicenses: got");
|
||||
}
|
||||
|
||||
private void parseUpdateLogin(ClientRequestBody body) throws InvalidProtocolBufferException {
|
||||
Protocol.UpdateLogin updateLogin = Protocol.UpdateLogin.parseFrom(body.getBody());
|
||||
log.info("parseUpdateLogin: {}", updateLogin);
|
||||
}
|
||||
|
||||
private void parseCheckGameLicenses(ClientRequestBody body) {
|
||||
log.info("parseCheckGameLicenses: got");
|
||||
// CheckGameLicensesResponse
|
||||
}
|
||||
|
||||
private void parseGetAdventureProgress(ClientRequestBody body) {
|
||||
log.info("parseGetAdventureProgress: got");
|
||||
}
|
||||
|
||||
private void parseGetBattlePayConfig(ClientRequestBody body) {
|
||||
log.info("parseGetBattlePayConfig: got");
|
||||
}
|
||||
|
||||
private void parseGetAchieves(ClientRequestBody body) throws InvalidProtocolBufferException {
|
||||
Protocol.GetAchieves getAchieves = Protocol.GetAchieves.parseFrom(body.getBody());
|
||||
log.info("parseGetAchieves: {}", getAchieves);
|
||||
}
|
||||
|
||||
private void parseGetBattlePayStatus(ClientRequestBody body) {
|
||||
log.info("parseGetBattlePayStatus: got");
|
||||
}
|
||||
|
||||
private void parseSetOptions(ClientRequestBody body) throws InvalidProtocolBufferException {
|
||||
Protocol.SetOptions setOptions = Protocol.SetOptions.parseFrom(body.getBody());
|
||||
log.info("parseSetOptions: {}", setOptions);
|
||||
}
|
||||
|
||||
private void parseSendUnsubcribeRequest(ClientRequestBody body) {
|
||||
log.info("parseSendUnsubcribeRequest: got");
|
||||
}
|
||||
|
||||
private Protocol.Notification generateNotification(int message_type, ByteString bs, int size) {
|
||||
return Protocol.Notification.newBuilder()
|
||||
.setSenderId(Protocol.EntityId.newBuilder()
|
||||
.setHigh(144115188075855872L)
|
||||
.setLow(0))
|
||||
.setTargetId(Protocol.EntityId.newBuilder()
|
||||
.setHigh(144115198130930503L)
|
||||
.setLow(78330215))
|
||||
.setType("WTCG.UtilNotificationMessage")
|
||||
.setSenderBattleTag("")
|
||||
.setSenderAccountId(Protocol.EntityId.newBuilder()
|
||||
.setHigh(72057594037927936L)
|
||||
.setLow(0))
|
||||
.setTargetAccountId(Protocol.EntityId.newBuilder()
|
||||
.setHigh(72057594037927936L)
|
||||
.setLow(437154195))
|
||||
.addAttribute(Protocol.Attribute.newBuilder()
|
||||
.setName("message_type")
|
||||
.setValue(Protocol.Variant.newBuilder()
|
||||
.setIntValue(message_type))) // 278L
|
||||
.addAttribute(Protocol.Attribute.newBuilder()
|
||||
.setName("fragment_000")
|
||||
.setValue(Protocol.Variant.newBuilder()
|
||||
.setBlobValue(bs)))
|
||||
.addAttribute(Protocol.Attribute.newBuilder()
|
||||
.setName("message_size")
|
||||
.setValue(Protocol.Variant.newBuilder()
|
||||
.setIntValue(size)))
|
||||
.build();
|
||||
}
|
||||
|
||||
private void processClientRequest(BattleNetPacket packet, TcpConnection conn) throws Exception {
|
||||
Protocol.ClientRequest cr = Protocol.ClientRequest.parseFrom(packet.getBody());
|
||||
|
||||
var p = parseClientRequest(cr);
|
||||
log.info("processClientRequest: {}, token={}, body={}", p, packet.getHeader().getToken(), Protocol.Subscribe.parseFrom(p.getBody()));
|
||||
|
||||
//log.info("processClientRequest: {}, token={}, body={}", p, packet.getHeader().getToken(), Protocol.Subscribe.parseFrom(p.getBody()));
|
||||
|
||||
int type = p != null ? p.getType() : 0;
|
||||
switch(type) {
|
||||
case 201 -> parseRequestNetCacheObject(p, conn);
|
||||
case 327 -> parseRequestNetCacheObjectList(p, conn);
|
||||
case 314 -> parseSubscriptionRequest(p);
|
||||
case 303 -> parseGetAssetsVersion(p);
|
||||
case 267 -> parseCheckAccountLicenses(p);
|
||||
case 205 -> parseUpdateLogin(p);
|
||||
case 276 -> parseCheckGameLicenses(p);
|
||||
case 305 -> parseGetAdventureProgress(p);
|
||||
case 237 -> parseGetBattlePayConfig(p);
|
||||
case 253 -> parseGetAchieves(p);
|
||||
case 255 -> parseGetBattlePayStatus(p);
|
||||
case 239 -> parseSetOptions(p);
|
||||
case 329 -> parseSendUnsubcribeRequest(p);
|
||||
default -> log.warn("Unknown ClientRequest type #{}", p.getType());
|
||||
}
|
||||
|
||||
if( packet.getHeader().getToken() == 10 ) {
|
||||
Protocol.Header header = Processor.generateResponse(37, packet.getHeader().getToken(), 0, 0);
|
||||
conn.send(new BattleNetPacket(header, Util.hexStringToByteArray("0A090A026964120318BB020A180A0570726F746F120F320D084918AC0220002800300F4078")));
|
||||
@ -54,13 +198,14 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(16)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(213)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318C60222170A0C667261676D656E745F303030120732050801108B0222120A0C6D6573736167655F73697A65120218052A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802")));
|
||||
|
||||
} else if( packet.getHeader().getToken() == 16 ) {
|
||||
Protocol.Header header = Processor.generateResponse(29, packet.getHeader().getToken(), 0, 0);
|
||||
conn.send(new BattleNetPacket(header, Util.hexStringToByteArray("0A090A026964120318C6020A100A0570726F746F12073205080110CD01")));
|
||||
@ -85,45 +230,49 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
|
||||
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318C60222170A0C667261676D656E745F30303012073205080110940222120A0C6D6573736167655F73697A65120218052A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
|
||||
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(20)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
|
||||
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318B30222120A0C6D6573736167655F73697A65120218002A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
|
||||
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(21)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
|
||||
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318CB0222140A0C667261676D656E745F30303012043202080122120A0C6D6573736167655F73697A65120218022A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
|
||||
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(22)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
} else if (packet.getHeader().getToken() == 20) {
|
||||
byte[] b = Util.hexStringToByteArray("0A090A026964120318C6020A100A0570726F746F12073205080110C702");
|
||||
|
||||
@ -136,26 +285,28 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(23)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
|
||||
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318E90122160A0C667261676D656E745F303030120632040806100022120A0C6D6573736167655F73697A65120218042A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
|
||||
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(24)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
} else if( packet.getHeader().getToken() == 21 ) {
|
||||
byte[] b = Util.hexStringToByteArray("0A090A026964120318C6020A100A0570726F746F12073205080110C702");
|
||||
|
||||
@ -168,46 +319,49 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(25)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
|
||||
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318C60222190A0C667261676D656E745F30303012093207080110C901180222120A0C6D6573736167655F73697A65120218072A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
|
||||
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(26)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
|
||||
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318C60222190A0C667261676D656E745F30303012093207080110C901180322120A0C6D6573736167655F73697A65120218072A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
|
||||
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(27)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
|
||||
|
||||
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318C60222190A0C667261676D656E745F30303012093207080110C901180F22120A0C6D6573736167655F73697A65120218072A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
|
||||
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(28)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -226,7 +380,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(29)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -239,7 +393,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(30)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -252,7 +406,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(31)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -265,7 +419,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(32)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -293,7 +447,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(33)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -306,7 +460,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(34)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -319,7 +473,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(35)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -332,7 +486,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(36)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -345,7 +499,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(37)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -358,7 +512,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(38)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -371,7 +525,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(39)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -384,7 +538,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(40)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -397,7 +551,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(41)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -410,7 +564,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(42)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -423,7 +577,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(43)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -436,7 +590,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(44)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -449,7 +603,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(45)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -462,7 +616,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(46)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -475,7 +629,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(47)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -488,7 +642,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(48)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -501,14 +655,14 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
|
||||
// log.warn("ProtoNotify" + Protocol.Notification.parseFrom(b));
|
||||
|
||||
Protocol.GoldBalance gb = Protocol.GoldBalance.newBuilder()
|
||||
/*Protocol.GoldBalance gb = Protocol.GoldBalance.newBuilder()
|
||||
.setCap(999999)
|
||||
.setBonusBalance(165)
|
||||
.setCappedBalance(160)
|
||||
.setCapWarning(2000)
|
||||
.build();
|
||||
.build();*/
|
||||
|
||||
Protocol.Notification notification = Protocol.Notification.newBuilder()
|
||||
/* Protocol.Notification notification = Protocol.Notification.newBuilder()
|
||||
.setSenderId(Protocol.EntityId.newBuilder()
|
||||
.setHigh(144115188075855872L)
|
||||
.setLow(0))
|
||||
@ -535,25 +689,25 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
.setName("message_size")
|
||||
.setValue(Protocol.Variant.newBuilder()
|
||||
.setIntValue(gb.getSerializedSize())))
|
||||
.build();
|
||||
b = notification.toByteArray();
|
||||
.build();*/
|
||||
/* b = notification.toByteArray();
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(49)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
.build();
|
||||
|
||||
conn.send(new BattleNetPacket(header, b));
|
||||
conn.send(new BattleNetPacket(header, b));*/
|
||||
|
||||
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318F10122480A0C667261676D656E745F303030123832360A04081818030A0B08013080E08380C0E180180A090802308080808080100A04081418020A04081518010A04080818040A04080A180122120A0C6D6573736167655F73697A65120218362A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
|
||||
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(50)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -566,7 +720,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(51)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -579,7 +733,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(52)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -592,7 +746,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(53)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -605,7 +759,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(54)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -618,7 +772,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(55)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -631,7 +785,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(56)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -644,7 +798,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(57)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -676,7 +830,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(59)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -701,7 +855,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(60)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -714,7 +868,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(61)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -731,7 +885,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(5)
|
||||
.setMethodId(6)
|
||||
.setToken(62)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(2)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -753,7 +907,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(64)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -766,7 +920,7 @@ public class GameUtilitiesProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(65)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
|
@ -39,7 +39,7 @@ public class PresenceProcessor extends Processor {
|
||||
.setMethodId(1)
|
||||
.setSize(bb.length)
|
||||
.setObjectId(1)
|
||||
.setToken(7)
|
||||
.setToken(conn.nextToken())
|
||||
.setStatus(0)
|
||||
.build();
|
||||
// FIRST
|
||||
@ -62,7 +62,7 @@ public class PresenceProcessor extends Processor {
|
||||
.setMethodId(1)
|
||||
.setSize(bb.length)
|
||||
.setObjectId(2)
|
||||
.setToken(8)
|
||||
.setToken(conn.nextToken())
|
||||
.setStatus(0)
|
||||
.build();
|
||||
// SECOND
|
||||
@ -76,7 +76,7 @@ public class PresenceProcessor extends Processor {
|
||||
.setMethodId(6)
|
||||
.setSize(68)
|
||||
.setObjectId(2)
|
||||
.setToken(10)
|
||||
.setToken(conn.nextToken())
|
||||
.setStatus(0)
|
||||
.build();
|
||||
conn.send(new BattleNetPacket(header, Util.hexStringToByteArray("1242AA063F0A12094743545702000002116739AB040000000012170A150A0808CE840110021804120918F182EAF5CEBDCC0212100A0E0A0808CE84011002180112021001")));
|
||||
@ -95,7 +95,7 @@ public class PresenceProcessor extends Processor {
|
||||
header1 = Protocol.Header.newBuilder()
|
||||
.setServiceId(5)
|
||||
.setMethodId(6)
|
||||
.setToken(14)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(2)
|
||||
.setSize(Util.hexStringToByteArray("1233AA06300A12094743545702000002116739AB0400000000121A0A180A0A08C786D1BA0510021813120A2A083833383836303830").length)
|
||||
.setStatus(0)
|
||||
@ -111,7 +111,7 @@ public class PresenceProcessor extends Processor {
|
||||
header1 = Protocol.Header.newBuilder()
|
||||
.setServiceId(5)
|
||||
.setMethodId(6)
|
||||
.setToken(17)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(2)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -124,7 +124,7 @@ public class PresenceProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(18)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -141,7 +141,7 @@ public class PresenceProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(5)
|
||||
.setMethodId(6)
|
||||
.setToken(58)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(2)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -159,7 +159,7 @@ public class PresenceProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(5)
|
||||
.setMethodId(6)
|
||||
.setToken(63)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(2)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
@ -181,7 +181,7 @@ public class PresenceProcessor extends Processor {
|
||||
header = Protocol.Header.newBuilder()
|
||||
.setServiceId(4)
|
||||
.setMethodId(1)
|
||||
.setToken(64)
|
||||
.setToken(conn.nextToken())
|
||||
.setObjectId(0)
|
||||
.setSize(b.length)
|
||||
.setStatus(0)
|
||||
|
@ -1,10 +0,0 @@
|
||||
package com.alterdekim.hearthhack.handler;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class BattleNetSocketHandler {
|
||||
public String handleMessage() {
|
||||
return "";
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
package com.alterdekim.hearthhack.parser;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.core.serializer.Deserializer;
|
||||
import org.springframework.core.serializer.Serializer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
@Slf4j
|
||||
@Data
|
||||
public class BattleNetSerializerDeserializer implements Serializer<byte[]>, Deserializer<byte[]> {
|
||||
|
||||
|
||||
@Override
|
||||
public byte[] deserialize(InputStream inputStream) throws IOException {
|
||||
return inputStream.readAllBytes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(byte[] object, OutputStream outputStream) throws IOException {
|
||||
outputStream.write(object);
|
||||
}
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
package com.alterdekim.hearthhack.util;
|
||||
|
||||
public enum GetAccountInfoRequest {
|
||||
// Token: 0x04000931 RID: 2353
|
||||
LAST_LOGIN,
|
||||
// Token: 0x04000932 RID: 2354
|
||||
DECK_LIST,
|
||||
// Token: 0x04000933 RID: 2355
|
||||
COLLECTION,
|
||||
// Token: 0x04000934 RID: 2356
|
||||
MEDAL_INFO,
|
||||
// Token: 0x04000935 RID: 2357
|
||||
MEDAL_HISTORY,
|
||||
// Token: 0x04000936 RID: 2358
|
||||
BOOSTERS,
|
||||
// Token: 0x04000937 RID: 2359
|
||||
CARD_BACKS,
|
||||
// Token: 0x04000938 RID: 2360
|
||||
PLAYER_RECORD,
|
||||
// Token: 0x04000939 RID: 2361
|
||||
GAMES_PLAYED,
|
||||
// Token: 0x0400093A RID: 2362
|
||||
DECK_LIMIT,
|
||||
// Token: 0x0400093B RID: 2363
|
||||
CAMPAIGN_INFO,
|
||||
// Token: 0x0400093C RID: 2364
|
||||
NOTICES,
|
||||
// Token: 0x0400093D RID: 2365
|
||||
MOTD,
|
||||
// Token: 0x0400093E RID: 2366
|
||||
CLIENT_OPTIONS,
|
||||
// Token: 0x0400093F RID: 2367
|
||||
CARD_VALUES,
|
||||
// Token: 0x04000940 RID: 2368
|
||||
DISCONNECTED,
|
||||
// Token: 0x04000941 RID: 2369
|
||||
ARCANE_DUST_BALANCE,
|
||||
// Token: 0x04000942 RID: 2370
|
||||
FEATURES,
|
||||
// Token: 0x04000943 RID: 2371
|
||||
REWARD_PROGRESS,
|
||||
// Token: 0x04000944 RID: 2372
|
||||
GOLD_BALANCE,
|
||||
// Token: 0x04000945 RID: 2373
|
||||
HERO_XP,
|
||||
// Token: 0x04000946 RID: 2374
|
||||
PVP_QUEUE,
|
||||
// Token: 0x04000947 RID: 2375
|
||||
NOT_SO_MASSIVE_LOGIN,
|
||||
// Token: 0x04000948 RID: 2376
|
||||
BOOSTER_TALLY,
|
||||
// Token: 0x04000949 RID: 2377
|
||||
TAVERN_BRAWL_INFO,
|
||||
// Token: 0x0400094A RID: 2378
|
||||
TAVERN_BRAWL_RECORD,
|
||||
// Token: 0x0400094B RID: 2379
|
||||
FAVORITE_HEROES,
|
||||
// Token: 0x0400094C RID: 2380
|
||||
ACCOUNT_LICENSES;
|
||||
|
||||
public int getValue() {
|
||||
return ordinal() + 1;
|
||||
}
|
||||
|
||||
public static GetAccountInfoRequest parseFromInt(int val) {
|
||||
for( GetAccountInfoRequest r : values() ) {
|
||||
if( r.getValue() == val ) return r;
|
||||
}
|
||||
return LAST_LOGIN;
|
||||
}
|
||||
}
|
@ -2090,4 +2090,153 @@ message Subscribe {
|
||||
ID = 314;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.GenericData
|
||||
message GenericData {
|
||||
required uint32 type_id = 1;
|
||||
required bytes data = 2;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.GenericRequest
|
||||
message UtilGenericRequest {
|
||||
required int32 request_id = 1;
|
||||
optional GenericData generic_data = 2;
|
||||
optional int32 request_sub_id = 3;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.GenericRequestList
|
||||
message GenericRequestList {
|
||||
// ref: PegasusUtil.GenericRequestList/PacketID
|
||||
enum PacketID {
|
||||
system = 0;
|
||||
ID = 327;
|
||||
}
|
||||
|
||||
repeated UtilGenericRequest requests = 1;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.GetPurchaseMethod
|
||||
message GetPurchaseMethod {
|
||||
// ref: PegasusUtil.GetPurchaseMethod/PacketID
|
||||
enum PacketID {
|
||||
system = 1;
|
||||
ID = 250;
|
||||
}
|
||||
|
||||
required string product_id = 1;
|
||||
required int32 quantity = 2;
|
||||
required int32 currency = 3;
|
||||
required string device_id = 4;
|
||||
optional Platform platform = 5;
|
||||
}
|
||||
|
||||
// ref: PegasusShared.Platform
|
||||
message Platform {
|
||||
required int32 os = 1;
|
||||
required int32 screen = 2;
|
||||
required string name = 3;
|
||||
optional int32 store = 4;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.CheckAccountLicenses
|
||||
message CheckAccountLicenses {
|
||||
// ref: PegasusUtil.CheckAccountLicenses/PacketID
|
||||
enum PacketID {
|
||||
system = 0;
|
||||
ID = 267;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.CheckAccountLicensesResponse
|
||||
message CheckAccountLicensesResponse {
|
||||
// ref: PegasusUtil.CheckAccountLicensesResponse/PacketID
|
||||
enum PacketID {
|
||||
ID = 330;
|
||||
}
|
||||
|
||||
required bool success = 1;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.UpdateLogin
|
||||
message UpdateLogin {
|
||||
// ref: PegasusUtil.UpdateLogin/PacketID
|
||||
enum PacketID {
|
||||
system = 0;
|
||||
ID = 205;
|
||||
}
|
||||
|
||||
optional bool reply_required = 1;
|
||||
optional string referral = 2;
|
||||
optional string device_model_deprecated = 3;
|
||||
}
|
||||
|
||||
|
||||
// ref: PegasusUtil.CheckGameLicenses
|
||||
message CheckGameLicenses {
|
||||
// ref: PegasusUtil.CheckGameLicenses/PacketID
|
||||
enum PacketID {
|
||||
system = 1;
|
||||
ID = 276;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.GetAchieves
|
||||
message GetAchieves {
|
||||
// ref: PegasusUtil.GetAchieves/PacketID
|
||||
enum PacketID {
|
||||
system = 0;
|
||||
ID = 253;
|
||||
}
|
||||
|
||||
optional bool only_active_or_new_complete = 1;
|
||||
optional string device_model = 2;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.CheckGameLicensesResponse
|
||||
message CheckGameLicensesResponse {
|
||||
// ref: PegasusUtil.CheckGameLicensesResponse/PacketID
|
||||
enum PacketID {
|
||||
ID = 331;
|
||||
}
|
||||
|
||||
required bool success = 1;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.GetAdventureProgress
|
||||
message GetAdventureProgress {
|
||||
// ref: PegasusUtil.GetAdventureProgress/PacketID
|
||||
enum PacketID {
|
||||
system = 0;
|
||||
ID = 305;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.SetOptions
|
||||
message SetOptions {
|
||||
// ref: PegasusUtil.SetOptions/MaxOptionCount
|
||||
enum MaxOptionCount {
|
||||
LIMIT = 51;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.SetOptions/PacketID
|
||||
enum PacketID {
|
||||
system = 0;
|
||||
ID = 239;
|
||||
}
|
||||
|
||||
repeated ClientOption options = 1;
|
||||
}
|
||||
|
||||
// ref: PegasusUtil.ClientOption
|
||||
message ClientOption {
|
||||
required int32 index = 1;
|
||||
optional bool as_bool = 2;
|
||||
optional int32 as_int32 = 3;
|
||||
optional int64 as_int64 = 4;
|
||||
optional float as_float = 5;
|
||||
optional uint64 as_uint64 = 6;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user