我正在尝试构建一个bukkit插件,以便在EXP_Bottle中存储XP Levels。 EXP_Bottle是可抛出的并释放EXP orbs。
我想把它变成消耗品而不是扔掉。
此外,我希望在玩家抓住新的烧瓶之后,而不是在将所有东西放入制作工作台时,制作正确的活动来移除EXP。
任何人都可以帮助我吗?
答案 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。
干杯!