9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-02 22:02:19 +00:00

Added average and total skill level placeholders and api methods

This commit is contained in:
Auxilor
2021-08-21 16:08:11 +01:00
parent 6c58efb4bc
commit 62644eba77
3 changed files with 58 additions and 0 deletions

View File

@@ -65,6 +65,22 @@ public interface EcoSkillsAPI {
double getSkillProgress(@NotNull Player player,
@NotNull Skill skill);
/**
* Get the average skill level.
*
* @param player The player.
* @return The average skill level.
*/
double getAverageSkillLevel(@NotNull Player player);
/**
* Get the total skill level.
*
* @param player The player.
* @return The total skill level.
*/
int getTotalSkillLevel(@NotNull Player player);
/**
* Get the effect level for player.
*

View File

@@ -1,14 +1,48 @@
package com.willfp.ecoskills
import com.willfp.eco.core.integrations.placeholder.PlaceholderEntry
import com.willfp.eco.util.NumberUtils
import com.willfp.ecoskills.api.PlayerSkillExpGainEvent
import com.willfp.ecoskills.api.PlayerSkillLevelUpEvent
import com.willfp.ecoskills.effects.Effect
import com.willfp.ecoskills.skills.Skill
import com.willfp.ecoskills.skills.Skills
import com.willfp.ecoskills.stats.Stat
import org.bukkit.Bukkit
import org.bukkit.entity.Player
import org.bukkit.persistence.PersistentDataType
object PlayerPlaceholders {
init {
PlaceholderEntry(
"average_skill_level",
{ player -> NumberUtils.format(player.getAverageSkillLevel()) },
true
).register()
PlaceholderEntry(
"total_skill_level",
{ player -> player.getTotalSkillLevel().toString() },
true
).register()
}
}
fun Player.getTotalSkillLevel(): Int {
var total = 0
for (skill in Skills.values()) {
total += this.getSkillLevel(skill)
}
return total
}
fun Player.getAverageSkillLevel(): Double {
var total = 0
for (skill in Skills.values()) {
total += this.getSkillLevel(skill)
}
return total / Skills.values().size.toDouble()
}
fun Player.giveSkillExperience(skill: Skill, experience: Double) {
val gainEvent = PlayerSkillExpGainEvent(this, skill, experience)
Bukkit.getPluginManager().callEvent(gainEvent)

View File

@@ -74,4 +74,12 @@ object EcoSkillsAPIImpl: EcoSkillsAPI {
override fun getStatModifier(player: Player, key: NamespacedKey): StatModifier? {
return player.getStatModifier(key)
}
override fun getAverageSkillLevel(player: Player): Double {
return player.getAverageSkillLevel()
}
override fun getTotalSkillLevel(player: Player): Int {
return player.getTotalSkillLevel()
}
}