lovexyn0827

teddyxlandlee
IDEA一般会带一个Show Bytecode的功能。
点开这个文件,去屏幕上方的标签栏里找,一般在什么(V)底下,记不清了

然后找到raycast(RaycastContext)这个方法(Ctrl+F大法)
在里面按顺序看哪个invokedynamic是你想要的
invokedynamic的括号里有好多行,你去找开头是REF_InvokeStatic或者REF_InvokeVirtual或者REF_InvokeSpecial的,应该是括号里的第二行
它会包含一个方法名,类似于method_10086这类的(看你的反编译结果很像Fabric风格),Ctrl+F找到,确认一下里面的bytecode和lambda内的内容差别不大
然后去Inject这个method_10086。注意:如果可以的话,在写完Mixin后在Inject Method前加@SuppressWarnings("all"),不然mixin编译器可能会抽风

teddyxlandlee
本帖最后由 teddyxlandlee 于 2022-6-3 07:25 编辑

纠正一下 是@SuppressWarnings("target"),不然别的错误也看不出了w补充:Mixin本身一定要是接口,不然报错
既然是这样,Inject方法本身就得用default啦

第一页 上一页 下一页 最后一页