CarbonPaper99
主要就是Player JoinEvent 然后计时器开启,当计数值大于100 ticks时调动插件运行传送指令
但计时器不会写,是一次性的那种,用完就注销。

吕易天
本帖最后由 吕易天 于 2019-8-17 14:38 编辑

Player p=e.getPlayer();
new Thread(()->{
for(int i=0;i<100;i++)
{
for(int i2=0;i2<50;i++)
{
if(!p.isOnline())
  return;
try{
Thread.sleep(1);
}catch(Throwable e2){}
}
}
if(!p.isOnline())
  return;
Bukkit.getScheduler().runTask(this,()->{
Bukkit.dispatchCommand(p,"命令(不带/)");
});
}).start();




Dante_7
吕易天 发表于 2019-8-17 14:26
Player p=e.getPlayer();
new Thread(()->{
for(int i=0;i{

就这种答案也好意思往上摆? 误人子弟吗?

有两种方式: 使用 Bukkit 自带的计时器(BukkitRunnable) 或是 Java 提供的线程池: ScheduledExecutorService

我个人推荐你用第二种(因为我比较熟悉).

具体的代码怎么写, 还需要你自己去翻阅文档, 因为这两种方式都没什么技术含量, 百度一下这两个词就有大把多的教程

BukkitRunnable

ScheduledExecutorService

另外别用楼上提供的方法, 这种代码放服务器上简直就是害人

另外要是我的答案对你有点用不给金粒也给个人气呗~


下一页 最后一页