Improved /ecopets givexp

This commit is contained in:
Auxilor
2022-06-18 11:59:00 +01:00
parent c84a2a10f6
commit 4cd7398d76

View File

@@ -13,38 +13,48 @@ import org.bukkit.entity.Player
import org.bukkit.util.StringUtil import org.bukkit.util.StringUtil
class CommandGiveXP(plugin: EcoPlugin) : Subcommand(plugin, "givexp", "ecopets.command.givexp", false) { class CommandGiveXP(plugin: EcoPlugin) : Subcommand(plugin, "givexp", "ecopets.command.givexp", false) {
override fun onExecute(sender: CommandSender, args: List<String>) { override fun onExecute(sender: CommandSender, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
sender.sendMessage(plugin.langYml.getMessage("needs-player"))
return
}
if (args.size == 1) {
sender.sendMessage(plugin.langYml.getMessage("needs-pet")) sender.sendMessage(plugin.langYml.getMessage("needs-pet"))
return return
} }
if (args.size == 1) {
if (args.size == 2) {
sender.sendMessage(plugin.langYml.getMessage("needs-amount")) sender.sendMessage(plugin.langYml.getMessage("needs-amount"))
return return
} }
var player = sender
if (args.size == 3){ val playerName = args[0]
player = Bukkit.getPlayer(args[2])!!
} val player = Bukkit.getPlayer(playerName)
if (!(player is Player)) {
if (player == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-player")) sender.sendMessage(plugin.langYml.getMessage("invalid-player"))
return return
} }
val pet = Pets.getByID(args[0])
val pet = Pets.getByID(args[1])
if (pet == null) { if (pet == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-pet")) sender.sendMessage(plugin.langYml.getMessage("invalid-pet"))
return return
} }
if (!player.hasPet(pet)) { if (!player.hasPet(pet)) {
sender.sendMessage(plugin.langYml.getMessage("doesnt-have-pet")) sender.sendMessage(plugin.langYml.getMessage("doesnt-have-pet"))
return return
} }
player.givePetExperience( player.givePetExperience(
pet, pet,
args[1].toDouble() args[1].toDouble()
) )
sender.sendMessage( sender.sendMessage(
plugin.langYml.getMessage("gave-xp", StringUtils.FormatOption.WITHOUT_PLACEHOLDERS) plugin.langYml.getMessage("gave-xp", StringUtils.FormatOption.WITHOUT_PLACEHOLDERS)
.replace("%player%", player.savedDisplayName) .replace("%player%", player.savedDisplayName)
@@ -55,17 +65,16 @@ class CommandGiveXP(plugin: EcoPlugin) : Subcommand(plugin, "givexp", "ecopets.c
override fun tabComplete(sender: CommandSender, args: List<String>): List<String> { override fun tabComplete(sender: CommandSender, args: List<String>): List<String> {
if (args.size == 1) { if (args.size == 1) {
return Pets.values().map { it.id }
}
if (args.size == 2) {
return listOf("10", "100", "1000", "10000")
}
if (args.size == 3) {
return Bukkit.getOnlinePlayers().map { it.name } return Bukkit.getOnlinePlayers().map { it.name }
} }
if (args.size == 2) {
return Pets.values().map { it.id }
}
if (args.size == 3) {
return listOf("10", "100", "1000", "10000")
}
return emptyList() return emptyList()
} }