Search in sources :

Example 56 with Item

use of net.minecraft.server.v1_16_R3.Item in project SilkSpawners by timbru31.

the class NMSHandler method getSilkSpawnersNBTEntityID.

@Override
@Nullable
public String getSilkSpawnersNBTEntityID(final ItemStack item) {
    net.minecraft.server.v1_16_R3.ItemStack itemStack = null;
    final CraftItemStack craftStack = CraftItemStack.asCraftCopy(item);
    itemStack = CraftItemStack.asNMSCopy(craftStack);
    final NBTTagCompound tag = itemStack.getTag();
    if (tag == null || !tag.hasKey("SilkSpawners")) {
        return null;
    }
    return tag.getCompound("SilkSpawners").getString("entity");
}
Also used : CraftItemStack(org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack) NBTTagCompound(net.minecraft.server.v1_16_R3.NBTTagCompound) Nullable(javax.annotation.Nullable)

Example 57 with Item

use of net.minecraft.server.v1_16_R3.Item in project SilkSpawners by timbru31.

the class NMSHandler method setSpawnersUnstackable.

@Override
public void setSpawnersUnstackable() {
    try {
        final Item spawner = IRegistry.ITEM.get(new MinecraftKey(NAMESPACED_SPAWNER_ID));
        final Field maxStackSize = Item.class.getDeclaredField("maxStackSize");
        maxStackSize.setAccessible(true);
        maxStackSize.set(spawner, 1);
    } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
        e.printStackTrace();
    }
}
Also used : Item(net.minecraft.server.v1_16_R3.Item) Field(java.lang.reflect.Field) MinecraftKey(net.minecraft.server.v1_16_R3.MinecraftKey)

Example 58 with Item

use of net.minecraft.server.v1_16_R3.Item in project SilkSpawners by timbru31.

the class NMSHandler method getVanillaEggNBTEntityID.

@Override
public String getVanillaEggNBTEntityID(final ItemStack item) {
    net.minecraft.server.v1_16_R3.ItemStack itemStack = null;
    final CraftItemStack craftStack = CraftItemStack.asCraftCopy(item);
    itemStack = CraftItemStack.asNMSCopy(craftStack);
    NBTTagCompound tag = itemStack.getTag();
    if (tag == null || !tag.hasKey("EntityTag")) {
        final MinecraftKey vanillaKey = IRegistry.ITEM.getKey(itemStack.getItem());
        if (vanillaKey != null) {
            return vanillaKey.getKey().replace("minecraft:", "").replace("_spawn_egg", "");
        }
    } else {
        tag = tag.getCompound("EntityTag");
        if (tag.hasKey("id")) {
            return tag.getString("id").replace("minecraft:", "");
        }
    }
    return null;
}
Also used : CraftItemStack(org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack) NBTTagCompound(net.minecraft.server.v1_16_R3.NBTTagCompound) MinecraftKey(net.minecraft.server.v1_16_R3.MinecraftKey)

Example 59 with Item

use of net.minecraft.server.v1_16_R3.Item 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 60 with Item

use of net.minecraft.server.v1_16_R3.Item in project PaperDev by Kamillaova.

the class MaterialTest method verifyMapping.

@Test
public void verifyMapping() {
    Map<Integer, Material> materials = Maps.newHashMap();
    for (Material material : Material.values()) {
        if (INVALIDATED_MATERIALS.contains(material)) {
            continue;
        }
        materials.put(material.getId(), material);
    }
    Iterator<Item> items = Item.REGISTRY.iterator();
    while (items.hasNext()) {
        Item item = items.next();
        if (item == null)
            continue;
        int id = CraftMagicNumbers.getId(item);
        String name = item.getName();
        Material material = materials.remove(id);
        assertThat("Missing " + name + "(" + id + ")", material, is(not(nullValue())));
    }
    assertThat(materials, is(Collections.EMPTY_MAP));
}
Also used : Item(net.minecraft.server.v1_12_R1.Item) Test(org.junit.Test)

Aggregations

Item (org.orcid.jaxb.model.notification.permission_v2.Item)19 CraftItemStack (org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack)14 ItemStack (org.bukkit.inventory.ItemStack)12 Field (java.lang.reflect.Field)7 Test (org.junit.Test)7 ExternalID (org.orcid.jaxb.model.record_v2.ExternalID)7 NBTTagCompound (net.minecraft.server.v1_16_R3.NBTTagCompound)6 CraftPlayer (org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer)6 ArrayList (java.util.ArrayList)5 Item (net.minecraft.server.v1_12_R1.Item)5 Items (org.orcid.jaxb.model.notification.permission_v2.Items)5 CraftFakePlayerImpl (com.denizenscript.denizen.nms.v1_16.impl.entities.CraftFakePlayerImpl)2 EntityItemProjectileImpl (com.denizenscript.denizen.nms.v1_16.impl.entities.EntityItemProjectileImpl)2 EntityTag (com.denizenscript.denizen.objects.EntityTag)2 ItemTag (com.denizenscript.denizen.objects.ItemTag)2 PlayerTag (com.denizenscript.denizen.objects.PlayerTag)2 FakeEntity (com.denizenscript.denizen.utilities.entity.FakeEntity)2 Mechanism (com.denizenscript.denizencore.objects.Mechanism)2 Font (java.awt.Font)2 Point (java.awt.Point)2