Java Bukkit自定义项目

Java Bukkit自定义项目,java,plugins,minecraft,bukkit,Java,Plugins,Minecraft,Bukkit,在我的新Bukkit项目中,我需要使用插件而不是mod创建自定义的可食用物品 我想创造新的食物种类,像蜂蜜或松饼。我知道如何实现制作配方,但不知道如何检测物品是否被消费 我能做些什么来检测一件物品的消耗量,并以与Minecraft中的普通食物相同的方式处理其效果?我不相信用每件非消费品(即药剂和食物)制作“咀嚼”动画是可能的。 尽管如此,当玩家进行交互时以及当玩家吃/喝东西时,您可以使用以下事件,如下所示: PlayerInteractEvent @EventHandler public vo

在我的新Bukkit项目中,我需要使用插件而不是mod创建自定义的可食用物品

我想创造新的食物种类,像蜂蜜或松饼。我知道如何实现制作配方,但不知道如何检测物品是否被消费


我能做些什么来检测一件物品的消耗量,并以与Minecraft中的普通食物相同的方式处理其效果?

我不相信用每件非消费品(即药剂和食物)制作“咀嚼”动画是可能的。 尽管如此,当玩家进行交互时以及当玩家吃/喝东西时,您可以使用以下事件,如下所示:


PlayerInteractEvent

@EventHandler
public void onInteract(PlayerInteractEvent e) {
    //Event called when a player interacts with something, AKA right click or left click
    Player player = e.getPlayer();
    ItemStack hand = player.getItemInHand();
    if(/**Hand is honey**/) //DOSOMETHING
}
@EventHandler
public void onConsume(PlayerItemConsumeEvent e {
    ItemStack consumed = e.getItem();
    Player consumer = e.getPlayer();
    if (/*Consumed is Honey*/) //DoSomething
}
PlayerItemConsumeEvent

@EventHandler
public void onInteract(PlayerInteractEvent e) {
    //Event called when a player interacts with something, AKA right click or left click
    Player player = e.getPlayer();
    ItemStack hand = player.getItemInHand();
    if(/**Hand is honey**/) //DOSOMETHING
}
@EventHandler
public void onConsume(PlayerItemConsumeEvent e {
    ItemStack consumed = e.getItem();
    Player consumer = e.getPlayer();
    if (/*Consumed is Honey*/) //DoSomething
}


从那里,您可以使用饱和度将食物条添加到播放器中,并操作ItemStack以从中删除一个。

要使您的物品可消费,请尝试使用例如带有自定义元数据的porkchop