本帖最后由 何以加冕 于 2022-8-30 01:40 编辑 
 
 
Caused by: java.lang.IllegalAccessError: tried to access field net.minecraft.client.renderer.entity.RenderLivingBase.field_177097_h from class com.dretha.drethamod.layers.LayersRegister
 
 本帖最后由 吕易天 于 2022-8-30 06:59 编辑 
你确定字段net.minecraft.client.renderer.entity.RenderLivingBase.field_177097_h在运行时是public的吗,如果不是,那你mod包的类访问它肯定会出非法访问错误
你确定字段net.minecraft.client.renderer.entity.RenderLivingBase.field_177097_h在运行时是public的吗,如果不是,那你mod包的类访问它肯定会出非法访问错误
你的at写了吗w
吕易天 发表于 2022-8-30 06:57
你确定字段net.minecraft.client.renderer.entity.RenderLivingBase.field_177097_h在运行时是public的吗, ...
是public的
teddyxlandlee 发表于 2022-8-30 07:41
你的at写了吗w
我记得是写了的
何以加冕 发表于 2022-8-30 10:19
是public的
看仔细点,是protected的
何以加冕 发表于 2022-8-30 14:31
我记得是写了的
如果实在不行有一个阴间方法,用反射,Field f=net.minecraft.client.renderer.entity.RenderLivingBase.class.getDeclaredField("field_177097_h");
f.setAccessible(true);
虽然很慢但是就是可以用,但是这样做还有一个坏处就是调试的时候更麻烦了,因为调试的时候用的mcp名,生产环境用的是searge名
吕易天 发表于 2022-8-31 20:41
如果实在不行有一个阴间方法,用反射,Field f=net.minecraft.client.renderer.entity.RenderLivingBase. ...
你这太阴间了,不建议轻易反射,除非急了
teddyxlandlee 发表于 2022-9-4 12:40
你这太阴间了,不建议轻易反射,除非急了或者不知方法返回类型的情况下,或者可以运行时动态获取ma ...
除了反射还能用方法句柄,比反射快,而且检查少,能直接设置static final字段
吕易天 发表于 2022-9-4 22:54
除了反射还能用方法句柄,比反射快,而且检查少,能直接设置static final字段 ...
能设置static final? MethodHandle有相对来说很严格的access检查
吕易天 发表于 2022-9-4 22:54
除了反射还能用方法句柄,比反射快,而且检查少,能直接设置static final字段 ...
设置static final是否有示例代码?
先这样 然后再那样就OK了 
teddyxlandlee 发表于 2022-9-9 20:15
能设置static final? MethodHandle有相对来说很严格的access检查
能设置,我试过,用https://github.com/Karlatemp/UnsafeAccessor,Root.getTrusted().findStaticSetter就可以
洞穴夜莺 发表于 2022-9-10 09:49
设置static final是否有示例代码?
用https://github.com/Karlatemp/UnsafeAccessor,Root.getTrusted().findStaticSetter就可以
吕易天 发表于 2022-9-11 18:26
用https://github.com/Karlatemp/UnsafeAccessor,Root.getTrusted().findStaticSetter就可以
我看了,这家伙写的buildscript十分糊弄,完全无法自动化构建
teddyxlandlee 发表于 2022-9-11 18:39
我看了,这家伙写的buildscript十分糊弄,完全无法自动化构建
不要尝试手动构建,用它maven仓库构建好的库
这个问题专业性非常强的哦
加油学习可以的哦努力
MCBBS有你更精彩~~
我是土鳖看不懂