本帖最后由 MrMks 于 2023-2-21 17:53 编辑
背景介绍
CustomNPCs至今仍是不少服主仍在使用的npc模组。
然而,不可否认的是,CustomNPCs存在不少bug,亦存在一些不够高效的实现。
站内已有mod进行过一些修复,例如,CustomNPCFix。但在用过之后发现,它并不能完全解决CustomNPCs中json转换nbt缓慢的问题,且不能正确对应NBTTagByteArray类型的解析。
因此,就有了这个mod。
功能简介
正如它的名称 CnpcSaveFile 所示,这个mod主要用于修复 CustomNPCs 中转换nbt至json文件缓慢的问题,顺便修复转换json至nbt缓慢的问题。
此外,它还有下列功能:
注意事项
更新记录
背景介绍
CustomNPCs至今仍是不少服主仍在使用的npc模组。
然而,不可否认的是,CustomNPCs存在不少bug,亦存在一些不够高效的实现。
站内已有mod进行过一些修复,例如,CustomNPCFix。但在用过之后发现,它并不能完全解决CustomNPCs中json转换nbt缓慢的问题,且不能正确对应NBTTagByteArray类型的解析。
因此,就有了这个mod。
功能简介
正如它的名称 CnpcSaveFile 所示,这个mod主要用于修复 CustomNPCs 中转换nbt至json文件缓慢的问题,顺便修复转换json至nbt缓慢的问题。
此外,它还有下列功能:
- 修复NPC骑乘实体时,重新加载地图会导致npc不可见复制的问题(表现为出现在log和控制台中的"Keeping entity customnpcs:customnpc that already exists with uuid" 消息,此bug产生时会在chunk数据中重复添加此npc数据,并且会将这些npc数据转换为npc实体存在于chunk中,但这些npc并不会加载进world中,因此并不可见,亦无法通过npc权杖发现。此修复并不能帮助您删除这些已经生成的无效实体,但可以阻止无效实体继续生成)。
- 为npc脚本出错时的聊天栏提醒加入世界名和dim号(对于有多个世界的服务器这项功能应该会有用)
注意事项
- 此mod可以与 CustomNPCFix 一同使用,此时,此mod的json解析功能会覆盖后者相应的功能。
- 此mod可以在不安装 CustomNPCs 时使用,但是除了会拖慢运行速度外什么作用都没有,因此并不建议这样做。
- 此mod为coremod,并非常规mod,并不会出现在mod列表中。
- 此mod可以安装在客户端或服务端。对于安装了此mod的服务器,并不需要玩家在客户端安装此mod
- 在catserver,forge client,forge server中测试可用,sponge并未测试(测试版本均为1.12.2,在其它版本中未测试)
- 使用前请注意备份您的customnpc数据,此mod并不会为您因使用此mod导致的数据丢失负责
- 此mod并没有配置文件,无法配置启用或禁用某些功能,使用此mod即启用上述的全部功能。
- 可以用在mod整合包中
- 请不要二次转载发布
- 下载链接在上面
- 开源项目,但代码水平低,不建议借鉴
- 不一定会有更新
- 更新的时候常常会出一些小错误,不建议在更新后立刻使用(等几天再说?
- 如果它能够帮到您的话,我会很开心
更新记录
- 2021/12/11, 0.0.6b, 修复几个可能导致解析内容不正确的bug
- 2021/12/12, 0.0.7a, 修复浮点数解析不正确的问题
- 2022/02/24, 0.0.8-build13, “可能”稳定的版本
- 2022/03/03, 0.0.9-build14, EntityCustomNpc脚本报错时在提示中加入此npc名称
- 2022/04/17, 0.0.11-build16, 在build15中尝试修复可能发生的玩家数据丢失, build16修复了两个在单人游戏中发生的bug
- 2023/02/09, 0.2.2-build29, 权限控制、填补内存泄漏与性能优化
这个只加 服务端就可以了吗
这个可以解决玩家数据卡死服务器的问题吗
好耶地图作者福利
希望可以修复cat端某些情况下玩家L键任务列表任务消失的情况
二次元王者 发表于 2022-4-5 16:21
希望可以修复cat端某些情况下玩家L键任务列表任务消失的情况
有没有更详细的情况说明?我自己有遇到类似的问题,但并非通过修改CustomNPCs修复的此问题
好像把很多npcmod的漏洞都更新好了
kaiyu 发表于 2022-2-9 10:10
这个可以解决玩家数据卡死服务器的问题吗
同问加一,插个眼
本帖最后由 二次元王者 于 2022-4-19 14:03 编辑
偶尔会出现玩家L键里的任务消失,但其实world/customnpcs/playerdata里的玩家数据里面没有丢失,只是一个显示bug,玩家这个时候一般退出游戏后重进一下后任务就正常了,有的时候重进也好不了但稍微过段时间后再重进任务就又回来了。
总之挺离谱的,我完全搞不清是什么特定情况下才出现的这个问题...挺莫名其妙的,有可能是进服的时候读取任务量过多导致的?这个我也不太清楚,可能只有cat端才有这种情况。
但是我大致观察了下 只要有出现玩家L键里的任务消失的情况 客户端日志都会有这种报错
复制代码
1216435209 发表于 2022-4-17 22:05
有没有更详细的情况说明?我自己有遇到类似的问题,但并非通过修改CustomNPCs修复的此问题 ...
偶尔会出现玩家L键里的任务消失,但其实world/customnpcs/playerdata里的玩家数据里面没有丢失,只是一个显示bug,玩家这个时候一般退出游戏后重进一下后任务就正常了,有的时候重进也好不了但稍微过段时间后再重进任务就又回来了。
总之挺离谱的,我完全搞不清是什么特定情况下才出现的这个问题...挺莫名其妙的,有可能是进服的时候读取任务量过多导致的?这个我也不太清楚,可能只有cat端才有这种情况。
但是我大致观察了下 只要有出现玩家L键里的任务消失的情况 客户端日志都会有这种报错
- [19:57:37][FINE/CustomNPCs][noppes.npcs.controllers.ScriptController:87] Fri Mar 11 19:57:37 CST 2022
- [19:57:37][FINE/CustomNPCs][noppes.npcs.CustomNpcs:236] Script Engines Available:
- [20:00:43][SEVERE/CustomNPCs][java.util.concurrent.Executors$RunnableAdapter:-1] Error with EnumPacketClient.DIALOG
- [20:00:43][SEVERE/CustomNPCs][java.util.concurrent.Executors$RunnableAdapter:-1] java.lang.NullPointerException
- at noppes.npcs.client.gui.player.GuiDialogInteract.appendDialog(GuiDialogInteract.java:279)
- at noppes.npcs.client.gui.player.GuiDialogInteract.<init>(GuiDialogInteract.java:50)
- at noppes.npcs.client.NoppesUtil.openDialog(NoppesUtil.java:198)
- at noppes.npcs.client.PacketHandlerClient.client(PacketHandlerClient.java:169)
- at noppes.npcs.client.PacketHandlerClient.lambda$onPacketData$0(PacketHandlerClient.java:66)
- at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
- at java.util.concurrent.FutureTask.run(Unknown Source)
- at net.minecraft.util.Util.func_181617_a(Util.java:47)
- at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1088)
- at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398)
- at net.minecraft.client.main.Main.main(SourceFile:123)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
- at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
- [20:00:45][SEVERE/CustomNPCs][java.util.concurrent.Executors$RunnableAdapter:-1] Error with EnumPacketClient.DIALOG
- [20:00:45][SEVERE/CustomNPCs][java.util.concurrent.Executors$RunnableAdapter:-1] java.lang.NullPointerException
- at noppes.npcs.client.gui.player.GuiDialogInteract.appendDialog(GuiDialogInteract.java:279)
- at noppes.npcs.client.gui.player.GuiDialogInteract.<init>(GuiDialogInteract.java:50)
- at noppes.npcs.client.NoppesUtil.openDialog(NoppesUtil.java:198)
- at noppes.npcs.client.PacketHandlerClient.client(PacketHandlerClient.java:169)
- at noppes.npcs.client.PacketHandlerClient.lambda$onPacketData$0(PacketHandlerClient.java:66)
- at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
- at java.util.concurrent.FutureTask.run(Unknown Source)
- at net.minecraft.util.Util.func_181617_a(Util.java:47)
- at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1088)
- at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398)
- at net.minecraft.client.main.Main.main(SourceFile:123)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
- at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
二次元王者 发表于 2022-4-19 14:00
偶尔会出现玩家L键里的任务消失,但其实world/customnpcs/playerdata里的玩家数据里面没有丢失,只是一个 ...
在玩家连接到服务器时Cnpc会将服务端的对话、阵营、合成表、任务等数据同步至客户端,此后客户端会从同步过来的数据中读取任务信息或对话信息。若是在同步期间发生异常,导致客户端没能获得这些数据,就会产生如此报错。
此问题可能是因为网络质量不佳而产生,对此我并没有什么办法
liu210998 发表于 2022-4-18 09:01
同问加一,插个眼
请问有问题详述吗
支持1.16.5吗?如果不能希望有后续版本能支持一下
本帖最后由 1216435209 于 2022-7-15 00:31 编辑
鉴于1.16.5版本的cnpc仍在开发中,我认为将相关问题报与原作者是更佳的选择,此mod终归是原作者不再更新1.12.2版本的无奈之举
qisi-jun 发表于 2022-7-14 15:16
支持1.16.5吗?如果不能希望有后续版本能支持一下
鉴于1.16.5版本的cnpc仍在开发中,我认为将相关问题报与原作者是更佳的选择,此mod终归是原作者不再更新1.12.2版本的无奈之举
的确都是最常见的BUG了 用的内存也不多 很不错