我想从用java编写的Minecraft插件启动springboot Web服务器,我尝试在IntelliJ中向项目添加springboot模块,但当插件加载时,服务器没有启动
是的,这是可能的。但你应该异步进行。
事实上,你有minecraft服务器启动一个线程。这将打开端口,并运行所有插件。
如果您尝试在这个线程上运行Spring,它将启动服务器的一个实例,并等待连接。。。在minecraft服务器的同一线程上。
因此,服务器将等待您的代码停止运行,然后再执行其他操作,并且将无法接收数据包。
如何修复
你应该异步运行你的代码,比如:
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
// here you can start your server
});
您也可以只使用一个基本的java线程:
new Thread(() -> {
// here start your server
}).start();