我最近为开发Bukkit插件设置了Eclipse调试。能够看到哪些变量在变化,哪些断点在变化,这真的很棒,但我主要担心的是,当使用连接到我的测试Minecraft服务器的客户端进行调试时,它们会超时。这是由于Eclipse在遇到断点时会暂停服务器主线程,并在30秒后使客户端超时。我已经设置了服务器,使其不会在60秒后关闭,但客户端总是断开连接。是否有设置超时时间的客户端选项?还是它嵌入了TCP数据包的工作方式?-或者只是另一种解决方法?
我知道这已经是3年多后的事了,但我自己也一直在努力解决这个问题(尽管使用了Intellij Idea而不是Eclipse),我已经找到了一个解决方案,我会在这里发布,以防其他人遇到这个问题。由于readTimeout没有按照我希望的那样运行,我做了以下操作:
a) 在客户端设置超时:
- 为您正在开发的spiot服务器版本安装Forge(您仍然可以加入基于spiot的服务器进行插件开发)
- 安装RandomPatches mod(允许您编辑硬编码的香草minecraft变量)
- 编辑RandomPatches配置文件(RandomPatches.toml);read_timeout_seconds";根据您的喜好(这只应该在调试插件时发生在客户端。当然,您不应该为生产服务器更改它)
b)要在服务器端设置超时:
- 编辑spigot.yml文件并设置"超时时间";根据你的喜好。如果只更改客户端,一旦超过该值,服务器就会崩溃,您需要重新启动服务器
c)再见!享受调试,只要你喜欢!