From 52545d3b35345ca314dfff67eb51ef55754cf3dc Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 23 Jan 2023 11:17:26 +0000 Subject: [PATCH] Fixed double listener registration bug --- .../kotlin/com/willfp/ecoenchants/enchants/EcoEnchant.kt | 6 ++++++ .../kotlin/com/willfp/ecoenchants/enchants/EcoEnchants.kt | 5 +++++ gradle.properties | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/EcoEnchant.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/EcoEnchant.kt index a29016fc..c83e13e8 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/EcoEnchant.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/EcoEnchant.kt @@ -65,6 +65,11 @@ abstract class EcoEnchant( private val conflictNames = config.getStrings("conflicts") + private val _listeners = mutableListOf() + + val listeners: List + get() = this._listeners + val conflictsWithEverything: Boolean get() = conflictNames.containsIgnoreCase("all") || conflictNames.containsIgnoreCase("everything") @@ -194,6 +199,7 @@ abstract class EcoEnchant( fun registerListener(listener: Listener) { this.plugin.eventManager.registerListener(listener) + this._listeners += listener } @Deprecated( diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/EcoEnchants.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/EcoEnchants.kt index 680e46fb..0ecce15f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/EcoEnchants.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/EcoEnchants.kt @@ -17,6 +17,7 @@ import com.willfp.ecoenchants.type.EnchantmentTypes import org.bukkit.ChatColor import org.bukkit.NamespacedKey import org.bukkit.enchantments.Enchantment +import org.bukkit.event.Listener @Suppress("UNUSED") object EcoEnchants { @@ -96,6 +97,10 @@ object EcoEnchants { for (enchant in values()) { removeEnchant(enchant) + + for (listener in enchant.listeners) { + plugin.eventManager.unregisterListener(listener) + } } for ((id, config) in plugin.fetchConfigs("enchants")) { diff --git a/gradle.properties b/gradle.properties index a48bb151..c3029032 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ #libreforge-updater #Tue Jan 17 16:49:41 GMT 2023 -version=9.15.8 +version=9.15.9 plugin-name=EcoEnchants