Skip to content

🌹学习看报错

知识点

出现 破解司马AttributeMM报错

到底是什么问题导致的报错,取决于报错中的 核心错误信息调用堆栈

例子

破解司马

主提示

yaml
[MythicMobs] Failed to construct condition isSprinting{} true

你在 MythicMobs 的技能或条件配置中使用了

yaml
Conditions:
  - isSprinting{}

MythicMobs 尝试加载这个条件(),但构造失败。

根本原因

yaml
java.lang.NoSuchMethodException: io.lumine.xikage.mythicmobs.skills.conditions.all.SprintingCondition.<init>(java.lang.String, io.lumine.xikage.mythicmobs.io.MythicLineConfig)

JVM 尝试通过反射调用类 的构造方法:

java
public SprintingCondition(String line, MythicLineConfig config)

这个构造方法不存在(可能被删除、改名、参数类型不对,或者该类根本不是这么设计的)。

调用堆栈

yaml
	at java.lang.Class.getConstructor0(Class.java:3082)
	at java.lang.Class.getConstructor(Class.java:1825)
	at io.lumine.xikage.mythicmobs.skills.SkillCondition.getCondition(SkillCondition.java:399)
	at io.lumine.xikage.mythicmobs.skills.Skill.<init>(Skill.java:70)
	at io.lumine.xikage.mythicmobs.skills.SkillManager.loadSkills(SkillManager.java:132)
	at FatherOfApmm.破解剽窃抄袭死妈.-!作者QQ1748064976!-.破解剽窃抄袭死妈O00oOoO......OO.ALLATORIxDEMO(gg:39)

堆栈的“顶部”是最新的调用,而“底部”是最开始的调用。


打印顺序是从“最内层(出错点)”到“最外层(触发点)”,也就是:

yaml
at 出错的方法 (最深一层,实际抛异常的地方)
at 调用它的方法
at 再上一层调用者
...
at 最外层

举个例子 :

yaml
java.lang.NullPointerException
	at MyClass.C(MyClass.java:30)   ← 【1】真正出错的地方(最内层)
	at MyClass.B(MyClass.java:25)   ← 【2】B 调用了 C
	at MyClass.A(MyClass.java:20)   ← 【3】A 调用了 B
	at MyClass.main(MyClass.java:10)← 【4】main 调用了 A(最外层)

不难理解,真正出现问题的不是 AttributeMM,而是 MythicMobs

一堆Oo0是什么

FatherOfApmm.破解剽窃抄袭死妈.-!作者QQ1748064976!- 是 AttributeMM 的包名

破解剽窃抄袭死妈O00oOoO......OO是插件中的类名

他们是被刻意的混淆之后的包名和类名

结论

出现 破解司马AttributeMM报错

到底是什么问题导致的报错,取决于报错中的 核心错误信息调用堆栈

AttributeMM 作为一个 桥接插件,自然会调用 MythicMobs 和 AttributePlus 中的很多东西,若你的这两个插件报错,当然也就看见 破解司马