Browse Source

RepairManager: Fix unsafe enchantments being stripped, CombatUtils: Use instanceof for IronGolem (#5192)

* RepairManager: Fix unsafe enchantments being stripped

* CombatUtils: Use instanceof for IronGolem check to avoid cast exceptions for pets/npcs/...

---------

Co-authored-by: Dieu <info@l4b.org>
Techirion 1 week ago
parent
commit
c377544fa2

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java

@@ -411,7 +411,7 @@ public class RepairManager extends SkillManager {
                 if (enchantLevel > enchant.getKey().getMaxLevel()) {
                     enchantLevel = enchant.getKey().getMaxLevel();
 
-                    item.addEnchantment(enchant.getKey(), enchantLevel);
+                    item.addUnsafeEnchantment(enchant.getKey(), enchantLevel);
                 }
             }
 

+ 2 - 2
src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java

@@ -961,8 +961,8 @@ public final class CombatUtils {
                 EntityType type = target.getType();
 
                 if (ExperienceConfig.getInstance().hasCombatXP(type)) {
-                    if (type == EntityType.IRON_GOLEM) {
-                        if (!((IronGolem) target).isPlayerCreated()) {
+                    if (type == EntityType.IRON_GOLEM && target instanceof IronGolem ironGolem) {
+                        if (!ironGolem.isPlayerCreated()) {
                             baseXP = ExperienceConfig.getInstance().getCombatXP(type);
                         }
                     } else {