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);