9
0
mirror of https://github.com/Auxilor/Reforges.git synced 2025-12-25 18:09:25 +00:00

Added /reforges apply

This commit is contained in:
Auxilor
2022-03-06 12:42:58 +00:00
parent bfd5736781
commit 349b4fb7bd
4 changed files with 89 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
package com.willfp.reforges.commands
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.command.impl.Subcommand
import com.willfp.reforges.reforges.Reforges
import com.willfp.reforges.reforges.util.ReforgeUtils
import org.bukkit.Bukkit
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
import org.bukkit.util.StringUtil
class CommandApply(
plugin: EcoPlugin
) : Subcommand(plugin, "apply", "reforges.command.apply", false) {
override fun onExecute(sender: CommandSender, args: MutableList<String>) {
if (args.isEmpty()) {
sender.sendMessage(plugin.langYml.getMessage("needs-reforge"))
return
}
val reforge = Reforges.getByKey(args[0].lowercase())
if (reforge == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-reforge"))
return
}
if (sender is Player) {
val item = sender.inventory.itemInMainHand
ReforgeUtils.setReforge(item, reforge)
sender.sendMessage(
plugin.langYml.getMessage("applied-reforge")
.replace("%reforge%", reforge.name)
)
} else {
if (args.size < 2) {
sender.sendMessage(plugin.langYml.getMessage("needs-player"))
return
}
val player = Bukkit.getPlayer(args[1])
if (player == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-player"))
return
}
ReforgeUtils.setReforge(player.inventory.itemInMainHand, reforge)
sender.sendMessage(
plugin.langYml.getMessage("applied-reforge")
.replace("%reforge%", reforge.name)
)
}
}
override fun tabComplete(sender: CommandSender, args: List<String>): List<String> {
val completions = mutableListOf<String>()
if (args.isEmpty()) {
// Currently, this case is not ever reached
return Reforges.values().map { it.id }
}
if (args.size == 1) {
StringUtil.copyPartialMatches(
args[0],
Reforges.values().map { it.id },
completions
)
completions.sort()
return completions
}
if (args.size == 2) {
StringUtil.copyPartialMatches(
args[1],
Bukkit.getOnlinePlayers().map { it.name },
completions
)
completions.sort()
return completions
}
return emptyList()
}
}

View File

@@ -15,5 +15,6 @@ class CommandReforges(plugin: EcoPlugin) : PluginCommand(plugin, "reforges", "re
addSubcommand(CommandReload(plugin)) addSubcommand(CommandReload(plugin))
.addSubcommand(CommandGive(plugin)) .addSubcommand(CommandGive(plugin))
.addSubcommand(CommandOpen(plugin)) .addSubcommand(CommandOpen(plugin))
.addSubcommand(CommandApply(plugin))
} }
} }

View File

@@ -15,6 +15,8 @@ messages:
on-cooldown: "&cThis reforge is on cooldown! &fTime left: &a%seconds% seconds" on-cooldown: "&cThis reforge is on cooldown! &fTime left: &a%seconds% seconds"
cannot-afford: "&cYou can't afford to do this! &fCost: &a$$%cost%" cannot-afford: "&cYou can't afford to do this! &fCost: &a$$%cost%"
cannot-afford-type: "&cYou can't afford to do this! &fCost: &a%cost% %type%" cannot-afford-type: "&cYou can't afford to do this! &fCost: &a%cost% %type%"
invalid-reforge: "&cInvalid reforge!"
needs-reforge: "&cYou must specify a reforge"
menu: menu:
title: "Reforge Item" title: "Reforge Item"

View File

@@ -38,6 +38,7 @@ permissions:
reforges.command.reforges: true reforges.command.reforges: true
reforges.command.reforge: true reforges.command.reforge: true
reforges.command.give: true reforges.command.give: true
reforges.command.apply: true
reforges.command.open: true reforges.command.open: true
reforges.command.reload: reforges.command.reload:
@@ -55,3 +56,6 @@ permissions:
reforges.command.open: reforges.command.open:
description: Allows the user of /reforges open. description: Allows the user of /reforges open.
default: op default: op
reforges.command.apply:
description: Allows the user of /reforges apply.
default: op