@Override public void run(PlayerInteractEvent evt) { Player player = evt.getPlayer(); Inventory inv = player.getInventory(); if (!inv.contains(Material.FIREWORK_CHARGE)) { AzureAPI.log(player, "你没有弹药! 需要 " + ChatColor.RED + "迷你核弹" + ChatColor.GOLD + " 作为弹药"); AzureAPI.playSound(player, Sound.ENTITY_ITEM_BREAK); return; } int slot = inv.first(Material.FIREWORK_CHARGE); ItemStack ammo = inv.getItem(slot); if (ammo.hasItemMeta()) { if (!ammo.getItemMeta().hasLore()) return; if (!ammo.getItemMeta().getLore().contains("弹药")) return; } else { return; } int amount = ammo.getAmount(); if (amount > 1) { ammo.setAmount(amount - 1); inv.setItem(slot, ammo); } else { inv.setItem(slot, null); } Location eye = player.getEyeLocation(); Vector direction = eye.getDirection().multiply(2); Projectile projectile = player.getWorld().spawn(eye.add(direction), DragonFireball.class); projectile.setBounce(true); projectile.setGravity(true); projectile.setShooter(player); projectile.setVelocity(direction); projectile.setCustomName("recreator.item.fatman"); AzureAPI.playSound(player, Sound.ITEM_FIRECHARGE_USE, true); }