2017-08-17 1 views
1

私はbukkitに問題があります。私は、プレイヤーの座標でメッセージを送信する繰り返しタスクを実行したい。 ありがとうございます!bukkitスケジューラを繰り返す

Bukkit.getScheduler().scheduleAsyncRepeatingTask(this.main, new Runnable() { 

         @Override 
         public void run() { 
          Player tp = Bukkit.getPlayer(args[1]); 
          p.sendMessage("§bThe coordinates of §4" + tp.getName()); 
          p.sendMessage("§eX: " + tp.getLocation().getBlockX()); 
          p.sendMessage("§eY: " + tp.getLocation().getBlockY()); 
          p.sendMessage("§eZ: " + tp.getLocation().getBlockZ()); 
          p.sendMessage("§eD: " + tp.getLocation().getDirection()); 

         } 

        }, 1, 1); 

答えて

0

あなたはbukkit APIにアクセスする非同期タスクを使用しないでください。 BukkitRunnableとラムダを使用して、代わりに例を同期タスクをスケジュール:

new BukkitRunnable(() -> { 

//Runnable run method, do stuff here 

}).runTaskTimer (plugin, initialDelay, repeatingDelay); 
+0

ありがとう!私は同期タスクで試してみましたが、それも仕事をしませんでした。私はBukkitRunnableを使用しませんでした... –

+0

あなたの問題を解決する答えを正しい解決策としてマークしてください。これはあなたと同じ問題を持つ将来のユーザーに役立ちます! – Kerooker

0

ます。また、使用することができます。

getServer().getScheduler().runTaskTimer(this, new Runnable() { 
     @Override 
     public void run() { 
      //your code here 
     } 
    }, initDelay, period); 

initDelay - での初期遅延が

期間を刻む - 期間ダック単位のタスク間

+0

ありがとうございました! –