Refine search
@Override public Collection<ItemStack> getDrops(GlowBlock block, ItemStack tool) { List<ItemStack> drops = new LinkedList<>(Arrays.asList(new ItemStack(Material.FLOWER_POT))); GlowBlockState state = block.getState(); if (state instanceof GlowFlowerPot) { MaterialData contents = ((GlowFlowerPot) state).getContents(); if (contents != null) { drops.add(new ItemStack(contents.getItemType(), 1, contents.getData())); } } return Collections.unmodifiableList(drops); }
private void createData(final byte data) { Material mat = Material.getMaterial(type); if (mat == null) { this.data = new MaterialData(type, data); } else { this.data = mat.getNewData(data); } }
@Override public final void setRawData(byte data) { getData().setData(data); }
/** * Create a furnace recipe to craft the specified ItemStack. * * @param result The item you want the recipe to create. * @param source The input material. */ public FurnaceRecipe(ItemStack result, MaterialData source) { this(result, source.getItemType(), source.getData()); }
@Override public boolean equals(Object obj) { if (obj != null && obj instanceof MaterialData) { MaterialData md = (MaterialData) obj; return (md.getItemTypeId() == getItemTypeId() && md.getData() == getData()); } else { return false; } }
public static void saveItem(DataKey key, ItemStack item) { if (item == null) { item = new ItemStack(Material.AIR); } migrateForSave(key); if (SpigotUtil.isUsing1_13API()) { key.setString("type_namespace", item.getType().getKey().getNamespace()); key.setString("type_key", item.getType().getKey().getKey()); } else { key.setString("type", item.getType().name()); } key.setInt("amount", item.getAmount()); key.setInt("durability", item.getDurability()); if (item.getData() != null) { key.setInt("mdata", item.getData().getData()); } if (item.hasItemMeta()) { ItemMeta meta = item.getItemMeta(); serialiseMeta(key.getRelative("meta"), meta); } else { key.removeKey("meta"); } serialiseEnchantments(key.getRelative("enchantments"), item.getEnchantments()); }
@SuppressWarnings("deprecation") public static void displayItem(Player p, final ItemStack item, boolean addToHistory, final boolean book, final int page) { if (item == null || item.getType() == Material.AIR) return; while (iterator.hasNext()) { Recipe r = iterator.next(); if (SlimefunManager.isItemSimiliar(new CustomItem(r.getResult(), 1), item, true) && r.getResult().getData().getData() == item.getData().getData()) recipes.add(r); if (ingredient != null) { MaterialData data = ingredient.getData(); if (ingredient.getData().getData() < 0) data.setData((byte) 0); ingredient = data.toItemStack(ingredient.getAmount()); if (ingredient != null) { MaterialData data = ingredient.getData(); if (ingredient.getData().getData() < 0) data.setData((byte) 0); ingredient = data.toItemStack(ingredient.getAmount()); if (ingredient != null) { MaterialData data = ingredient.getData(); if (ingredient.getData().getData() < 0) data.setData((byte) 0); ingredient = data.toItemStack(ingredient.getAmount()); lore.add(ChatColor.translateAlternateColorCodes('&', "&8\u21E8 &e\u26A1 &7" + (((AGenerator) sfItem).getEnergyProduction() * 2) + " J/s")); lore.add(ChatColor.translateAlternateColorCodes('&', "&8\u21E8 &e\u26A1 &7" + DoubleHandler.getFancyDouble(fuel.getTicks() * ((AGenerator) sfItem).getEnergyProduction()) + " J in total")); im.setLore(lore); fItem.setItemMeta(im); menu.addItem(slot, fItem);
short durability = block.getState().getData().toItemStack(0).getDurability(); Material material = block.getType(); if ("DOUBLE_PLANT".equals(material.name())) { if (durability == 10) { durability = block.getRelative(BlockFace.DOWN).getState().getData().toItemStack(0).getDurability(); return material == Material.GRASS || material.name().endsWith("SAPLING") || material == Material.POTATO && durability < 7 || material == Material.CARROT && durability < 7 || "CROPS".equals(material.name()) && durability < 7 || material == Material.PUMPKIN_STEM && durability < 7 || material == Material.MELON_STEM && durability < 7 || material == Material.BROWN_MUSHROOM
public static SkyKitItem decodeItem(ItemStack itemStack) { Material type = itemStack.getType(); int amount = itemStack.getAmount(); Map<Enchantment, Integer> enchantments = itemStack.getEnchantments(); List<SkyItemMeta> skyMetaList = new ArrayList<>(); byte itemData = itemStack.getData().getData(); if (itemData != 0) { skyMetaList.add(new SkyRawDataMeta(itemData)); ItemMeta itemMeta = itemStack.getItemMeta(); String name = null; if (itemMeta.hasDisplayName()) { name = itemMeta.getDisplayName(); if (itemMeta.hasLore()) { lore = new ArrayList<>(itemMeta.getLore());
@Override public void decorate(World world, Random random, Chunk source) { int sourceX = (source.getX() << 4) + random.nextInt(16); int sourceZ = (source.getZ() << 4) + random.nextInt(16); int sourceY = random.nextInt(128); for (int i = 0; i < 64; i++) { int x = sourceX + random.nextInt(8) - random.nextInt(8); int z = sourceZ + random.nextInt(8) - random.nextInt(8); int y = sourceY + random.nextInt(4) - random.nextInt(4); Block block = world.getBlockAt(x, y, z); Block blockBelow = world.getBlockAt(x, y - 1, z); if (y < 128 && block.getType() == Material.AIR && Arrays.asList(MATERIALS) .contains(blockBelow.getType())) { BlockState state = block.getState(); state.setType(type); state.setData(new MaterialData(type)); state.update(true); } } } }
CraftingManager cm = ((GlowServer) ServerProvider.getServer()).getCraftingManager(); FurnaceBurnEvent burnEvent = new FurnaceBurnEvent(block, inv.getFuel(), cm.getFuelTime(inv.getFuel().getType())); EventFactory.getInstance().callEvent(burnEvent); if (!burnEvent.isCancelled() && burnEvent.isBurning()) { burnTime = (short) burnEvent.getBurnTime(); burnTimeFuel = burnTime; if (inv.getFuel().getAmount() == 1) { if (inv.getFuel().getType().equals(Material.LAVA_BUCKET)) { inv.setFuel(new ItemStack(Material.BUCKET)); } else { EventFactory.getInstance().callEvent(smeltEvent); if (!smeltEvent.isCancelled()) { if (inv.getSmelting().getType().equals(Material.SPONGE) && inv.getSmelting().getData().getData() == 1 && inv.getFuel() != null && inv.getFuel().getType().equals(Material.BUCKET) && inv.getFuel().getAmount() == 1) { inv.setFuel(new ItemStack(Material.WATER_BUCKET));
/** * Generates or extends a cactus, if there is space. */ @Override public boolean generate(World world, Random random, int x, int y, int z) { if (world.getBlockAt(x, y, z).isEmpty()) { int height = random.nextInt(random.nextInt(3) + 1) + 1; for (int n = y; n < y + height; n++) { Block block = world.getBlockAt(x, n, z); Material typeBelow = block.getRelative(BlockFace.DOWN).getType(); if ((typeBelow == Material.SAND || typeBelow == Material.CACTUS) && block.getRelative(BlockFace.UP).isEmpty()) { for (BlockFace face : FACES) { if (block.getRelative(face).getType().isSolid()) { return n > y; } } BlockState state = block.getState(); state.setType(Material.CACTUS); state.setData(new MaterialData(Material.CACTUS)); state.update(true); } } } return true; } }
return false; if (item.getType() != material) { return false; ItemMeta meta = item.getItemMeta(); if (!durability.check(item.getDurability())) { return false; if (!data.check(item.getData().getData())) { return false; if (!name.check(meta.getDisplayName())) { return false; if (!lore.check(meta.getLore())) { return false; if (!unbreakable.check(meta.isUnbreakable())) { return false;
private int countAllItems(Inventory inventory, Material material, int data, int maxCount) { if (material == null) { return Arrays.stream(inventory.getContents()) .filter(stack -> !InventoryUtil.isEmpty(stack)).mapToInt(ItemStack::getAmount) .sum(); } int count = 0; for (ItemStack stack : inventory.getContents()) { if (stack.getType() == material && (data == -1 || data == stack.getData().getData()) && (maxCount == -1 || maxCount == 0 || count < maxCount)) { if (maxCount == -1 || maxCount == 0) { count += stack.getAmount(); } else { for (int i = 0; i < stack.getAmount(); i++) { if (count < maxCount) { count++; } else { return count; } } } } } return count; }
int i = matrixRow * 3 + matrixColumn; ItemStack ingredient = matrix[i]; if (ingredient != null && ingredient.getType() != Material.AIR) { rows[matrixRow] = true; break; int i = matrixRow * 3 + matrixColumn; ItemStack ingredient = matrix[i]; if (ingredient != null && ingredient.getType() != Material.AIR) { columns[matrixColumn] = true; break; int i = matrixRow * 3 + matrixColumn; ItemStack ingredient = matrix[i]; if (ingredient != null && ingredient.getType() == Material.AIR) { ingredient = null; return MatchType.NONE; if (ingredient.getDurability() != item.getMaterialData().getData()) { return MatchType.NONE; if (meta.hasDisplayName() && (!ingredientMeta.hasDisplayName() || !meta.getDisplayName().equals(ingredientMeta.getDisplayName()))) { return MatchType.PARTIAL;
/** * @param event */ @EventHandler(priority = EventPriority.HIGH) public void onPrepareItemCraftEvent(PrepareItemCraftEvent event) { ItemStack is = event.getInventory().getResult(); if (is == null) { return; } BlockTypeEntry type = new BlockTypeEntry(is.getTypeId(), is.getData().getData()); FieldSettings settings = plugin.getSettingsManager().getFieldSettings(type); if (settings != null && settings.hasMetaName() && settings.isMetaAutoSet()) { HumanEntity entity = event.getView().getPlayer(); if (entity instanceof Player) { Player player = (Player) entity; PlayerEntry playerEntry = plugin.getPlayerManager().getPlayerEntry(player); if (playerEntry.isDisabled()) { return; } } ItemMeta meta = is.getItemMeta(); meta.setDisplayName(settings.getMetaName()); meta.setLore(settings.getMetaLore()); is.setItemMeta(meta); event.getInventory().setResult(is); } }
if (y < 255 && block.getType() == Material.AIR) { boolean canPlaceShroom; switch (blockBelow.getType()) { case MYCEL: canPlaceShroom = true; break; case GRASS: canPlaceShroom = (block.getLightLevel() < 13); break; case DIRT: MaterialData data = blockBelow.getState().getData(); if (data instanceof Dirt) { canPlaceShroom = (((Dirt) data).getType() == DirtType.PODZOL BlockState state = block.getState(); state.setType(type); state.setData(new MaterialData(type)); state.update(true);
sourceY--; Block block = world.getBlockAt(sourceX, sourceY, sourceZ); if (block.isEmpty()) { continue; if (GROUND_TYPES.contains(block.getType())) { groundReached = true; sourceY++; if (!groundReached || !world.getBlockAt(sourceX, sourceY, sourceZ).isEmpty()) { return false; .getBlockAt(sourceX + x, sourceY + y, sourceZ + z).getState(); if (!TerrainObject.killPlantAbove(state.getBlock())) { state.setType(Material.MOSSY_COBBLESTONE); state.setData(new MaterialData(Material.MOSSY_COBBLESTONE)); state.update(true);
public static void revertSand(final Block block) { final MaterialData materialdata = SAND_ID_ENTITIES.get(block); SAND_ID_ENTITIES.remove(block); SAND_BLOCKS.remove(block); if (block.getType() == Material.SAND) { block.setType(materialdata.getItemType()); block.setData(materialdata.getData()); } }
public static ItemStack loadItemStack(DataKey root) { Material material = null; if (root.keyExists("type_key")) { NamespacedKey key = new NamespacedKey(root.getString("type_namespace"), root.getString("type_key")); material = Material.getMaterial(key.getKey().toUpperCase(), false); } else { String raw = root.getString("type", root.getString("id")); if (raw == null || raw.length() == 0) { return null; } material = SpigotUtil.isUsing1_13API() ? Material.matchMaterial(raw, true) : Material.matchMaterial(raw); } if (material == null || material == Material.AIR) { return null; } ItemStack res = new ItemStack(material, root.getInt("amount"), (short) (root.getInt("durability", root.getInt("data", 0)))); if (root.keyExists("mdata") && res.getData() != null) { res.getData().setData((byte) root.getInt("mdata")); // TODO: what to migrate to? } if (root.keyExists("enchantments")) { Map<Enchantment, Integer> enchantments = deserialiseEnchantments(root.getRelative("enchantments"), res); res.addEnchantments(enchantments); } deserialiseMeta(root.getRelative("meta"), res); return res; }