diff --git a/src/main/java/spoilagesystem/listeners/CraftItemListener.java b/src/main/java/spoilagesystem/listeners/CraftItemListener.java index f0bafba..e795078 100644 --- a/src/main/java/spoilagesystem/listeners/CraftItemListener.java +++ b/src/main/java/spoilagesystem/listeners/CraftItemListener.java @@ -49,6 +49,9 @@ public void onCraftItem(CraftItemEvent event) { if (!type.isEdible()) { return; } + if (type == Material.ROTTEN_FLESH) { + return; + } if (!time.equals(Duration.ZERO)) { int amountCrafted = getAmountCrafted(event); int spoilAmt = configService.determineSpoiledAmount(type, amountCrafted); diff --git a/src/main/java/spoilagesystem/listeners/EntityDeathListener.java b/src/main/java/spoilagesystem/listeners/EntityDeathListener.java index 469e54d..c4b55a8 100644 --- a/src/main/java/spoilagesystem/listeners/EntityDeathListener.java +++ b/src/main/java/spoilagesystem/listeners/EntityDeathListener.java @@ -1,5 +1,6 @@ package spoilagesystem.listeners; +import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -23,7 +24,7 @@ public void onEntityDeath(EntityDeathEvent event) { if (event.getEntity() instanceof Player) return; List newDrops = new ArrayList<>(); for (ItemStack drop : event.getDrops()) { - if (drop.getType().isEdible()) { + if (drop.getType().isEdible() && drop.getType() != Material.ROTTEN_FLESH) { newDrops.add(timeStampService.assignTimeStamp(drop)); } else { newDrops.add(drop); diff --git a/src/main/java/spoilagesystem/listeners/EntityPickupItemListener.java b/src/main/java/spoilagesystem/listeners/EntityPickupItemListener.java index 1803df2..27bc5c8 100644 --- a/src/main/java/spoilagesystem/listeners/EntityPickupItemListener.java +++ b/src/main/java/spoilagesystem/listeners/EntityPickupItemListener.java @@ -1,5 +1,6 @@ package spoilagesystem.listeners; +import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityPickupItemEvent; @@ -17,7 +18,7 @@ public EntityPickupItemListener(LocalTimeStampService timeStampService) { @EventHandler public void onEntityPickupItem(EntityPickupItemEvent event) { ItemStack itemStack = event.getItem().getItemStack(); - if (itemStack.getType().isEdible()) { + if (itemStack.getType().isEdible() && itemStack.getType() != Material.ROTTEN_FLESH) { if (!timeStampService.timeStampAssigned(itemStack)) { event.getItem().setItemStack(timeStampService.assignTimeStamp(itemStack)); } diff --git a/src/main/java/spoilagesystem/listeners/InventoryOpenListener.java b/src/main/java/spoilagesystem/listeners/InventoryOpenListener.java index 6b5bafe..377f4c2 100644 --- a/src/main/java/spoilagesystem/listeners/InventoryOpenListener.java +++ b/src/main/java/spoilagesystem/listeners/InventoryOpenListener.java @@ -1,5 +1,6 @@ package spoilagesystem.listeners; +import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryOpenEvent; @@ -20,7 +21,7 @@ public InventoryOpenListener(LocalTimeStampService timeStampService) { public void onInventoryOpen(InventoryOpenEvent event) { Arrays.stream(event.getInventory().getContents()) .filter(Objects::nonNull) - .filter(item -> item.getType().isEdible()) + .filter(item -> item.getType().isEdible() && item.getType() != Material.ROTTEN_FLESH) .forEach(item -> { if (!timeStampService.timeStampAssigned(item)) { timeStampService.assignTimeStamp(item); @@ -28,7 +29,7 @@ public void onInventoryOpen(InventoryOpenEvent event) { }); Arrays.stream(event.getPlayer().getInventory().getContents()) .filter(Objects::nonNull) - .filter(item -> item.getType().isEdible()) + .filter(item -> item.getType().isEdible() && item.getType() != Material.ROTTEN_FLESH) .forEach(item -> { if (!timeStampService.timeStampAssigned(item)) { timeStampService.assignTimeStamp(item); diff --git a/src/main/java/spoilagesystem/listeners/PlayerJoinListener.java b/src/main/java/spoilagesystem/listeners/PlayerJoinListener.java index e4fee78..72720c1 100644 --- a/src/main/java/spoilagesystem/listeners/PlayerJoinListener.java +++ b/src/main/java/spoilagesystem/listeners/PlayerJoinListener.java @@ -1,5 +1,6 @@ package spoilagesystem.listeners; +import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; @@ -20,7 +21,7 @@ public PlayerJoinListener(LocalTimeStampService timeStampService) { public void onPlayerJoin(PlayerJoinEvent event) { Arrays.stream(event.getPlayer().getInventory().getContents()) .filter(Objects::nonNull) - .filter(item -> item.getType().isEdible()) + .filter(item -> item.getType().isEdible() && item.getType() != Material.ROTTEN_FLESH) .forEach(item -> { if (!timeStampService.timeStampAssigned(item)) { timeStampService.assignTimeStamp(item);