上来直接把betterMC 整合包中的所有mods,复制到mohist的mods目录中是无法直接运行的。报很多错。顺便说一下betterMC中的mod真多啊,所有文件体积竟然高达800多MB。这也给调试工作带来了大麻烦。
剔除的jar包
以下是我经过非常多次的测试,剔除的jar包,这些jar包都是启动时报过错的。剔除以后至少服务能启动了。找到这些非常的不容易,希望给有需求的人提供一点点小小的帮助。
blueprint-1.20.1-7.1.0.jar 刚开始因为有报错被我删除了,最终又放回来了,不删也行
entity_texture_features_forge_1.20.1-6.2.5.jar
pet_cemetery-1.20.1-2.0.0.jar 先因报错删除,最终放回来了
TheOuterEnd-1.0.9.jar先因报错删除,最终放回来了
boatload-1.20.1-5.0.1.jar 先因报错删除,最终放回来了
EuphoriaPatcher-0.3.4-forge.jar
Tips-Forge-1.20.1-12.1.8.jar
citresewn-1.20.1-5.jar
incubation-1.20.1-4.0.2.jar 先因报错删除,最终放回来了
sodiumdynamiclights-forge-1.0.8-1.20.1.jar
XaeroPlus-2.24.3+forge-1.20.1-WM1.39.0-MM24.5.0.jar
entity_model_features_forge_1.20.1-2.2.6.jar
NekosEnchantedBooks-1.20.1-1.8.0.jar
sodiumoptionsapi-forge-1.0.2-1.20.1.jar
YungsMenuTweaks-1.20.1-Forge-1.0.2.jar
sawmill-1.20-1.4.3.jar
经过筛选和反复调试,最终从整合包中删除的mods如下
entity_texture_features_forge_1.20.1-6.2.5.jar
EuphoriaPatcher-0.3.4-forge.jar
Tips-Forge-1.20.1-12.1.8.jar
citresewn-1.20.1-5.jar
sodiumdynamiclights-forge-1.0.8-1.20.1.jar
XaeroPlus-2.24.3+forge-1.20.1-WM1.39.0-MM24.5.0.jar
entity_model_features_forge_1.20.1-2.2.6.jar
NekosEnchantedBooks-1.20.1-1.8.0.jar
sodiumoptionsapi-forge-1.0.2-1.20.1.jar
YungsMenuTweaks-1.20.1-Forge-1.0.2.jar
sawmill-1.20-1.4.3.jar
我好奇这些mod的作用,我就简单查一下吧。
blueprint-1.20.1-7.1.0.jar
运行环境: 客户端需装, 服务端需装
Blueprint 是一个 lib 模组,旨在让开发者轻松访问在大多数 Minecraft Abnormals 模组中共享的代码,而无需在每个项目中复制类。 该库由 SmellyModder (Luke Tonon) 和 bageldotjpg 开发。它还具有其它许多有用的功能,例如更便捷的物品、方块自动注册方法,以及名为 Endimator 的动画库。
https://www.mcmod.cn/class/2575.html
entity_texture_features_forge_1.20.1-6.2.5.jar
运行环境: 客户端需装, 服务端无效
实体纹理特性
这个模组允许你在没有高清修复的情况下,支持显示由纹理包提供的 Optifine 格式的实体发光纹理和随机纹理,此外还添加了许多额外的功能。
https://www.mcmod.cn/class/5862.html
pet_cemetery-1.20.1-2.0.0.jar
运行环境: 客户端需装, 服务端需装
h1=概述\]爱宠的离去对任何人来说都是一件伤心的事,无论在游戏中还是在现实中。不过,游戏毕竟是游戏,总会有方法把你的爱宠带回你身边的。PetCemetery 便是这样一个模组,现在,玩家驯服的如狼、猫和鹦鹉等生物会在被驯服后死亡时掉落一个项圈(掉落物形态不会被熔岩摧毁),项圈会显示有关这只生物的信息。\[h2=使用方式\]手持项...
这串 MOD 名称中:【WM1.33.0】为World Map(世界地图)的1.33.0版本【MM23.6.2】则为Mini Map(小地图)的23.6.2版本
YungsMenuTweaks-1.20.1-Forge-1.0.2.jar
运行环境: 客户端需装, 服务端无效
https://www.mcmod.cn/class/12333.html
一个轻量级客户端模组,让浏览 Minecraft 菜单变得更轻松。
此模组允许玩家:
右键单击循环按钮,返回上一个选项;
使用鼠标滚轮更改滑块选项;
将几乎所有选项屏幕的背景更改为任一 16x16 纹理。不再有泥土背景!
报错
在mohist服务器中想运行betterMC 服务器时报如下错
sql
[20:32:45 FATAL]: Mixin apply for mod sodiumdynamiclights failed mixins.sodiumdynamiclights.json:lightsource.EntityMixin from mod sodiumdynamiclights -> net.minecraft.world.entity.Entity: org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException Unexpecteded ClassMetadataNotFoundException whilst transforming the mixin class: [MAIN Applicator Phase -> mixins.sodiumdynamiclights.json:lightsource.EntityMixin from mod sodiumdynamiclights -> Apply Methods -> (Lnet/minecraft/client/renderer/LevelRenderer;)Z:sodiumdynamiclights$updateDynamicLight -> Transform LVT -> var=renderer -> desc=Lnet/minecraft/client/renderer/LevelRenderer;]
org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException: Unexpecteded ClassMetadataNotFoundException whilst transforming the mixin class: [MAIN Applicator Phase -> mixins.sodiumdynamiclights.json:lightsource.EntityMixin from mod sodiumdynamiclights -> Apply Methods -> (Lnet/minecraft/client/renderer/LevelRenderer;)Z:sodiumdynamiclights$updateDynamicLight -> Transform LVT -> var=renderer -> desc=Lnet/minecraft/client/renderer/LevelRenderer;]
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.transformMethod(MixinTargetContext.java:510) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyNormalMethod(MixinApplicatorStandard.java:535) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMethods(MixinApplicatorStandard.java:521) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:388) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:327) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:421) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-10.0.9.jar:10.0.9+10.0.9+main.dcd20f30]
at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:121) ~[securejarhandler-mohist-2.1.11.jar:?]
at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:257) ~[securejarhandler-mohist-2.1.11.jar:?]
at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:267) ~[securejarhandler-mohist-2.1.11.jar:?]
at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:257) ~[securejarhandler-mohist-2.1.11.jar:?]
at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:144) ~[securejarhandler-mohist-2.1.11.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at net.minecraftforge.registries.GameData.init(GameData.java:108) ~[forge-1.20.1-47.3.11-universal.jar%23623!/:?]
at net.minecraftforge.registries.GameData.<clinit>(GameData.java:94) ~[forge-1.20.1-47.3.11-universal.jar%23623!/:?]
at net.minecraft.core.registries.BuiltInRegistries.forge(BuiltInRegistries.java:429) ~[server-1.20.1-20230612.114412-srg.jar%23618!/:?]
at net.minecraft.core.registries.BuiltInRegistries.forge(BuiltInRegistries.java:409) ~[server-1.20.1-20230612.114412-srg.jar%23618!/:?]
at net.minecraft.core.registries.BuiltInRegistries.<clinit>(BuiltInRegistries.java:121) ~[server-1.20.1-20230612.114412-srg.jar%23618!/:?]
at net.minecraft.server.Bootstrap.m_135870_(Bootstrap.java:43) ~[server-1.20.1-20230612.114412-srg.jar%23618!/:?]
at net.minecraft.server.Main.main(Main.java:161) ~[server-1.20.1-20230612.114412-srg.jar%23618!/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.3.11.jar%23192!/:?]
at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.serverService(CommonLaunchHandler.java:103) ~[fmlloader-1.20.1-47.3.11.jar%23192!/:?]
at net.minecraftforge.fml.loading.targets.CommonServerLaunchHandler.lambda$makeService$0(CommonServerLaunchHandler.java:27) ~[fmlloader-1.20.1-47.3.11.jar%23192!/:?]
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-10.0.9.jar%23103!/:?]
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-10.0.9.jar%23103!/:?]
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-10.0.9.jar%23103!/:?]
at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) [modlauncher-10.0.9.jar%23103!/:?]
at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) [modlauncher-10.0.9.jar%23103!/:?]
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-10.0.9.jar%23103!/:?]
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-10.0.9.jar%23103!/:?]
at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) [bootstraplauncher-1.1.2.jar:?]
at com.mohistmc.MohistMCStart.main(MohistMCStart.java:116) [mohist-1.20.1-895-server.jar:1.20.1-895]
Caused by: org.spongepowered.asm.mixin.throwables.ClassMetadataNotFoundException: net.minecraft.client.renderer.LevelRenderer
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.transformSingleDescriptor(MixinTargetContext.java:1001) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.transformSingleDescriptor(MixinTargetContext.java:961) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.transformLVT(MixinTargetContext.java:563) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.transformMethod(MixinTargetContext.java:469) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
... 43 more
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:32)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.run(Launcher.java:108)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.main(Launcher.java:78)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
at cpw.mods.bootstraplauncher@1.1.2/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141)
at com.mohistmc.MohistMCStart.main(MohistMCStart.java:116)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.11/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.11/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.serverService(CommonLaunchHandler.java:103)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.11/net.minecraftforge.fml.loading.targets.CommonServerLaunchHandler.lambda$makeService$0(CommonServerLaunchHandler.java:27)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30)
... 8 more
Caused by: java.lang.NoClassDefFoundError: net/minecraft/world/entity/Entity
at TRANSFORMER/forge@47.3.11/net.minecraftforge.registries.GameData.init(GameData.java:108)
at TRANSFORMER/forge@47.3.11/net.minecraftforge.registries.GameData.<clinit>(GameData.java:94)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.core.registries.BuiltInRegistries.forge(BuiltInRegistries.java:429)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.core.registries.BuiltInRegistries.forge(BuiltInRegistries.java:409)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.core.registries.BuiltInRegistries.<clinit>(BuiltInRegistries.java:121)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.Bootstrap.m_135870_(Bootstrap.java:43)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.Main.main(Main.java:161)
... 16 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.world.entity.Entity
at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:157)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 23 more
经过排除法大量的测试,最终发现导致原因是:
sodiumdynamiclights-forge-1.0.8-1.20.1.jar
sodiumoptionsapi-forge-1.0.2-1.20.1.jar
通过https://modrinth.com/mod/sodium-dynamic-lights 可以看出,这两个模组应该是跟Sodium 有关,这个是客户端的mod在服务器上用不到。
java.lang.ClassNotFoundException: net.minecraft.world.item.crafting.RecipeManager
sql
[09:05:38 INFO]: Generated runtime SERVER_DATA for pack Supplementaries Generated Pack (supplementaries) in: 11 ms
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:32)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.run(Launcher.java:108)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.main(Launcher.java:78)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
at cpw.mods.bootstraplauncher@1.1.2/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141)
at com.mohistmc.MohistMCStart.main(MohistMCStart.java:116)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.11/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.11/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.serverService(CommonLaunchHandler.java:103)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.11/net.minecraftforge.fml.loading.targets.CommonServerLaunchHandler.lambda$makeService$0(CommonServerLaunchHandler.java:27)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30)
... 8 more
Caused by: java.lang.NoClassDefFoundError: net/minecraft/world/item/crafting/RecipeManager
at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.WorldLoader.m_214362_(WorldLoader.java:38)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.Main.lambda$main$2(Main.java:221)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.Util.m_214652_(Util.java:777)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.Util.m_214679_(Util.java:772)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.Main.main(Main.java:220)
... 16 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.world.item.crafting.RecipeManager
at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:157)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 21 more
不清楚为什么,我在一定定排查是哪个jar包引起的过程中,又突然好了。
经过几个小时的排查工作,我终于在这几百个jar中找到了一个导致错误的jar,不断的复制和删除jar太需要耐心了,差点没坚持下来。
最终定位到文件:
sawmill-1.20-1.4.3.jar
我在百科中查了一下,
https://www.mcmod.cn/class/13485.html
概述
这是一个相当简单的模组,为游戏添加了锯木机方块,并将其完美的融入于原版游戏中。
模组包含的所有功能:
锯木机的加工配方兼容所有模组添加的木材,且可制作所有的木制衍生品
新的村民职业"木匠",并在村庄中添加了属于它们的建筑物
支持通过数据包或 KubeJS 添加额外的加工配方
同时看到下面的评论也证实了这个确实会导致问题:
4楼 jackzhangcnccLv.3 该模组放在mohist服务端中会导致和多个常见模组不兼容从而起不来服务端的问题,不兼容模组有沉浸
精妙背包等七八个吧
2024-07-26 16:26:03 mlus 3楼 mlusLv.6
1.3.13版本在服务器上使用会导致玩家进不了服。
帧率优化心得
玩这个整合包的第一感觉就是加载慢,帧率比较低。主要跟我一起玩的一个小伙伴的电脑配置比较低,玩的时间经常只有20fps左右,太卡了,于是我就尝试一些帧率上在优化。比较有效在如下
- 视频设置中,各种画质和特效调低。
- 去掉Stay_True_1.20.zip材质包,这个材质包,我测试了一下,使用以后掉帧比较严重。
这个材质包有连接纹理,最明显在是有无缝玻璃效果。还有个负优化,樱花树叶中会出现黑色的纹理,变难看了。 - 材质包,能不用就不用,我只用了汉化的包,其他在材质包尽量不用,效果还可以。
合成物品非常卡顿的研究
说到这个整合包v33.5
版本,我最无法忍受在一点就是合成物品太卡了。
因为我比较高频在要合成树棍跟村民交易,每次都要卡几秒。
最难受的是有时因为卡住了多合成了很多重复的,比如我就一不小心合成了64个箱子。
于是我就用排除法找导致卡顿的mod,说着简单,做起来太难了。难的跟本原因如下:
- 这个整合包启动时间太久了,测试一次的周期太长。
- 整合包中的mod太多了。
- 就算解决完了mod的依赖关系,创建世界依然各种闪退,关键是无法定位是哪个mod导致的,因为从日志中很难定位是哪个mod导致的。
测试方法:
思路:二分法,理想中把所有jar包分两份,分别测试A,B两份jar包,确定有问题的jar在哪组文件中。假如有问题的是A中,那么就在把A 分2份,A1,A2,在像之前一样测试哪一组有问题。
现实测试时没有这么容易 ,还要根据日志处理各种依赖关系。
最终我测试了近6个小时,创建了20多次世界。每次启动都要等很久,非常多的时间浪费在等待中了。第二费时间的就是依赖关系的处理。
依赖提示比较多时,我自己写了个程序自动分析日志,自动增加依赖。
最终找到了以下mod导致合成变慢的。
Chipped-forge-1.20.1-3.0.6.jar
Chipped是一个1.16+的建筑装饰模组,它扩展了可使用的建筑方块。该模组提供了2000多种独特的方块变种,从彩色玻璃到混凝土、
https://www.mcmod.cn/class/4726.html
补充说明:
在我做测试的时候,确实把Chipped这个mod禁用以后,合成速度变快了不少。但是我在服务器上真的去掉这个以后,我发现合成确实有所改善,但是还是偶尔会卡顿一下。
此时我做一个猜测,这个合成卡顿的情况,会不会并不是与Chipped有直接的关系。只是因为这个模组带有2000多种方块,方块数量比较大,有可能是因为方便每次合成后,会有个动作为遍历一下,有哪些方块解锁了。由于方块数量多导致的卡。
物品自动替换
Stack Refill
https://www.mcmod.cn/class/7064.html
不知道为啥有这个模组,还是不行,还是安装了IPN才生效。
广告推广类的mod
- ServerBrowser 1.0.0 用于显示互联网上可用的服务器列表,对我来说没有什么用。
betterMC 启动界面禁用
为什么要禁用这个启动界面呢,我的原因如下:
- 总感觉BMC自己的启动界面进入比较卡。
- BMC的启动界面不好看。
- BMC整合包版本信息按钮,档住了我常用的In-Game Account Switcher的按钮了。
- 安装了冰火传说后,会有个版本信息的按钮档在单人游戏的位置,不好看。
禁用以下模组:
- FancyMenu
- Drippy Loading Screen
- BHMenu
- Better Mods Button
- Modpack Update Checker 0.15.2
启动速度测试
- 去掉config目录,启动速度约2分钟45秒
测试环境说明:
HMCL 3.6.11
MacOS 15.1.1
BMC 整合包微调版本,调整记录见文件上面的内容。
默认的config目录文件测试如下:
禁用组件前
- 第1次测试 1分27秒
- 第2次测试 2分28秒
- 第3次测试 2分10秒
平均值为2分1秒
禁用以下模组:
- FancyMenu
- Drippy Loading Screen
- BHMenu
- Better Mods Button
- Modpack Update Checker 0.15.2
禁用组件后
- 第1次测试 1分18秒
- 第2次测试 1分27秒
- 第3次测试 1分24秒
平均值为1分23秒
平均节省的时间约38秒
下载整合包的等待时间约20秒
我发现,每次启动BMC的整合包都是执行一次下载动作。
这个在首次运行时还是有用的,会自动下载缺失的文件,但是对于已经下载成功的。每次启动还检查下载情况,就太浪费时间了。特别是BMC这种jar包比较多的情况,每次遍历一便时间就很久。
解决办法:
在整合包的根目录(mods平级),下有一个manifest.json
文件,编辑这个文件,把"files"
属性中的所有内容删除,只留[]
- 第1次测试 1分11秒
- 第2次测试 1分4秒
- 第3次测试 1分10秒
平均约1分8秒,优化至此,启动时间缩少了 53秒。