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 43ccb27..8a1f435 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 @@ -15,6 +15,7 @@ import org.bukkit.OfflinePlayer import org.bukkit.entity.Player import org.bukkit.persistence.PersistentDataType + object PlayerHelper { init { PlaceholderEntry( @@ -32,6 +33,34 @@ object PlayerHelper { val plugin: EcoSkillsPlugin = EcoSkillsPlugin.getInstance() } +fun Player.getSkillExperienceMultiplier(): Double { + if (this.hasPermission("ecoskills.xpmultiplier.quadruple")) { + return 0.25 + } + + if (this.hasPermission("ecoskills.xpmultiplier.triple")) { + return 0.33 + } + + if (this.hasPermission("ecoskills.xpmultiplier.double")) { + return 0.5 + } + + if (this.hasPermission("ecoskills.xpmultiplier.50percent")) { + return 0.75 + } + + val prefix = "ecoskills.xpmultiplier." + for (permissionAttachmentInfo in this.effectivePermissions) { + val permission = permissionAttachmentInfo.permission + if (permission.startsWith(prefix)) { + return (permission.substring(permission.lastIndexOf(".") + 1).toDouble() / 100) + 1 + } + } + + return 1.0 +} + fun OfflinePlayer.getTotalSkillLevel(): Int { var total = 0 for (skill in Skills.values()) { diff --git a/eco-core/core-plugin/src/main/resources/config.yml b/eco-core/core-plugin/src/main/resources/config.yml index bdfb219..009f5fa 100644 --- a/eco-core/core-plugin/src/main/resources/config.yml +++ b/eco-core/core-plugin/src/main/resources/config.yml @@ -300,7 +300,7 @@ effects: # The percent (%) more damage to deal with a pickaxe for each level of the effect. percent-more-per-level: 8 eye_of_the_depths: - description: "&a%chance%%&8 to get rare drops from fishing" + description: "&a%chance%%&8 chance to get rare drops from fishing" # Chance is as a percentage. chance-per-level: 0.1 diff --git a/eco-core/core-plugin/src/main/resources/plugin.yml b/eco-core/core-plugin/src/main/resources/plugin.yml index e89da23..58a04a1 100644 --- a/eco-core/core-plugin/src/main/resources/plugin.yml +++ b/eco-core/core-plugin/src/main/resources/plugin.yml @@ -51,3 +51,16 @@ permissions: ecoskills.command.reset: description: Allows the use of /ecoskills reset. default: op + + ecoskills.xpmultiplier.50percent: + description: Gives the player 50% more skill experience + default: false + ecoskills.xpmultiplier.double: + description: Gives the player 2x skill experience + default: false + ecoskills.xpmultiplier.triple: + description: Gives the player 3x skill experience + default: false + ecoskills.xpmultiplier.quadruple: + description: Gives the player 4x skill experience + default: false