9
0
mirror of https://github.com/Auxilor/EcoArmor.git synced 2025-12-27 02:49:22 +00:00

eco 6.17.0 migration

This commit is contained in:
Auxilor
2021-12-17 12:56:16 +00:00
parent 6e0990efad
commit f80df5158d
5 changed files with 188 additions and 199 deletions

View File

@@ -1,8 +1,8 @@
package com.willfp.ecoarmor.commands
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.command.CommandHandler
import com.willfp.eco.core.command.impl.PluginCommand
import org.bukkit.command.CommandSender
class CommandEcoarmor(plugin: EcoPlugin) : PluginCommand(plugin, "ecoarmor", "ecoarmor.command.ecoarmor", false) {
init {
@@ -10,11 +10,9 @@ class CommandEcoarmor(plugin: EcoPlugin) : PluginCommand(plugin, "ecoarmor", "ec
.addSubcommand(CommandGive(plugin))
}
override fun getHandler(): CommandHandler {
return CommandHandler { sender, _ ->
sender.sendMessage(
plugin.langYml.getMessage("invalid-command")
)
}
override fun onExecute(sender: CommandSender, args: List<String>) {
sender.sendMessage(
plugin.langYml.getMessage("invalid-command")
)
}
}

View File

@@ -1,8 +1,6 @@
package com.willfp.ecoarmor.commands
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.command.CommandHandler
import com.willfp.eco.core.command.TabCompleteHandler
import com.willfp.eco.core.command.impl.Subcommand
import com.willfp.ecoarmor.sets.ArmorSets
import com.willfp.ecoarmor.sets.ArmorSlot
@@ -12,10 +10,8 @@ import com.willfp.ecoarmor.upgrades.Tier
import com.willfp.ecoarmor.upgrades.Tiers
import org.bukkit.Bukkit
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
import org.bukkit.inventory.ItemStack
import org.bukkit.util.StringUtil
import java.util.stream.Collectors
class CommandGive(plugin: EcoPlugin) : Subcommand(plugin, "give", "ecoarmor.command.give", false) {
private val items: Collection<String>
@@ -39,185 +35,181 @@ class CommandGive(plugin: EcoPlugin) : Subcommand(plugin, "give", "ecoarmor.comm
"64"
)
override fun getHandler(): CommandHandler {
return CommandHandler { sender: CommandSender, args: List<String> ->
if (args.isEmpty()) {
sender.sendMessage(plugin.langYml.getMessage("needs-player"))
return@CommandHandler
}
if (args.size == 1) {
sender.sendMessage(plugin.langYml.getMessage("needs-item"))
return@CommandHandler
}
val recieverName = args[0]
val reciever = Bukkit.getPlayer(recieverName)
if (reciever == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-player"))
return@CommandHandler
}
val fullItemKey = args[1]
if (!fullItemKey.contains(":")) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return@CommandHandler
}
val fullItemSplit = fullItemKey.split(":").toTypedArray()
if (fullItemSplit.size == 1) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return@CommandHandler
}
val itemNamespace = fullItemSplit[0]
val itemKey = fullItemSplit[1]
val toGive = mutableListOf<ItemStack>()
var amount = 1
if (itemNamespace.equals("set", ignoreCase = true)) {
val set = ArmorSets.getByID(itemKey)
if (set == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return@CommandHandler
}
var message = plugin.langYml.getMessage("give-success")
message = message.replace("%item%", set.id + " Set").replace("%recipient%", reciever.name)
sender.sendMessage(message)
var advanced = false
var tier: Tier? = null
val slots = mutableListOf<ArmorSlot>()
if (args.size >= 3) {
val slot = getSlot(args[2])
if (slot == null) {
if (!args[2].equals("full", ignoreCase = true)) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return@CommandHandler
}
}
if (slot == null) {
slots.addAll(ArmorSlot.values())
} else {
slots.add(slot)
}
} else {
slots.addAll(ArmorSlot.values())
}
if (args.size >= 4) {
advanced = args[3].toBoolean()
}
if (args.size >= 5) {
tier = Tiers.getByID(args[4])
}
if (args.size >= 6) {
amount = args[5].toIntOrNull() ?: amount
}
for (slot in slots) {
toGive.add(if (advanced) set.getAdvancedItemStack(slot) else set.getItemStack(slot))
}
for (item in ArrayList(toGive)) {
val currTear = tier ?: set.getDefaultTier(getSlot(item))
toGive.remove(item)
ArmorUtils.setTier(item, currTear)
toGive.add(item)
}
}
if (itemNamespace.equals("crystal", ignoreCase = true)) {
val tier = Tiers.getByID(itemKey)
if (tier == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return@CommandHandler
}
var message = plugin.langYml.getMessage("give-success")
message =
message.replace("%item%", tier.crystal.itemMeta!!.displayName).replace("%recipient%", reciever.name)
sender.sendMessage(message)
toGive.add(tier.crystal)
if (args.size >= 3) {
amount = args[2].toIntOrNull() ?: amount
}
}
if (itemNamespace.equals("shard", ignoreCase = true)) {
val set = ArmorSets.getByID(itemKey)
if (set == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return@CommandHandler
}
var message = plugin.langYml.getMessage("give-success")
message = message.replace("%item%", set.advancementShardItem.itemMeta!!.displayName)
.replace("%recipient%", reciever.name)
sender.sendMessage(message)
toGive.add(set.advancementShardItem)
if (args.size >= 3) {
amount = args[2].toIntOrNull() ?: amount
}
}
if (toGive.isEmpty()) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return@CommandHandler
}
for (item in toGive) {
item.amount = amount
reciever.inventory.addItem(item)
}
override fun onExecute(sender: CommandSender, args: List<String>) {
if (args.isEmpty()) {
sender.sendMessage(plugin.langYml.getMessage("needs-player"))
return
}
}
override fun getTabCompleter(): TabCompleteHandler {
return TabCompleteHandler { _, args ->
val completions = mutableListOf<String>()
if (args.isEmpty()) {
// Currently, this case is not ever reached
return@TabCompleteHandler items.toList()
if (args.size == 1) {
sender.sendMessage(plugin.langYml.getMessage("needs-item"))
return
}
val recieverName = args[0]
val reciever = Bukkit.getPlayer(recieverName)
if (reciever == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-player"))
return
}
val fullItemKey = args[1]
if (!fullItemKey.contains(":")) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return
}
val fullItemSplit = fullItemKey.split(":").toTypedArray()
if (fullItemSplit.size == 1) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return
}
val itemNamespace = fullItemSplit[0]
val itemKey = fullItemSplit[1]
val toGive = mutableListOf<ItemStack>()
var amount = 1
if (itemNamespace.equals("set", ignoreCase = true)) {
val set = ArmorSets.getByID(itemKey)
if (set == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return
}
if (args.size == 1) {
StringUtil.copyPartialMatches(
args[0],
Bukkit.getOnlinePlayers().stream().map { obj: Player -> obj.name }
.collect(Collectors.toList()),
completions)
return@TabCompleteHandler completions
}
if (args.size == 2) {
StringUtil.copyPartialMatches(args[1], items, completions)
completions.sort()
return@TabCompleteHandler completions
}
if (args[1].startsWith("set:")) {
if (args.size == 3) {
StringUtil.copyPartialMatches(args[2], slots, completions)
completions.sort()
return@TabCompleteHandler completions
var message = plugin.langYml.getMessage("give-success")
message = message.replace("%item%", set.id + " Set").replace("%recipient%", reciever.name)
sender.sendMessage(message)
var advanced = false
var tier: Tier? = null
val slots = mutableListOf<ArmorSlot>()
if (args.size >= 3) {
val slot = getSlot(args[2])
if (slot == null) {
if (!args[2].equals("full", ignoreCase = true)) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return
}
}
if (args.size == 4) {
StringUtil.copyPartialMatches(args[3], listOf("true", "false"), completions)
completions.sort()
return@TabCompleteHandler completions
}
if (args.size == 5) {
StringUtil.copyPartialMatches(args[4], tiers, completions)
completions.sort()
return@TabCompleteHandler completions
}
if (args.size == 6) {
StringUtil.copyPartialMatches(args[5], numbers, completions)
return@TabCompleteHandler completions
if (slot == null) {
slots.addAll(ArmorSlot.values())
} else {
slots.add(slot)
}
} else {
if (args.size == 3) {
StringUtil.copyPartialMatches(args[2], numbers, completions)
return@TabCompleteHandler completions
}
slots.addAll(ArmorSlot.values())
}
ArrayList(0)
if (args.size >= 4) {
advanced = args[3].toBoolean()
}
if (args.size >= 5) {
tier = Tiers.getByID(args[4])
}
if (args.size >= 6) {
amount = args[5].toIntOrNull() ?: amount
}
for (slot in slots) {
toGive.add(if (advanced) set.getAdvancedItemStack(slot) else set.getItemStack(slot))
}
for (item in ArrayList(toGive)) {
val currTear = tier ?: set.getDefaultTier(getSlot(item))
toGive.remove(item)
ArmorUtils.setTier(item, currTear)
toGive.add(item)
}
}
if (itemNamespace.equals("crystal", ignoreCase = true)) {
val tier = Tiers.getByID(itemKey)
if (tier == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return
}
var message = plugin.langYml.getMessage("give-success")
message =
message.replace("%item%", tier.crystal.itemMeta!!.displayName).replace("%recipient%", reciever.name)
sender.sendMessage(message)
toGive.add(tier.crystal)
if (args.size >= 3) {
amount = args[2].toIntOrNull() ?: amount
}
}
if (itemNamespace.equals("shard", ignoreCase = true)) {
val set = ArmorSets.getByID(itemKey)
if (set == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return
}
var message = plugin.langYml.getMessage("give-success")
message = message.replace("%item%", set.advancementShardItem.itemMeta!!.displayName)
.replace("%recipient%", reciever.name)
sender.sendMessage(message)
toGive.add(set.advancementShardItem)
if (args.size >= 3) {
amount = args[2].toIntOrNull() ?: amount
}
}
if (toGive.isEmpty()) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))
return
}
for (item in toGive) {
item.amount = amount
reciever.inventory.addItem(item)
}
}
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 items.toList()
}
if (args.size == 1) {
StringUtil.copyPartialMatches(
args[0],
Bukkit.getOnlinePlayers().map { it.name },
completions
)
return completions
}
if (args.size == 2) {
StringUtil.copyPartialMatches(args[1], items, completions)
completions.sort()
return completions
}
if (args[1].startsWith("set:")) {
if (args.size == 3) {
StringUtil.copyPartialMatches(args[2], slots, completions)
completions.sort()
return completions
}
if (args.size == 4) {
StringUtil.copyPartialMatches(args[3], listOf("true", "false"), completions)
completions.sort()
return completions
}
if (args.size == 5) {
StringUtil.copyPartialMatches(args[4], tiers, completions)
completions.sort()
return completions
}
if (args.size == 6) {
StringUtil.copyPartialMatches(args[5], numbers, completions)
return completions
}
} else {
if (args.size == 3) {
StringUtil.copyPartialMatches(args[2], numbers, completions)
return completions
}
}
return emptyList()
}
}

View File

@@ -1,14 +1,12 @@
package com.willfp.ecoarmor.commands
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.command.CommandHandler
import com.willfp.eco.core.command.impl.Subcommand
import org.bukkit.command.CommandSender
class CommandReload(plugin: EcoPlugin) : Subcommand(plugin, "reload", "ecoarmor.command.reload", false) {
override fun getHandler(): CommandHandler {
return CommandHandler { sender, _ ->
plugin.reload()
sender.sendMessage(plugin.langYml.getMessage("reloaded"))
}
override fun onExecute(sender: CommandSender, args: List<String>) {
plugin.reload()
sender.sendMessage(plugin.langYml.getMessage("reloaded"))
}
}

View File

@@ -1,6 +1,7 @@
package com.willfp.ecoarmor.config
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.config.yaml.YamlBaseConfig
import com.willfp.eco.core.config.BaseConfig
import com.willfp.eco.core.config.ConfigType
class EcoArmorYml(plugin: EcoPlugin) : YamlBaseConfig("ecoarmor", false, plugin)
class EcoArmorYml(plugin: EcoPlugin) : BaseConfig("ecoarmor", plugin, false, ConfigType.YAML)

View File

@@ -165,7 +165,7 @@ class ArmorSet(
if (defaultTier == null) {
Bukkit.getLogger()
.warning("Default tier specified in " + id + " " + slot.name.lowercase(Locale.getDefault()) + " is invalid! Defaulting to 'default'")
setTier(itemStack, Tiers.getDefaultTier())
setTier(itemStack, Tiers.defaultTier)
} else {
setTier(itemStack, defaultTier)
}
@@ -221,7 +221,7 @@ class ArmorSet(
val formattedOut = out.clone()
val meta = formattedOut.itemMeta!!
assert(meta.lore != null)
val lore = meta.lore.map { it.replace("%tier%", Tiers.getDefaultTier().displayName) }
val lore = meta.lore.map { it.replace("%tier%", Tiers.defaultTier.displayName) }
meta.lore = lore
formattedOut.itemMeta = meta
Recipes.createAndRegisterRecipe(
@@ -239,8 +239,8 @@ class ArmorSet(
* @param slot The slot.
* @return The item.
*/
fun getItemStack(slot: ArmorSlot): ItemStack? {
return items[slot]
fun getItemStack(slot: ArmorSlot): ItemStack {
return items[slot]!!
}
/**
@@ -249,8 +249,8 @@ class ArmorSet(
* @param slot The slot.
* @return The item.
*/
fun getAdvancedItemStack(slot: ArmorSlot): ItemStack? {
return advancedItems[slot]
fun getAdvancedItemStack(slot: ArmorSlot): ItemStack {
return advancedItems[slot]!!
}
/**
@@ -260,9 +260,9 @@ class ArmorSet(
* @return The tier.
*/
fun getDefaultTier(slot: ArmorSlot?): Tier {
if (slot == null) return Tiers.getDefaultTier()
if (slot == null) return Tiers.defaultTier
val tier = Tiers.getByID(config.getSubsection(slot.name.lowercase()).getString("defaultTier"))
return tier ?: Tiers.getDefaultTier()
return tier ?: Tiers.defaultTier
}
override fun equals(other: Any?): Boolean {