mirror of
https://github.com/GeyserMC/MCProtocolLib.git
synced 2024-12-04 21:01:02 -05:00
15w32c
This commit is contained in:
parent
4ccf753002
commit
abb2108fb3
22 changed files with 385 additions and 131 deletions
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.spacehq</groupId>
|
<groupId>org.spacehq</groupId>
|
||||||
<artifactId>mcprotocollib</artifactId>
|
<artifactId>mcprotocollib</artifactId>
|
||||||
<version>1.8.8-SNAPSHOT</version>
|
<version>15w32c</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>MCProtocolLib</name>
|
<name>MCProtocolLib</name>
|
||||||
|
|
|
@ -2,8 +2,8 @@ package org.spacehq.mc.protocol;
|
||||||
|
|
||||||
public class MinecraftConstants {
|
public class MinecraftConstants {
|
||||||
// General Constants
|
// General Constants
|
||||||
public static final String GAME_VERSION = "1.8.8";
|
public static final String GAME_VERSION = "15w32c";
|
||||||
public static final int PROTOCOL_VERSION = 47;
|
public static final int PROTOCOL_VERSION = 54;
|
||||||
|
|
||||||
// General Key Constants
|
// General Key Constants
|
||||||
public static final String PROFILE_KEY = "profile";
|
public static final String PROFILE_KEY = "profile";
|
||||||
|
|
|
@ -22,6 +22,7 @@ import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerPositionP
|
||||||
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerPositionRotationPacket;
|
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerPositionRotationPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerRotationPacket;
|
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerRotationPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerStatePacket;
|
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerStatePacket;
|
||||||
|
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerUseItemPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientSpectatePacket;
|
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientSpectatePacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientSteerVehiclePacket;
|
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientSteerVehiclePacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientSwingArmPacket;
|
import org.spacehq.mc.protocol.packet.ingame.client.player.ClientSwingArmPacket;
|
||||||
|
@ -56,7 +57,7 @@ import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityEquipment
|
||||||
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityHeadLookPacket;
|
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityHeadLookPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityMetadataPacket;
|
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityMetadataPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityMovementPacket;
|
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityMovementPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityNBTUpdatePacket;
|
import org.spacehq.mc.protocol.packet.ingame.server.ServerBossBarPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityPositionPacket;
|
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityPositionPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityPositionRotationPacket;
|
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityPositionRotationPacket;
|
||||||
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityPropertiesPacket;
|
import org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityPropertiesPacket;
|
||||||
|
@ -386,7 +387,7 @@ public class MinecraftProtocol extends PacketProtocol {
|
||||||
this.registerIncoming(70, ServerSetCompressionPacket.class);
|
this.registerIncoming(70, ServerSetCompressionPacket.class);
|
||||||
this.registerIncoming(71, ServerPlayerListDataPacket.class);
|
this.registerIncoming(71, ServerPlayerListDataPacket.class);
|
||||||
this.registerIncoming(72, ServerResourcePackSendPacket.class);
|
this.registerIncoming(72, ServerResourcePackSendPacket.class);
|
||||||
this.registerIncoming(73, ServerEntityNBTUpdatePacket.class);
|
this.registerIncoming(73, ServerBossBarPacket.class);
|
||||||
|
|
||||||
this.registerOutgoing(0, ClientKeepAlivePacket.class);
|
this.registerOutgoing(0, ClientKeepAlivePacket.class);
|
||||||
this.registerOutgoing(1, ClientChatPacket.class);
|
this.registerOutgoing(1, ClientChatPacket.class);
|
||||||
|
@ -396,24 +397,25 @@ public class MinecraftProtocol extends PacketProtocol {
|
||||||
this.registerOutgoing(5, ClientPlayerRotationPacket.class);
|
this.registerOutgoing(5, ClientPlayerRotationPacket.class);
|
||||||
this.registerOutgoing(6, ClientPlayerPositionRotationPacket.class);
|
this.registerOutgoing(6, ClientPlayerPositionRotationPacket.class);
|
||||||
this.registerOutgoing(7, ClientPlayerActionPacket.class);
|
this.registerOutgoing(7, ClientPlayerActionPacket.class);
|
||||||
this.registerOutgoing(8, ClientPlayerPlaceBlockPacket.class);
|
this.registerOutgoing(8, ClientPlayerUseItemPacket.class);
|
||||||
this.registerOutgoing(9, ClientChangeHeldItemPacket.class);
|
this.registerOutgoing(9, ClientPlayerPlaceBlockPacket.class);
|
||||||
this.registerOutgoing(10, ClientSwingArmPacket.class);
|
this.registerOutgoing(10, ClientChangeHeldItemPacket.class);
|
||||||
this.registerOutgoing(11, ClientPlayerStatePacket.class);
|
this.registerOutgoing(11, ClientSwingArmPacket.class);
|
||||||
this.registerOutgoing(12, ClientSteerVehiclePacket.class);
|
this.registerOutgoing(12, ClientPlayerStatePacket.class);
|
||||||
this.registerOutgoing(13, ClientCloseWindowPacket.class);
|
this.registerOutgoing(13, ClientSteerVehiclePacket.class);
|
||||||
this.registerOutgoing(14, ClientWindowActionPacket.class);
|
this.registerOutgoing(14, ClientCloseWindowPacket.class);
|
||||||
this.registerOutgoing(15, ClientConfirmTransactionPacket.class);
|
this.registerOutgoing(15, ClientWindowActionPacket.class);
|
||||||
this.registerOutgoing(16, ClientCreativeInventoryActionPacket.class);
|
this.registerOutgoing(16, ClientConfirmTransactionPacket.class);
|
||||||
this.registerOutgoing(17, ClientEnchantItemPacket.class);
|
this.registerOutgoing(17, ClientCreativeInventoryActionPacket.class);
|
||||||
this.registerOutgoing(18, ClientUpdateSignPacket.class);
|
this.registerOutgoing(18, ClientEnchantItemPacket.class);
|
||||||
this.registerOutgoing(19, ClientPlayerAbilitiesPacket.class);
|
this.registerOutgoing(19, ClientUpdateSignPacket.class);
|
||||||
this.registerOutgoing(20, ClientTabCompletePacket.class);
|
this.registerOutgoing(20, ClientPlayerAbilitiesPacket.class);
|
||||||
this.registerOutgoing(21, ClientSettingsPacket.class);
|
this.registerOutgoing(21, ClientTabCompletePacket.class);
|
||||||
this.registerOutgoing(22, ClientRequestPacket.class);
|
this.registerOutgoing(22, ClientSettingsPacket.class);
|
||||||
this.registerOutgoing(23, ClientPluginMessagePacket.class);
|
this.registerOutgoing(23, ClientRequestPacket.class);
|
||||||
this.registerOutgoing(24, ClientSpectatePacket.class);
|
this.registerOutgoing(24, ClientPluginMessagePacket.class);
|
||||||
this.registerOutgoing(25, ClientResourcePackStatusPacket.class);
|
this.registerOutgoing(25, ClientSpectatePacket.class);
|
||||||
|
this.registerOutgoing(26, ClientResourcePackStatusPacket.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initServerGame(Session session) {
|
private void initServerGame(Session session) {
|
||||||
|
@ -517,7 +519,7 @@ public class MinecraftProtocol extends PacketProtocol {
|
||||||
this.registerOutgoing(70, ServerSetCompressionPacket.class);
|
this.registerOutgoing(70, ServerSetCompressionPacket.class);
|
||||||
this.registerOutgoing(71, ServerPlayerListDataPacket.class);
|
this.registerOutgoing(71, ServerPlayerListDataPacket.class);
|
||||||
this.registerOutgoing(72, ServerResourcePackSendPacket.class);
|
this.registerOutgoing(72, ServerResourcePackSendPacket.class);
|
||||||
this.registerOutgoing(73, ServerEntityNBTUpdatePacket.class);
|
this.registerOutgoing(73, ServerBossBarPacket.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initClientStatus(Session session) {
|
private void initClientStatus(Session session) {
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
package org.spacehq.mc.protocol.data.game.values;
|
||||||
|
|
||||||
|
public enum BossBarAction {
|
||||||
|
ADD,
|
||||||
|
REMOVE,
|
||||||
|
UPDATE_HEALTH,
|
||||||
|
UPDATE_TITLE,
|
||||||
|
UPDATE_STYLE,
|
||||||
|
UPDATE_FLAGS;
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.spacehq.mc.protocol.data.game.values;
|
||||||
|
|
||||||
|
public enum BossBarColor {
|
||||||
|
PINK,
|
||||||
|
CYAN,
|
||||||
|
RED,
|
||||||
|
LIME,
|
||||||
|
YELLOW,
|
||||||
|
PURPLE,
|
||||||
|
WHITE;
|
||||||
|
}
|
|
@ -1,9 +1,7 @@
|
||||||
package org.spacehq.mc.protocol.data.game.values;
|
package org.spacehq.mc.protocol.data.game.values;
|
||||||
|
|
||||||
public enum ClientRequest {
|
public enum ClientRequest {
|
||||||
|
|
||||||
RESPAWN,
|
RESPAWN,
|
||||||
STATS,
|
STATS,
|
||||||
OPEN_INVENTORY_ACHIEVEMENT;
|
OPEN_INVENTORY;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
package org.spacehq.mc.protocol.data.game.values;
|
||||||
|
|
||||||
|
public enum Hand {
|
||||||
|
MAIN_HAND,
|
||||||
|
OFF_HAND;
|
||||||
|
}
|
|
@ -109,7 +109,7 @@ public class MagicValues {
|
||||||
|
|
||||||
register(ClientRequest.RESPAWN, 0);
|
register(ClientRequest.RESPAWN, 0);
|
||||||
register(ClientRequest.STATS, 1);
|
register(ClientRequest.STATS, 1);
|
||||||
register(ClientRequest.OPEN_INVENTORY_ACHIEVEMENT, 2);
|
register(ClientRequest.OPEN_INVENTORY, 2);
|
||||||
|
|
||||||
register(ChatVisibility.FULL, 0);
|
register(ChatVisibility.FULL, 0);
|
||||||
register(ChatVisibility.SYSTEM, 1);
|
register(ChatVisibility.SYSTEM, 1);
|
||||||
|
@ -121,7 +121,6 @@ public class MagicValues {
|
||||||
register(PlayerState.START_SPRINTING, 3);
|
register(PlayerState.START_SPRINTING, 3);
|
||||||
register(PlayerState.STOP_SPRINTING, 4);
|
register(PlayerState.STOP_SPRINTING, 4);
|
||||||
register(PlayerState.RIDING_JUMP, 5);
|
register(PlayerState.RIDING_JUMP, 5);
|
||||||
register(PlayerState.OPEN_INVENTORY, 6);
|
|
||||||
|
|
||||||
register(InteractAction.INTERACT, 0);
|
register(InteractAction.INTERACT, 0);
|
||||||
register(InteractAction.ATTACK, 1);
|
register(InteractAction.ATTACK, 1);
|
||||||
|
@ -133,6 +132,7 @@ public class MagicValues {
|
||||||
register(PlayerAction.DROP_ITEM_STACK, 3);
|
register(PlayerAction.DROP_ITEM_STACK, 3);
|
||||||
register(PlayerAction.DROP_ITEM, 4);
|
register(PlayerAction.DROP_ITEM, 4);
|
||||||
register(PlayerAction.RELEASE_USE_ITEM, 5);
|
register(PlayerAction.RELEASE_USE_ITEM, 5);
|
||||||
|
register(PlayerAction.SWAP_HANDS, 6);
|
||||||
|
|
||||||
register(Face.BOTTOM, 0);
|
register(Face.BOTTOM, 0);
|
||||||
register(Face.TOP, 1);
|
register(Face.TOP, 1);
|
||||||
|
@ -881,6 +881,24 @@ public class MagicValues {
|
||||||
register(ResourcePackStatus.DECLINED, 1);
|
register(ResourcePackStatus.DECLINED, 1);
|
||||||
register(ResourcePackStatus.FAILED_DOWNLOAD, 2);
|
register(ResourcePackStatus.FAILED_DOWNLOAD, 2);
|
||||||
register(ResourcePackStatus.ACCEPTED, 3);
|
register(ResourcePackStatus.ACCEPTED, 3);
|
||||||
|
|
||||||
|
register(Hand.MAIN_HAND, 0);
|
||||||
|
register(Hand.OFF_HAND, 1);
|
||||||
|
|
||||||
|
register(BossBarAction.ADD, 0);
|
||||||
|
register(BossBarAction.REMOVE, 1);
|
||||||
|
register(BossBarAction.UPDATE_HEALTH, 2);
|
||||||
|
register(BossBarAction.UPDATE_TITLE, 3);
|
||||||
|
register(BossBarAction.UPDATE_STYLE, 4);
|
||||||
|
register(BossBarAction.UPDATE_FLAGS, 5);
|
||||||
|
|
||||||
|
register(BossBarColor.PINK, 0);
|
||||||
|
register(BossBarColor.CYAN, 1);
|
||||||
|
register(BossBarColor.RED, 2);
|
||||||
|
register(BossBarColor.LIME, 3);
|
||||||
|
register(BossBarColor.YELLOW, 4);
|
||||||
|
register(BossBarColor.PURPLE, 5);
|
||||||
|
register(BossBarColor.WHITE, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void register(Enum<?> key, Object value) {
|
private static void register(Enum<?> key, Object value) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ public enum PlayerAction {
|
||||||
FINISH_DIGGING,
|
FINISH_DIGGING,
|
||||||
DROP_ITEM_STACK,
|
DROP_ITEM_STACK,
|
||||||
DROP_ITEM,
|
DROP_ITEM,
|
||||||
RELEASE_USE_ITEM;
|
RELEASE_USE_ITEM,
|
||||||
|
SWAP_HANDS;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
package org.spacehq.mc.protocol.data.game.values.entity.player;
|
package org.spacehq.mc.protocol.data.game.values.entity.player;
|
||||||
|
|
||||||
public enum PlayerState {
|
public enum PlayerState {
|
||||||
|
|
||||||
START_SNEAKING,
|
START_SNEAKING,
|
||||||
STOP_SNEAKING,
|
STOP_SNEAKING,
|
||||||
LEAVE_BED,
|
LEAVE_BED,
|
||||||
START_SPRINTING,
|
START_SPRINTING,
|
||||||
STOP_SPRINTING,
|
STOP_SPRINTING,
|
||||||
RIDING_JUMP,
|
RIDING_JUMP;
|
||||||
OPEN_INVENTORY;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.spacehq.mc.protocol.packet.ingame.client;
|
package org.spacehq.mc.protocol.packet.ingame.client;
|
||||||
|
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.Hand;
|
||||||
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
||||||
import org.spacehq.mc.protocol.data.game.values.setting.ChatVisibility;
|
import org.spacehq.mc.protocol.data.game.values.setting.ChatVisibility;
|
||||||
import org.spacehq.mc.protocol.data.game.values.setting.SkinPart;
|
import org.spacehq.mc.protocol.data.game.values.setting.SkinPart;
|
||||||
|
@ -19,17 +20,19 @@ public class ClientSettingsPacket implements Packet {
|
||||||
private ChatVisibility chatVisibility;
|
private ChatVisibility chatVisibility;
|
||||||
private boolean chatColors;
|
private boolean chatColors;
|
||||||
private List<SkinPart> visibleParts;
|
private List<SkinPart> visibleParts;
|
||||||
|
private Hand mainHand;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private ClientSettingsPacket() {
|
private ClientSettingsPacket() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ClientSettingsPacket(String locale, int renderDistance, ChatVisibility chatVisibility, boolean chatColors, SkinPart... visibleParts) {
|
public ClientSettingsPacket(String locale, int renderDistance, ChatVisibility chatVisibility, boolean chatColors, SkinPart[] visibleParts, Hand mainHand) {
|
||||||
this.locale = locale;
|
this.locale = locale;
|
||||||
this.renderDistance = renderDistance;
|
this.renderDistance = renderDistance;
|
||||||
this.chatVisibility = chatVisibility;
|
this.chatVisibility = chatVisibility;
|
||||||
this.chatColors = chatColors;
|
this.chatColors = chatColors;
|
||||||
this.visibleParts = Arrays.asList(visibleParts);
|
this.visibleParts = Arrays.asList(visibleParts);
|
||||||
|
this.mainHand = mainHand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLocale() {
|
public String getLocale() {
|
||||||
|
@ -52,13 +55,18 @@ public class ClientSettingsPacket implements Packet {
|
||||||
return this.visibleParts;
|
return this.visibleParts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Hand getMainHand() {
|
||||||
|
return this.mainHand;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(NetInput in) throws IOException {
|
public void read(NetInput in) throws IOException {
|
||||||
this.locale = in.readString();
|
this.locale = in.readString();
|
||||||
this.renderDistance = in.readByte();
|
this.renderDistance = in.readByte();
|
||||||
this.chatVisibility = MagicValues.key(ChatVisibility.class, in.readByte());
|
this.chatVisibility = MagicValues.key(ChatVisibility.class, in.readVarInt());
|
||||||
this.chatColors = in.readBoolean();
|
this.chatColors = in.readBoolean();
|
||||||
this.visibleParts = new ArrayList<SkinPart>();
|
this.visibleParts = new ArrayList<SkinPart>();
|
||||||
|
|
||||||
int flags = in.readUnsignedByte();
|
int flags = in.readUnsignedByte();
|
||||||
for(SkinPart part : SkinPart.values()) {
|
for(SkinPart part : SkinPart.values()) {
|
||||||
int bit = 1 << part.ordinal();
|
int bit = 1 << part.ordinal();
|
||||||
|
@ -66,20 +74,25 @@ public class ClientSettingsPacket implements Packet {
|
||||||
this.visibleParts.add(part);
|
this.visibleParts.add(part);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.mainHand = MagicValues.key(Hand.class, in.readVarInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(NetOutput out) throws IOException {
|
public void write(NetOutput out) throws IOException {
|
||||||
out.writeString(this.locale);
|
out.writeString(this.locale);
|
||||||
out.writeByte(this.renderDistance);
|
out.writeByte(this.renderDistance);
|
||||||
out.writeByte(MagicValues.value(Integer.class, this.chatVisibility));
|
out.writeVarInt(MagicValues.value(Integer.class, this.chatVisibility));
|
||||||
out.writeBoolean(this.chatColors);
|
out.writeBoolean(this.chatColors);
|
||||||
|
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
for(SkinPart part : this.visibleParts) {
|
for(SkinPart part : this.visibleParts) {
|
||||||
flags |= 1 << part.ordinal();
|
flags |= 1 << part.ordinal();
|
||||||
}
|
}
|
||||||
|
|
||||||
out.writeByte(flags);
|
out.writeByte(flags);
|
||||||
|
|
||||||
|
out.writeVarInt(MagicValues.value(Integer.class, this.mainHand));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.spacehq.mc.protocol.packet.ingame.client.player;
|
package org.spacehq.mc.protocol.packet.ingame.client.player;
|
||||||
|
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.Hand;
|
||||||
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
||||||
import org.spacehq.mc.protocol.data.game.values.entity.player.InteractAction;
|
import org.spacehq.mc.protocol.data.game.values.entity.player.InteractAction;
|
||||||
import org.spacehq.packetlib.io.NetInput;
|
import org.spacehq.packetlib.io.NetInput;
|
||||||
|
@ -16,21 +17,27 @@ public class ClientPlayerInteractEntityPacket implements Packet {
|
||||||
private float targetX;
|
private float targetX;
|
||||||
private float targetY;
|
private float targetY;
|
||||||
private float targetZ;
|
private float targetZ;
|
||||||
|
private Hand hand;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private ClientPlayerInteractEntityPacket() {
|
private ClientPlayerInteractEntityPacket() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ClientPlayerInteractEntityPacket(int entityId, InteractAction action) {
|
public ClientPlayerInteractEntityPacket(int entityId, InteractAction action) {
|
||||||
this(entityId, action, 0, 0, 0);
|
this(entityId, action, Hand.MAIN_HAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ClientPlayerInteractEntityPacket(int entityId, InteractAction action, float targetX, float targetY, float targetZ) {
|
public ClientPlayerInteractEntityPacket(int entityId, InteractAction action, Hand hand) {
|
||||||
|
this(entityId, action, 0, 0, 0, hand);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClientPlayerInteractEntityPacket(int entityId, InteractAction action, float targetX, float targetY, float targetZ, Hand hand) {
|
||||||
this.entityId = entityId;
|
this.entityId = entityId;
|
||||||
this.action = action;
|
this.action = action;
|
||||||
this.targetX = targetX;
|
this.targetX = targetX;
|
||||||
this.targetY = targetY;
|
this.targetY = targetY;
|
||||||
this.targetZ = targetZ;
|
this.targetZ = targetZ;
|
||||||
|
this.hand = hand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getEntityId() {
|
public int getEntityId() {
|
||||||
|
@ -41,6 +48,22 @@ public class ClientPlayerInteractEntityPacket implements Packet {
|
||||||
return this.action;
|
return this.action;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float getTargetX() {
|
||||||
|
return this.targetX;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getTargetY() {
|
||||||
|
return this.targetY;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getTargetZ() {
|
||||||
|
return this.targetZ;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Hand getHand() {
|
||||||
|
return this.hand;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(NetInput in) throws IOException {
|
public void read(NetInput in) throws IOException {
|
||||||
this.entityId = in.readVarInt();
|
this.entityId = in.readVarInt();
|
||||||
|
@ -50,6 +73,10 @@ public class ClientPlayerInteractEntityPacket implements Packet {
|
||||||
this.targetY = in.readFloat();
|
this.targetY = in.readFloat();
|
||||||
this.targetZ = in.readFloat();
|
this.targetZ = in.readFloat();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this.action == InteractAction.INTERACT || this.action == InteractAction.INTERACT_AT) {
|
||||||
|
this.hand = MagicValues.key(Hand.class, in.readVarInt());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -61,6 +88,10 @@ public class ClientPlayerInteractEntityPacket implements Packet {
|
||||||
out.writeFloat(this.targetY);
|
out.writeFloat(this.targetY);
|
||||||
out.writeFloat(this.targetZ);
|
out.writeFloat(this.targetZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this.action == InteractAction.INTERACT || this.action == InteractAction.INTERACT_AT) {
|
||||||
|
out.writeVarInt(MagicValues.value(Integer.class, this.hand));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package org.spacehq.mc.protocol.packet.ingame.client.player;
|
package org.spacehq.mc.protocol.packet.ingame.client.player;
|
||||||
|
|
||||||
import org.spacehq.mc.protocol.data.game.ItemStack;
|
|
||||||
import org.spacehq.mc.protocol.data.game.Position;
|
import org.spacehq.mc.protocol.data.game.Position;
|
||||||
import org.spacehq.mc.protocol.data.game.values.Face;
|
import org.spacehq.mc.protocol.data.game.values.Face;
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.Hand;
|
||||||
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
||||||
import org.spacehq.mc.protocol.util.NetUtil;
|
import org.spacehq.mc.protocol.util.NetUtil;
|
||||||
import org.spacehq.packetlib.io.NetInput;
|
import org.spacehq.packetlib.io.NetInput;
|
||||||
|
@ -15,7 +15,7 @@ public class ClientPlayerPlaceBlockPacket implements Packet {
|
||||||
|
|
||||||
private Position position;
|
private Position position;
|
||||||
private Face face;
|
private Face face;
|
||||||
private ItemStack held;
|
private Hand hand;
|
||||||
private float cursorX;
|
private float cursorX;
|
||||||
private float cursorY;
|
private float cursorY;
|
||||||
private float cursorZ;
|
private float cursorZ;
|
||||||
|
@ -24,10 +24,10 @@ public class ClientPlayerPlaceBlockPacket implements Packet {
|
||||||
private ClientPlayerPlaceBlockPacket() {
|
private ClientPlayerPlaceBlockPacket() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ClientPlayerPlaceBlockPacket(Position position, Face face, ItemStack held, float cursorX, float cursorY, float cursorZ) {
|
public ClientPlayerPlaceBlockPacket(Position position, Face face, Hand hand, float cursorX, float cursorY, float cursorZ) {
|
||||||
this.position = position;
|
this.position = position;
|
||||||
this.face = face;
|
this.face = face;
|
||||||
this.held = held;
|
this.hand = hand;
|
||||||
this.cursorX = cursorX;
|
this.cursorX = cursorX;
|
||||||
this.cursorY = cursorY;
|
this.cursorY = cursorY;
|
||||||
this.cursorZ = cursorZ;
|
this.cursorZ = cursorZ;
|
||||||
|
@ -41,8 +41,8 @@ public class ClientPlayerPlaceBlockPacket implements Packet {
|
||||||
return this.face;
|
return this.face;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemStack getHeldItem() {
|
public Hand getHand() {
|
||||||
return this.held;
|
return this.hand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getCursorX() {
|
public float getCursorX() {
|
||||||
|
@ -61,7 +61,7 @@ public class ClientPlayerPlaceBlockPacket implements Packet {
|
||||||
public void read(NetInput in) throws IOException {
|
public void read(NetInput in) throws IOException {
|
||||||
this.position = NetUtil.readPosition(in);
|
this.position = NetUtil.readPosition(in);
|
||||||
this.face = MagicValues.key(Face.class, in.readUnsignedByte());
|
this.face = MagicValues.key(Face.class, in.readUnsignedByte());
|
||||||
this.held = NetUtil.readItem(in);
|
this.hand = MagicValues.key(Hand.class, in.readVarInt());
|
||||||
this.cursorX = in.readByte() / 16f;
|
this.cursorX = in.readByte() / 16f;
|
||||||
this.cursorY = in.readByte() / 16f;
|
this.cursorY = in.readByte() / 16f;
|
||||||
this.cursorZ = in.readByte() / 16f;
|
this.cursorZ = in.readByte() / 16f;
|
||||||
|
@ -71,7 +71,7 @@ public class ClientPlayerPlaceBlockPacket implements Packet {
|
||||||
public void write(NetOutput out) throws IOException {
|
public void write(NetOutput out) throws IOException {
|
||||||
NetUtil.writePosition(out, this.position);
|
NetUtil.writePosition(out, this.position);
|
||||||
out.writeByte(MagicValues.value(Integer.class, this.face));
|
out.writeByte(MagicValues.value(Integer.class, this.face));
|
||||||
NetUtil.writeItem(out, this.held);
|
out.writeVarInt(MagicValues.value(Integer.class, this.hand));
|
||||||
out.writeByte((int) (this.cursorX * 16));
|
out.writeByte((int) (this.cursorX * 16));
|
||||||
out.writeByte((int) (this.cursorY * 16));
|
out.writeByte((int) (this.cursorY * 16));
|
||||||
out.writeByte((int) (this.cursorZ * 16));
|
out.writeByte((int) (this.cursorZ * 16));
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
package org.spacehq.mc.protocol.packet.ingame.client.player;
|
||||||
|
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.Hand;
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
||||||
|
import org.spacehq.packetlib.io.NetInput;
|
||||||
|
import org.spacehq.packetlib.io.NetOutput;
|
||||||
|
import org.spacehq.packetlib.packet.Packet;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class ClientPlayerUseItemPacket implements Packet {
|
||||||
|
private Hand hand;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
private ClientPlayerUseItemPacket() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClientPlayerUseItemPacket(Hand hand) {
|
||||||
|
this.hand = hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Hand getHand() {
|
||||||
|
return this.hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(NetInput in) throws IOException {
|
||||||
|
this.hand = MagicValues.key(Hand.class, in.readVarInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(NetOutput out) throws IOException {
|
||||||
|
out.writeVarInt(MagicValues.value(Integer.class, this.hand));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPriority() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,7 @@
|
||||||
package org.spacehq.mc.protocol.packet.ingame.client.player;
|
package org.spacehq.mc.protocol.packet.ingame.client.player;
|
||||||
|
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.Hand;
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
||||||
import org.spacehq.packetlib.io.NetInput;
|
import org.spacehq.packetlib.io.NetInput;
|
||||||
import org.spacehq.packetlib.io.NetOutput;
|
import org.spacehq.packetlib.io.NetOutput;
|
||||||
import org.spacehq.packetlib.packet.Packet;
|
import org.spacehq.packetlib.packet.Packet;
|
||||||
|
@ -7,21 +9,32 @@ import org.spacehq.packetlib.packet.Packet;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ClientSwingArmPacket implements Packet {
|
public class ClientSwingArmPacket implements Packet {
|
||||||
|
private Hand hand;
|
||||||
|
|
||||||
public ClientSwingArmPacket() {
|
@SuppressWarnings("unused")
|
||||||
|
private ClientSwingArmPacket() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClientSwingArmPacket(Hand hand) {
|
||||||
|
this.hand = hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Hand getHand() {
|
||||||
|
return this.hand;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(NetInput in) throws IOException {
|
public void read(NetInput in) throws IOException {
|
||||||
|
this.hand = MagicValues.key(Hand.class, in.readVarInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(NetOutput out) throws IOException {
|
public void write(NetOutput out) throws IOException {
|
||||||
|
out.writeVarInt(MagicValues.value(Integer.class, this.hand));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isPriority() {
|
public boolean isPriority() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,151 @@
|
||||||
|
package org.spacehq.mc.protocol.packet.ingame.server;
|
||||||
|
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.BossBarAction;
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.BossBarColor;
|
||||||
|
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
||||||
|
import org.spacehq.mc.protocol.data.message.Message;
|
||||||
|
import org.spacehq.packetlib.io.NetInput;
|
||||||
|
import org.spacehq.packetlib.io.NetOutput;
|
||||||
|
import org.spacehq.packetlib.packet.Packet;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class ServerBossBarPacket implements Packet {
|
||||||
|
private UUID uuid;
|
||||||
|
private BossBarAction action;
|
||||||
|
|
||||||
|
private Message title;
|
||||||
|
private float health;
|
||||||
|
private BossBarColor color;
|
||||||
|
private int dividers;
|
||||||
|
private int flags;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
private ServerBossBarPacket() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServerBossBarPacket(UUID uuid, BossBarAction action, Message title, float health, BossBarColor color, int dividers, int flags) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.action = BossBarAction.ADD;
|
||||||
|
|
||||||
|
this.title = title;
|
||||||
|
this.health = health;
|
||||||
|
this.color = color;
|
||||||
|
this.dividers = dividers;
|
||||||
|
this.flags = flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServerBossBarPacket(UUID uuid) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.action = BossBarAction.REMOVE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServerBossBarPacket(UUID uuid, BossBarAction action, float health) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.action = BossBarAction.UPDATE_HEALTH;
|
||||||
|
|
||||||
|
this.health = health;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServerBossBarPacket(UUID uuid, BossBarAction action, Message title) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.action = BossBarAction.UPDATE_TITLE;
|
||||||
|
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServerBossBarPacket(UUID uuid, BossBarAction action, BossBarColor color, int dividers) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.action = BossBarAction.UPDATE_STYLE;
|
||||||
|
|
||||||
|
this.color = color;
|
||||||
|
this.dividers = dividers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServerBossBarPacket(UUID uuid, BossBarAction action, int flags) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.action = BossBarAction.UPDATE_FLAGS;
|
||||||
|
|
||||||
|
this.flags = flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getUUID() {
|
||||||
|
return this.uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BossBarAction getAction() {
|
||||||
|
return this.action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Message getTitle() {
|
||||||
|
return this.title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getHealth() {
|
||||||
|
return this.health;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BossBarColor getColor() {
|
||||||
|
return this.color;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDividers() {
|
||||||
|
return this.dividers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFlags() {
|
||||||
|
return this.flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(NetInput in) throws IOException {
|
||||||
|
this.uuid = in.readUUID();
|
||||||
|
this.action = MagicValues.key(BossBarAction.class, in.readVarInt());
|
||||||
|
|
||||||
|
if(this.action == BossBarAction.ADD || this.action == BossBarAction.UPDATE_TITLE) {
|
||||||
|
this.title = Message.fromString(in.readString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.action == BossBarAction.ADD || this.action == BossBarAction.UPDATE_HEALTH) {
|
||||||
|
this.health = in.readFloat();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.action == BossBarAction.ADD || this.action == BossBarAction.UPDATE_STYLE) {
|
||||||
|
this.color = MagicValues.key(BossBarColor.class, in.readVarInt());
|
||||||
|
this.dividers = in.readVarInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.action == BossBarAction.ADD || this.action == BossBarAction.UPDATE_FLAGS) {
|
||||||
|
this.flags = in.readUnsignedByte();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(NetOutput out) throws IOException {
|
||||||
|
out.writeUUID(this.uuid);
|
||||||
|
out.writeVarInt(MagicValues.value(Integer.class, this.action));
|
||||||
|
|
||||||
|
if(this.action == BossBarAction.ADD || this.action == BossBarAction.UPDATE_TITLE) {
|
||||||
|
out.writeString(this.title.toJsonString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.action == BossBarAction.ADD || this.action == BossBarAction.UPDATE_HEALTH) {
|
||||||
|
out.writeFloat(this.health);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.action == BossBarAction.ADD || this.action == BossBarAction.UPDATE_STYLE) {
|
||||||
|
out.writeVarInt(MagicValues.value(Integer.class, this.color));
|
||||||
|
out.writeVarInt(this.dividers);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.action == BossBarAction.ADD || this.action == BossBarAction.UPDATE_FLAGS) {
|
||||||
|
out.writeByte(this.flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPriority() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package org.spacehq.mc.protocol.packet.ingame.server;
|
||||||
|
|
||||||
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
import org.spacehq.mc.protocol.data.game.values.MagicValues;
|
||||||
import org.spacehq.mc.protocol.data.game.values.entity.player.CombatState;
|
import org.spacehq.mc.protocol.data.game.values.entity.player.CombatState;
|
||||||
|
import org.spacehq.mc.protocol.data.message.Message;
|
||||||
import org.spacehq.packetlib.io.NetInput;
|
import org.spacehq.packetlib.io.NetInput;
|
||||||
import org.spacehq.packetlib.io.NetOutput;
|
import org.spacehq.packetlib.io.NetOutput;
|
||||||
import org.spacehq.packetlib.packet.Packet;
|
import org.spacehq.packetlib.packet.Packet;
|
||||||
|
@ -14,7 +15,7 @@ public class ServerCombatPacket implements Packet {
|
||||||
private int entityId;
|
private int entityId;
|
||||||
private int duration;
|
private int duration;
|
||||||
private int playerId;
|
private int playerId;
|
||||||
private String message;
|
private Message message;
|
||||||
|
|
||||||
public ServerCombatPacket() {
|
public ServerCombatPacket() {
|
||||||
this.state = CombatState.ENTER_COMBAT;
|
this.state = CombatState.ENTER_COMBAT;
|
||||||
|
@ -26,7 +27,7 @@ public class ServerCombatPacket implements Packet {
|
||||||
this.duration = duration;
|
this.duration = duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerCombatPacket(int entityId, int playerId, String message) {
|
public ServerCombatPacket(int entityId, int playerId, Message message) {
|
||||||
this.state = CombatState.ENTITY_DEAD;
|
this.state = CombatState.ENTITY_DEAD;
|
||||||
this.entityId = entityId;
|
this.entityId = entityId;
|
||||||
this.playerId = playerId;
|
this.playerId = playerId;
|
||||||
|
@ -49,7 +50,7 @@ public class ServerCombatPacket implements Packet {
|
||||||
return this.playerId;
|
return this.playerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMessage() {
|
public Message getMessage() {
|
||||||
return this.message;
|
return this.message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +63,7 @@ public class ServerCombatPacket implements Packet {
|
||||||
} else if(this.state == CombatState.ENTITY_DEAD) {
|
} else if(this.state == CombatState.ENTITY_DEAD) {
|
||||||
this.playerId = in.readVarInt();
|
this.playerId = in.readVarInt();
|
||||||
this.entityId = in.readInt();
|
this.entityId = in.readInt();
|
||||||
this.message = in.readString();
|
this.message = Message.fromString(in.readString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,7 +76,7 @@ public class ServerCombatPacket implements Packet {
|
||||||
} else if(this.state == CombatState.ENTITY_DEAD) {
|
} else if(this.state == CombatState.ENTITY_DEAD) {
|
||||||
out.writeVarInt(this.playerId);
|
out.writeVarInt(this.playerId);
|
||||||
out.writeInt(this.entityId);
|
out.writeInt(this.entityId);
|
||||||
out.writeString(this.message);
|
out.writeString(this.message.toJsonString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,14 +39,14 @@ public class ServerEntityEquipmentPacket implements Packet {
|
||||||
@Override
|
@Override
|
||||||
public void read(NetInput in) throws IOException {
|
public void read(NetInput in) throws IOException {
|
||||||
this.entityId = in.readVarInt();
|
this.entityId = in.readVarInt();
|
||||||
this.slot = in.readShort();
|
this.slot = in.readVarInt();
|
||||||
this.item = NetUtil.readItem(in);
|
this.item = NetUtil.readItem(in);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(NetOutput out) throws IOException {
|
public void write(NetOutput out) throws IOException {
|
||||||
out.writeVarInt(this.entityId);
|
out.writeVarInt(this.entityId);
|
||||||
out.writeShort(this.slot);
|
out.writeVarInt(this.slot);
|
||||||
NetUtil.writeItem(out, this.item);
|
NetUtil.writeItem(out, this.item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
package org.spacehq.mc.protocol.packet.ingame.server.entity;
|
|
||||||
|
|
||||||
import org.spacehq.mc.protocol.util.NetUtil;
|
|
||||||
import org.spacehq.opennbt.tag.builtin.CompoundTag;
|
|
||||||
import org.spacehq.packetlib.io.NetInput;
|
|
||||||
import org.spacehq.packetlib.io.NetOutput;
|
|
||||||
import org.spacehq.packetlib.packet.Packet;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class ServerEntityNBTUpdatePacket implements Packet {
|
|
||||||
private int entityId;
|
|
||||||
private CompoundTag tag;
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private ServerEntityNBTUpdatePacket() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public ServerEntityNBTUpdatePacket(int entityId, CompoundTag tag) {
|
|
||||||
this.entityId = entityId;
|
|
||||||
this.tag = tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getEntityId() {
|
|
||||||
return this.entityId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CompoundTag getTag() {
|
|
||||||
return this.tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void read(NetInput in) throws IOException {
|
|
||||||
this.entityId = in.readVarInt();
|
|
||||||
this.tag = NetUtil.readNBT(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void write(NetOutput out) throws IOException {
|
|
||||||
out.writeVarInt(this.entityId);
|
|
||||||
NetUtil.writeNBT(out, this.tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isPriority() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -9,10 +9,12 @@ import org.spacehq.packetlib.io.NetOutput;
|
||||||
import org.spacehq.packetlib.packet.Packet;
|
import org.spacehq.packetlib.packet.Packet;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ServerSpawnMobPacket implements Packet {
|
public class ServerSpawnMobPacket implements Packet {
|
||||||
|
|
||||||
private int entityId;
|
private int entityId;
|
||||||
|
private UUID uuid;
|
||||||
private MobType type;
|
private MobType type;
|
||||||
private double x;
|
private double x;
|
||||||
private double y;
|
private double y;
|
||||||
|
@ -29,8 +31,9 @@ public class ServerSpawnMobPacket implements Packet {
|
||||||
private ServerSpawnMobPacket() {
|
private ServerSpawnMobPacket() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerSpawnMobPacket(int entityId, MobType type, double x, double y, double z, float yaw, float pitch, float headYaw, double motX, double motY, double motZ, EntityMetadata metadata[]) {
|
public ServerSpawnMobPacket(int entityId, UUID uuid, MobType type, double x, double y, double z, float yaw, float pitch, float headYaw, double motX, double motY, double motZ, EntityMetadata metadata[]) {
|
||||||
this.entityId = entityId;
|
this.entityId = entityId;
|
||||||
|
this.uuid = uuid;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.x = x;
|
this.x = x;
|
||||||
this.y = y;
|
this.y = y;
|
||||||
|
@ -48,6 +51,10 @@ public class ServerSpawnMobPacket implements Packet {
|
||||||
return this.entityId;
|
return this.entityId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UUID getUUID() {
|
||||||
|
return this.uuid;
|
||||||
|
}
|
||||||
|
|
||||||
public MobType getType() {
|
public MobType getType() {
|
||||||
return this.type;
|
return this.type;
|
||||||
}
|
}
|
||||||
|
@ -95,6 +102,7 @@ public class ServerSpawnMobPacket implements Packet {
|
||||||
@Override
|
@Override
|
||||||
public void read(NetInput in) throws IOException {
|
public void read(NetInput in) throws IOException {
|
||||||
this.entityId = in.readVarInt();
|
this.entityId = in.readVarInt();
|
||||||
|
this.uuid = in.readUUID();
|
||||||
this.type = MagicValues.key(MobType.class, in.readByte());
|
this.type = MagicValues.key(MobType.class, in.readByte());
|
||||||
this.x = in.readInt() / 32D;
|
this.x = in.readInt() / 32D;
|
||||||
this.y = in.readInt() / 32D;
|
this.y = in.readInt() / 32D;
|
||||||
|
@ -111,6 +119,7 @@ public class ServerSpawnMobPacket implements Packet {
|
||||||
@Override
|
@Override
|
||||||
public void write(NetOutput out) throws IOException {
|
public void write(NetOutput out) throws IOException {
|
||||||
out.writeVarInt(this.entityId);
|
out.writeVarInt(this.entityId);
|
||||||
|
out.writeUUID(this.uuid);
|
||||||
out.writeByte(MagicValues.value(Integer.class, this.type));
|
out.writeByte(MagicValues.value(Integer.class, this.type));
|
||||||
out.writeInt((int) (this.x * 32));
|
out.writeInt((int) (this.x * 32));
|
||||||
out.writeInt((int) (this.y * 32));
|
out.writeInt((int) (this.y * 32));
|
||||||
|
|
|
@ -13,10 +13,12 @@ import org.spacehq.packetlib.io.NetOutput;
|
||||||
import org.spacehq.packetlib.packet.Packet;
|
import org.spacehq.packetlib.packet.Packet;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ServerSpawnObjectPacket implements Packet {
|
public class ServerSpawnObjectPacket implements Packet {
|
||||||
|
|
||||||
private int entityId;
|
private int entityId;
|
||||||
|
private UUID uuid;
|
||||||
private ObjectType type;
|
private ObjectType type;
|
||||||
private double x;
|
private double x;
|
||||||
private double y;
|
private double y;
|
||||||
|
@ -32,21 +34,21 @@ public class ServerSpawnObjectPacket implements Packet {
|
||||||
private ServerSpawnObjectPacket() {
|
private ServerSpawnObjectPacket() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerSpawnObjectPacket(int entityId, ObjectType type, double x, double y, double z, float yaw, float pitch) {
|
public ServerSpawnObjectPacket(int entityId, UUID uuid, ObjectType type, double x, double y, double z, float yaw, float pitch) {
|
||||||
this(entityId, type, null, x, y, z, yaw, pitch, 0, 0, 0);
|
this(entityId, uuid, type, null, x, y, z, yaw, pitch, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerSpawnObjectPacket(int entityId, ObjectType type, ObjectData data, double x, double y, double z, float yaw, float pitch) {
|
public ServerSpawnObjectPacket(int entityId, UUID uuid, ObjectType type, ObjectData data, double x, double y, double z, float yaw, float pitch) {
|
||||||
this(entityId, type, data, x, y, z, yaw, pitch, 0, 0, 0);
|
this(entityId, uuid, type, data, x, y, z, yaw, pitch, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerSpawnObjectPacket(int entityId, ObjectType type, double x, double y, double z, float yaw, float pitch, double motX, double motY, double motZ) {
|
public ServerSpawnObjectPacket(int entityId, UUID uuid, ObjectType type, double x, double y, double z, float yaw, float pitch, double motX, double motY, double motZ) {
|
||||||
this(entityId, type, new ObjectData() {
|
this(entityId, uuid, type, new ObjectData() {}, x, y, z, yaw, pitch, motX, motY, motZ);
|
||||||
}, x, y, z, yaw, pitch, motX, motY, motZ);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerSpawnObjectPacket(int entityId, ObjectType type, ObjectData data, double x, double y, double z, float yaw, float pitch, double motX, double motY, double motZ) {
|
public ServerSpawnObjectPacket(int entityId, UUID uuid, ObjectType type, ObjectData data, double x, double y, double z, float yaw, float pitch, double motX, double motY, double motZ) {
|
||||||
this.entityId = entityId;
|
this.entityId = entityId;
|
||||||
|
this.uuid = uuid;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.data = data;
|
this.data = data;
|
||||||
this.x = x;
|
this.x = x;
|
||||||
|
@ -63,6 +65,10 @@ public class ServerSpawnObjectPacket implements Packet {
|
||||||
return this.entityId;
|
return this.entityId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UUID getUUID() {
|
||||||
|
return this.uuid;
|
||||||
|
}
|
||||||
|
|
||||||
public ObjectType getType() {
|
public ObjectType getType() {
|
||||||
return this.type;
|
return this.type;
|
||||||
}
|
}
|
||||||
|
@ -106,12 +112,14 @@ public class ServerSpawnObjectPacket implements Packet {
|
||||||
@Override
|
@Override
|
||||||
public void read(NetInput in) throws IOException {
|
public void read(NetInput in) throws IOException {
|
||||||
this.entityId = in.readVarInt();
|
this.entityId = in.readVarInt();
|
||||||
|
this.uuid = in.readUUID();
|
||||||
this.type = MagicValues.key(ObjectType.class, in.readByte());
|
this.type = MagicValues.key(ObjectType.class, in.readByte());
|
||||||
this.x = in.readInt() / 32D;
|
this.x = in.readInt() / 32D;
|
||||||
this.y = in.readInt() / 32D;
|
this.y = in.readInt() / 32D;
|
||||||
this.z = in.readInt() / 32D;
|
this.z = in.readInt() / 32D;
|
||||||
this.pitch = in.readByte() * 360 / 256f;
|
this.pitch = in.readByte() * 360 / 256f;
|
||||||
this.yaw = in.readByte() * 360 / 256f;
|
this.yaw = in.readByte() * 360 / 256f;
|
||||||
|
|
||||||
int data = in.readInt();
|
int data = in.readInt();
|
||||||
if(data > 0) {
|
if(data > 0) {
|
||||||
if(this.type == ObjectType.MINECART) {
|
if(this.type == ObjectType.MINECART) {
|
||||||
|
@ -128,22 +136,24 @@ public class ServerSpawnObjectPacket implements Packet {
|
||||||
this.data = new ObjectData() {
|
this.data = new ObjectData() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
this.motX = in.readShort() / 8000D;
|
|
||||||
this.motY = in.readShort() / 8000D;
|
|
||||||
this.motZ = in.readShort() / 8000D;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.motX = in.readShort() / 8000D;
|
||||||
|
this.motY = in.readShort() / 8000D;
|
||||||
|
this.motZ = in.readShort() / 8000D;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(NetOutput out) throws IOException {
|
public void write(NetOutput out) throws IOException {
|
||||||
out.writeVarInt(this.entityId);
|
out.writeVarInt(this.entityId);
|
||||||
|
out.writeUUID(this.uuid);
|
||||||
out.writeByte(MagicValues.value(Integer.class, this.type));
|
out.writeByte(MagicValues.value(Integer.class, this.type));
|
||||||
out.writeInt((int) (this.x * 32));
|
out.writeInt((int) (this.x * 32));
|
||||||
out.writeInt((int) (this.y * 32));
|
out.writeInt((int) (this.y * 32));
|
||||||
out.writeInt((int) (this.z * 32));
|
out.writeInt((int) (this.z * 32));
|
||||||
out.writeByte((byte) (this.pitch * 256 / 360));
|
out.writeByte((byte) (this.pitch * 256 / 360));
|
||||||
out.writeByte((byte) (this.yaw * 256 / 360));
|
out.writeByte((byte) (this.yaw * 256 / 360));
|
||||||
|
|
||||||
int data = 0;
|
int data = 0;
|
||||||
if(this.data != null) {
|
if(this.data != null) {
|
||||||
if(this.data instanceof MinecartType) {
|
if(this.data instanceof MinecartType) {
|
||||||
|
@ -162,11 +172,10 @@ public class ServerSpawnObjectPacket implements Packet {
|
||||||
}
|
}
|
||||||
|
|
||||||
out.writeInt(data);
|
out.writeInt(data);
|
||||||
if(data > 0) {
|
|
||||||
out.writeShort((int) (this.motX * 8000));
|
out.writeShort((int) (this.motX * 8000));
|
||||||
out.writeShort((int) (this.motY * 8000));
|
out.writeShort((int) (this.motY * 8000));
|
||||||
out.writeShort((int) (this.motZ * 8000));
|
out.writeShort((int) (this.motZ * 8000));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -18,14 +18,13 @@ public class ServerSpawnPlayerPacket implements Packet {
|
||||||
private double z;
|
private double z;
|
||||||
private float yaw;
|
private float yaw;
|
||||||
private float pitch;
|
private float pitch;
|
||||||
private int currentItem;
|
|
||||||
private EntityMetadata metadata[];
|
private EntityMetadata metadata[];
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private ServerSpawnPlayerPacket() {
|
private ServerSpawnPlayerPacket() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerSpawnPlayerPacket(int entityId, UUID uuid, double x, double y, double z, float yaw, float pitch, int currentItem, EntityMetadata metadata[]) {
|
public ServerSpawnPlayerPacket(int entityId, UUID uuid, double x, double y, double z, float yaw, float pitch, EntityMetadata metadata[]) {
|
||||||
this.entityId = entityId;
|
this.entityId = entityId;
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
this.x = x;
|
this.x = x;
|
||||||
|
@ -33,7 +32,6 @@ public class ServerSpawnPlayerPacket implements Packet {
|
||||||
this.z = z;
|
this.z = z;
|
||||||
this.yaw = yaw;
|
this.yaw = yaw;
|
||||||
this.pitch = pitch;
|
this.pitch = pitch;
|
||||||
this.currentItem = currentItem;
|
|
||||||
this.metadata = metadata;
|
this.metadata = metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,10 +63,6 @@ public class ServerSpawnPlayerPacket implements Packet {
|
||||||
return this.pitch;
|
return this.pitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getCurrentItem() {
|
|
||||||
return this.currentItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
public EntityMetadata[] getMetadata() {
|
public EntityMetadata[] getMetadata() {
|
||||||
return this.metadata;
|
return this.metadata;
|
||||||
}
|
}
|
||||||
|
@ -82,7 +76,6 @@ public class ServerSpawnPlayerPacket implements Packet {
|
||||||
this.z = in.readInt() / 32D;
|
this.z = in.readInt() / 32D;
|
||||||
this.yaw = in.readByte() * 360 / 256f;
|
this.yaw = in.readByte() * 360 / 256f;
|
||||||
this.pitch = in.readByte() * 360 / 256f;
|
this.pitch = in.readByte() * 360 / 256f;
|
||||||
this.currentItem = in.readShort();
|
|
||||||
this.metadata = NetUtil.readEntityMetadata(in);
|
this.metadata = NetUtil.readEntityMetadata(in);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +88,6 @@ public class ServerSpawnPlayerPacket implements Packet {
|
||||||
out.writeInt((int) (this.z * 32));
|
out.writeInt((int) (this.z * 32));
|
||||||
out.writeByte((byte) (this.yaw * 256 / 360));
|
out.writeByte((byte) (this.yaw * 256 / 360));
|
||||||
out.writeByte((byte) (this.pitch * 256 / 360));
|
out.writeByte((byte) (this.pitch * 256 / 360));
|
||||||
out.writeShort(this.currentItem);
|
|
||||||
NetUtil.writeEntityMetadata(out, this.metadata);
|
NetUtil.writeEntityMetadata(out, this.metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue