问题描述
伙计们,我正在制作一个 spigot 1.8 插件。它在 1.16 上工作,但在 1.8 中它抛出了这个:
[10:00:59 ERROR]: Could not pass event InventoryClickEvent to Knockback_PVP v1.0.0
.....
org.bukkit.event.EventException
Caused by: java.lang.IllegalStateException: Already scheduled as 1201
at org.bukkit.scheduler.BukkitRunnable.checkState(BukkitRunnable.java:141) ~[spigot-1.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.scheduler.BukkitRunnable.runTask(BukkitRunnable.java:31) ~[spigot-1.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3c767f-33d5de3]
...
这是我的代码的一部分:
BukkitRunnable runnable = new BukkitRunnable() {
@Override
public void run() {
if (plugin.RegenTasks.containsKey(getTaskId()) == false) return;
Player p = plugin.RegenTasks.get(getTaskId());
p.getInventory().setItem(3,new ItemStack(Material.DIAMOND));
plugin.RegenTasks.remove(getTaskId());
return;
}
};
runnable.runTaskLater(plugin,2*20*30);
plugin.RegenTasks.put(runnable.getTaskId(),p);
当玩家死亡时在其他地方:
if (plugin.RegenTasks.containsValue(p)){
for (int i: plugin.RegenTasks.keySet()) {
if (plugin.RegenTasks.get(i) == p) {
plugin.RegenTasks.remove(i);
try
{plugin.getServer().getScheduler().cancelTask(i);}
finally {break;}
}
}
}
有什么办法解决吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)