From 57f80cc6b5b04a85100c09b4af587fd49d4d405c Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sun, 31 Jan 2021 18:57:20 +0000 Subject: [PATCH] Fixed speed issues --- .../com/willfp/talismans/talismans/Talisman.java | 8 ++++++++ .../talismans/talismans/SpeedTalisman.java | 15 ++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java index 78de5f1..f0067ee 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java @@ -37,6 +37,7 @@ import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.Set; +import java.util.UUID; import java.util.stream.Collectors; @SuppressWarnings({"unchecked", "deprecation", "RedundantSuppression"}) @@ -53,6 +54,12 @@ public abstract class Talisman implements Listener, Watcher { @Getter private final NamespacedKey key; + /** + * UUID created for the talisman. + */ + @Getter + private final UUID uuid; + /** * The display name of the talisman. */ @@ -139,6 +146,7 @@ public abstract class Talisman implements Listener, Watcher { @NotNull final Prerequisite... prerequisites) { this.strength = strength; this.key = this.getPlugin().getNamespacedKeyFactory().create(key + "_" + strength.name().toLowerCase()); + this.uuid = UUID.nameUUIDFromBytes(this.getKey().getKey().getBytes()); this.configName = this.key.getKey().replace("_", ""); TalismansConfigs.addTalismanConfig(new TalismanConfig(this.configName, this.strength, this.getClass())); this.config = TalismansConfigs.getTalismanConfig(this.configName); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/SpeedTalisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/SpeedTalisman.java index 4463ec4..efce96b 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/SpeedTalisman.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/SpeedTalisman.java @@ -12,11 +12,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.jetbrains.annotations.NotNull; -import java.util.UUID; - public class SpeedTalisman extends Talisman { - private static final UUID MODIFIER_UUID = UUID.nameUUIDFromBytes("speed_talisman".getBytes()); - private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_talisman", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1); + private AttributeModifier modifier = null; public SpeedTalisman(@NotNull final TalismanStrength strength) { super("speed", strength); @@ -24,7 +21,7 @@ public class SpeedTalisman extends Talisman { @Override protected void postUpdate() { - MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_talisman", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1); + modifier = new AttributeModifier(this.getUuid(), this.getKey().getKey(), this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1); } @EventHandler @@ -40,14 +37,14 @@ public class SpeedTalisman extends Talisman { if (event.getType() == EquipType.EQUIP) { if (this.getDisabledWorlds().contains(player.getWorld())) { - movementSpeed.removeModifier(MODIFIER); + movementSpeed.removeModifier(modifier); } else { - if (!movementSpeed.getModifiers().contains(MODIFIER)) { - movementSpeed.addModifier(MODIFIER); + if (!movementSpeed.getModifiers().contains(modifier)) { + movementSpeed.addModifier(modifier); } } } else { - movementSpeed.removeModifier(MODIFIER); + movementSpeed.removeModifier(modifier); } } }