开发我的世界1.20.1forge模组时出错
本帖最后由 lemon_fes 于 2025-2-22 19:23 编辑怎么通过mixin删除原版的方块?以及能否通过mixin从底层代码删除原版的方块以及结构、生物群系?如果可以,应该怎么删除?我在用mixin删除时频繁报错:Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:32)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.run(Launcher.java:108)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.main(Launcher.java:78)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
at cpw.mods.bootstraplauncher@1.1.2/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.devService(ForgeClientUserdevLaunchHandler.java:19)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.targets.CommonDevLaunchHandler.lambda$makeService$7(CommonDevLaunchHandler.java:135)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30)
... 7 more
Caused by: java.lang.RuntimeException: java.lang.ExceptionInInitializerError
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.BackgroundWaiter.runAndTick(BackgroundWaiter.java:32)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.main.Main.main(Main.java:151)
... 16 more
Caused by: java.lang.ExceptionInInitializerError
at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.level.block.FireBlock.bootStrap(FireBlock.java:301)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.Bootstrap.bootStrap(Bootstrap.java:46)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.main.Main.lambda$main$0(Main.java:151)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.ClassCastException: class net.minecraft.world.level.block.Block cannot be cast to class net.minecraft.world.level.block.StemGrownBlock (net.minecraft.world.level.block.Block and net.minecraft.world.level.block.StemGrownBlock are in module minecraft@1.20.1 of loader 'TRANSFORMER' @421def93)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.level.block.Blocks.<clinit>(Blocks.java:386)
... 8 more
> Task :cpw.mods.bootstraplauncher.BootstrapLauncher.main() FAILED
6 actionable tasks: 2 executed, 4 up-to-date
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':cpw.mods.bootstraplauncher.BootstrapLauncher.main()'.
> Process 'command 'D:\zulu17.56.15-ca-jdk17.0.14-win_x64\bin\java.exe'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
BUILD FAILED in 8sException in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:32)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.run(Launcher.java:108)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.main(Launcher.java:78)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
at cpw.mods.bootstraplauncher@1.1.2/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.devService(ForgeClientUserdevLaunchHandler.java:19)
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.targets.CommonDevLaunchHandler.lambda$makeService$7(CommonDevLaunchHandler.java:135)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30)
... 7 more
Caused by: java.lang.RuntimeException: java.lang.ExceptionInInitializerError
at MC-BOOTSTRAP/fmlloader@1.20.1-47.3.29/net.minecraftforge.fml.loading.BackgroundWaiter.runAndTick(BackgroundWaiter.java:32)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.main.Main.main(Main.java:151)
Caused by: java.lang.RuntimeException: java.lang.ExceptionInInitializerError
... 16 more
Caused by: java.lang.ExceptionInInitializerError
Caused by: java.lang.ExceptionInInitializerError
at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.level.block.FireBlock.bootStrap(FireBlock.java:301)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.Bootstrap.bootStrap(Bootstrap.java:46)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.client.main.Main.lambda$main$0(Main.java:151)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.ClassCastException: class net.minecraft.world.level.block.Block cannot be cast to class net.minecraft.world.level.block.StemGrownBlock (net.minecraft.world.level.block.Block and net.minecraft.world.level.block.StemGrownBlock are in module minecraft@1.20.1 of loader 'TRANSFORMER' @421def93)
at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.level.block.Blocks.<clinit>(Blocks.java:386)
Caused by: java.lang.ClassCastException: class net.minecraft.world.level.block.Block cannot be cast to class net.minecraft.world.level.block.StemGrownBlock (net.minecraft.world.level.block.Block and net.minecraft.world.level.block.StemGrownBlock are in module minecraft@1.20.1 of loader 'TRANSFORMER' @421def93)
... 8 more
> Task :cpw.mods.bootstraplauncher.BootstrapLauncher.main() FAILED
Execution failed for task ':cpw.mods.bootstraplauncher.BootstrapLauncher.main()'.
> Process 'command 'D:\zulu17.56.15-ca-jdk17.0.14-win_x64\bin\java.exe'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
BUILD FAILED in 8s
6 actionable tasks: 2 executed, 4 up-to-dateExecution failed for task ':cpw.mods.bootstraplauncher.BootstrapLauncher.main()'.
> Process 'command 'D:\zulu17.56.15-ca-jdk17.0.14-win_x64\bin\java.exe'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
BUILD FAILED in 8s
6 actionable tasks: 2 executed, 4 up-to-dateai提示要跳过注册,而不是删除,这东西能跳过注册吗?
源代码:
@Mixin(BiomeData.class)
public abstract class BiomeMixin {
@Redirect(
method = "bootstrap",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/data/worldgen/BootstapContext;register(Lnet/minecraft/resources/ResourceKey;Ljava/lang/Object;)Lnet/minecraft/core/Holder$Reference;",
ordinal = 39
)
)
private static Holder.Reference<Biome> replaceDeepDark(BootstapContext<Biome> context, ResourceKey<Biome> key, Object biome) {
return context.register(
Biomes.DRIPSTONE_CAVES,
OverworldBiomes.dripstoneCaves(
context.lookup(Registries.PLACED_FEATURE),
context.lookup(Registries.CONFIGURED_CARVER)
)
);
}
}@Mixin(Blocks.class)
public abstract class BlockRegistryMixin {
@Redirect(
method = "<clinit>",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/world/level/block/Blocks;register(Ljava/lang/String;Lnet/minecraft/world/level/block/Block;)Lnet/minecraft/world/level/block/Block;"
)
)
private static Block handleRegistration(String id, Block block) {
// 保留空气等基础方块的注册
if (id.equals("air") || id.startsWith("sculk")) {
return block;
}
// 对其他需要移除的方块返回虚拟占位
return new Block(Block.Properties.copy(Blocks.AIR));
}
}
页: [1]