【问题标题】:Preventing Spigot Watchdog Thread from stopping Server防止 Spigot Watchdog 线程停止服务器
【发布时间】:2021-09-10 19:19:12
【问题描述】:

我正在编写一个新的 Spigot 插件,因为我想学习一些新东西。我试图通过我的插件放置几千个块(我这样做是有原因的,我知道这听起来很愚蠢),但问题是几秒钟后服务器停止工作,因为服务器没有响应。服务器目前没有响应对我来说不是问题,但它是 Spigot Watchdog Thread 的问题。它认为服务器崩溃并停止服务器。我尝试异步放置块,因此服务器继续运行,但 Spigot 不允许我这样做,如果我尝试这样做,则会出错。有没有办法防止 Spigot Watchdog Thread 因为没有响应而停止我的服务器?或者有没有其他解决方案来放置这么多块?

错误日志:

同步任务: https://hastebin.com/fogixamefe.yaml

异步任务: https://hastebin.com/pumucozula.properties

【问题讨论】:

  • 你能在你的问题中添加你的代码吗?

标签: java plugins crash minecraft


【解决方案1】:

您可以在server.properties 中将max-tick-time 设置为-1

这应该完全禁用看门狗。


如果您想放置这么多块而不出现延迟,您可以使用runTaskLater() 延迟放置块。例如:

// this will place 10 blocks each tick for next 1000 ticks

for (int i = 0; i < 1000; i++) {
  Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
    @Override
    public void run() {
      for (int j = 0; j < 10; j++) {
        placeNextBlock();
      }
    }
  }, i);
}

由于 Minecraft 的服务器限制,您不能在异步任务中放置方块。

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 2020-01-23
    • 2011-02-17
    • 1970-01-01
    • 2012-06-22
    • 2019-06-18
    • 2021-06-22
    • 2012-05-25
    • 1970-01-01
    相关资源
    最近更新 更多