有类似于@Shadow的操作么
没有,只能用反射或接口
594524502 发表于 2020-12-11 20:57
没有,只能用反射或接口
用接口具体如何操作?
Y制杖杖 发表于 2020-12-11 21:52
用接口具体如何操作?
挺麻烦的,首先你要创建一个接口,然后用mixin让目标内部类实现接口,再在需要使用的地方把内部类对象强转为接口对象,然后调用接口方法
594524502 发表于 2020-12-11 22:05
挺麻烦的,首先你要创建一个接口,然后用mixin让目标内部类实现接口,再在需要使用的地方把内部类对象强 ...
好吧。其实我是想修改村民的交易列表,发现它在net.minecraft.village.TradeOffers里,但是这个常量引用了内部类的一些方法,所以不知道怎么操作了。想问下大佬知不知道除了直接覆盖掉这个map常量还有没有别的方法修改村民交易
Y制杖杖 发表于 2020-12-12 12:54
好吧。其实我是想修改村民的交易列表,发现它在net.minecraft.village.TradeOffers里,但是这个常量引用 ...
VillagerEntity.setOffers方法可以修改单个村民的交易列表,如果你想修改默认交易列表就只有你说的办法了
你可以尝试使用AccessTransformer(Forge)或AccessWidener(Fabric)
594524502 发表于 2020-12-11 22:05
挺麻烦的,首先你要创建一个接口,然后用mixin让目标内部类实现接口,再在需要使用的地方把内部类对象强 ...
mixin让目标内部类实现接口? 如何做到
Y制杖杖 发表于 2020-12-21 13:44
mixin让目标内部类实现接口? 如何做到
创建目标类的Mixin类,让Mixin类实现接口
594524502 发表于 2020-12-21 18:51
创建目标类的Mixin类,让Mixin类实现接口
直接创建内部类的mixin可以吗?在没有访问权限的情况下
Y制杖杖 发表于 2020-12-21 22:56
直接创建内部类的mixin可以吗?在没有访问权限的情况下
用@Mxin(target={"类路径"})
594524502 发表于 2020-12-21 22:59
用@Mxin(target={"类路径"})
好的,谢谢大佬,我有空试试。
大佬能再帮我看看这个么?
https://www.mcbbs.net/thread-1145191-1-1.html