From 642ad215e7776dc8c51faf935639d87bc02f866b Mon Sep 17 00:00:00 2001 From: 0x01FE <0x01fe@0x01fe.net> Date: Wed, 15 Apr 2026 22:52:47 -0500 Subject: [PATCH] added mob item drops --- .../java/net/hexa/MythicItems/Constants.java | 5 ++++ .../net/hexa/MythicItems/MythicListener.java | 24 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/main/java/net/hexa/MythicItems/Constants.java diff --git a/src/main/java/net/hexa/MythicItems/Constants.java b/src/main/java/net/hexa/MythicItems/Constants.java new file mode 100644 index 0000000..f91613e --- /dev/null +++ b/src/main/java/net/hexa/MythicItems/Constants.java @@ -0,0 +1,5 @@ +package net.hexa.MythicItems; + +public class Constants { + public static Integer MYTHIC_DROP_CHANCE = 10; // 1 in n chances +} diff --git a/src/main/java/net/hexa/MythicItems/MythicListener.java b/src/main/java/net/hexa/MythicItems/MythicListener.java index 8323f30..bc194d7 100644 --- a/src/main/java/net/hexa/MythicItems/MythicListener.java +++ b/src/main/java/net/hexa/MythicItems/MythicListener.java @@ -4,16 +4,23 @@ import net.hexa.MythicItems.mythics.MythicEssence; import net.hexa.MythicItems.mythics.MythicItem; import org.bukkit.Bukkit; +import org.bukkit.entity.Enemy; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; +import java.util.Random; + public class MythicListener implements Listener { + private static final Random random = new Random(); + @EventHandler public void onBlockBreak(BlockBreakEvent event) { Player player = event.getPlayer(); @@ -53,4 +60,21 @@ public class MythicListener implements Listener { } } } + + @EventHandler + public void onMobDeath(EntityDeathEvent event) { + Entity killer = event.getDamageSource().getCausingEntity(); + Entity mob = event.getEntity(); + + if (killer instanceof Player && mob instanceof Enemy) { + int result = random.nextInt(1, Constants.MYTHIC_DROP_CHANCE + 1); + if (result == 1) { + ItemStack mythicReward = MythicEssence.rollMythic(); + mob.getWorld().dropItemNaturally( + mob.getLocation(), + mythicReward + ); + } + } + } }