use of net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment in project InteractionVisualizer by LOOHP.
the class V1_16 method createEntityEquipmentPacket.
@Override
public PacketContainer[] createEntityEquipmentPacket(int entityId, List<ValuePairs<EquipmentSlot, ItemStack>> equipments) {
List<Pair<EnumItemSlot, net.minecraft.server.v1_16_R1.ItemStack>> nmsList = new ArrayList<>();
for (ValuePairs<EquipmentSlot, ItemStack> pair : equipments) {
EnumItemSlot nmsSlot;
switch(pair.getFirst()) {
case CHEST:
nmsSlot = EnumItemSlot.CHEST;
break;
case FEET:
nmsSlot = EnumItemSlot.FEET;
break;
case HEAD:
nmsSlot = EnumItemSlot.HEAD;
break;
case LEGS:
nmsSlot = EnumItemSlot.LEGS;
break;
case OFF_HAND:
nmsSlot = EnumItemSlot.OFFHAND;
break;
case HAND:
default:
nmsSlot = EnumItemSlot.MAINHAND;
break;
}
net.minecraft.server.v1_16_R1.ItemStack nmsItem = CraftItemStack.asNMSCopy(pair.getSecond());
nmsList.add(new Pair<>(nmsSlot, nmsItem));
}
PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment(entityId, nmsList);
return new PacketContainer[] { PacketContainer.fromPacket(packet) };
}
use of net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment in project InteractionVisualizer by LOOHP.
the class V1_16_2 method createEntityEquipmentPacket.
@Override
public PacketContainer[] createEntityEquipmentPacket(int entityId, List<ValuePairs<EquipmentSlot, ItemStack>> equipments) {
List<Pair<EnumItemSlot, net.minecraft.server.v1_16_R2.ItemStack>> nmsList = new ArrayList<>();
for (ValuePairs<EquipmentSlot, ItemStack> pair : equipments) {
EnumItemSlot nmsSlot;
switch(pair.getFirst()) {
case CHEST:
nmsSlot = EnumItemSlot.CHEST;
break;
case FEET:
nmsSlot = EnumItemSlot.FEET;
break;
case HEAD:
nmsSlot = EnumItemSlot.HEAD;
break;
case LEGS:
nmsSlot = EnumItemSlot.LEGS;
break;
case OFF_HAND:
nmsSlot = EnumItemSlot.OFFHAND;
break;
case HAND:
default:
nmsSlot = EnumItemSlot.MAINHAND;
break;
}
net.minecraft.server.v1_16_R2.ItemStack nmsItem = CraftItemStack.asNMSCopy(pair.getSecond());
nmsList.add(new Pair<>(nmsSlot, nmsItem));
}
PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment(entityId, nmsList);
return new PacketContainer[] { PacketContainer.fromPacket(packet) };
}
use of net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment in project InteractionVisualizer by LOOHP.
the class V1_16_4 method createEntityEquipmentPacket.
@Override
public PacketContainer[] createEntityEquipmentPacket(int entityId, List<ValuePairs<EquipmentSlot, ItemStack>> equipments) {
List<Pair<EnumItemSlot, net.minecraft.server.v1_16_R3.ItemStack>> nmsList = new ArrayList<>();
for (ValuePairs<EquipmentSlot, ItemStack> pair : equipments) {
EnumItemSlot nmsSlot;
switch(pair.getFirst()) {
case CHEST:
nmsSlot = EnumItemSlot.CHEST;
break;
case FEET:
nmsSlot = EnumItemSlot.FEET;
break;
case HEAD:
nmsSlot = EnumItemSlot.HEAD;
break;
case LEGS:
nmsSlot = EnumItemSlot.LEGS;
break;
case OFF_HAND:
nmsSlot = EnumItemSlot.OFFHAND;
break;
case HAND:
default:
nmsSlot = EnumItemSlot.MAINHAND;
break;
}
net.minecraft.server.v1_16_R3.ItemStack nmsItem = CraftItemStack.asNMSCopy(pair.getSecond());
nmsList.add(new Pair<>(nmsSlot, nmsItem));
}
PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment(entityId, nmsList);
return new PacketContainer[] { PacketContainer.fromPacket(packet) };
}
use of net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment in project CokesAddon by Cokes86.
the class v1_14_R1 method injectPlayer.
public void injectPlayer(Player player) {
CraftPlayer player1 = (CraftPlayer) player;
if (!player.isValid())
return;
if (channelHandlers.containsKey(player.getUniqueId())) {
final Pair<CraftPlayer, ChannelOutboundHandlerAdapter> pair = channelHandlers.get(player.getUniqueId());
if (!pair.getLeft().isValid()) {
try {
pair.getLeft().getHandle().playerConnection.networkManager.channel.pipeline().remove(pair.getRight());
} catch (NoSuchElementException ignored) {
}
} else
return;
}
final ChannelOutboundHandlerAdapter handler = new ChannelOutboundHandlerAdapter() {
@Override
public void write(ChannelHandlerContext ctx, Object packet, ChannelPromise promise) throws Exception {
if (packet instanceof PacketPlayOutEntityEquipment) {
if ((int) ReflectionUtil.FieldUtil.getValue(packet, "a") == getPlayer().getEntityId()) {
ReflectionUtil.FieldUtil.setValue(packet, "c", ItemStack.a);
}
} else if (packet instanceof PacketPlayOutEntityMetadata) {
if ((int) ReflectionUtil.FieldUtil.getValue(packet, "a") == getPlayer().getEntityId()) {
List<Item<?>> items = ReflectionUtil.FieldUtil.getValue(packet, "b");
if (items.size() != 0) {
Item<?> item = items.get(0);
if (BYTE_DATA_WATCHER_OBJECT.equals(item.a())) {
Item<Byte> byteItem = (Item<Byte>) item;
byteItem.a((byte) (byteItem.b() | 1 << 5));
((CraftPlayer) getPlayer()).getHandle().setInvisible(true);
}
}
}
}
super.write(ctx, packet, promise);
}
};
channelHandlers.put(player.getUniqueId(), Pair.of(player1, handler));
player1.getHandle().playerConnection.networkManager.channel.pipeline().addBefore("packet_handler", hashCode() + ":" + player.getName(), handler);
}
use of net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment in project MechanicsMain by WeaponMechanics.
the class FakeEntity_1_14_R1 method show.
@Override
public void show(@NotNull Player player) {
PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
if (connections.contains(connection))
throw new IllegalArgumentException();
connection.sendPacket(type.isAlive() ? new PacketPlayOutSpawnEntityLiving((EntityLiving) entity) : new PacketPlayOutSpawnEntity(entity, type == EntityType.FALLING_BLOCK ? Block.getCombinedId(block) : 0));
connection.sendPacket(new PacketPlayOutEntityMetadata(cache, entity.getDataWatcher(), true));
connection.sendPacket(new PacketPlayOutEntityLook(cache, convertYaw(getYaw()), convertPitch(getPitch()), false));
connection.sendPacket(new PacketPlayOutEntityVelocity(cache, new Vec3D(motion.getX(), motion.getY(), motion.getZ())));
connection.sendPacket(new PacketPlayOutEntityHeadRotation(entity, convertYaw(getYaw())));
PacketPlayOutEntityEquipment[] equipment = getEquipmentPacket();
if (equipment != null) {
for (PacketPlayOutEntityEquipment packet : equipment) {
connection.sendPacket(packet);
}
}
// Inject the player's packet connection into this listener, so we can
// show the player position/velocity/rotation changes
connections.add(connection);
}
Aggregations