Как получить задержку в этом l oop? - PullRequest
0 голосов
/ 20 апреля 2020

Я пытался обновить точку, в которой компас указывал бы все oop, но задержка не работает, и она отстает от сервера. Ни TimeUnit, ни Thread, ни wait() не работали. Я использовал spigot 1.14.4.


import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.entity.Player;
import org.bukkit.command.CommandSender;
import org.bukkit.Location;
import java.util.concurrent.TimeUnit;

public class Main extends JavaPlugin{
    @Override
    public void onEnable(){
    }
    @Override
    public void onDisable() {   
    }
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        //target <player-name>
        if(args.length>=1) {
            if(Bukkit.getPlayerExact(args[0])!=null) {
                Player target=Bukkit.getPlayer(args[0]);
                Player p=(Player) sender;
                sender.sendMessage(ChatColor.BLUE + "Compass assigned to" + target);
                while(Bukkit.getPlayerExact(args[0])!=null) {
                    Location loc = target.getLocation();
                    p.setCompassTarget(loc);
                    try {
                        TimeUnit.SECONDS.sleep(3);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                }else{
                    sender.sendMessage(ChatColor.BLUE + "Invalid Player");
                }   
            }else{
                sender.sendMessage(ChatColor.BLUE + "Choose a player"); 
        }
    return false;
    }
}

Может быть, есть какой-то особый способ сделать это, или это должно быть какое-то событие или?

1 Ответ

0 голосов
/ 20 апреля 2020

Может быть, вы можете создать нить вокруг него и дать ему спать.

Thread thread = new Thread(() -> {

Thread.sleep(1500)
//code

});
thread.start();
...