Java Code Examples for org.bukkit.Material#BOOK_AND_QUILL

The following examples show how to use org.bukkit.Material#BOOK_AND_QUILL . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CraftItemStack.java    From Carbon with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static ItemMeta getItemMeta(net.minecraft.server.v1_7_R4.ItemStack item) {
	if (!hasItemMeta(item)) {
		return CraftItemFactory.instance().getItemMeta(getType(item));
	}
	Material mat = getType(item);
	if (mat == Material.WRITTEN_BOOK || mat == Material.BOOK_AND_QUILL) {
		return new CraftMetaBook(item.tag);
	}
	if (mat == Material.SKULL_ITEM) {
		return new CraftMetaSkull(item.tag);
	}
	if (mat == Material.LEATHER_HELMET || mat == Material.LEATHER_CHESTPLATE || mat == Material.LEATHER_LEGGINGS || mat == Material.LEATHER_BOOTS) {
		return new CraftMetaLeatherArmor(item.tag);
	}
	if (mat == Material.POTION) {
		return new CraftMetaPotion(item.tag);
	}
	if (mat == Material.MAP) {
		return new CraftMetaMap(item.tag);
	}
	if (mat == Material.FIREWORK) {
		return new CraftMetaFirework(item.tag);
	}
	if (mat == Material.FIREWORK_CHARGE) {
		return new CraftMetaCharge(item.tag);
	}
	if (mat == Material.ENCHANTED_BOOK) {
		return new CraftMetaEnchantedBook(item.tag);
	}
	if (mat.toString().equals("BANNER")) {
		return new BannerMeta(item.getData(), item.tag);
	}
	return new CraftMetaItem(item.tag);
}
 
Example 2
Source File: CraftItemFactory.java    From Carbon with GNU Lesser General Public License v3.0 5 votes vote down vote up
private ItemMeta getItemMeta(Material material, CraftMetaItem meta) {
	if (material == Material.AIR) {
		return null;
	}
	if (material == Material.WRITTEN_BOOK || material == Material.BOOK_AND_QUILL) {
		return (meta instanceof CraftMetaBook) ? meta : new CraftMetaBook(meta);
	}
	if (material == Material.SKULL_ITEM) {
		return (meta instanceof CraftMetaSkull) ? meta : new CraftMetaSkull(meta);
	}
	if (material == Material.LEATHER_HELMET || material == Material.LEATHER_CHESTPLATE || material == Material.LEATHER_LEGGINGS || material == Material.LEATHER_BOOTS) {
		return (meta instanceof CraftMetaLeatherArmor) ? meta : new CraftMetaLeatherArmor(meta);
	}
	if (material == Material.POTION) {
		return (meta instanceof CraftMetaPotion) ? meta : new CraftMetaPotion(meta);
	}
	if (material == Material.MAP) {
		return (meta instanceof CraftMetaMap) ? meta : new CraftMetaMap(meta);
	}
	if (material == Material.FIREWORK) {
		return (meta instanceof CraftMetaFirework) ? meta : new CraftMetaFirework(meta);
	}
	if (material == Material.FIREWORK_CHARGE) {
		return (meta instanceof CraftMetaCharge) ? meta : new CraftMetaCharge(meta);
	}
	if (material == Material.ENCHANTED_BOOK) {
		return (meta instanceof CraftMetaEnchantedBook) ? meta : new CraftMetaEnchantedBook(meta);
	}
	if (material.toString().equals("BANNER")) {
		if (meta != null && BannerMeta.class.isAssignableFrom(meta.getClass())) {
			return meta;
		} else {
			return new BannerMeta(meta);
		}
	}
	return new CraftMetaItem(meta);
}
 
Example 3
Source File: BookPlayerShopkeeper.java    From Shopkeepers with GNU General Public License v3.0 4 votes vote down vote up
@Override
protected void onPurchaseClick(InventoryClickEvent event, Player player, ItemStack[] usedRecipe, ItemStack offered1, ItemStack offered2) {
	super.onPurchaseClick(event, player, usedRecipe, offered1, offered2);
	if (event.isCancelled()) return;
	final BookPlayerShopkeeper shopkeeper = this.getShopkeeper();

	ItemStack book = usedRecipe[2];
	String bookTitle = getTitleOfBook(book);
	if (bookTitle == null) {
		// this should not happen.. because the recipes were created based on the shopkeeper's offers
		event.setCancelled(true);
		return;
	}

	// get chest:
	Block chest = shopkeeper.getChest();
	if (!Utils.isChest(chest.getType())) {
		event.setCancelled(true);
		return;
	}

	// remove blank book from chest:
	boolean removed = false;
	Inventory inv = ((Chest) chest.getState()).getInventory();
	ItemStack[] contents = inv.getContents();
	for (int i = 0; i < contents.length; i++) {
		if (contents[i] != null && contents[i].getType() == Material.BOOK_AND_QUILL) {
			if (contents[i].getAmount() == 1) {
				contents[i] = null;
			} else {
				contents[i].setAmount(contents[i].getAmount() - 1);
			}
			removed = true;
			break;
		}
	}
	if (!removed) {
		event.setCancelled(true);
		return;
	}

	// get price:
	BookOffer offer = shopkeeper.getOffer(bookTitle);
	if (offer == null) {
		event.setCancelled(true);
		return;
	}
	int price = this.getAmountAfterTaxes(offer.getPrice());

	// add earnings to chest:
	if (price > 0) {
		int highCost = price / Settings.highCurrencyValue;
		int lowCost = price % Settings.highCurrencyValue;
		if (highCost > 0) {
			if (Utils.addItems(contents, Settings.createHighCurrencyItem(highCost)) != 0) {
				event.setCancelled(true);
				return;
			}
		}
		if (lowCost > 0) {
			if (Utils.addItems(contents, Settings.createCurrencyItem(lowCost)) != 0) {
				event.setCancelled(true);
				return;
			}
		}
	}

	// set chest contents:
	inv.setContents(contents);
}