【MOD開発】Invokerを使ったらStackOverflowErrorが出てrunClientできなくなった の変更点
#author("2025-02-05T17:35:55+09:00","default:pitablog","pitablog")
#author("2025-02-05T17:36:23+09:00","default:pitablog","pitablog")
* 【MOD開発】Invokerを使ったらStackOverflowErrorが出てrunClientできなくなった [#z7dee17d]
#splitbody{{
LEFT:
&tag(情報技術,プログラミング,MOD開発,Java,ゲーム,FabricMC,MOD,Minecraft);
#split
RIGHT:&size(13){投稿日: 2025-01-15 (水)};
RIGHT:&size(13){投稿日: 2025-02-05 (水)};
}}
#bcontents
** 発生したエラー [#ib6905ad]
java.lang.StackOverflowError: Bootstrap
at knot//net.minecraft.block.Block.setDefaultState(Block.java)
...
** とりあえず関数名かえてみる [#h50b3c90]
最初は原因がまったくわからなかったけど `setDefaultState` から `setDefaultState_invoke`へ変更したら解決できた。
変更前:
#gcode(java){{{
@Mixin(Block.class)
public interface BlockInvoker {
@Invoker("setDefaultState")
void setDefaultState(BlockState state);
}
}}}
変更後:
#gcode(java){{{
@Mixin(Block.class)
public interface BlockInvoker {
@Invoker("setDefaultState")
void setDefaultState_invoke(BlockState state);
}
}}}
** おわりに [#r0a50b05]
なんで...?InvokerってInvoker元の関数名そんまま使ったらダメなのか...
** コメント [#j3725a56]
#pctrlcmt
&size(10){キーワード: 情報技術,プログラミング,ゲーム,Minecraft,Java,MOD開発,MOD,FabricMC};