我正在为Bukkit制作一个KitPvP插件。我遇到了一个错误,我想知道是否有人可以帮助我。
所以,我有一个Main.java
作为我的主类。我在Hunger.java
注册了活动,但代码不会在Minecraft中执行。除此之外,插件的所有其他方面都可以工作。以下是Hunger.java
的代码:
package com.lobbyist.junk.kitpvp;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
public class Hunger implements Listener{
public void onPlayerInteractEvent(PlayerInteractEvent event){
Player player = event.getPlayer();
player.setFoodLevel(20);
}
}
如何让player.setFoodLevel工作?
编辑:我忘了添加一个EventHandler注释。 愚蠢的我答案 0 :(得分:1)
根据我从the documentation收集的内容,您尚未将此事件处理程序注册为EventHandler
。
类似的东西:
@EventHandler
public void onPlayerInteractEvent(PlayerInteractEvent event) {
Player player = event.getPlayer();
player.setFoodLevel(20);
}
答案 1 :(得分:0)
您必须拥有@EventHandler
注释,并且还必须使用onEnable()
方法注册事件:
在您的主类(扩展JavaPlugin的类)中:
public class MyMainClass extends JavaPlugin{
public void onEnable(){
//format:
//this.getServer().getPluginManager().registerEvents(this, new MyClassThatImplementsListener());
this.getServer().getPluginManager().registerEvents(this, new Hunger());
//onEnable() stuff that you currently have
}
//other stuff
}
在您的饥饿课程中(您的倾听者,您在问题中发布的内容):
public class Hunger implements Listener{
@EventHandler //you need this annotation above ALL events
public void onPlayerInteractEvent(PlayerInteractEvent event){
Player player = event.getPlayer();
player.setFoodLevel(20);
}
}