java - 如何延迟进入这个循环?
问题描述
我试图用循环更新指南针指向的点,但延迟不起作用并且它滞后于服务器。既不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;
}
}
也许有一些特殊的方法可以做到这一点,或者它应该是某种事件还是?
解决方案
也许您可以围绕它创建一个线程并让它休眠。
Thread thread = new Thread(() -> {
Thread.sleep(1500)
//code
});
thread.start();
推荐阅读
- html - 用 css & html 或 canvas 绘制风力发电机?
- ios - TensorFlow 会话-> 使用 EXC_BAD_ACCESS 运行崩溃
- c# - 按外键进行 SQL 分组
- java - android edittext(数字验证)无法从具有 void 结果类型的方法返回值
- javascript - 页面刷新后保存滑动条位置
- vb.net - sql连接时遇到InvalidOperationExcpetion怎么办
- airflow - Google Cloud Composer 中 DAG 中的任务执行顺序会影响任务是否执行
- java - org.openqa.selenium.WebDriverException:等待驱动程序服务器启动超时。构建信息:版本:“未知”,修订:“未知”
- python - pandas DataFrame to_html中的粗体列
- knockout.js - 尝试在 Knockout 中绑定到模板时属性未定义