From ff0c54fe374e4161ac6b35140b5fede32af882a5 Mon Sep 17 00:00:00 2001 From: OldSerpskiStalker Date: Mon, 14 Oct 2024 14:06:51 +0500 Subject: [PATCH] We must take into account the original drop --- .../primitive/OnDropSkeletonItems.java | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropSkeletonItems.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropSkeletonItems.java index 38a3123..eb849df 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropSkeletonItems.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropSkeletonItems.java @@ -71,8 +71,31 @@ public synchronized void onUpdateLivingDropsEvent_0(LivingDropsEvent event) addDamagedItemToDrops(skeleton, drops, skeleton.getHeldItemMainhand(), DataSkeletonDropItem.ConfigDataSkeletonDrop.instance.getHandItemDamageFactor()); - addArrowsToDrops(skeleton, drops, - DataSkeletonDropItem.ConfigDataSkeletonDrop.instance.getArrowsToDrops()); + Random rand = new Random(); + double arrowDropChance = 0.5; + + if (rand.nextDouble() < arrowDropChance) + { + boolean arrowsDropped = false; + for (EntityItem item : drops) + { + if (item.getItem().getItem() == Items.ARROW) + { + int currentCount = item.getItem().getCount(); + + item.getItem().setCount + (currentCount + 1 + DataSkeletonDropItem.ConfigDataSkeletonDrop.instance.getArrowsToDrops()); + arrowsDropped = true; + + break; + } + } + + if (!arrowsDropped) + { + addArrowsToDrops(skeleton, drops, DataSkeletonDropItem.ConfigDataSkeletonDrop.instance.getArrowsToDrops()); + } + } } }