类org.bukkit.entity.Trident源码实例Demo

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

源代码1 项目: MineTinker   文件: TridentListener.java
@EventHandler(ignoreCancelled = true)
public void onTridentLaunch(ProjectileLaunchEvent event) {
	if (!(event.getEntity().getShooter() instanceof Player)) {
		return;
	}

	if (!(event.getEntity() instanceof Trident)) {
		return;
	}

	Player player = (Player) event.getEntity().getShooter();
	ItemStack trident = player.getInventory().getItemInMainHand().clone();

	if (!ModManager.instance().isToolViable(trident)) {
		return;
	}

	ModManager.instance().addExp(player, trident, -20000);
	//trident is a item clone and only for triggering modifier effects
	//this makes sure that the item duplicate does not get any level ups
	TridentToItemStack.put((Trident) event.getEntity(), trident);
}
 
源代码2 项目: MineTinker   文件: EntityListener.java
@EventHandler(ignoreCancelled = true)
public void onArrowHit(ProjectileHitEvent event) {
	if (!(event.getEntity().getShooter() instanceof Player)) {
		return;
	}

	Player player = (Player) event.getEntity().getShooter();
	ItemStack tool = player.getInventory().getItemInMainHand();

	if (event.getHitBlock() == null && !ToolType.FISHINGROD.contains(tool.getType())) {
		return;
	}

	if (event.getEntity() instanceof Trident) {
		Trident trident = (Trident) event.getEntity(); // Intellij gets confused if this isn't assigned to a variable

		tool = TridentListener.TridentToItemStack.get(trident);
		TridentListener.TridentToItemStack.remove(trident);

		if (tool == null) {
			return;
		}
	}

	if (!modManager.isToolViable(tool)) {
		return;
	}

	MTProjectileHitEvent projectileHitEvent = new MTProjectileHitEvent(player, tool, event);
	Bukkit.getPluginManager().callEvent(projectileHitEvent);
}
 
 类所在包
 类方法
 同包方法