From 5999d1691e1daec8dc9e072586058e08a7ab9d03 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 27 Jun 2024 22:46:08 +0200 Subject: [PATCH] minimessage support --- .../tweaks/command/item/LoreCommand.java | 27 +++++++++---------- .../tweaks/command/item/RenameCommand.java | 8 +++--- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/main/java/net/thenextlvl/tweaks/command/item/LoreCommand.java b/src/main/java/net/thenextlvl/tweaks/command/item/LoreCommand.java index c42f432..1a2248c 100644 --- a/src/main/java/net/thenextlvl/tweaks/command/item/LoreCommand.java +++ b/src/main/java/net/thenextlvl/tweaks/command/item/LoreCommand.java @@ -1,10 +1,11 @@ package net.thenextlvl.tweaks.command.item; import lombok.RequiredArgsConstructor; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; import net.thenextlvl.tweaks.TweaksPlugin; import net.thenextlvl.tweaks.command.api.CommandInfo; import net.thenextlvl.tweaks.command.api.CommandSenderException; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -29,7 +30,6 @@ public class LoreCommand implements TabExecutor { private final TweaksPlugin plugin; @Override - @SuppressWarnings("deprecation") public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!(sender instanceof Player player)) throw new CommandSenderException(); if (args.length < 1) return false; @@ -46,11 +46,10 @@ public boolean onCommand(CommandSender sender, Command command, String label, St return false; } - String lore = String.join(" ", Arrays.copyOfRange(args, 1, args.length)).replace("\\t", " "); - String[] loreLines = lore.split("\\\\n"); - for (int i = 0; i < loreLines.length; i++) { - loreLines[i] = ChatColor.translateAlternateColorCodes('&', loreLines[i]); - } + var lore = String.join(" ", Arrays.copyOfRange(args, 1, args.length)).replace("\\t", " "); + var loreLines = Arrays.stream(lore.split("\\\\n")) + .map(MiniMessage.miniMessage()::deserialize) + .toList(); Consumer function = null; @@ -78,17 +77,15 @@ private static Consumer unsetLore() { return meta -> meta.lore(null); } - @SuppressWarnings("deprecation") - private Consumer setLore(String[] lore) { - return itemMeta -> itemMeta.setLore(Arrays.asList(lore)); + private Consumer setLore(List lore) { + return itemMeta -> itemMeta.lore(lore); } - @SuppressWarnings("deprecation") - private Consumer appendLore(String[] lore) { + private Consumer appendLore(List lore) { return itemMeta -> { - var currentLore = Objects.requireNonNullElse(itemMeta.getLore(), new ArrayList()); - currentLore.addAll(Arrays.asList(lore)); - itemMeta.setLore(currentLore); + var currentLore = Objects.requireNonNullElse(itemMeta.lore(), new ArrayList()); + currentLore.addAll(lore); + itemMeta.lore(currentLore); }; } diff --git a/src/main/java/net/thenextlvl/tweaks/command/item/RenameCommand.java b/src/main/java/net/thenextlvl/tweaks/command/item/RenameCommand.java index 17f29ff..2042c5a 100644 --- a/src/main/java/net/thenextlvl/tweaks/command/item/RenameCommand.java +++ b/src/main/java/net/thenextlvl/tweaks/command/item/RenameCommand.java @@ -1,10 +1,10 @@ package net.thenextlvl.tweaks.command.item; import lombok.RequiredArgsConstructor; +import net.kyori.adventure.text.minimessage.MiniMessage; import net.thenextlvl.tweaks.TweaksPlugin; import net.thenextlvl.tweaks.command.api.CommandInfo; import net.thenextlvl.tweaks.command.api.CommandSenderException; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -24,7 +24,6 @@ public class RenameCommand implements TabExecutor { private final TweaksPlugin plugin; @Override - @SuppressWarnings("deprecation") public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!(sender instanceof Player player)) throw new CommandSenderException(); @@ -33,10 +32,9 @@ public boolean onCommand(CommandSender sender, Command command, String label, St var item = player.getInventory().getItemInMainHand(); - var name = ChatColor.translateAlternateColorCodes('&', String.join(" ", args)) - .replace("\\t", " "); + var name = MiniMessage.miniMessage().deserialize(String.join(" ", args).replace("\\t", " ")); - if (!item.editMeta(itemMeta -> itemMeta.setDisplayName(name))) { + if (!item.editMeta(itemMeta -> itemMeta.displayName(name))) { plugin.bundle().sendMessage(player, "item.rename.fail"); return true; }