From c5be3f755172b514169340eafdd16e71af94a29c Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Sun, 12 May 2024 22:01:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=AA=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=9A=84=E4=BC=A4=E5=AE=B3=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/event/LivingEntityEventHandler.java | 5 +++-- .../mcreator/target/init/TargetModDamageTypes.java | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java b/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java index 8094fed22..24883af1c 100644 --- a/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java +++ b/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java @@ -2,6 +2,7 @@ package net.mcreator.target.event; import net.mcreator.target.entity.BocekarrowEntity; import net.mcreator.target.entity.Target1Entity; +import net.mcreator.target.init.TargetModDamageTypes; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.TargetModVariables; import net.minecraft.commands.CommandSource; @@ -59,7 +60,7 @@ public class LivingEntityEventHandler { if (event != null && event.isCancelable()) { event.setCanceled(true); } - entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:mine"))), sourceentity), (float) amount); + entity.hurt(TargetModDamageTypes.causeMineDamage(world.registryAccess(), sourceentity), (float) amount); } } @@ -68,7 +69,7 @@ public class LivingEntityEventHandler { if (damagesource == null || entity == null || immediatesourceentity == null || sourceentity == null) return; if (damagesource.is(DamageTypes.ARROW) && immediatesourceentity instanceof BocekarrowEntity) { event.setCanceled(true); - entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:arrow_in_brain"))), sourceentity), (float) amount); + entity.hurt(TargetModDamageTypes.causeArrowInBrainDamage(world.registryAccess(), sourceentity), (float) amount); } } diff --git a/src/main/java/net/mcreator/target/init/TargetModDamageTypes.java b/src/main/java/net/mcreator/target/init/TargetModDamageTypes.java index ad028a478..72ae11838 100644 --- a/src/main/java/net/mcreator/target/init/TargetModDamageTypes.java +++ b/src/main/java/net/mcreator/target/init/TargetModDamageTypes.java @@ -17,11 +17,22 @@ import javax.annotation.Nullable; @SuppressWarnings("OptionalGetWithoutIsPresent") public class TargetModDamageTypes { public static final ResourceKey GUNFIRE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "gunfire")); + public static final ResourceKey ARROW_IN_BRAIN = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "arrow_in_brain")); + public static final ResourceKey MINE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "mine")); + public static DamageSource causeGunFireDamage(RegistryAccess registryAccess, @Nullable Entity entity) { return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(GUNFIRE), entity); } + public static DamageSource causeArrowInBrainDamage(RegistryAccess registryAccess, @Nullable Entity entity) { + return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(ARROW_IN_BRAIN), entity); + } + + public static DamageSource causeMineDamage(RegistryAccess registryAccess, @Nullable Entity entity) { + return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(MINE), entity); + } + private static class DamageMessages extends DamageSource { public DamageMessages(Holder.Reference typeReference) { super(typeReference);