From ffab3a014e486c8879be620c1c51ace6bcacc966 Mon Sep 17 00:00:00 2001 From: 1024_byteeeee <2270484921@qq.com> Date: Tue, 10 Sep 2024 04:56:22 +0800 Subject: [PATCH] :poop: --- .../EnderDragonSpawnStateMixin.java | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/main/java/club/mcams/carpet/mixin/rule/preventEndSpikeRespawn/EnderDragonSpawnStateMixin.java b/src/main/java/club/mcams/carpet/mixin/rule/preventEndSpikeRespawn/EnderDragonSpawnStateMixin.java index 68b83d6d..439ce9af 100644 --- a/src/main/java/club/mcams/carpet/mixin/rule/preventEndSpikeRespawn/EnderDragonSpawnStateMixin.java +++ b/src/main/java/club/mcams/carpet/mixin/rule/preventEndSpikeRespawn/EnderDragonSpawnStateMixin.java @@ -51,34 +51,48 @@ private boolean onRemoveBlock(ServerWorld serverWorld, BlockPos blockPos, boolea return Objects.equals(AmsServerSettings.preventEndSpikeRespawn, "false") ? original.call(serverWorld, blockPos, b) : false; } - // TODO: 不知道为什么注入点认不到,先摆 - //#if MC<12102 @WrapOperation( method = "run", at = @At( value = "INVOKE", - target = //#if MC>=12102 - //$$ "Lnet/minecraft/server/world/ServerWorld;createExplosion(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/world/World$ExplosionSourceType;)V" - //#elseif MC>11904 - //$$ "Lnet/minecraft/server/world/ServerWorld;createExplosion(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/world/World$ExplosionSourceType;)Lnet/minecraft/world/explosion/Explosion;" + //$$ target = "Lnet/minecraft/server/world/ServerWorld;createExplosion(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/world/World$ExplosionSourceType;)V" + //#elseif MC>=11904 + //$$ target = "Lnet/minecraft/server/world/ServerWorld;createExplosion(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/world/World$ExplosionSourceType;)Lnet/minecraft/world/explosion/Explosion;" //#else - "Lnet/minecraft/server/world/ServerWorld;createExplosion(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/world/explosion/Explosion$DestructionType;)Lnet/minecraft/world/explosion/Explosion;" + target = "Lnet/minecraft/server/world/ServerWorld;createExplosion(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/world/explosion/Explosion$DestructionType;)Lnet/minecraft/world/explosion/Explosion;" //#endif ) ) + //#if MC>=12102 + //$$ private void onCreateExplosion( + //#else private Explosion onCreateExplosion( + //#endif ServerWorld serverWorld, Entity entity, double x, double y, double z, float power, - //#if MC>=12000 - //$$ World.ExplosionSourceType destructionType, - //#else + + //#if MC<11904 Explosion.DestructionType destructionType, + //#else + //$$ World.ExplosionSourceType destructionType, //#endif + + //#if MC>=12102 + //$$ Operation original + //#else Operation original + //#endif ) { + //#if MC<12102 return Objects.equals(AmsServerSettings.preventEndSpikeRespawn, "false") ? original.call(serverWorld, entity, x, y, z, power, destructionType) : null; + //#else + //$$ if (Objects.equals(AmsServerSettings.preventEndSpikeRespawn, "false")) { + //$$ original.call(serverWorld, entity, x, y, z, power, destructionType); + //$$ } else { + //$$ serverWorld.createExplosion(null, 0, 0, 0, 0.0F, World.ExplosionSourceType.NONE); + //$$ } + //#endif } - //#endif }