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");
}
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();
}
}
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;
}
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);
}
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));
}
Aggregations