本帖最后由 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 8s
复制代码- 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)
- 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-date
复制代码- 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-date
复制代码 ai提示要跳过注册,而不是删除,这东西能跳过注册吗?
源代码:
- @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));
- }
- }
复制代码
|