mirror of
https://github.com/Auxilor/EcoSkills.git
synced 2026-01-02 22:02:19 +00:00
Added base and bonus placeholders
This commit is contained in:
@@ -125,6 +125,16 @@ public interface EcoSkillsAPI {
|
||||
int getBaseStatLevel(@NotNull OfflinePlayer player,
|
||||
@NotNull Stat stat);
|
||||
|
||||
/**
|
||||
* Get the added stat levels for a player from modifiers.
|
||||
*
|
||||
* @param player The player.
|
||||
* @param stat The stat.
|
||||
* @return The stat level.
|
||||
*/
|
||||
int getBonusStatLevel(@NotNull Player player,
|
||||
@NotNull Stat stat);
|
||||
|
||||
/**
|
||||
* Add a stat modifier to an item.
|
||||
*
|
||||
|
||||
@@ -129,15 +129,21 @@ fun OfflinePlayer.setEffectLevel(effect: Effect, level: Int) {
|
||||
fun OfflinePlayer.getStatLevel(stat: Stat): Int {
|
||||
var base = this.getBaseStatLevel(stat)
|
||||
if (this is Player) {
|
||||
for (modifier in this.getStatModifiers()) {
|
||||
if (modifier.stat == stat) {
|
||||
base += modifier.amount
|
||||
}
|
||||
}
|
||||
base += this.getBonusStatLevel(stat)
|
||||
}
|
||||
return base
|
||||
}
|
||||
|
||||
fun Player.getBonusStatLevel(stat: Stat): Int {
|
||||
var i = 0
|
||||
for (modifier in this.getStatModifiers()) {
|
||||
if (modifier.stat == stat) {
|
||||
i += modifier.amount
|
||||
}
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
fun OfflinePlayer.getBaseStatLevel(stat: Stat): Int {
|
||||
return profile.readInt(stat.id)
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.bukkit.OfflinePlayer
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.inventory.ItemStack
|
||||
|
||||
object EcoSkillsAPIImpl: EcoSkillsAPI {
|
||||
object EcoSkillsAPIImpl : EcoSkillsAPI {
|
||||
override fun getSkillLevel(player: OfflinePlayer, skill: Skill): Int {
|
||||
return player.getSkillLevel(skill)
|
||||
}
|
||||
@@ -48,6 +48,10 @@ object EcoSkillsAPIImpl: EcoSkillsAPI {
|
||||
return player.getBaseStatLevel(stat)
|
||||
}
|
||||
|
||||
override fun getBonusStatLevel(player: Player, stat: Stat): Int {
|
||||
return player.getBonusStatLevel(stat)
|
||||
}
|
||||
|
||||
override fun addStatModifier(itemStack: ItemStack, modifier: ItemStatModifier) {
|
||||
itemStack.addStatModifier(modifier)
|
||||
}
|
||||
|
||||
@@ -4,9 +4,7 @@ import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.eco.core.config.interfaces.Config
|
||||
import com.willfp.eco.core.integrations.placeholder.PlaceholderEntry
|
||||
import com.willfp.eco.util.NumberUtils
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.SkillObject
|
||||
import com.willfp.ecoskills.getStatLevel
|
||||
import com.willfp.ecoskills.*
|
||||
import org.bukkit.NamespacedKey
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.event.Listener
|
||||
@@ -53,6 +51,31 @@ abstract class Stat(
|
||||
true
|
||||
).register()
|
||||
|
||||
PlaceholderEntry(
|
||||
"${id}_base",
|
||||
{ player -> player.getBaseStatLevel(this).toString() },
|
||||
true
|
||||
).register()
|
||||
|
||||
PlaceholderEntry(
|
||||
"${id}_base_numeral",
|
||||
{ player -> NumberUtils.toNumeral(player.getBaseStatLevel(this)) },
|
||||
true
|
||||
).register()
|
||||
|
||||
PlaceholderEntry(
|
||||
"${id}_bonus",
|
||||
{ player ->
|
||||
val bonus = player.getBonusStatLevel(this)
|
||||
return@PlaceholderEntry when {
|
||||
bonus > 0 -> "+$bonus"
|
||||
bonus < 0 -> "$bonus"
|
||||
else -> ""
|
||||
}
|
||||
},
|
||||
true
|
||||
).register()
|
||||
|
||||
PlaceholderEntry(
|
||||
"${id}_name",
|
||||
{ this.name },
|
||||
|
||||
@@ -44,13 +44,13 @@ gui:
|
||||
name: "&f%player%&f's &fStats:"
|
||||
lore:
|
||||
- "&f"
|
||||
- " %ecoskills_defense_name%&f %ecoskills_defense%"
|
||||
- " %ecoskills_strength_name%&f %ecoskills_strength%"
|
||||
- " %ecoskills_crit_chance_name%&f %ecoskills_crit_chance%%"
|
||||
- " %ecoskills_crit_damage_name%&f %ecoskills_crit_damage%"
|
||||
- " %ecoskills_speed_name%&f %ecoskills_speed%"
|
||||
- " %ecoskills_wisdom_name%&f %ecoskills_wisdom%"
|
||||
- " %ecoskills_ferocity_name%&f %ecoskills_ferocity%"
|
||||
- " %ecoskills_defense_name%&f %ecoskills_defense_base% &e%ecoskills_defense_bonus%"
|
||||
- " %ecoskills_strength_name%&f %ecoskills_strength_base% &e%ecoskills_strength_bonus%"
|
||||
- " %ecoskills_crit_chance_name%&f %ecoskills_crit_chance_base%% &e%ecoskills_crit_chance_bonus%%"
|
||||
- " %ecoskills_crit_damage_name%&f %ecoskills_crit_damage_base% &e%ecoskills_crit_damage_bonus%"
|
||||
- " %ecoskills_speed_name%&f %ecoskills_speed_base% &e%ecoskills_speed_bonus%"
|
||||
- " %ecoskills_wisdom_name%&f %ecoskills_wisdom_base% &e%ecoskills_wisdom_bonus%"
|
||||
- " %ecoskills_ferocity_name%&f %ecoskills_ferocity_base% &e%ecoskills_ferocity_bonus%"
|
||||
- "&f"
|
||||
- "&7Total Skill Level: &f%ecoskills_total_skill_level%"
|
||||
- "&7Average Skill Level: &f%ecoskills_average_skill_level%"
|
||||
|
||||
Reference in New Issue
Block a user