本人在游玩Create: Astral整合包的过程中,遭遇了“区块无法正常保存”的问题,经过筛查,发现无法保存的具体错误日志如下:
[13:58:02] [Server thread/ERROR]: Failed to save chunk [0, -2]
java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "net.minecraft.server.MinecraftServer.method_3760()" because "server" is null
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:722) ~[?:?]
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
at net.minecraft.class_3898.method_20605(class_3898.java:509) ~[client-intermediary.jar:?]
at net.minecraft.class_3898.method_17233(class_3898.java:471) ~[client-intermediary.jar:?]
at net.minecraft.class_3215.method_12127(class_3215.java:325) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_3782(MinecraftServer.java:621) ~[client-intermediary.jar:?]
at net.minecraft.class_1132.method_3782(class_1132.java:193) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:729) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:273) ~[client-intermediary.jar:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.server.MinecraftServer.method_3760()" because "server" is null
at dan200.computercraft.shared.network.NetworkHandler.sendToAllPlayers(NetworkHandler.java:110) ~[cc-restitched-1.100.8.jar:?]
at dan200.computercraft.shared.computer.core.ServerComputer.broadcastDelete(ServerComputer.java:195) ~[cc-restitched-1.100.8.jar:?]
at dan200.computercraft.shared.computer.core.ServerComputerRegistry.remove(ServerComputerRegistry.java:54) ~[cc-restitched-1.100.8.jar:?]
at dan200.computercraft.shared.computer.blocks.TileComputerBase.unload(TileComputerBase.java:79) ~[cc-restitched-1.100.8.jar:?]
at dan200.computercraft.shared.computer.blocks.TileComputerBase.onChunkUnloaded(TileComputerBase.java:97) ~[cc-restitched-1.100.8.jar:?]
at dan200.computercraft.shared.proxy.ComputerCraftProxyCommon.lambda$registerHandlers$6(ComputerCraftProxyCommon.java:127) ~[cc-restitched-1.100.8.jar:?]
at net.fabricmc.fabric.api.event.lifecycle.v1.ServerBlockEntityEvents.lambda$static$2(ServerBlockEntityEvents.java:66) ~[fabric-lifecycle-events-v1-2.1.1+cc71601c60-87d8f812a1297025.jar:?]
at net.fabricmc.fabric.impl.event.lifecycle.LifecycleEventsImpl.lambda$onInitialize$2(LifecycleEventsImpl.java:45) ~[fabric-lifecycle-events-v1-2.1.1+cc71601c60-87d8f812a1297025.jar:?]
at net.fabricmc.fabric.api.event.lifecycle.v1.ServerChunkEvents.lambda$static$2(ServerChunkEvents.java:66) ~[fabric-lifecycle-events-v1-2.1.1+cc71601c60-87d8f812a1297025.jar:?]
at net.minecraft.class_3898.handler$ddm000$fabric-lifecycle-events-v1$onChunkUnload(class_3898.java:6933) ~[client-intermediary.jar:?]
at net.minecraft.class_3898.method_18843(class_3898.java:535) ~[client-intermediary.jar:?]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
... 9 more
在使用ai工具后,ai对这个问题的分析是这样的:
这段错误日志来自于Minecraft服务器在尝试保存一个区块时遇到的问题。错误日志显示了一个java.util.concurrent.CompletionException异常,其根本原因是一个java.lang.NullPointerException。
这通常意味着在尝试访问或操作一个未被正确初始化或已经被垃圾回收的对象时出现了问题。
让我们逐步分析错误日志:
错误时间与类型:[13:58:02] [Server thread/ERROR]: 表示在13:58:02服务器线程报告了一个错误。
错误信息:Failed to save chunk [0, -2] 表示服务器未能保存坐标为 [0, -2] 的区块。
异常类型:java.util.concurrent.CompletionException 通常与异步操作有关,表明一个异步任务在执行过程中遇到了异常。
根本原因:java.lang.NullPointerException 表示尝试访问一个空引用(null)的对象。
问题代码:Cannot invoke "net.minecraft.server.MinecraftServer.method_3760()" because "server" is null 指出在尝试调用 MinecraftServer 类的 method_3760() 方法时,server 对象是空的。
涉及的插件/模块:错误日志中提到了 dan200.computercraft 和 fabric-lifecycle-events-v1,这表明问题可能与ComputerCraft(一个Minecraft的模组,允许玩家使用计算机和编程)和Fabric(一个Minecraft的模组加载器和API)有关。
调用栈:日志的其余部分显示了异常发生的调用栈,这有助于开发者确定问题发生的确切位置。
修复这个问题可能需要以下步骤:
确认Minecraft服务器状态:确保服务器已经完全启动并且没有遇到其他致命错误。
检查ComputerCraft模组:由于错误与ComputerCraft模组相关,检查该模组是否有更新或修复补丁。
检查服务器配置:确认服务器的配置文件(如server.properties)没有错误,并且所有必要的设置都正确。
检查其他模组兼容性:如果服务器运行了多个模组,确保它们之间兼容,没有冲突。
查看日志文件:检查服务器的完整日志文件,以寻找可能的模式或其他相关错误。
重启服务器:有时候,重启服务器可以解决一些临时的内存或状态问题。
联系模组开发者:如果问题持续存在,可能需要联系ComputerCraft或其他涉及模组的开发者以寻求帮助。
备份数据:在尝试任何修复之前,确保备份了服务器的世界数据,以防止数据丢失。
技术论坛和社区:如果自行解决困难,可以在Minecraft的技术论坛或相关社区中寻求帮助,那里有许多经验丰富的玩家和开发者。
请注意,由于Minecraft和相关模组的复杂性,修复此类问题可能需要一定的技术知识和对Minecraft服务器运作的理解。
最终,我发现了本整合包中所安装的电脑模组为“CC: Restitched”,模组版本为“V1.100.8”,我个人是通过“在离线前,将电脑方块给挖掉”这一策略来解决“保存失败”这个问题的。
问题在github上已经有描述,且根据此处的内容,已经有人提交了修复这个问题的代码。然而不幸的是这个提交的代码并没有被加入到发行的版本中,或许可以试试自行编译什么的。