1

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);
}

これを使っています。

コンソールは私に以下を与えます:

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() {

ライン。

「キャストできません」というエラーの意味がわからないので、助けていただければ幸いです。

4

2 に答える 2

4

JavaPlugin を拡張するメイン クラスからスケジューラを呼び出していますか? そうでない場合は、プラグインのインスタンスを取得する必要があります(Plugin) thisBukkit.getServer().getPluginManager().getPlugin("YOUR_PLUGIN_NAME")

于 2012-12-29T19:26:58.160 に答える
0

プラグインのメイン クラスは、プラグインではなく 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

于 2013-01-03T23:18:27.410 に答える