有没有办法在 Minecraft 客户端连接服务器时设置超时时间?这是由于Eclipse调试导致的

问题描述 投票:0回答:2

我最近设置了 Eclipse 调试来开发 Bukkit 插件。能够看到哪些变量正在变化以及哪些断点发生变化真是太棒了,但我主要担心的是,当使用连接到我的测试 Minecraft 服务器的客户端进行调试时,它们会超时。这是因为 Eclipse 在遇到断点时会暂停服务器主线程并在 30 秒后使客户端超时。我已将服务器设置为 60 秒后不会关闭,但客户端总是断开连接。是否有客户端选项来设置超时期限?或者它是否嵌入到 TCP 数据包的工作方式中? - 或者只是另一种解决方法?

eclipse debugging timeout minecraft bukkit
2个回答
3
投票

我知道这是 3 年多后的事了,但我自己一直在努力解决这个问题(尽管使用 Intellij Idea 而不是 Eclipse),并且我找到了解决方案,我将在此处发布该解决方案,以防其他人遇到此问题。由于 readTimeout 的行为不符合我的预期,我所做的如下:

a) 在客户端设置超时:

  • 为您正在开发的 spigot 服务器版本安装 Forge(您仍然可以加入基于 spigot 的服务器进行插件开发)。
  • 安装 RandomPatches mod(允许您编辑硬编码的普通Minecraft变量)
  • 编辑 RandomPatches 配置文件 (randompatches.toml) 并根据您的喜好设置“read_timeout_seconds”(这只应在调试插件时发生在客户端。当然,您不应该在生产服务器上更改它)。

b) 在服务器端设置超时:

  • 编辑 spigot.yml 文件并根据您的喜好设置“超时时间”。如果你只改变客户端,一旦超过这个值,服务器就会崩溃,你需要重新启动服务器。

c)瞧!只要您愿意,就可以享受调试的乐趣!


0
投票

正如@Draco18s 所指出的,您需要在遇到断点时暂停所有线程,以防止客户端超时。

为此,请单击窗口,然后单击首选项。导航至左侧的

Java > Debug
,然后将
Default suspend policy for new breakpoints
设置从
Suspend Thread
更改为
Suspend VM

© www.soinside.com 2019 - 2024. All rights reserved.