• When breaking a carrot I capture two packets with the packet event, which I presume are the start breaking and end breaking packets.
    I need a way to differentiate between the start breaking and the end breaking packet. Is there a way to read the packet's contents?

    var packetDig = Java.type("net.minecraft.network.play.client.C07PacketPlayerDigging");
    module.on("packet", function(eventData) {
    	var packet = eventData.getPacket();
    	if (packet instanceof packetDig) {
    		Chat.print("Data: " + eventData);
    		//eventData.cancelEvent();
    	}
    });

  • @pi
    If you are using the version before cross_version
    this and this.
    Eg. packetDig.getStatus() == packetDig.Action.START_DESTROY_BLOCK (didn't test).


  • I've also come across a solution for this.

    Although I'm not quite sure if this is working properly because when breaking a carrot, I detect two packets both with the action of START_DESTROY_BLOCK, and nothing else.

    For now this seems to suffice.

    var packetDig = Java.type("net.minecraft.network.play.client.C07PacketPlayerDigging");
    module.on("packet", function(eventData) {
    	var packet = eventData.getPacket();
    	if (packet instanceof packetDig) {
    		Chat.print("Stat: " + packet.getStatus());
    		Chat.print("Pos: " + packet.getPosition());
    		Chat.print("Facing: " + packet.getFacing());
    		//eventData.cancelEvent();
    	}
    });