lemon_fes 发表于 2025-2-22 19:19:02

开发我的世界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]
查看完整版本: 开发我的世界1.20.1forge模组时出错