diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/items/ArgParserName.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/items/ArgParserName.kt new file mode 100644 index 00000000..0537cfda --- /dev/null +++ b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/items/ArgParserName.kt @@ -0,0 +1,36 @@ +package com.willfp.eco.internal.items + +import com.willfp.eco.core.items.args.LookupArgParser +import com.willfp.eco.util.StringUtils +import org.bukkit.inventory.ItemStack +import org.bukkit.inventory.meta.ItemMeta +import java.util.function.Predicate + +class ArgParserName : LookupArgParser { + override fun parseArguments(args: Array, meta: ItemMeta): Predicate? { + var name: String? = null + + for (arg in args) { + val argSplit = arg.split(":") + if (!argSplit[0].equals("name", ignoreCase = true)) { + continue + } + if (argSplit.size < 2) { + continue + } + name = argSplit[1].replace("_", "") + } + + name ?: return null + + val formatted = StringUtils.format(name) + + meta.setDisplayName(formatted) + + return Predicate { + val testMeta = it.itemMeta ?: return@Predicate false + + testMeta.displayName == formatted + } + } +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt index f98974ca..46fd5f94 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt @@ -21,6 +21,7 @@ import com.willfp.eco.internal.items.ArgParserColor import com.willfp.eco.internal.items.ArgParserCustomModelData import com.willfp.eco.internal.items.ArgParserEnchantment import com.willfp.eco.internal.items.ArgParserFlag +import com.willfp.eco.internal.items.ArgParserName import com.willfp.eco.internal.items.ArgParserTexture import com.willfp.eco.internal.items.ArgParserUnbreakable import com.willfp.eco.internal.spigot.arrows.ArrowDataListener @@ -100,6 +101,7 @@ abstract class EcoSpigotPlugin : EcoPlugin( Items.registerArgParser(ArgParserCustomModelData()) Items.registerArgParser(ArgParserFlag()) Items.registerArgParser(ArgParserUnbreakable()) + Items.registerArgParser(ArgParserName()) val skullProxy = getProxy(SkullProxy::class.java) SkullUtils.initialize(