diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/CfgSkeletonDropItem.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/CfgSkeletonDropItem.java index d10be1a..0c8b796 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/CfgSkeletonDropItem.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/CfgSkeletonDropItem.java @@ -110,6 +110,9 @@ private static JsonObject getJsonObject() recordObject.addProperty("damage_spread_factor", DataSkeletonDropItem.ConfigDataSkeletonDrop.instance.getDamageSpreadFactor()); + recordObject.addProperty("arrows_to_drops", + DataSkeletonDropItem.ConfigDataSkeletonDrop.instance.getArrowsToDrops()); + return recordObject; } @@ -170,6 +173,12 @@ public void loadFromFile() DataSkeletonDropItem.ConfigDataSkeletonDrop.instance. setDamageSpreadFactor(jsonObjectSkeletonDrop.get("damage_spread_factor").getAsFloat()); } + + if (jsonObjectSkeletonDrop.has("arrows_to_drops")) + { + DataSkeletonDropItem.ConfigDataSkeletonDrop.instance. + setArrowsToDrops(jsonObjectSkeletonDrop.get("arrows_to_drops").getAsByte()); + } } else { diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/DataSkeletonDropItem.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/DataSkeletonDropItem.java index 39cc570..555fb51 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/DataSkeletonDropItem.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/DataSkeletonDropItem.java @@ -3,6 +3,7 @@ import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import javax.annotation.Nonnull; +import java.util.Random; /** * @@ -59,6 +60,11 @@ public static final class ConfigDataSkeletonDrop */ private Float damageSpreadFactor = 0.2f; + /** + * + */ + private Byte arrowsToDrops = (byte)(1 + new Random().nextInt(3)); + /** * * @param category @@ -132,6 +138,15 @@ public void setDamageSpreadFactor(Float damageSpreadFactor) this.damageSpreadFactor = damageSpreadFactor; } + /** + * + * @param arrowsToDrops + */ + public void setArrowsToDrops(Byte arrowsToDrops) + { + this.arrowsToDrops = arrowsToDrops; + } + /** * * @return @@ -195,6 +210,15 @@ public Float getDamageSpreadFactor() return this.damageSpreadFactor; } + /** + * + * @return + */ + public Byte getArrowsToDrops() + { + return this.arrowsToDrops; + } + /** * * @return 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 efc0a88..38a3123 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 @@ -70,6 +70,9 @@ public synchronized void onUpdateLivingDropsEvent_0(LivingDropsEvent event) addDamagedItemToDrops(skeleton, drops, skeleton.getHeldItemMainhand(), DataSkeletonDropItem.ConfigDataSkeletonDrop.instance.getHandItemDamageFactor()); + + addArrowsToDrops(skeleton, drops, + DataSkeletonDropItem.ConfigDataSkeletonDrop.instance.getArrowsToDrops()); } } @@ -116,5 +119,17 @@ private void addDamagedItemToDrops(EntitySkeleton skeleton, List dro drops.add(new EntityItem(skeleton.world, skeleton.posX, skeleton.posY, skeleton.posZ, damagedItem)); } } + + /** + * + * @param skeleton + * @param drops + * @param arrowCount + */ + private void addArrowsToDrops(EntitySkeleton skeleton, List drops, byte arrowCount) + { + ItemStack arrows = new ItemStack(Items.ARROW, arrowCount); + drops.add(new EntityItem(skeleton.world, skeleton.posX, skeleton.posY, skeleton.posZ, arrows)); + } }