Bukkit:将EXP_Bottle项目材料更改为使用而不是throwable

时间:2015-05-31 01:16:30

标签: minecraft bukkit

我正在尝试构建一个bukkit插件,以便在EXP_Bottle中存储XP Levels。 EXP_Bottle是可抛出的并释放EXP orbs。

我想把它变成消耗品而不是扔掉。

此外,我希望在玩家抓住新的烧瓶之后,而不是在将所有东西放入制作工作台时,制作正确的活动来移除EXP。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

我不相信可以将exp瓶更改为耗材,因为Minecraft客户仍然认为它是exp瓶。但是,您可以监听PlayerInteractEvent并获得类似的功能。例如:

@EventHandler
public void interact(PlayerInteractEvent e) {
    ItemStack itemStack = e.getItem();
    // Check to see if the item is a exp bottle
    if (itemStack != null && e.getItem().getType().equals(Material.EXP_BOTTLE)) {
        // Cancel the event so it will not be thrown
        e.setCancelled(true);

        Player player = e.getPlayer();

        // Add exp to the player
        player.giveExp(1);

        // Remove the bottle from the players hand
        int newAmount = e.getItem().getAmount() - 1;
        if (newAmount > 0)
            player.getItemInHand().setAmount(newAmount);
        else
            player.setItemInHand(null);
    }
}

此外,如果您想要在制作项目时收听,可以使用CraftItemEvent

干杯!