Search in sources :

Example 61 with Packet

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);
}
Also used : Entity(org.bukkit.entity.Entity) Field(java.lang.reflect.Field) ArrayList(java.util.ArrayList) ItemStack(org.bukkit.inventory.ItemStack) CraftItemStack(org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack) DataWatcher(net.minecraft.server.v1_16_R3.DataWatcher) SneakyThrows(lombok.SneakyThrows)

Example 62 with Packet

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));
    }
}
Also used : Packet(net.minecraft.server.v1_13_R2.Packet) CraftPlayer(org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer) Player(org.bukkit.entity.Player) EntityPlayer(net.minecraft.server.v1_13_R2.EntityPlayer) EntityPlayer(net.minecraft.server.v1_13_R2.EntityPlayer) CraftPlayer(org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer) PlayerConnection(net.minecraft.server.v1_13_R2.PlayerConnection)

Aggregations

GameProfile (com.mojang.authlib.GameProfile)10 Location (org.bukkit.Location)9 Player (org.bukkit.entity.Player)9 ArrayList (java.util.ArrayList)8 CraftPlayer (org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer)8 ParallelWorld (thpmc.engine.api.world.parallel.ParallelWorld)5 Packet (com.yahoo.fs4.Packet)4 List (java.util.List)4 EntityPlayer (net.minecraft.server.v1_16_R3.EntityPlayer)4 PacketPlayOutPlayerInfo (net.minecraft.server.v1_16_R3.PacketPlayOutPlayerInfo)4 ParallelUniverse (thpmc.engine.api.world.parallel.ParallelUniverse)4 BasicPacket (com.yahoo.fs4.BasicPacket)3 ChannelTimeoutException (com.yahoo.fs4.ChannelTimeoutException)3 QueryPacket (com.yahoo.fs4.QueryPacket)3 Packet (ejip123.Packet)3 PacketPlayOutEntityLook (net.minecraft.server.v1_16_R3.PacketPlayOutEntity.PacketPlayOutEntityLook)3 CraftBlockData (org.bukkit.craftbukkit.v1_16_R3.block.data.CraftBlockData)3 SectionTypeArray (thpmc.engine.util.SectionTypeArray)3 Pair (com.mojang.datafixers.util.Pair)2 GetDocSumsPacket (com.yahoo.fs4.GetDocSumsPacket)2