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