rearranging

This commit is contained in:
Michael Wain 2024-05-29 20:54:20 +03:00
parent cd94600651
commit 1c62c52004
4 changed files with 149 additions and 6 deletions

View File

@ -13,27 +13,28 @@ public class Main {
private static final Logger log = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
new Server(1119).startListening();
new Server(1119).startListening();
/* System.out.println(Util.bytesToHex(exampleProtocol.Test.newBuilder()
.setA(9999)
.setB("testing")
.setC(7777)
.build().toByteArray()));*/
/* Scanner scanner = new Scanner(System.in);
/* Scanner scanner = new Scanner(System.in);
String s = "";
while( (s = scanner.nextLine()) != null ) {
while ((s = scanner.nextLine()) != null) {
try {
byte[] arr = Util.hexStringToByteArray(s);
int offset = 0;
while( offset < arr.length ) {
while (offset < arr.length) {
BattleNetPacket bp = new BattleNetPacket();
offset += bp.Decode(arr, offset, arr.length);
log.warn( offset + " " + arr.length);
log.warn(offset + " " + arr.length);
log.info(bp.getHeader().toString());
log.info("Body.Length = " + bp.getBody().length);
log.info(Util.bytesToHex(bp.getBody()));
}
} catch ( Exception e ) {
} catch (Exception e) {
e.printStackTrace();
}
}*/

View File

@ -312,6 +312,9 @@ public class GameUtilitiesService extends Service {
conn.send(new BattleNetPacket(header, b));
} else if( packet.getHeader().getToken() == 24 ) {
log.warn("GameUtils " + Util.bytesToHex(packet.getBody()));
byte[] b = Util.hexStringToByteArray("0A090A026964120318C6020A100A0570726F746F12073205080110C702");
Protocol.Header header = Protocol.Header.newBuilder()
@ -532,8 +535,47 @@ public class GameUtilitiesService extends Service {
conn.send(new BattleNetPacket(header, b));
// GoldBalance
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F747970651203189602221D0A0C667261676D656E745F303030120D320B0800100018BF843D20D00F22120A0C6D6573736167655F73697A651202180B2A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
// log.warn("ProtoNotify" + Protocol.Notification.parseFrom(b));
Protocol.GoldBalance gb = Protocol.GoldBalance.newBuilder()
.setCap(999999)
.setBonusBalance(165)
.setCappedBalance(160)
.setCapWarning(2000)
.build();
Protocol.Notification notification = 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(278L)))
.addAttribute(Protocol.Attribute.newBuilder()
.setName("fragment_000")
.setValue(Protocol.Variant.newBuilder()
.setBlobValue(gb.toByteString())))
.addAttribute(Protocol.Attribute.newBuilder()
.setName("message_size")
.setValue(Protocol.Variant.newBuilder()
.setIntValue(gb.getSerializedSize())))
.build();
b = notification.toByteArray();
header = Protocol.Header.newBuilder()
.setServiceId(4)
.setMethodId(1)
@ -651,6 +693,13 @@ public class GameUtilitiesService extends Service {
} else if( packet.getHeader().getToken() == 25 ) {
byte[] b = Util.hexStringToByteArray("0A090A026964120318C6020A100A0570726F746F12073205080110ED01");
/*byte[] b = Protocol.GoldBalance.newBuilder()
.setCap(999999)
.setBonusBalance(0)
.setCappedBalance(0)
.setCapWarning(2000)
.build().toByteArray();*/
//log.warn("GoldBalance " + Util.bytesToHex(b));
Protocol.Header header = Protocol.Header.newBuilder()
.setServiceId(254)
.setToken(packet.getHeader().getToken())
@ -757,6 +806,53 @@ public class GameUtilitiesService extends Service {
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header, b));
} else if( packet.getHeader().getToken() == 34 || packet.getHeader().getToken() == 35 ) {
Protocol.Header header = Protocol.Header.newBuilder()
.setServiceId(254)
.setToken(12)
.setObjectId(0)
.setSize(0)
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header, new byte[0]));
header = Protocol.Header.newBuilder()
.setServiceId(254)
.setToken(packet.getHeader().getToken())
.setObjectId(0)
.setSize(0)
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header, new byte[0]));
byte[] b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318E00122120A0C6D6573736167655F73697A65120218002A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
header = Protocol.Header.newBuilder()
.setServiceId(4)
.setMethodId(1)
.setToken(64)
.setObjectId(0)
.setSize(b.length)
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header, b));
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318880222190A0C667261676D656E745F30303012093207800101A801AC0222120A0C6D6573736167655F73697A65120218072A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
header = Protocol.Header.newBuilder()
.setServiceId(4)
.setMethodId(1)
.setToken(65)
.setObjectId(0)
.setSize(b.length)
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header, b));
}
break;

View File

@ -201,6 +201,40 @@ public class PresenceService extends Service {
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header, b));
} else if( packet.getHeader().getToken() == 33 ) {
byte[] b = Util.hexStringToByteArray("0D5545000015737368001A20BEC5292231D7686AF00CE64E0C58CC6E360EA950AAFFAC6A114F03A958E275F3");
Protocol.Header header1 = Protocol.Header.newBuilder()
.setServiceId(254)
.setToken(packet.getHeader().getToken())
.setObjectId(0)
.setSize(b.length)
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header1, b));
} else if( packet.getHeader().getToken() == 36 ) {
byte[] b = Util.hexStringToByteArray("0A090A026964120318C6020A120A0570726F746F12093207080110C9011806");
Protocol.Header header1 = Protocol.Header.newBuilder()
.setServiceId(254)
.setToken(packet.getHeader().getToken())
.setObjectId(0)
.setSize(b.length)
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header1, b));
b = Util.hexStringToByteArray("0A120900000000000000021100000000000000001212094743545702000002116739AB04000000001A1C575443472E5574696C4E6F74696669636174696F6E4D65737361676522130A0C6D6573736167655F74797065120318E00122120A0C6D6573736167655F73697A65120218002A1209000000000000000111000000000000000032120900000000000000011193710E1A000000003A004A0A0889FF5C1092E5A1B90552150A050D93710E1A120C0D6739AB0415474354571802");
header = Protocol.Header.newBuilder()
.setServiceId(4)
.setMethodId(1)
.setToken(64)
.setObjectId(0)
.setSize(b.length)
.setStatus(0)
.build();
conn.send(new BattleNetPacket(header, b));
}
break;
default:

View File

@ -2058,3 +2058,15 @@ message UpdateChannelCountRequest {
required bnet.protocol.EntityId channel_id = 3;
}
// ref: PegasusUtil.GoldBalance
message GoldBalance {
// ref: PegasusUtil.GoldBalance/Types/PacketID
enum PacketID {
ID = 278;
}
optional int64 capped_balance = 1;
optional int64 bonus_balance = 2;
optional int64 cap = 3;
optional int64 cap_warning = 4;
}