描述
当Hydraulic插件与Floodgate-Neoforge插件一起使用时,Minecraft服务器在启动过程中崩溃,错误信息显示Hydraulic插件尝试将Floodgate的jar文件当作目录处理。
错误日志
java.lang.IllegalStateException: Exception listing directories from C:\Users\yang1\Minecraft\1.21.11-neoforge-server\mods\Floodgate-Neoforge-2.2.6-b54.jar
at FML Plugins//org.geysermc.pack.converter.util.NioDirectoryFileTreeReader.hasNext(NioDirectoryFileTreeReader.java:73)
at FML Plugins//team.unnamed.creative.serialize.minecraft.MinecraftResourcePackReaderImpl.read(MinecraftResourcePackReaderImpl.java:92)
at TRANSFORMER/hydraulic@1.0.0-SNAPSHOT/org.geysermc.hydraulic.pack.PackManager.lambda$initialize$0(PackManager.java:99)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:722)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at TRANSFORMER/hydraulic@1.0.0-SNAPSHOT/org.geysermc.hydraulic.pack.PackManager.initialize(PackManager.java:100)
at TRANSFORMER/hydraulic@1.0.0-SNAPSHOT/org.geysermc.hydraulic.HydraulicImpl.onServerStarting(HydraulicImpl.java:53)
at TRANSFORMER/hydraulic@1.0.0-SNAPSHOT/org.geysermc.hydraulic.neoforge.HydraulicNeoForgeMod.onServerStarting(HydraulicNeoForgeMod.java:22)
at net.neoforged.bus.ConsumerEventHandler.invoke(ConsumerEventHandler.java:27)
at net.neoforged.bus.EventBus.post(EventBus.java:360)
at net.neoforged.bus.EventBus.post(EventBus.java:328)
at TRANSFORMER/neoforge@21.11.31-beta/net.neoforged.neoforge.server.ServerLifecycleHooks.handleServerStarting(ServerLifecycleHooks.java:102)
at TRANSFORMER/minecraft@1.21.11/net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:309)
at TRANSFORMER/minecraft@1.21.11/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:743)
at TRANSFORMER/minecraft@1.21.11/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:287)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.nio.file.NotDirectoryException: C:\Users\yang1\Minecraft\1.21.11-neoforge-server\mods\Floodgate-Neoforge-2.2.6-b54.jar
at java.base/sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:84)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:541)
at java.base/java.nio.file.Files.newDirectoryStream(Files.java:481)
at java.base/java.nio.file.Files.list(Files.java:3772)
at FML Plugins//org.geysermc.pack.converter.util.NioDirectoryFileTreeReader.hasNext(NioDirectoryFileTreeReader.java:71)
... 22 more
环境信息
- Minecraft版本: 1.21.11
- NeoForge版本: 21.11.31-beta
- Hydraulic插件版本: 1.0.0-SNAPSHOT (hydraulic-neoforge.jar)
- Floodgate插件版本: 2.2.6-SNAPSHOT (Floodgate-Neoforge-2.2.6-b54.jar)
- Geyser插件版本: 2.9.2-SNAPSHOT (Geyser-NeoForge.jar)
- 操作系统: Windows 11
重现步骤
- 安装NeoForge 21.11.31-beta
- 将以下插件放入mods目录:
- hydraulic-neoforge.jar
- Floodgate-Neoforge-2.2.6-b54.jar
- Geyser-NeoForge.jar
- 启动服务器
- 服务器在启动过程中崩溃
预期行为
服务器应该正常启动,所有插件应该能够协同工作。
实际行为
服务器在启动时崩溃,错误信息显示Hydraulic插件尝试将Floodgate的jar文件当作目录处理。
可能的解决方案
Hydraulic插件的PackManager类需要修改,以正确处理jar文件而不是将它们当作目录。在initialize方法中,应该检查文件是否为目录,或者使用适当的方法来读取jar文件内容。
附加信息
- 单独使用Hydraulic插件时服务器可以正常启动
- 单独使用Floodgate和Geyser插件时服务器可以正常启动
- 只有当Hydraulic与Floodgate一起使用时才会出现此问题
- 可能还有其他同类型的问题,未找到
描述
当Hydraulic插件与Floodgate-Neoforge插件一起使用时,Minecraft服务器在启动过程中崩溃,错误信息显示Hydraulic插件尝试将Floodgate的jar文件当作目录处理。
错误日志
环境信息
重现步骤
预期行为
服务器应该正常启动,所有插件应该能够协同工作。
实际行为
服务器在启动时崩溃,错误信息显示Hydraulic插件尝试将Floodgate的jar文件当作目录处理。
可能的解决方案
Hydraulic插件的
PackManager类需要修改,以正确处理jar文件而不是将它们当作目录。在initialize方法中,应该检查文件是否为目录,或者使用适当的方法来读取jar文件内容。附加信息