9
0
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:
Auxilor
2021-10-13 15:42:33 +01:00
parent 3f0905ebad
commit 45fbfca44f
5 changed files with 59 additions and 16 deletions

View File

@@ -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.
*

View File

@@ -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)
}

View File

@@ -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)
}

View File

@@ -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 },

View File

@@ -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%"