новый пакет PlayerDiggingPacket
This commit is contained in:
@@ -81,6 +81,7 @@ public enum State {
|
|||||||
.put(0x0E, PlayerPositionAndLookPacket.class)
|
.put(0x0E, PlayerPositionAndLookPacket.class)
|
||||||
.put(0x0F, PlayerLookPacket.class)
|
.put(0x0F, PlayerLookPacket.class)
|
||||||
.put(0x13, PlayerAbilitiesPacket.class)
|
.put(0x13, PlayerAbilitiesPacket.class)
|
||||||
|
.put(0x14, PlayerDiggingPacket.class)
|
||||||
.put(0x15, EntityActionPacket.class)
|
.put(0x15, EntityActionPacket.class)
|
||||||
.put(0x1A, HeldItemChangePacket.class)
|
.put(0x1A, HeldItemChangePacket.class)
|
||||||
.put(0x1D, AnimationPacket.class)
|
.put(0x1D, AnimationPacket.class)
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
package mc.core.network.proto_1_12_2.packets;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.ToString;
|
||||||
|
import mc.core.Location;
|
||||||
|
import mc.core.network.CSPacket;
|
||||||
|
import mc.core.network.NetInputStream;
|
||||||
|
import mc.core.utils.CompactedCoords;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@ToString
|
||||||
|
public class PlayerDiggingPacket implements CSPacket {
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public enum Status {
|
||||||
|
STARTED_DIGGING(0),
|
||||||
|
CANCELLED_DIGGING(1),
|
||||||
|
FINISHED_DIGGING(2),
|
||||||
|
DROP_ITEM_STACK(3),
|
||||||
|
DROP_ITEM(4),
|
||||||
|
/* Indicates that the currently held item should have its
|
||||||
|
* state updated such as eating food, pulling back bows,
|
||||||
|
* using buckets, etc. Location is always set to 0/0/0,
|
||||||
|
* Face is always set to -Y.
|
||||||
|
*/
|
||||||
|
SHOOT_ARROW(5),
|
||||||
|
FINISH_EATING(5),
|
||||||
|
SWAP_ITEM_IN_HAND(6);
|
||||||
|
|
||||||
|
public static Status getById(final int id) {
|
||||||
|
return Arrays.stream(Status.values())
|
||||||
|
.filter(status -> status.id == id)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final int id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public enum Face {
|
||||||
|
BOTTOM(0), // -Y
|
||||||
|
TOP(1), // +Y
|
||||||
|
NORTH(2), // -Z
|
||||||
|
SOUTH(3), // +Z
|
||||||
|
WEST(4), // -X
|
||||||
|
EAST(5); // +X
|
||||||
|
|
||||||
|
public static Face getById(final int id) {
|
||||||
|
return Arrays.stream(Face.values())
|
||||||
|
.filter(status -> status.id == id)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final int id;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Status status;
|
||||||
|
private Location location;
|
||||||
|
private Face face;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readSelf(NetInputStream netStream) {
|
||||||
|
status = Status.getById(netStream.readVarInt());
|
||||||
|
long compactCoord = netStream.readLong();
|
||||||
|
double[] xyz = CompactedCoords.uncompressXYZ(compactCoord);
|
||||||
|
location = new Location(xyz[0], xyz[1], xyz[2], null);
|
||||||
|
face = Face.getById(netStream.readByte());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user