diff --git a/src/main/java/de/iani/treasurechest/TreasureChest.java b/src/main/java/de/iani/treasurechest/TreasureChest.java index 54bafd3..6833f35 100644 --- a/src/main/java/de/iani/treasurechest/TreasureChest.java +++ b/src/main/java/de/iani/treasurechest/TreasureChest.java @@ -26,8 +26,9 @@ import java.util.Random; import java.util.UUID; import java.util.logging.Level; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.milkbowl.vault.economy.Economy; -import org.bukkit.ChatColor; import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; @@ -245,7 +246,18 @@ } public void sendMessage(CommandSender p, String text, boolean error) { - p.sendMessage(ChatColor.BLUE + "[TC] " + (error ? ChatColor.DARK_RED : ChatColor.YELLOW) + text); + p.sendMessage(Component.text("[TC]", NamedTextColor.BLUE).append(Component.text(text, error ? NamedTextColor.DARK_RED : NamedTextColor.YELLOW))); + } + + public void sendMessage(CommandSender p, Component text) { + sendMessage(p, text, false); + } + + public void sendMessage(CommandSender p, Component text, boolean error) { + if (text.color() == null) { + text = text.color(error ? NamedTextColor.DARK_RED : NamedTextColor.YELLOW); + } + p.sendMessage(Component.text("[TC]", NamedTextColor.BLUE).append(text)); } public void setChestLocation(Location location) { diff --git a/src/main/java/de/iani/treasurechest/commands/HelpCommand.java b/src/main/java/de/iani/treasurechest/commands/HelpCommand.java index c137cbc..1dd34fe 100644 --- a/src/main/java/de/iani/treasurechest/commands/HelpCommand.java +++ b/src/main/java/de/iani/treasurechest/commands/HelpCommand.java @@ -11,7 +11,8 @@ import de.iani.treasurechest.TreasureChest; import java.util.Collection; import java.util.List; -import org.bukkit.ChatColor; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -35,30 +36,34 @@ @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException { - plugin.sendMessage(sender, ChatColor.GREEN + "Commands"); + plugin.sendMessage(sender, Component.text("Commands", NamedTextColor.GREEN)); if (sender instanceof Player && sender.hasPermission(Permissions.SET_CHEST)) { plugin.sendMessage(sender, "/" + alias + " setchest"); - plugin.sendMessage(sender, ChatColor.GREEN + " Set the treasure chest location to the location you are looking at."); + plugin.sendMessage(sender, Component.text(" Set the treasure chest location to the location you are looking at.", NamedTextColor.GREEN)); } if (sender instanceof Player && sender.hasPermission(Permissions.CREATE)) { plugin.sendMessage(sender, "/" + alias + " create"); - plugin.sendMessage(sender, ChatColor.GREEN + " Creates a price with the item in hand as display item."); + plugin.sendMessage(sender, Component.text(" Creates a price with the item in hand as display item.", NamedTextColor.GREEN)); plugin.sendMessage(sender, "/" + alias + " additem"); - plugin.sendMessage(sender, ChatColor.GREEN + " Adds the item in hand to the price."); + plugin.sendMessage(sender, Component.text(" Adds the item in hand to the price.", NamedTextColor.GREEN)); plugin.sendMessage(sender, "/" + alias + " addmoney "); - plugin.sendMessage(sender, ChatColor.GREEN + " Adds money to a price."); + plugin.sendMessage(sender, Component.text(" Adds money to a price.", NamedTextColor.GREEN)); } if (sender instanceof Player && sender.hasPermission(Permissions.GIVE)) { plugin.sendMessage(sender, "/" + alias + " give "); - plugin.sendMessage(sender, ChatColor.GREEN + " Gives a price to a player."); + plugin.sendMessage(sender, Component.text(" Gives a price to a player.", NamedTextColor.GREEN)); } if (sender.hasPermission(Permissions.LIST)) { plugin.sendMessage(sender, "/" + alias + " list "); - plugin.sendMessage(sender, ChatColor.GREEN + " Gives price for a player."); + plugin.sendMessage(sender, Component.text(" Gives price for a player.", NamedTextColor.GREEN)); } if (sender.hasPermission(Permissions.REMOVE)) { plugin.sendMessage(sender, "/" + alias + " remove "); - plugin.sendMessage(sender, ChatColor.GREEN + " Removes a price from a players chest."); + plugin.sendMessage(sender, Component.text(" Removes a price from a players chest.", NamedTextColor.GREEN)); + } + if (sender.hasPermission(Permissions.TRANSFER)) { + plugin.sendMessage(sender, "/" + alias + " transfer CONFIRM"); + plugin.sendMessage(sender, Component.text(" Transfers all prices from one player to another.", NamedTextColor.GREEN)); } return true; } diff --git a/src/main/java/de/iani/treasurechest/commands/ListCommand.java b/src/main/java/de/iani/treasurechest/commands/ListCommand.java index bd5c80d..051a8f4 100644 --- a/src/main/java/de/iani/treasurechest/commands/ListCommand.java +++ b/src/main/java/de/iani/treasurechest/commands/ListCommand.java @@ -15,10 +15,12 @@ import de.iani.treasurechest.database.DatabaseTreasureChestItem; import java.util.Collection; import java.util.List; -import org.bukkit.ChatColor; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.bukkit.inventory.meta.ItemMeta; public class ListCommand extends SubCommand { private TreasureChest plugin; @@ -56,7 +58,7 @@ PlayerTreasureChestContent content = plugin.getData().getOrCreateChestContent(target.getUniqueId()); content.loadAsync(() -> { - plugin.sendMessage(sender, ChatColor.GRAY + "Preise von " + target.getName() + " (" + target.getUniqueId().toString() + "):"); + plugin.sendMessage(sender, Component.text("Preise von " + target.getName() + " (" + target.getUniqueId().toString() + "):", NamedTextColor.GRAY)); List items = content.getItems(); if (items.isEmpty()) { plugin.sendMessage(sender, "keine Preise vorhanden"); @@ -64,7 +66,8 @@ ListedItemsData lid = new ListedItemsData(target.getUniqueId()); int nr = 1; for (DatabaseTreasureChestItem i : items) { - plugin.sendMessage(sender, nr + ": " + i.getDisplayItem().getItemMeta().getDisplayName()); + ItemMeta meta = i.getDisplayItem().getItemMeta(); + plugin.sendMessage(sender, Component.text(nr + ": ").append(meta.hasDisplayName() ? meta.displayName() : meta.hasItemName() ? meta.itemName() : Component.translatable(i.getDisplayItem().getType().getItemTranslationKey()))); lid.addItem(nr, i.getId()); nr++; } diff --git a/src/main/java/de/iani/treasurechest/commands/RemoveCommand.java b/src/main/java/de/iani/treasurechest/commands/RemoveCommand.java index 7192a12..7bf05d9 100644 --- a/src/main/java/de/iani/treasurechest/commands/RemoveCommand.java +++ b/src/main/java/de/iani/treasurechest/commands/RemoveCommand.java @@ -17,7 +17,6 @@ import java.util.Collection; import java.util.List; import java.util.logging.Level; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -84,7 +83,7 @@ return true; } } catch (SQLException e) { - plugin.sendMessage(sender, ChatColor.DARK_RED + "Datenbankfehler"); + plugin.sendMessage(sender, "Datenbankfehler", true); plugin.getLogger().log(Level.SEVERE, "Could not delete item " + key + " for " + target.getName() + ": " + e.getMessage(), e); return true; } diff --git a/src/main/java/de/iani/treasurechest/commands/UpdateAllCommand.java b/src/main/java/de/iani/treasurechest/commands/UpdateAllCommand.java index 54bc6d9..d9e0d42 100644 --- a/src/main/java/de/iani/treasurechest/commands/UpdateAllCommand.java +++ b/src/main/java/de/iani/treasurechest/commands/UpdateAllCommand.java @@ -18,7 +18,8 @@ import java.util.List; import java.util.Objects; import java.util.logging.Level; -import org.bukkit.ChatColor; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; @@ -60,9 +61,9 @@ boolean forceAll = arg.equals("FORCEALL"); ArrayList allHeads; try { - sender.sendMessage(ChatColor.DARK_RED + "Lade Schatztruheninhalte!"); + sender.sendMessage(Component.text("Lade Schatztruheninhalte!", NamedTextColor.DARK_RED)); allHeads = plugin.getDatabase().getAllItems(); - sender.sendMessage(ChatColor.DARK_RED + "Laden abgeschlossen (" + allHeads.size() + ") - Beginne Update!"); + sender.sendMessage(Component.text("Laden abgeschlossen (" + allHeads.size() + ") - Beginne Update!", NamedTextColor.DARK_RED)); } catch (SQLException e) { sender.sendMessage("Exception while loading"); plugin.getLogger().log(Level.SEVERE, "Exception while loading", e); @@ -77,8 +78,8 @@ public void run() { for (int k = 0; k < 100; k++) { if (checked >= total) { - sender.sendMessage(ChatColor.DARK_RED + "Update: " + checked + "/" + total + " (" + converted + " updated)"); - sender.sendMessage(ChatColor.DARK_RED + "Update abgeschlossen!"); + sender.sendMessage(Component.text("Update: " + checked + "/" + total + " (" + converted + " updated)", NamedTextColor.DARK_RED)); + sender.sendMessage(Component.text("Update abgeschlossen!", NamedTextColor.DARK_RED)); this.cancel(); return; } @@ -115,7 +116,7 @@ converted++; } if (checked % 100 == 0) { - sender.sendMessage(ChatColor.DARK_RED + "Update: " + checked + "/" + total + " (" + converted + " updated)"); + sender.sendMessage(Component.text("Update: " + checked + "/" + total + " (" + converted + " updated)", NamedTextColor.DARK_RED)); } } } diff --git a/src/main/java/de/iani/treasurechest/listener/ChestInventoryListener.java b/src/main/java/de/iani/treasurechest/listener/ChestInventoryListener.java index 5812996..3b92526 100644 --- a/src/main/java/de/iani/treasurechest/listener/ChestInventoryListener.java +++ b/src/main/java/de/iani/treasurechest/listener/ChestInventoryListener.java @@ -14,8 +14,9 @@ import java.util.Collections; import java.util.HashMap; import java.util.logging.Level; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.entity.Player; @@ -68,7 +69,7 @@ plugin.sendMessage(e.getPlayer(), "Deine Schatztruhe ist leer!"); return; } - Inventory inventory = plugin.getServer().createInventory(null, 9 * 6, "Schatztruhe"); + Inventory inventory = plugin.getServer().createInventory(null, 9 * 6, Component.text("Schatztruhe")); OpenInventoryData openInventory = new OpenInventoryData(b.getLocation(), inventory); int pos = 0; @@ -77,7 +78,7 @@ ItemStack di = item.getDisplayItem().clone(); ItemMeta meta = di.getItemMeta(); ItemStack[] priceList = item.getPriceItems(); - ArrayList lore = new ArrayList<>(); + ArrayList lore = new ArrayList<>(); if (priceList != null) { for (ItemStack stack : priceList) { StringBuilder t = new StringBuilder(); @@ -94,13 +95,13 @@ if (stackMeta.hasDisplayName()) { t.append(" (benanntes Item)"); } - lore.add(t.toString()); + lore.add(Component.text(t.toString())); } } if (item.getPriceMoney() > 0) { - lore.add(plugin.formatMoney(item.getPriceMoney())); + lore.add(Component.text(plugin.formatMoney(item.getPriceMoney()))); } - meta.setLore(lore); + meta.lore(lore); di.setItemMeta(meta); inventory.setItem(pos, di); openInventory.setItemAtPosition(pos, item.getId()); @@ -172,11 +173,11 @@ return; } } catch (SQLException e) { - plugin.sendMessage(player, ChatColor.DARK_RED + "Datenbankfehler"); + plugin.sendMessage(player, "Datenbankfehler", true); plugin.getLogger().log(Level.SEVERE, "Could not delete item " + entryId + " for " + player.getUniqueId() + ": " + e.getMessage(), e); return; } - plugin.sendMessage(player, ChatColor.GRAY + "Du hast folgende Items erhalten:"); + plugin.sendMessage(player, Component.text("Du hast folgende Items erhalten:", NamedTextColor.GRAY)); if (priceCount > 0) { ItemStack[] temp = new ItemStack[priceCount]; for (int i = 0; i < priceCount; i++) { @@ -195,10 +196,11 @@ t.append(':').append(damageable.getDamage()); } } + Component text = Component.text(t.toString()); if (stackMeta.hasDisplayName()) { - t.append(" (").append(stackMeta.getDisplayName()).append(ChatColor.YELLOW).append(")"); + text = text.append(Component.text(" (")).append(stackMeta.displayName()).append(Component.text(")")); } - plugin.sendMessage(player, t.toString()); + plugin.sendMessage(player, text); } if (filledInventory == FilledInventory.ShulkerBox) { plugin.sendMessage(player, "Die Items wurden in eine leere Shulker-Kiste in deinem Inventar gelegt."); @@ -224,7 +226,6 @@ case DROP_ALL_SLOT: case DROP_ONE_CURSOR: case DROP_ONE_SLOT: - case HOTBAR_MOVE_AND_READD: case HOTBAR_SWAP: case UNKNOWN: default: {