我正在创建一个bukkit插件,每隔几分钟发送一条消息就会遇到问题。它以前是可以工作的,但是我现在使用的是bukkit 1.4.6测试版,但它不是。以前的方法被弃用了,但它给了我同样的错误,所以我决定切换到它的替代品,但没有运气。
下面是我的代码:
Bukkit.getServer().getScheduler().runTaskTimerAsynchronously((Plugin) this, new Runnable() {
public void run() {
Bukkit.broadcastMessage(ChatColor.DARK_PURPLE + "" + ChatColor.MAGIC + "aaaaaa" + ChatColor.RESET + " Important " + ChatColor.DARK_PURPLE + "" + ChatColor.MAGIC + "aaaaaa" + ChatColor.RESET + ":");
Bukkit.broadcastMessage("");
Bukkit.broadcastMessage(" Hacks are stricly prohibited. A list of approved mods is available on our website. Use of mods not approved by the arenacraft team may lead to a permanent ban.");
}}, 60L, 36000L);
}我正在使用this。
控制台为我提供了以下内容:
me.silvershad0wz.arenacraft.Notices (the class this code is from) Cannot be cast to org.bukkit.plugin.Plugin.其次是许多错误。它来自于此
Bukkit.getServer().getScheduler().runTaskTimerAsynchronously((Plugin) this, new Runnable() {线路。
感谢任何帮助,因为我不知道"Cannot be cast to“错误是什么意思。
发布于 2012-12-30 03:26:58
是否从扩展JavaPlugin的主类调用调度器?如果不是,则必须通过将显示为(Plugin) this的位置更改为Bukkit.getServer().getPluginManager().getPlugin("YOUR_PLUGIN_NAME")来获取该插件的一个实例
发布于 2013-01-04 07:18:27
插件的主类扩展了JavaPlugin,而不是插件。:)
我认为简单的改变
.runTaskTimerAsynchronously((Plugin) this, new Runnable()至
.runTaskTimerAsynchronously((JavaPlugin) this, new Runnable()都会起作用,甚至
.runTaskTimerAsynchronously(this, new Runnable()如果在主类中调用,则为。
来源:http://wiki.bukkit.org/Plugin_Tutorial#Creating_the_Plugin.27s_Class
https://stackoverflow.com/questions/14082660
复制相似问题