我听说过稍后运行代码的方法,例如稍后运行任务和其他调度程序方法,但我想在我遇到问题的事件中执行此操作。这是我想要运行它的示例的一些代码:
public class InventoryEvents implements Listener {
@EventHandler
public void onOpen(InventoryOpenEvent e) {
// Run later code here
}
}
当我尝试将代码用于稍后在此处或其外部甚至在另一个类中运行任务时,我会遇到很多与类未扩展JavaPlugin或我尝试在事件中使用它有关的错误。
感谢任何帮助:)
您需要在处理InventoryOpenEvent的onOpen方法中创建计划任务。
Bukkit.getScheduler().runTaskLater(main, new Runnable() {
@Override
public void run() {
//Run your delayed code in here
}
}, 100L);//replace 100 with how many ticks you want to wait before the code executes
main
是错误的来源。您需要使用扩展JavaPlugin的任何类的实例(这将是您的主类)。我建议将main的实例传递给构造函数中的Listener类,以便您可以根据需要使用它。示例如下:
public class NamedListener implements Listener {
private Main main;
public NamedListener(Main main){
this.main = main;
}
}