From 5315abc2a40f03335eeee3e5fe6bc5ddbc287f1f Mon Sep 17 00:00:00 2001 From: WakelessSloth56 Date: Sat, 17 Sep 2022 22:08:44 +0800 Subject: [PATCH] feat(event): ItemHurtEvent --- .../server/event/ServerEventFactory.java | 8 ++++ .../server/event/impl/ItemHurtEvent.java | 39 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 src/main/java/org/auioc/mcmod/arnicalib/server/event/impl/ItemHurtEvent.java diff --git a/src/main/java/org/auioc/mcmod/arnicalib/server/event/ServerEventFactory.java b/src/main/java/org/auioc/mcmod/arnicalib/server/event/ServerEventFactory.java index 1f9e7428..8f9dcb87 100644 --- a/src/main/java/org/auioc/mcmod/arnicalib/server/event/ServerEventFactory.java +++ b/src/main/java/org/auioc/mcmod/arnicalib/server/event/ServerEventFactory.java @@ -5,9 +5,11 @@ import java.util.Random; import java.util.UUID; import java.util.function.Function; +import javax.annotation.Nullable; import org.apache.logging.log4j.Marker; import org.auioc.mcmod.arnicalib.server.event.impl.CatMorningGiftChanceEvent; import org.auioc.mcmod.arnicalib.server.event.impl.FishingRodCastEvent; +import org.auioc.mcmod.arnicalib.server.event.impl.ItemHurtEvent; import org.auioc.mcmod.arnicalib.server.event.impl.LivingEatAddEffectEvent; import org.auioc.mcmod.arnicalib.server.event.impl.PiglinStanceEvent; import org.auioc.mcmod.arnicalib.server.event.impl.ServerLoginEvent; @@ -91,4 +93,10 @@ public static FishingRodCastEvent.Pre firePreFishingRodCastEvent(Player player, return event; } + public static int fireItemHurtEvent(ItemStack itemStack, int damage, Random random, @Nullable ServerPlayer player) { + var event = new ItemHurtEvent(itemStack, damage, random, player); + BUS.post(event); + return event.getDamage(); + } + } diff --git a/src/main/java/org/auioc/mcmod/arnicalib/server/event/impl/ItemHurtEvent.java b/src/main/java/org/auioc/mcmod/arnicalib/server/event/impl/ItemHurtEvent.java new file mode 100644 index 00000000..dfc76879 --- /dev/null +++ b/src/main/java/org/auioc/mcmod/arnicalib/server/event/impl/ItemHurtEvent.java @@ -0,0 +1,39 @@ +package org.auioc.mcmod.arnicalib.server.event.impl; + +import java.util.Random; +import javax.annotation.Nullable; +import org.auioc.mcmod.arnicalib.api.game.event.ServerPlayerEvent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; + +public class ItemHurtEvent extends ServerPlayerEvent { + + private final ItemStack itemStack; + private final Random random; + private int damage; + + public ItemHurtEvent(ItemStack itemStack, int damage, Random random, @Nullable ServerPlayer player) { + super(player); + this.itemStack = itemStack; + this.damage = damage; + this.random = random; + } + + public ItemStack getItemStack() { + return this.itemStack; + } + + public Random getRandom() { + return this.random; + } + + public int getDamage() { + return this.damage; + } + + public void setDamage(int damage) { + this.damage = damage; + } + +} +