From 1b873630dcd7aeae0bfee344a684c9e4e1623b6b Mon Sep 17 00:00:00 2001 From: KnightMiner Date: Sat, 24 Dec 2022 17:06:02 -0500 Subject: [PATCH] Simplify experienced logic and remove edge case of modifier not added --- .../tools/modifiers/upgrades/general/ExperiencedModifier.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/general/ExperiencedModifier.java b/src/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/general/ExperiencedModifier.java index 438c6407a13..590f0dde650 100644 --- a/src/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/general/ExperiencedModifier.java +++ b/src/main/java/slimeknights/tconstruct/tools/modifiers/upgrades/general/ExperiencedModifier.java @@ -75,7 +75,7 @@ private void onEntityKilled(LivingDeathEvent event) { */ private void onExperienceDrop(LivingExperienceDropEvent event) { // if the entity was killed by one of our arrows, boost the experience from that - int experienced = event.getEntityLiving().getCapability(TinkerDataCapability.CAPABILITY).resolve().stream().mapToInt(data -> data.get(EXPERIENCED, -1)).sum(); + int experienced = event.getEntityLiving().getCapability(TinkerDataCapability.CAPABILITY).resolve().map(data -> data.get(EXPERIENCED)).orElse(-1); if (experienced > 0) { event.setDroppedExperience(boost(event.getDroppedExperience(), experienced)); // experienced being zero means it was our arrow but it was not modified, do not check the held item in that case