use of net.minecraft.server.v1_16_R3.Packet in project WLib by WizardlyBump17.
the class PacketListener method entityMetadata.
@SneakyThrows
private void entityMetadata(World world, PacketContainer packet, PacketPlayOutEntityMetadata handle) {
final Entity entity = packet.getEntityModifier(world).read(0);
if (!(entity instanceof org.bukkit.entity.Item))
return;
final ItemStack itemStack = ((org.bukkit.entity.Item) entity).getItemStack().clone();
if (!isValidItem(itemStack))
return;
final Field field = handle.getClass().getDeclaredField("b");
field.setAccessible(true);
List<DataWatcher.Item<?>> items = new ArrayList<>((List<DataWatcher.Item<?>>) field.get(handle));
final DataWatcher.Item<?> item;
int index;
if (items.size() == 8)
// new item
item = items.get(index = 6).d();
else
// item merge
item = items.get(index = 0).d();
final Field itemField = item.getClass().getDeclaredField("b");
itemField.setAccessible(true);
itemField.set(item, CraftItemStack.asNMSCopy(fixItem(itemStack)));
items.set(index, item);
field.set(handle, items);
}
use of net.minecraft.server.v1_16_R3.Packet in project WLib by WizardlyBump17.
the class EntityAdapter method sendPacket.
@Override
public void sendPacket(Object... packets) {
if (!(entity instanceof Player))
return;
EntityPlayer player = ((CraftPlayer) entity).getHandle();
PlayerConnection connection = player.playerConnection;
for (Object packet : packets) {
if (!(packet instanceof Packet))
continue;
connection.sendPacket(((Packet<?>) packet));
}
}
Aggregations