From aa6a1d710151bb4b111f97894a51d2c5a2027e28 Mon Sep 17 00:00:00 2001 From: Ka0rX Date: Sun, 7 May 2023 15:11:20 +0100 Subject: [PATCH] Fixed issue #820 about skills not being locked when reallocating skill tree. --- .../main/java/net/Indyuce/mmocore/api/player/PlayerData.java | 2 ++ .../src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java index 002c5dd4..b6ae0281 100644 --- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java @@ -377,6 +377,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc */ public boolean unlock(Unlockable unlockable) { Validate.isTrue(!unlockable.isUnlockedByDefault(), "Cannot unlock an item unlocked by default"); + unlockable.whenUnlocked(this); final boolean wasLocked = unlockedItems.add(unlockable.getUnlockNamespacedKey()); // Call the event synchronously if (wasLocked) @@ -392,6 +393,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc */ public boolean lock(Unlockable unlockable) { Validate.isTrue(!unlockable.isUnlockedByDefault(), "Cannot lock an item unlocked by default"); + unlockable.whenLocked(this); boolean wasUnlocked = unlockedItems.remove(unlockable.getUnlockNamespacedKey()); if (wasUnlocked) //Calls the event synchronously diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java index 1cabaf0b..7f35e287 100644 --- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java @@ -87,7 +87,7 @@ public class ClassSkill implements CooldownObject, Unlockable { @Override public void whenLocked(PlayerData playerData) { playerData.mapBoundSkills().forEach((slot, skill) -> { - if (skill.equals(getUnlockNamespacedKey().split(":")[1])) + if (skill.equalsIgnoreCase(getUnlockNamespacedKey().split(":")[1])) playerData.unbindSkill(slot); }); }