From 070e924ad60cc05e1acd2a41b7bae4ed8409d3f6 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 23 Aug 2021 23:05:52 +0100 Subject: [PATCH] Optimized experience multiplier --- .../kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt index 6c7eed8..3433fdd 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt @@ -14,6 +14,8 @@ import org.bukkit.Bukkit import org.bukkit.OfflinePlayer import org.bukkit.entity.Player import org.bukkit.persistence.PersistentDataType +import java.util.* +import kotlin.collections.HashMap object PlayerHelper { @@ -30,10 +32,20 @@ object PlayerHelper { ).register() } + val expMultiplierCache = HashMap() + val plugin: EcoSkillsPlugin = EcoSkillsPlugin.getInstance() } fun Player.getSkillExperienceMultiplier(): Double { + if (PlayerHelper.expMultiplierCache.containsKey(this.uniqueId)) { + return PlayerHelper.expMultiplierCache[this.uniqueId]!! + } + PlayerHelper.expMultiplierCache[this.uniqueId] = cacheSkillExperienceMultiplier() + return this.getSkillExperienceMultiplier() +} + +private fun Player.cacheSkillExperienceMultiplier(): Double { if (this.hasPermission("ecoskills.xpmultiplier.quadruple")) { return 4.0 }