9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-06 15:51:52 +00:00

Added 'all' option to /ecoskills reset

This commit is contained in:
Auxilor
2022-01-22 17:41:03 +00:00
parent 85c6a98026
commit d17ef8f9bb
3 changed files with 31 additions and 23 deletions

View File

@@ -7,16 +7,18 @@ import com.willfp.ecoskills.api.PlayerSkillExpGainEvent
import com.willfp.ecoskills.api.PlayerSkillLevelUpEvent
import com.willfp.ecoskills.api.modifier.ModifierOperation
import com.willfp.ecoskills.effects.Effect
import com.willfp.ecoskills.effects.Effects
import com.willfp.ecoskills.skills.Skill
import com.willfp.ecoskills.skills.Skills
import com.willfp.ecoskills.stats.Stat
import com.willfp.ecoskills.stats.Stats
import org.bukkit.Bukkit
import org.bukkit.OfflinePlayer
import org.bukkit.entity.Entity
import org.bukkit.entity.Player
import org.bukkit.entity.Projectile
import org.bukkit.entity.Tameable
import java.util.*
import java.util.UUID
import kotlin.math.abs
private val expMultiplierCache = mutableMapOf<UUID, Double>()
@@ -201,4 +203,17 @@ fun Entity.tryAsPlayer(): Player? {
is Tameable -> this.owner as? Player
else -> null
}
}
fun OfflinePlayer.resetSkills() {
for (stat in Stats.values()) {
this.setStatLevel(stat, 0)
}
for (effect in Effects.values()) {
this.setEffectLevel(effect, 0)
}
for (skill in Skills.values()) {
this.setSkillLevel(skill, 0)
this.setSkillProgress(skill, 0.0)
}
}

View File

@@ -4,13 +4,7 @@ package com.willfp.ecoskills.commands
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.command.impl.Subcommand
import com.willfp.ecoskills.effects.Effects
import com.willfp.ecoskills.setEffectLevel
import com.willfp.ecoskills.setSkillLevel
import com.willfp.ecoskills.setSkillProgress
import com.willfp.ecoskills.setStatLevel
import com.willfp.ecoskills.skills.Skills
import com.willfp.ecoskills.stats.Stats
import com.willfp.ecoskills.resetSkills
import org.bukkit.Bukkit
import org.bukkit.command.CommandSender
import org.bukkit.util.StringUtil
@@ -29,22 +23,19 @@ class CommandReset(plugin: EcoPlugin) :
return
}
val player = Bukkit.getOfflinePlayer(args[0])
if (!player.hasPlayedBefore()) {
sender.sendMessage(plugin.langYml.getMessage("invalid-player"))
return
}
if (args[0].equals("all", ignoreCase = true)) {
sender.sendMessage(plugin.langYml.getMessage("resetting-all-players"))
Bukkit.getOfflinePlayers().forEach { it.resetSkills() }
sender.sendMessage(plugin.langYml.getMessage("reset-all-players"))
} else {
val player = Bukkit.getOfflinePlayer(args[0])
if (!player.hasPlayedBefore()) {
sender.sendMessage(plugin.langYml.getMessage("invalid-player"))
return
}
sender.sendMessage(plugin.langYml.getMessage("reset-player"))
for (stat in Stats.values()) {
player.setStatLevel(stat, 0)
}
for (effect in Effects.values()) {
player.setEffectLevel(effect, 0)
}
for (skill in Skills.values()) {
player.setSkillLevel(skill, 0)
player.setSkillProgress(skill, 0.0)
sender.sendMessage(plugin.langYml.getMessage("reset-player"))
player.resetSkills()
}
}

View File

@@ -22,6 +22,8 @@ messages:
enabled-xp-gain-sound: "&fYou have &aenabled &fskill XP gain sound!"
disabled-xp-gain-sound: "&fYou have &cdisabled &fskill XP gain sound!"
xp-gain-sound-disabled: "&cSkill XP gain sound is disabled on this server."
resetting-all-players: "&fResetting all players... (this may take a while)"
reset-all-players: "&fReset all players!"
line-wrap-color: "&8"