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:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user