类org.bukkit.event.player.PlayerItemDamageEvent源码实例Demo

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

源代码1 项目: MineTinker   文件: ArmorListener.java
@EventHandler(ignoreCancelled = true)
public void onElytraDamage(PlayerItemDamageEvent event) {
	if (!event.getPlayer().isGliding()) {
		return;
	}

	if (event.getItem().getType() != Material.ELYTRA) {
		return;
	}

	if (!modManager.isArmorViable(event.getItem())) {
		return;
	}

	Random rand = new Random();
	int chance = rand.nextInt(100);

	if (chance < ConfigurationManager.getConfig("Elytra.yml").getInt("ExpChanceWhileFlying")) {
		modManager.addExp(event.getPlayer(), event.getItem(), MineTinker.getPlugin().getConfig().getInt("ExpPerEntityHit"));
	}
}
 
源代码2 项目: civcraft   文件: NoVanillaDurability.java
@SuppressWarnings("deprecation")
	@Override
	public void onDurabilityChange(PlayerItemDamageEvent event) {
		event.setDamage(0);
		event.getPlayer().updateInventory();
		
		
		
//		LinkedList<ItemDurabilityEntry> entries = CustomItemManager.itemDuraMap.get(player.getName());
//		
//		if (entries == null) {
//			entries = new LinkedList<ItemDurabilityEntry>();
//		}
//		
//		ItemDurabilityEntry entry = new ItemDurabilityEntry();
//		entry.stack = stack;
//		entry.oldValue = stack.getDurability();
//		
//		entries.add(entry);
//		CustomItemManager.itemDuraMap.put(player.getName(), entries);
//		
//		if (!CustomItemManager.duraTaskScheduled) {
//			TaskMaster.syncTask(new ItemDuraSyncTask());
//		}
	}
 
源代码3 项目: MineTinker   文件: ItemListener.java
@EventHandler
public void onItemUse(PlayerItemDamageEvent event) {
	ItemStack item = event.getItem();

	if (modManager.isToolViable(item) && modManager.isArmorViable(item) && modManager.isWandViable(item)) {
		return;
	}

	if (!MineTinker.getPlugin().getConfig().getBoolean("ItemBehaviour.ConvertItemsOnUse", true)) {
		return;
	}

	modManager.convertItemStack(event.getItem(), event.getPlayer());
}
 
public PlayerCustomItemDamageEvent(PlayerItemDamageEvent event, CustomItem cItem) {
	super(event.getPlayer(), event.getItem(), event.getDamage());
	if (cItem.isUnbreakable()) {
		this.setDamage(0);
	}
	this.setCancelled(event.isCancelled());
	this.cItem = cItem;
}
 
源代码5 项目: AdditionsAPI   文件: DurabilityBar.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemDamage(PlayerItemDamageEvent event) {
	if (event.isCancelled())
		return;
	Player player = event.getPlayer();
	Bukkit.getScheduler().scheduleSyncDelayedTask(AdditionsAPI.getInstance(), () -> {
		sendDurabilityBossBar(player, player.getInventory().getItemInMainHand(), EquipmentSlot.HAND);
		sendDurabilityBossBar(player, player.getInventory().getItemInOffHand(), EquipmentSlot.OFF_HAND);
	});
}
 
源代码6 项目: AdditionsAPI   文件: CustomItemStack.java
/**
 * Reduces the durability of the CustomItemStack, whether it's using Fake
 * Durability or not. It uses the {@link PlayerCustomItemDamageEvent}, so it
 * could be cancelled.
 * 
 * @param durabilityToReduce
 *            The amount of durability that will be reduced
 */
public CustomItemStack reduceDurability(Player player, int durabilityToReduce) {
	GameMode gm = player.getGameMode();
	if (itemStack == null)
		return this;
	if ((gm.equals(GameMode.SURVIVAL) || gm.equals(GameMode.ADVENTURE)))
		if (cItem.hasFakeDurability())
			Bukkit.getPluginManager()
					.callEvent(new PlayerCustomItemDamageEvent(player, getItemStack(), durabilityToReduce, cItem));
		else if (!cItem.isUnbreakable())
			Bukkit.getPluginManager().callEvent(new PlayerItemDamageEvent(player, itemStack, durabilityToReduce));
	return this;
}
 
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerItemDamageEvent(PlayerItemDamageEvent event)
{
	Player player = event.getPlayer();
	
	ApplicableRegionSet regions = this.plugin.getWorldGuardCommunicator().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
	if (WorldGuardUtils.queryState(player, player.getWorld(), regions.getRegions(), Flags.ITEM_DURABILITY) == State.DENY)
	{
		event.setCancelled(true);
	}
}
 
源代码8 项目: civcraft   文件: CustomItemManager.java
@EventHandler(priority = EventPriority.LOW)
public void onItemDurabilityChange(PlayerItemDamageEvent event) {
	ItemStack stack = event.getItem();
	
	LoreCraftableMaterial craftMat = LoreCraftableMaterial.getCraftMaterial(stack);
	if (craftMat == null) {
		return;
	}
	craftMat.onItemDurabilityChange(event);
}
 
源代码9 项目: MineTinker   文件: SelfRepair.java
@EventHandler(ignoreCancelled = true)
public void effect(PlayerItemDamageEvent event) {
	if (useMending) {
		return;
	}

	ItemStack tool = event.getItem();
	if (!modManager.isToolViable(tool) && !modManager.isArmorViable(tool)) {
		return;
	}

	if (!event.getPlayer().hasPermission("minetinker.modifiers.selfrepair.use")) {
		return;
	}

	if (!modManager.hasMod(tool, this)) {
		return;
	}

	int level = modManager.getModLevel(tool, this);
	Random rand = new Random();
	int n = rand.nextInt(100);
	int c = this.percentagePerLevel * level;

	if (n <= c) {
		if (tool.getItemMeta() instanceof Damageable) {
			Damageable damageable = (Damageable) tool.getItemMeta();
			int dura = damageable.getDamage();
			int newDura = dura - this.healthRepair;

			if (newDura < 0) {
				newDura = 0;
			}

			damageable.setDamage(newDura);

			tool.setItemMeta((ItemMeta) damageable);
			ChatWriter.logModifier(event.getPlayer(), event, this, tool, String.format("Chance(%d/%d)", n, c),
					String.format("Repair(%d -> %d)", dura, newDura));
			return;
		}
	}
	ChatWriter.logModifier(event.getPlayer(), event, this, tool, String.format("Chance(%d/%d)", n, c));
}
 
public PlayerCustomArmorDamageEvent(PlayerItemDamageEvent event, CustomArmor cArmor, DamageCause damageCause, short durability) {
	super(event, cArmor);
	event.setDamage(durability);
	setDamageCause(damageCause);
}
 
源代码11 项目: AdditionsAPI   文件: PlayerCustomItemDamage.java
@EventHandler(priority = EventPriority.LOWEST)
public void customItemCheck(PlayerItemDamageEvent event) {
	if (AdditionsAPI.isCustomItem(event.getItem()) && !(event instanceof PlayerCustomItemDamageEvent))
		event.setCancelled(true);
}
 
源代码12 项目: civcraft   文件: LoreCraftableMaterial.java
public void onItemDurabilityChange(PlayerItemDamageEvent event) {
	for (ItemComponent comp : this.components.values()) {
		comp.onDurabilityChange(event);
	}
}
 
源代码13 项目: civcraft   文件: ItemComponent.java
public void onDurabilityChange(PlayerItemDamageEvent event) {} 
 类所在包
 类方法
 同包方法