Java 类org.bukkit.entity.DragonFireball 实例源码

项目:Recreator    文件:ItemFatMan.java   
@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);
}