public class Particle implements CommandExecutor
{
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
if (sender instanceof Player)
{
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
@Override
public void run() {
player.sendMessage("blabla");
}
}, 12);
return true;
}
return false;
}
这就是我将Particle类实现到插件中的方法。
public void onEnable(){
this.getCommand("part").setExecutor(new Particle());
}
因为这个调度程序在一个类中,我需要对我的插件的引用,我不能在scheduleSyncDelayedTask使用“this”(这个,新的Runnable(){ 我该使用什么来获取对我的插件的引用?
答案 0 :(得分:1)
您可以将引用传递给JavaPlugin类作为侦听器的构造函数
private JavaPlugin plugin;
public Particle(JavaPlugin plugin){
this.plugin = plugin;
}
@Override
public boolean onCommand(/* Do your thing*/){
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, /*...*/);
}
然后,将侦听器设置为Particle
的新实例setExecutor(new Particle(this), /*...*/);
答案 1 :(得分:0)
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
到
Bukkit.getScheduler().scheduleSyncDelayedTask(JavaPlugin.getProvidingPlugin(<NameOfTheClassYouAreIn.class), new Runnable(){