类org.bukkit.event.inventory.PrepareAnvilEvent源码实例Demo

下面列出了怎么用org.bukkit.event.inventory.PrepareAnvilEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: QualityArmory   文件: Update19Events.java
@EventHandler
@SuppressWarnings("deprecation")
public void onAnvil(PrepareAnvilEvent e) {
	if(CustomItemManager.isUsingCustomData())
		return;
	if (QualityArmory.isCustomItem(e.getResult())) {
		ItemStack newi = e.getResult();
		newi.setDurability((short) QualityArmory.findSafeSpot(e.getResult(), false,QAMain.overrideURL));
		e.setResult(newi);
	}
	for (ItemStack is : e.getInventory().getContents()) {
		if (is != null && QualityArmory.isCustomItem(is)) {
			e.setResult(new ItemStack(Material.AIR));
			return;
		}
	}
}
 
源代码2 项目: Kettle   文件: CraftEventFactory.java
public static PrepareAnvilEvent callPrepareAnvilEvent(InventoryView view, ItemStack item) {
    PrepareAnvilEvent event = new PrepareAnvilEvent(view, CraftItemStack.asCraftMirror(item).clone());
    event.getView().getPlayer().getServer().getPluginManager().callEvent(event);
    event.getInventory().setItem(2, event.getResult());
    return event;
}
 
源代码3 项目: AdditionsAPI   文件: Anvil.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemRename(PrepareAnvilEvent event) {
	if (event.getResult() == null)
		return;
	ItemStack resultItem = event.getResult();
	if (!AdditionsAPI.isCustomItem(resultItem))
		return;
	AnvilInventory inv = event.getInventory();
	ItemMeta resultMeta = resultItem.getItemMeta();
	CustomItemStack cStack = new CustomItemStack(resultItem);
	CustomItem cItem = cStack.getCustomItem();

	ItemStack leftItem = inv.getItem(0);
	ItemMeta leftMeta = leftItem.getItemMeta();
	/*
	 * A fix for the bug that occurred due to the Display Name of the Custom
	 * Item having a ChatColor.RESET in front.
	 */
	if (cItem.getDisplayName() != null && resultMeta.getDisplayName() != null) {
		String renamedDisplayName = resultMeta.getDisplayName();
		if (cItem.getDisplayName() != renamedDisplayName
				&& leftMeta.getDisplayName().startsWith(ChatColor.RESET + "")) {
			if (renamedDisplayName.startsWith("r"))
				renamedDisplayName = renamedDisplayName.replaceFirst("r", "");
			resultMeta.setDisplayName(renamedDisplayName);

		}
	}
	/*
	 * A fix for being able to put books of any enchantment, even if it's
	 * forbidden
	 */
	if (!cItem.getForbidenEnchantments().isEmpty())
		for (Enchantment ench : cItem.getForbidenEnchantments())
			if (resultItem.containsEnchantment(ench))
				event.setResult(new ItemStack(Material.AIR));

	if (cItem.getDisplayName() != null) {
		String customName = cItem.getDisplayName();
		/*
		 * Fixes a bug that allowed you to rename the resultItem to it
		 * original material name
		 */
		if (resultMeta.getDisplayName() == null) {
			resultMeta.setDisplayName(customName);

		} else {
			/*
			 * TODO: A fix for the italic text even if you didn't change the
			 * name
			 */
		}
	}
	resultItem.setItemMeta(resultMeta);
	/*
	 * A fix for the fake lore not updating when adding Sharpness.
	 */
	cStack.updateLore();
}
 
 类所在包
 类方法
 同包方法