From 62ee60a76c1485c798df2c19d19bc7478704ff98 Mon Sep 17 00:00:00 2001 From: Pierre Maurice Schwang Date: Sat, 14 May 2022 17:05:28 +0200 Subject: [PATCH 001/239] Update MiniMessage to 4.10.1 (#3617) * chore!: bump MiniMessage to 4.10.1 BREAKING CHANGE: bumping MiniMessage and Adventure removes the adventure Template class and breaks the whole messaging system api wise * chore: fix minimessage messages, fix circular method reference --- .../bukkit/listener/BlockEventListener.java | 69 +++-- .../bukkit/listener/PaperListener.java | 21 +- .../bukkit/listener/PaperListener113.java | 6 +- .../bukkit/listener/PlayerEventListener.java | 206 ++++++++++----- .../listener/ProjectileEventListener.java | 19 +- .../bukkit/util/BukkitEntityUtil.java | 44 +++- .../bukkit/util/BukkitInventoryUtil.java | 2 +- .../plotsquared/bukkit/util/BukkitUtil.java | 9 +- .../java/com/plotsquared/core/PlotAPI.java | 6 +- .../core/backup/PlayerBackupProfile.java | 2 +- .../core/backup/SimpleBackupManager.java | 9 +- .../com/plotsquared/core/command/Add.java | 24 +- .../com/plotsquared/core/command/Alias.java | 27 +- .../com/plotsquared/core/command/Area.java | 235 +++++++++++------- .../com/plotsquared/core/command/Auto.java | 46 ++-- .../com/plotsquared/core/command/Backup.java | 104 +++++--- .../com/plotsquared/core/command/Biome.java | 21 +- .../com/plotsquared/core/command/Buy.java | 24 +- .../com/plotsquared/core/command/Caps.java | 23 +- .../com/plotsquared/core/command/Chat.java | 6 +- .../com/plotsquared/core/command/Claim.java | 46 ++-- .../com/plotsquared/core/command/Clear.java | 12 +- .../com/plotsquared/core/command/Cluster.java | 234 ++++++++++------- .../plotsquared/core/command/CmdConfirm.java | 12 +- .../com/plotsquared/core/command/Command.java | 55 ++-- .../core/command/CommandCaller.java | 4 +- .../core/command/CommandCategory.java | 8 + .../com/plotsquared/core/command/Comment.java | 28 ++- .../plotsquared/core/command/Condense.java | 41 ++- .../plotsquared/core/command/Continue.java | 12 +- .../com/plotsquared/core/command/Copy.java | 13 +- .../core/command/CreateRoadSchematic.java | 6 +- .../core/command/DatabaseCommand.java | 24 +- .../com/plotsquared/core/command/Debug.java | 66 +++-- .../plotsquared/core/command/DebugExec.java | 27 +- .../plotsquared/core/command/DebugPaste.java | 22 +- .../core/command/DebugRoadRegen.java | 22 +- .../com/plotsquared/core/command/Delete.java | 15 +- .../com/plotsquared/core/command/Deny.java | 15 +- .../com/plotsquared/core/command/Desc.java | 8 +- .../com/plotsquared/core/command/Done.java | 8 +- .../plotsquared/core/command/Download.java | 35 ++- .../plotsquared/core/command/FlagCommand.java | 165 +++++++----- .../com/plotsquared/core/command/Grant.java | 16 +- .../com/plotsquared/core/command/Help.java | 27 +- .../plotsquared/core/command/HomeCommand.java | 16 +- .../com/plotsquared/core/command/Inbox.java | 75 +++--- .../com/plotsquared/core/command/Info.java | 14 +- .../com/plotsquared/core/command/Kick.java | 12 +- .../com/plotsquared/core/command/Leave.java | 6 +- .../com/plotsquared/core/command/Like.java | 10 +- .../com/plotsquared/core/command/ListCmd.java | 134 +++++----- .../com/plotsquared/core/command/Load.java | 17 +- .../plotsquared/core/command/MainCommand.java | 5 +- .../com/plotsquared/core/command/Merge.java | 49 ++-- .../com/plotsquared/core/command/Move.java | 10 +- .../com/plotsquared/core/command/Music.java | 27 +- .../com/plotsquared/core/command/Near.java | 6 +- .../com/plotsquared/core/command/Owner.java | 27 +- .../plotsquared/core/command/PluginCmd.java | 8 +- .../com/plotsquared/core/command/Purge.java | 17 +- .../com/plotsquared/core/command/Rate.java | 12 +- .../core/command/RegenAllRoads.java | 14 +- .../com/plotsquared/core/command/Remove.java | 10 +- .../com/plotsquared/core/command/Save.java | 6 +- .../core/command/SchematicCmd.java | 51 ++-- .../com/plotsquared/core/command/Set.java | 13 +- .../plotsquared/core/command/SetCommand.java | 14 +- .../com/plotsquared/core/command/SetHome.java | 6 +- .../com/plotsquared/core/command/Setup.java | 9 +- .../com/plotsquared/core/command/Swap.java | 10 +- .../com/plotsquared/core/command/Target.java | 8 +- .../plotsquared/core/command/Template.java | 25 +- .../com/plotsquared/core/command/Toggle.java | 32 +-- .../com/plotsquared/core/command/Trust.java | 28 ++- .../com/plotsquared/core/command/Unlink.java | 6 +- .../com/plotsquared/core/command/Visit.java | 42 ++-- .../components/ComponentPresetManager.java | 29 ++- .../core/configuration/caption/Caption.java | 11 + .../configuration/caption/CaptionHolder.java | 38 ++- .../configuration/caption/CaptionUtility.java | 4 +- .../configuration/caption/StaticCaption.java | 8 + .../core/configuration/caption/Templates.java | 110 -------- .../caption/TranslatableCaption.java | 16 ++ .../core/listener/PlotListener.java | 77 +++--- .../core/listener/WESubscriber.java | 6 +- .../core/permissions/Permission.java | 10 +- .../core/player/ConsolePlayer.java | 8 +- .../plotsquared/core/player/PlotPlayer.java | 19 +- .../java/com/plotsquared/core/plot/Plot.java | 199 +++++++-------- .../com/plotsquared/core/plot/PlotArea.java | 16 +- .../core/plot/PlotModificationManager.java | 11 +- .../core/plot/comment/CommentManager.java | 10 +- .../core/plot/expiration/ExpireManager.java | 39 ++- .../core/plot/flag/FlagParseException.java | 12 +- .../plotsquared/core/plot/flag/PlotFlag.java | 12 +- .../implementations/DenyTeleportFlag.java | 9 +- .../plot/flag/implementations/FeedFlag.java | 8 +- .../plot/flag/implementations/HealFlag.java | 8 +- .../plot/flag/implementations/TitlesFlag.java | 6 +- .../subscriber/DefaultProgressSubscriber.java | 9 +- .../core/setup/CommonSetupSteps.java | 9 +- .../core/setup/SettingsNodeStep.java | 17 +- .../core/util/ComponentHelper.java | 72 ++++++ .../core/util/EventDispatcher.java | 26 +- .../core/util/LegacyConverter.java | 16 +- .../plotsquared/core/util/PatternUtil.java | 6 +- .../plotsquared/core/util/Permissions.java | 6 +- .../plotsquared/core/util/PlayerManager.java | 26 +- .../com/plotsquared/core/util/WorldUtil.java | 4 +- .../core/util/helpmenu/HelpObject.java | 41 +-- .../core/util/helpmenu/HelpPage.java | 44 ++-- .../placeholders/PlaceholderRegistry.java | 3 +- .../core/util/task/AutoClaimFinishTask.java | 6 +- .../plotsquared/core/uuid/UUIDPipeline.java | 2 +- Core/src/main/resources/lang/messages_en.json | 28 +-- gradle/libs.versions.toml | 6 +- 117 files changed, 2195 insertions(+), 1335 deletions(-) delete mode 100644 Core/src/main/java/com/plotsquared/core/configuration/caption/Templates.java create mode 100644 Core/src/main/java/com/plotsquared/core/util/ComponentHelper.java diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/BlockEventListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/BlockEventListener.java index 1e71e642c..c3c8dae3e 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/BlockEventListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/BlockEventListener.java @@ -68,7 +68,9 @@ import com.plotsquared.core.util.task.TaskTime; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.world.block.BlockType; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; @@ -285,15 +287,20 @@ public class BlockEventListener implements Listener { event.setCancelled(true); pp.sendMessage( TranslatableCaption.of("height.height_limit"), - Template.of("minHeight", String.valueOf(area.getMinBuildHeight())), - Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight())) + TagResolver.builder() + .tag("minheight", Tag.inserting(Component.text(area.getMinBuildHeight()))) + .tag("maxheight", Tag.inserting(Component.text(area.getMaxBuildHeight()))) + .build() ); } if (!plot.hasOwner()) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_UNOWNED) + ) ); event.setCancelled(true); return; @@ -310,7 +317,10 @@ public class BlockEventListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_OTHER) + ) ); event.setCancelled(true); plot.debug(player.getName() + " could not place " + event.getBlock().getType() @@ -337,7 +347,10 @@ public class BlockEventListener implements Listener { } else if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_ROAD) + ) ); event.setCancelled(true); } @@ -360,7 +373,10 @@ public class BlockEventListener implements Listener { .hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL) + ) ); event.setCancelled(true); return; @@ -371,8 +387,10 @@ public class BlockEventListener implements Listener { event.setCancelled(true); plotPlayer.sendMessage( TranslatableCaption.of("height.height_limit"), - Template.of("minHeight", String.valueOf(area.getMinBuildHeight())), - Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight())) + TagResolver.builder() + .tag("minheight", Tag.inserting(Component.text(area.getMinBuildHeight()))) + .tag("maxheight", Tag.inserting(Component.text(area.getMaxBuildHeight()))) + .build() ); } if (!plot.hasOwner()) { @@ -397,7 +415,10 @@ public class BlockEventListener implements Listener { } plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_OTHER) + ) ); event.setCancelled(true); } else if (Settings.Done.RESTRICT_BUILDING && DoneFlag.isDone(plot)) { @@ -423,7 +444,10 @@ public class BlockEventListener implements Listener { } pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_ROAD) + ) ); event.setCancelled(true); } @@ -1099,7 +1123,10 @@ public class BlockEventListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_ROAD) + ) ); event.setCancelled(true); } @@ -1107,7 +1134,10 @@ public class BlockEventListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_UNOWNED) + ) ); event.setCancelled(true); } @@ -1115,7 +1145,10 @@ public class BlockEventListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_OTHER) + ) ); event.setCancelled(true); } @@ -1239,7 +1272,7 @@ public class BlockEventListener implements Listener { ) && !(Objects.equals(currentLocation.getPlot(), plot))) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_ROAD)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_ROAD)) ); event.setCancelled(true); break; @@ -1250,8 +1283,10 @@ public class BlockEventListener implements Listener { if (currentLocation.getY() >= area.getMaxBuildHeight() || currentLocation.getY() < area.getMinBuildHeight()) { pp.sendMessage( TranslatableCaption.of("height.height_limit"), - Template.of("minHeight", String.valueOf(area.getMinBuildHeight())), - Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight())) + TagResolver.builder() + .tag("minheight", Tag.inserting(Component.text(area.getMinBuildHeight()))) + .tag("maxheight", Tag.inserting(Component.text(area.getMaxBuildHeight()))) + .build() ); event.setCancelled(true); break; diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PaperListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PaperListener.java index 079d04fe3..60f33bdac 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PaperListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PaperListener.java @@ -47,7 +47,9 @@ import com.plotsquared.core.plot.flag.implementations.DoneFlag; import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag; import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.util.Permissions; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.bukkit.Chunk; import org.bukkit.block.Block; import org.bukkit.block.TileState; @@ -304,7 +306,7 @@ public class PaperListener implements Listener { final PlotPlayer plotPlayer = BukkitUtil.adapt(event.getPlayer()); plotPlayer.sendMessage( TranslatableCaption.of("errors.tile_entity_cap_reached"), - Template.of("amount", String.valueOf(Settings.Chunk_Processor.MAX_TILES)) + TagResolver.resolver("amount", Tag.inserting(Component.text(Settings.Chunk_Processor.MAX_TILES))) ); event.setCancelled(true); event.setBuild(false); @@ -338,7 +340,10 @@ public class PaperListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_PROJECTILE_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_PROJECTILE_ROAD) + ) ); entity.remove(); event.setCancelled(true); @@ -347,7 +352,10 @@ public class PaperListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED) + ) ); entity.remove(); event.setCancelled(true); @@ -357,7 +365,10 @@ public class PaperListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_PROJECTILE_OTHER) + ) ); entity.remove(); event.setCancelled(true); diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PaperListener113.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PaperListener113.java index bb3177b1b..abbd68b0f 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PaperListener113.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PaperListener113.java @@ -33,7 +33,9 @@ import com.plotsquared.core.location.Location; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.world.PlotAreaManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.bukkit.block.Banner; import org.bukkit.block.Beacon; import org.bukkit.block.BlockState; @@ -84,7 +86,7 @@ public class PaperListener113 extends PaperListener { final PlotPlayer plotPlayer = BukkitUtil.adapt(event.getPlayer()); plotPlayer.sendMessage( TranslatableCaption.of("errors.tile_entity_cap_reached"), - Template.of("amount", String.valueOf(Settings.Chunk_Processor.MAX_TILES)) + TagResolver.resolver("amount", Tag.inserting(Component.text(Settings.Chunk_Processor.MAX_TILES))) ); event.setCancelled(true); event.setBuild(false); diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEventListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEventListener.java index 06110b633..086c5826d 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEventListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEventListener.java @@ -84,7 +84,10 @@ import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.world.block.BlockType; import io.papermc.lib.PaperLib; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; +import net.kyori.adventure.text.minimessage.tag.standard.StandardTags; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.FluidCollisionMode; @@ -152,13 +155,11 @@ import org.bukkit.util.Vector; import org.checkerframework.checker.nullness.qual.NonNull; import java.lang.reflect.Field; -import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Set; import java.util.UUID; -import java.util.regex.Pattern; /** * Player Events involving plots. @@ -363,11 +364,15 @@ public class PlayerEventListener extends PlotListener implements Listener { && PremiumVerification.isPremium() && UpdateUtility.hasUpdate) { Caption boundary = TranslatableCaption.of("update.update_boundary"); Caption updateNotification = TranslatableCaption.of("update.update_notification"); - Template internalVersion = Template.of("p2version", UpdateUtility.internalVersion.versionString()); - Template spigotVersion = Template.of("spigotversion", UpdateUtility.spigotVersion); - Template downloadUrl = Template.of("downloadurl", "https://www.spigotmc.org/resources/77506/updates"); pp.sendMessage(boundary); - pp.sendMessage(updateNotification, internalVersion, spigotVersion, downloadUrl); + pp.sendMessage( + updateNotification, + TagResolver.builder() + .tag("p2version", Tag.inserting(Component.text(UpdateUtility.internalVersion.versionString()))) + .tag("spigotversion", Tag.inserting(Component.text(UpdateUtility.spigotVersion))) + .tag("downloadurl", Tag.preProcessParsed("https://www.spigotmc.org/resources/77506/updates")) + .build() + ); pp.sendMessage(boundary); } } @@ -419,7 +424,7 @@ public class PlayerEventListener extends PlotListener implements Listener { .equals(BukkitUtil.adaptComplete(to)))) { pp.sendMessage( TranslatableCaption.of("deny.no_enter"), - Template.of("plot", plot.toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.toString()))) ); event.setCancelled(true); } @@ -535,7 +540,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_EXIT_DENIED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_EXIT_DENIED) + ) ); this.tmpTeleport = false; if (lastPlot.equals(BukkitUtil.adapt(from).getPlot())) { @@ -553,7 +561,7 @@ public class PlayerEventListener extends PlotListener implements Listener { } else if (!plotEntry(pp, now) && this.tmpTeleport) { pp.sendMessage( TranslatableCaption.of("deny.no_enter"), - Template.of("plot", now.toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(now.toString()))) ); this.tmpTeleport = false; to.setX(from.getBlockX()); @@ -625,7 +633,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_EXIT_DENIED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_EXIT_DENIED) + ) ); this.tmpTeleport = false; if (lastPlot.equals(BukkitUtil.adapt(from).getPlot())) { @@ -643,7 +654,7 @@ public class PlayerEventListener extends PlotListener implements Listener { } else if (!plotEntry(pp, plot) && this.tmpTeleport) { pp.sendMessage( TranslatableCaption.of("deny.no_enter"), - Template.of("plot", plot.toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.toString()))) ); this.tmpTeleport = false; player.teleport(from); @@ -728,46 +739,34 @@ public class PlayerEventListener extends PlotListener implements Listener { PlotId id = plot.getId(); String worldName = plot.getWorldName(); Caption msg = TranslatableCaption.of("chat.plot_chat_format"); - Template msgTemplate; - Template worldNameTemplate = Template.of("world", worldName); - Template plotTemplate = Template.of("plot_id", id.toString()); - Template senderTemplate = Template.of("sender", sender); - // If we do/don't want colour, we need to be careful about how to go about it, as players could attempt either or &6 etc. - // In both cases, we want to use a Component Template to ensure that the player cannot use any placeholders in their message on purpose - // or accidentally, as component templates are done at the end. We also need to deserialize from legacy color codes to a Component if - // allowing colour. + TagResolver.Builder builder = TagResolver.builder(); + builder.tag("world", Tag.inserting(Component.text(worldName))); + builder.tag("plot_id", Tag.inserting(Component.text(id.toString()))); + builder.tag("sender", Tag.inserting(Component.text(sender))); if (plotPlayer.hasPermission("plots.chat.color")) { - msgTemplate = Template - .of( - "msg", - BukkitUtil.LEGACY_COMPONENT_SERIALIZER.deserialize(ChatColor.translateAlternateColorCodes( - '&', - message - )) - ); + builder.tag("msg", Tag.inserting(MiniMessage.miniMessage().deserialize( + message, + TagResolver.resolver(StandardTags.color(), StandardTags.gradient(), + StandardTags.rainbow(), StandardTags.decorations() + ) + ))); } else { - msgTemplate = Template.of("msg", BukkitUtil.MINI_MESSAGE.deserialize( - ChatColor.stripColor(BukkitUtil.LEGACY_COMPONENT_SERIALIZER.serialize(Component.text(message))))); + builder.tag("msg", Tag.inserting(Component.text(message))); } for (PlotPlayer receiver : plotRecipients) { - receiver.sendMessage(msg, worldNameTemplate, msgTemplate, plotTemplate, senderTemplate); + receiver.sendMessage(msg, builder.build()); } if (!spies.isEmpty()) { Caption spymsg = TranslatableCaption.of("chat.plot_chat_spy_format"); - Template plotidTemplate = Template.of("plot_id", id.getX() + ";" + id.getY()); - Template spysenderTemplate = Template.of("sender", sender); - Template spymessageTemplate = Template.of("msg", Component.text(message)); for (PlotPlayer player : spies) { - player.sendMessage(spymsg, worldNameTemplate, plotidTemplate, spysenderTemplate, spymessageTemplate); + player.sendMessage(spymsg, builder.tag("message", Tag.inserting(Component.text(message))).build()); } } if (Settings.Chat.LOG_PLOTCHAT_TO_CONSOLE) { Caption spymsg = TranslatableCaption.of("chat.plot_chat_spy_format"); - Template plotidTemplate = Template.of("plot_id", id.getX() + ";" + id.getY()); - Template spysenderTemplate = Template.of("sender", sender); - Template spymessageTemplate = Template.of("msg", Component.text(message)); - ConsolePlayer.getConsole().sendMessage(spymsg, worldNameTemplate, plotidTemplate, spysenderTemplate, - spymessageTemplate + ConsolePlayer.getConsole().sendMessage( + spymsg, + builder.tag("message", Tag.inserting(Component.text(message))).build() ); } } @@ -921,7 +920,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_ROAD) + ) ); cancelled = true; } @@ -929,7 +931,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_UNOWNED) + ) ); cancelled = true; } @@ -939,7 +944,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_OTHER) + ) ); cancelled = true; } @@ -977,7 +985,10 @@ public class PlayerEventListener extends PlotListener implements Listener { .hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_ROAD) + ) ); e.setCancelled(true); } @@ -995,7 +1006,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, "plots.admin.interact.unowned")) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_UNOWNED) + ) ); e.setCancelled(true); } @@ -1010,7 +1024,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_OTHER) + ) ); e.setCancelled(true); plot.debug(pp.getName() + " could not interact with " + entity.getType() @@ -1134,7 +1151,8 @@ public class PlayerEventListener extends PlotListener implements Listener { return; } switch (type) { - case ACACIA_BOAT, BIRCH_BOAT, CHEST_MINECART, COMMAND_BLOCK_MINECART, DARK_OAK_BOAT, FURNACE_MINECART, HOPPER_MINECART, JUNGLE_BOAT, MINECART, OAK_BOAT, SPRUCE_BOAT, TNT_MINECART -> eventType = PlayerBlockEventType.PLACE_VEHICLE; + case ACACIA_BOAT, BIRCH_BOAT, CHEST_MINECART, COMMAND_BLOCK_MINECART, DARK_OAK_BOAT, FURNACE_MINECART, HOPPER_MINECART, JUNGLE_BOAT, MINECART, OAK_BOAT, SPRUCE_BOAT, TNT_MINECART -> + eventType = PlayerBlockEventType.PLACE_VEHICLE; case FIREWORK_ROCKET, FIREWORK_STAR -> eventType = PlayerBlockEventType.SPAWN_MOB; case BOOK, KNOWLEDGE_BOOK, WRITABLE_BOOK, WRITTEN_BOOK -> eventType = PlayerBlockEventType.READ; case ARMOR_STAND -> { @@ -1230,7 +1248,7 @@ public class PlayerEventListener extends PlotListener implements Listener { } pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_ROAD)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_ROAD)) ); event.setCancelled(true); } else if (!plot.hasOwner()) { @@ -1239,7 +1257,10 @@ public class PlayerEventListener extends PlotListener implements Listener { } pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_UNOWNED) + ) ); event.setCancelled(true); } else if (!plot.isAdded(pp.getUUID())) { @@ -1248,7 +1269,10 @@ public class PlayerEventListener extends PlotListener implements Listener { } pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_OTHER) + ) ); event.setCancelled(true); } else if (Settings.Done.RESTRICT_BUILDING && DoneFlag.isDone(plot)) { @@ -1295,7 +1319,7 @@ public class PlayerEventListener extends PlotListener implements Listener { } plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_ROAD)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_ROAD)) ); event.setCancelled(true); } else if (!plot.hasOwner()) { @@ -1304,7 +1328,10 @@ public class PlayerEventListener extends PlotListener implements Listener { } plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_UNOWNED) + ) ); event.setCancelled(true); } else if (!plot.isAdded(plotPlayer.getUUID())) { @@ -1313,7 +1340,10 @@ public class PlayerEventListener extends PlotListener implements Listener { } plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_OTHER) + ) ); event.setCancelled(true); } else if (Settings.Done.RESTRICT_BUILDING && DoneFlag.isDone(plot)) { @@ -1345,7 +1375,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_ROAD) + ) ); event.setCancelled(true); } @@ -1354,7 +1387,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_UNOWNED) + ) ); event.setCancelled(true); } @@ -1365,7 +1401,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BUILD_OTHER) + ) ); event.setCancelled(true); } @@ -1394,7 +1433,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_ROAD) + ) ); event.setCancelled(true); } @@ -1402,7 +1444,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_UNOWNED) + ) ); event.setCancelled(true); } @@ -1413,7 +1458,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_OTHER) + ) ); event.setCancelled(true); plot.debug(p.getName() @@ -1435,7 +1483,10 @@ public class PlayerEventListener extends PlotListener implements Listener { .hasPermission(player, Permission.PERMISSION_ADMIN_DESTROY_UNOWNED)) { player.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_UNOWNED) + ) ); event.setCancelled(true); } @@ -1445,7 +1496,10 @@ public class PlayerEventListener extends PlotListener implements Listener { .hasPermission(player, Permission.PERMISSION_ADMIN_DESTROY_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_OTHER) + ) ); event.setCancelled(true); plot.debug(player.getName() @@ -1477,7 +1531,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_ROAD) + ) ); event.setCancelled(true); } @@ -1485,7 +1542,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_UNOWNED) + ) ); event.setCancelled(true); } @@ -1543,7 +1603,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_INTERACT_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_INTERACT_OTHER) + ) ); event.setCancelled(true); } @@ -1565,7 +1628,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_ROAD) + ) ); event.setCancelled(true); } @@ -1574,7 +1640,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_UNOWNED) + ) ); event.setCancelled(true); return; @@ -1588,7 +1657,10 @@ public class PlayerEventListener extends PlotListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_OTHER) + ) ); event.setCancelled(true); plot.debug(pp.getName() diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ProjectileEventListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ProjectileEventListener.java index a09cf6943..45c387be9 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ProjectileEventListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ProjectileEventListener.java @@ -38,7 +38,9 @@ import com.plotsquared.core.plot.PlotHandler; import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag; import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.util.Permissions; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -114,7 +116,10 @@ public class ProjectileEventListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_ROAD)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_PROJECTILE_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_PROJECTILE_ROAD) + ) ); entity.remove(); event.setCancelled(true); @@ -123,7 +128,10 @@ public class ProjectileEventListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED) + ) ); entity.remove(); event.setCancelled(true); @@ -133,7 +141,10 @@ public class ProjectileEventListener implements Listener { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) { pp.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_PROJECTILE_OTHER) + ) ); entity.remove(); event.setCancelled(true); diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEntityUtil.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEntityUtil.java index bc79f2926..11777536c 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEntityUtil.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEntityUtil.java @@ -50,7 +50,9 @@ import com.plotsquared.core.util.EntityUtil; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.entity.EntityCategories; import com.sk89q.worldedit.bukkit.BukkitAdapter; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.bukkit.entity.Arrow; import org.bukkit.entity.Creature; import org.bukkit.entity.Entity; @@ -188,7 +190,10 @@ public class BukkitEntityUtil { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY + "." + stub)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", Permission.PERMISSION_ADMIN_DESTROY + "." + stub) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_DESTROY + "." + stub)) + ) ); return false; } @@ -200,7 +205,10 @@ public class BukkitEntityUtil { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY + "." + stub)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", Permission.PERMISSION_ADMIN_DESTROY + "." + stub) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_DESTROY + "." + stub)) + ) ); if (plot != null) { plot.debug(player.getName() @@ -221,7 +229,10 @@ public class BukkitEntityUtil { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", Permission.PERMISSION_ADMIN_PVE + "." + stub) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_PVE + "." + stub)) + ) ); if (plot != null) { plot.debug(player.getName() + " could not attack " + entityType @@ -242,7 +253,10 @@ public class BukkitEntityUtil { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", Permission.PERMISSION_ADMIN_PVE + "." + stub) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_PVE + "." + stub)) + ) ); if (plot != null) { plot.debug(player.getName() + " could not attack " + entityType @@ -256,7 +270,10 @@ public class BukkitEntityUtil { .hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVP + "." + stub)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", Permission.PERMISSION_ADMIN_PVP + "." + stub) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_PVP + "." + stub)) + ) ); plot.debug(player.getName() + " could not attack " + entityType + " because pve = false"); @@ -270,7 +287,10 @@ public class BukkitEntityUtil { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVP + "." + stub)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", Permission.PERMISSION_ADMIN_PVP + "." + stub) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_PVP + "." + stub)) + ) ); return false; } @@ -287,7 +307,10 @@ public class BukkitEntityUtil { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", Permission.PERMISSION_ADMIN_PVE + "." + stub) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_PVE + "." + stub)) + ) ); if (plot != null) { plot.debug(player.getName() + " could not attack " + entityType @@ -309,7 +332,10 @@ public class BukkitEntityUtil { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) { plotPlayer.sendMessage( TranslatableCaption.of("permission.no_permission_event"), - Template.of("node", Permission.PERMISSION_ADMIN_PVE + "." + stub) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_PVE + "." + stub)) + ) ); if (plot != null) { plot.debug(player.getName() + " could not attack " + entityType diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitInventoryUtil.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitInventoryUtil.java index 57aefb9b6..a8ba62b2c 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitInventoryUtil.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitInventoryUtil.java @@ -63,7 +63,7 @@ public class BukkitInventoryUtil extends InventoryUtil { ItemMeta meta = null; if (item.getName() != null) { meta = stack.getItemMeta(); - Component nameComponent = BukkitUtil.MINI_MESSAGE.parse(item.getName()); + Component nameComponent = BukkitUtil.MINI_MESSAGE.deserialize(item.getName()); meta.setDisplayName(BukkitUtil.LEGACY_COMPONENT_SERIALIZER.serialize(nameComponent)); } if (item.getLore() != null) { diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java index 8c51ddf6e..e9c4c8f06 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java @@ -52,7 +52,7 @@ import com.sk89q.worldedit.world.block.BlockTypes; import io.papermc.lib.PaperLib; import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.text.minimessage.MiniMessage; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -339,7 +339,7 @@ public class BukkitUtil extends WorldUtil { @SuppressWarnings("deprecation") public void setSign( final @NonNull Location location, final @NonNull Caption[] lines, - final @NonNull Template... replacements + final @NonNull TagResolver... replacements ) { ensureLoaded(location.getWorldName(), location.getX(), location.getZ(), chunk -> { PlotArea area = location.getPlotArea(); @@ -372,8 +372,9 @@ public class BukkitUtil extends WorldUtil { final org.bukkit.block.BlockState blockstate = block.getState(); if (blockstate instanceof final Sign sign) { for (int i = 0; i < lines.length; i++) { - sign.setLine(i, LEGACY_COMPONENT_SERIALIZER - .serialize(MINI_MESSAGE.parse(lines[i].getComponent(LocaleHolder.console()), replacements))); + sign.setLine(i, LEGACY_COMPONENT_SERIALIZER.serialize( + MINI_MESSAGE.deserialize(lines[i].getComponent(LocaleHolder.console()), replacements) + )); } sign.update(true, false); } diff --git a/Core/src/main/java/com/plotsquared/core/PlotAPI.java b/Core/src/main/java/com/plotsquared/core/PlotAPI.java index 8452648e0..62170f1f9 100644 --- a/Core/src/main/java/com/plotsquared/core/PlotAPI.java +++ b/Core/src/main/java/com/plotsquared/core/PlotAPI.java @@ -37,7 +37,7 @@ import com.plotsquared.core.util.ChunkManager; import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.SchematicHandler; import com.plotsquared.core.util.query.PlotQuery; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -152,7 +152,7 @@ public class PlotAPI { */ public void sendConsoleMessage( final @NonNull String message, - final @NonNull Template @NonNull ... replacements + final @NonNull TagResolver @NonNull ... replacements ) { ConsolePlayer.getConsole().sendMessage(StaticCaption.of(message), replacements); } @@ -165,7 +165,7 @@ public class PlotAPI { */ public void sendConsoleMessage( final @NonNull Caption caption, - final @NonNull Template @NonNull ... replacements + final @NonNull TagResolver @NonNull ... replacements ) { ConsolePlayer.getConsole().sendMessage(caption, replacements); } diff --git a/Core/src/main/java/com/plotsquared/core/backup/PlayerBackupProfile.java b/Core/src/main/java/com/plotsquared/core/backup/PlayerBackupProfile.java index 7201a6cd2..5280dd99c 100644 --- a/Core/src/main/java/com/plotsquared/core/backup/PlayerBackupProfile.java +++ b/Core/src/main/java/com/plotsquared/core/backup/PlayerBackupProfile.java @@ -207,7 +207,7 @@ public class PlayerBackupProfile implements BackupProfile { if (value) { future.complete(null); } else { - future.completeExceptionally(new RuntimeException(MINI_MESSAGE.stripTokens( + future.completeExceptionally(new RuntimeException(MINI_MESSAGE.escapeTags( TranslatableCaption .of("schematics.schematic_paste_failed") .getComponent(ConsolePlayer.getConsole())))); diff --git a/Core/src/main/java/com/plotsquared/core/backup/SimpleBackupManager.java b/Core/src/main/java/com/plotsquared/core/backup/SimpleBackupManager.java index dc3aff045..a59078117 100644 --- a/Core/src/main/java/com/plotsquared/core/backup/SimpleBackupManager.java +++ b/Core/src/main/java/com/plotsquared/core/backup/SimpleBackupManager.java @@ -31,13 +31,14 @@ import com.google.inject.Inject; import com.google.inject.Singleton; import com.plotsquared.core.PlotSquared; import com.plotsquared.core.configuration.Settings; -import com.plotsquared.core.configuration.caption.Templates; import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.inject.factory.PlayerBackupProfileFactory; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -107,7 +108,7 @@ public class SimpleBackupManager implements BackupManager { if (player != null) { player.sendMessage( TranslatableCaption.of("backups.backup_automatic_started"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); } profile.createBackup().whenComplete((backup, throwable) -> { @@ -115,7 +116,7 @@ public class SimpleBackupManager implements BackupManager { if (player != null) { player.sendMessage( TranslatableCaption.of("backups.backup_automatic_failure"), - Templates.of("reason", throwable.getMessage()) + TagResolver.resolver("reason", Tag.inserting(Component.text(throwable.getMessage()))) ); } throwable.printStackTrace(); diff --git a/Core/src/main/java/com/plotsquared/core/command/Add.java b/Core/src/main/java/com/plotsquared/core/command/Add.java index a5d35d9ec..18f196da9 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Add.java +++ b/Core/src/main/java/com/plotsquared/core/command/Add.java @@ -38,7 +38,9 @@ import com.plotsquared.core.util.PlayerManager; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Collection; @@ -77,7 +79,7 @@ public class Add extends Command { TranslatableCaption.of("permission.no_plot_perms") ); checkTrue(args.length == 1, TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot add ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot add "))) ); final CompletableFuture future = new CompletableFuture<>(); PlayerManager.getUUIDsFromString(args[0], (uuids, throwable) -> { @@ -87,7 +89,7 @@ public class Add extends Command { } else { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); } future.completeExceptionally(throwable); @@ -95,7 +97,7 @@ public class Add extends Command { } else { try { checkTrue(!uuids.isEmpty(), TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); Iterator iterator = uuids.iterator(); int size = plot.getTrusted().size() + plot.getMembers().size(); @@ -106,7 +108,9 @@ public class Add extends Command { .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_TRUST))) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", PlayerManager.resolveName(uuid).getComponent(player)) + TagResolver.resolver("value", Tag.inserting( + PlayerManager.resolveName(uuid).toComponent(player) + )) ); iterator.remove(); continue; @@ -114,7 +118,9 @@ public class Add extends Command { if (plot.isOwner(uuid)) { player.sendMessage( TranslatableCaption.of("member.already_added"), - Template.of("player", PlayerManager.resolveName(uuid).getComponent(player)) + TagResolver.resolver("player", Tag.inserting( + PlayerManager.resolveName(uuid).toComponent(player) + )) ); iterator.remove(); continue; @@ -122,7 +128,9 @@ public class Add extends Command { if (plot.getMembers().contains(uuid)) { player.sendMessage( TranslatableCaption.of("member.already_added"), - Template.of("player", PlayerManager.resolveName(uuid).getComponent(player)) + TagResolver.resolver("player", Tag.inserting( + PlayerManager.resolveName(uuid).toComponent(player) + )) ); iterator.remove(); continue; @@ -135,7 +143,7 @@ public class Add extends Command { if (localAddSize >= maxAddSize) { player.sendMessage( TranslatableCaption.of("members.plot_max_members_added"), - Template.of("amount", String.valueOf(localAddSize)) + TagResolver.resolver("amount", Tag.inserting(Component.text(localAddSize))) ); return; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Alias.java b/Core/src/main/java/com/plotsquared/core/command/Alias.java index 92cdb3718..123d2fa79 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Alias.java +++ b/Core/src/main/java/com/plotsquared/core/command/Alias.java @@ -35,7 +35,9 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.query.PlotQuery; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.ArrayList; import java.util.Collection; @@ -99,7 +101,10 @@ public class Alias extends SubCommand { } else { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_ALIAS_SET)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ALIAS_SET) + ) ); } } @@ -115,7 +120,10 @@ public class Alias extends SubCommand { } else { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_ALIAS_REMOVE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ALIAS_REMOVE) + ) ); } } @@ -156,13 +164,16 @@ public class Alias extends SubCommand { .anyMatch()) { player.sendMessage( TranslatableCaption.of("alias.alias_is_taken"), - Template.of("alias", alias) + TagResolver.resolver("alias", Tag.inserting(Component.text(alias))) ); return; } if (Settings.UUID.OFFLINE) { plot.setAlias(alias); - player.sendMessage(TranslatableCaption.of("alias.alias_set_to"), Template.of("alias", alias)); + player.sendMessage( + TranslatableCaption.of("alias.alias_set_to"), + TagResolver.resolver("alias", Tag.inserting(Component.text(alias))) + ); return; } PlotSquared.get().getImpromptuUUIDPipeline().getSingle(alias, ((uuid, throwable) -> { @@ -171,13 +182,13 @@ public class Alias extends SubCommand { } else if (uuid != null) { player.sendMessage( TranslatableCaption.of("alias.alias_is_taken"), - Template.of("alias", alias) + TagResolver.resolver("alias", Tag.inserting(Component.text(alias))) ); } else { plot.setAlias(alias); player.sendMessage( TranslatableCaption.of("alias.alias_set_to"), - Template.of("alias", alias) + TagResolver.resolver("alias", Tag.inserting(Component.text(alias))) ); } })); @@ -189,7 +200,7 @@ public class Alias extends SubCommand { if (!plot.getAlias().isEmpty()) { player.sendMessage( TranslatableCaption.of("alias.alias_removed"), - Template.of("alias", alias) + TagResolver.resolver("alias", Tag.inserting(Component.text(alias))) ); } else { player.sendMessage( diff --git a/Core/src/main/java/com/plotsquared/core/command/Area.java b/Core/src/main/java/com/plotsquared/core/command/Area.java index 57552048d..ccd2dfbfc 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Area.java +++ b/Core/src/main/java/com/plotsquared/core/command/Area.java @@ -31,7 +31,6 @@ import com.plotsquared.core.configuration.ConfigurationSection; import com.plotsquared.core.configuration.ConfigurationUtil; import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.caption.CaptionHolder; -import com.plotsquared.core.configuration.caption.Templates; import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.configuration.file.YamlConfiguration; import com.plotsquared.core.events.TeleportCause; @@ -76,7 +75,9 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.world.World; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.io.File; @@ -148,14 +149,17 @@ public class Area extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_CREATE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_AREA_CREATE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_AREA_CREATE) + ) ); return false; } if (args.length < 2) { player.sendMessage( TranslatableCaption.of("single.single_area_needs_name"), - Template.of("command", "/plot area single ") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot area single "))) ); return false; } @@ -287,7 +291,7 @@ public class Area extends SubCommand { } else { player.sendMessage( TranslatableCaption.of("errors.error_create"), - Template.of("world", hybridPlotWorld.getWorldName()) + TagResolver.resolver("world", Tag.inserting(Component.text(hybridPlotWorld.getWorldName()))) ); } }; @@ -298,7 +302,10 @@ public class Area extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_CREATE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_AREA_CREATE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_AREA_CREATE) + ) ); return false; } @@ -306,7 +313,10 @@ public class Area extends SubCommand { case 1: player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Templates.of("value", "/plot area create [world[:id]] [=]...") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot area create [world[:id]] [=]...")) + ) ); return false; case 2: @@ -320,7 +330,11 @@ public class Area extends SubCommand { if (area == null) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Templates.of("value", "/plot area create [world[:id]] [=]...") + TagResolver.resolver( + "value", + Tag.inserting(Component.text( + "/plot area create [world[:id]] [=]...")) + ) ); return false; } @@ -331,12 +345,18 @@ public class Area extends SubCommand { ); player.sendMessage( TranslatableCaption.of("set.set_attribute"), - Template.of("attribute", "area_pos1"), - Template.of("value", location.getX() + "," + location.getZ()) + TagResolver.builder() + .tag("attribute", Tag.inserting(Component.text("area_pos1"))) + .tag("value", Tag.inserting( + Component.text(location.getX()) + .append(Component.text(",")) + .append(Component.text(location.getZ())) + )) + .build() ); player.sendMessage( TranslatableCaption.of("area.set_pos2"), - Template.of("command", "/plot area create pos2") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot area create pos2"))) ); return true; } @@ -350,7 +370,11 @@ public class Area extends SubCommand { if (area == null) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Templates.of("value", "/plot area create [world[:id]] [=]...") + TagResolver.resolver( + "value", + Tag.inserting(Component.text( + "/plot area create [world[:id]] [=]...")) + ) ); return false; } @@ -377,7 +401,10 @@ public class Area extends SubCommand { if (!areas.isEmpty()) { player.sendMessage( TranslatableCaption.of("cluster.cluster_intersection"), - Template.of("cluster", areas.iterator().next().toString()) + TagResolver.resolver( + "cluster", + Tag.inserting(areas.iterator().next()) + ) ); return false; } @@ -416,7 +443,7 @@ public class Area extends SubCommand { } else { player.sendMessage( TranslatableCaption.of("errors.error_create"), - Template.of("world", area.getWorldName()) + TagResolver.resolver("world", Tag.inserting(Component.text(area.getWorldName()))) ); } }; @@ -450,7 +477,7 @@ public class Area extends SubCommand { if (other != null && Objects.equals(pa.getId(), other.getId())) { player.sendMessage( TranslatableCaption.of("setup.setup_world_taken"), - Template.of("value", pa.toString()) + TagResolver.resolver("value", Tag.inserting(Component.text(pa.getId()))) ); return false; } @@ -465,8 +492,13 @@ public class Area extends SubCommand { if (pair.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax_extended"), - Template.of("value1,", getCommandString()), - Template.of("value2", " create [world[:id]] [=]...") + TagResolver.builder() + .tag("value1", Tag.inserting(Component.text(getCommandString()))) + .tag( + "value2", + Tag.inserting(Component.text("create [world[:id]] [=]...")) + ) + .build() ); return false; } @@ -502,8 +534,14 @@ public class Area extends SubCommand { default -> { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax_extended"), - Template.of("value1", getCommandString()), - Template.of("value2", " create [world[:id]] [=]...") + TagResolver.builder() + .tag("value1", Tag.inserting(Component.text(getCommandString()))) + .tag( + "value2", + Tag.inserting(Component.text( + " create [world[:id]] [=]...")) + ) + .build() ); return false; } @@ -513,7 +551,7 @@ public class Area extends SubCommand { if (this.worldUtil.isWorld(pa.getWorldName())) { player.sendMessage( TranslatableCaption.of("setup.setup_world_taken"), - Template.of("value", pa.getWorldName()) + TagResolver.resolver("value", Tag.inserting(Component.text(pa.getWorldName()))) ); return false; } @@ -534,7 +572,7 @@ public class Area extends SubCommand { } else { player.sendMessage( TranslatableCaption.of("errors.error_create"), - Template.of("world", pa.getWorldName()) + TagResolver.resolver("world", Tag.inserting(Component.text(pa.getWorldName()))) ); } try { @@ -553,12 +591,18 @@ public class Area extends SubCommand { if (pa.getId() == null) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", getUsage()) + TagResolver.resolver("value", Tag.inserting(Component.text(getUsage()))) ); player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax_extended"), - Template.of("value1", getCommandString()), - Template.of("value2", " create [world[:id]] [=]...") + TagResolver.builder() + .tag("value1", Tag.inserting(Component.text(getCommandString()))) + .tag( + "value2", + Tag.inserting(Component.text( + " create [world[:id]] [=]...")) + ) + .build() ); return false; } @@ -575,7 +619,7 @@ public class Area extends SubCommand { metaData.computeIfAbsent(player.getUUID(), missingUUID -> new HashMap<>()).put("area_create_area", pa); player.sendMessage( TranslatableCaption.of("single.get_position"), - Template.of("command", getCommandString()) + TagResolver.resolver("command", Tag.inserting(Component.text(getCommandString()))) ); break; } @@ -585,7 +629,10 @@ public class Area extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_INFO)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_AREA_INFO)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_AREA_INFO) + ) ); return false; } @@ -596,15 +643,20 @@ public class Area extends SubCommand { default -> { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax_extended"), - Template.of("value1", getCommandString()), - Template.of("value2", " info [area]") + TagResolver.builder() + .tag("value1", Tag.inserting(Component.text(getCommandString()))) + .tag("value2", Tag.inserting(Component.text(" info [area]"))) + .build() ); return false; } } if (area == null) { if (args.length == 2) { - player.sendMessage(TranslatableCaption.of("errors.not_valid_plot_world"), Template.of("value", args[1])); + player.sendMessage( + TranslatableCaption.of("errors.not_valid_plot_world"), + TagResolver.resolver("value", Tag.inserting(Component.text(args[1]))) + ); } else { player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world")); } @@ -628,42 +680,35 @@ public class Area extends SubCommand { percent = claimed == 0 ? 0 : 100d * claimed / Integer.MAX_VALUE; region = "N/A"; } - Template headerTemplate = Template.of( - "header", - TranslatableCaption.of("info.plot_info_header").getComponent(player) - ); - Template nameTemplate = Template.of("name", name); - Template typeTemplate = Template.of("type", area.getType().name()); - Template terrainTemplate = Template.of("terrain", area.getTerrain().name()); - Template usageTemplate = Template.of("usage", String.format("%.2f", percent)); - Template claimedTemplate = Template.of("claimed", String.valueOf(claimed)); - Template clustersTemplate = Template.of("clusters", String.valueOf(clusters)); - Template regionTemplate = Template.of("region", region); - Template generatorTemplate = Template.of("generator", generator); - Template footerTemplate = Template.of( - "footer", - TranslatableCaption.of("info.plot_info_footer").getComponent(player) - ); - player.sendMessage( - TranslatableCaption.of("info.area_info_format"), - headerTemplate, - nameTemplate, - typeTemplate, - terrainTemplate, - usageTemplate, - claimedTemplate, - clustersTemplate, - regionTemplate, - generatorTemplate, - footerTemplate - ); + TagResolver resolver = TagResolver.builder() + .tag( + "header", + Tag.inserting(TranslatableCaption.of("info.plot_info_header").toComponent(player)) + ) + .tag("name", Tag.inserting(Component.text(name))) + .tag("type", Tag.inserting(Component.text(area.getType().name()))) + .tag("terrain", Tag.inserting(Component.text(area.getTerrain().name()))) + .tag("usage", Tag.inserting(Component.text(String.format("%.2f", percent)))) + .tag("claimed", Tag.inserting(Component.text(claimed))) + .tag("clusters", Tag.inserting(Component.text(clusters))) + .tag("region", Tag.inserting(Component.text(region))) + .tag("generator", Tag.inserting(Component.text(generator))) + .tag( + "footer", + Tag.inserting(TranslatableCaption.of("info.plot_info_footer").toComponent(player)) + ) + .build(); + player.sendMessage(TranslatableCaption.of("info.area_info_format"), resolver); return true; } case "l", "list" -> { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_LIST)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_AREA_LIST)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_AREA_LIST) + ) ); return false; } @@ -680,8 +725,10 @@ public class Area extends SubCommand { default: player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax_extended"), - Template.of("value1", getCommandString()), - Template.of("value2", " list [#]") + TagResolver.builder() + .tag("value1", Tag.inserting(Component.text(getCommandString()))) + .tag("value2", Tag.inserting(Component.text(" list [#]"))) + .build() ); return false; } @@ -707,37 +754,27 @@ public class Area extends SubCommand { percent = claimed == 0 ? 0 : (double) claimed / Short.MAX_VALUE * Short.MAX_VALUE; region = "N/A"; } - Template claimedTemplate = Template.of("claimed", String.valueOf(claimed)); - Template usageTemplate = Template.of("usage", String.format("%.2f", percent) + "%"); - Template clustersTemplate = Template.of("clusters", String.valueOf(clusters)); - Template regionTemplate = Template.of("region", region); - Template generatorTemplate = Template.of("generator", generator); - String tooltip = MINI_MESSAGE.serialize(MINI_MESSAGE - .parse( - TranslatableCaption.of("info.area_list_tooltip").getComponent(player), - claimedTemplate, - usageTemplate, - clustersTemplate, - regionTemplate, - generatorTemplate - )); - Template tooltipTemplate = Template.of("hover_info", tooltip); - Template visitcmdTemplate = Template.of("command_tp", "/plot area tp " + area); - Template infocmdTemplate = Template.of("command_info", "/plot area info " + area); - Template numberTemplate = Template.of("number", String.valueOf(i)); - Template nameTemplate = Template.of("area_name", name); - Template typeTemplate = Template.of("area_type", area.getType().name()); - Template terrainTemplate = Template.of("area_terrain", area.getTerrain().name()); - caption.set(TranslatableCaption.of("info.area_list_item")); - caption.setTemplates( - tooltipTemplate, - visitcmdTemplate, - numberTemplate, - nameTemplate, - typeTemplate, - terrainTemplate, - infocmdTemplate + Component tooltip = MINI_MESSAGE.deserialize( + TranslatableCaption.of("info.area_list_tooltip").getComponent(player), + TagResolver.builder() + .tag("claimed", Tag.inserting(Component.text(claimed))) + .tag("usage", Tag.inserting(Component.text(String.format("%.2f", percent) + "%"))) + .tag("clusters", Tag.inserting(Component.text(clusters))) + .tag("region", Tag.inserting(Component.text(region))) + .tag("generator", Tag.inserting(Component.text(generator))) + .build() ); + TagResolver resolver = TagResolver.builder() + .tag("hover_info", Tag.inserting(tooltip)) + .tag("command_tp", Tag.preProcessParsed("/plot area tp " + name)) + .tag("command_info", Tag.preProcessParsed("/plot area info " + name)) + .tag("number", Tag.inserting(Component.text(i))) + .tag("area_name", Tag.inserting(Component.text(name))) + .tag("area_type", Tag.inserting(Component.text(area.getType().name()))) + .tag("area_terrain", Tag.inserting(Component.text(area.getTerrain().name()))) + .build(); + caption.set(TranslatableCaption.of("info.area_list_item")); + caption.setTagResolvers(resolver); } }, "/plot area list", TranslatableCaption.of("list.area_list_header_paged")); return true; @@ -746,7 +783,10 @@ public class Area extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_REGEN)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_AREA_REGEN)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_AREA_REGEN) + ) ); return false; } @@ -758,7 +798,7 @@ public class Area extends SubCommand { if (area.getType() != PlotAreaType.PARTIAL) { player.sendMessage( TranslatableCaption.of("single.delete_world_region"), - Template.of("world", area.getWorldName()) + TagResolver.resolver("world", Tag.inserting(Component.text(area.getWorldName()))) ); return false; } @@ -779,20 +819,23 @@ public class Area extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_TP)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_AREA_TP)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_AREA_TP)) ); return false; } if (args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot area tp [area]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot area tp [area]"))) ); return false; } PlotArea area = this.plotAreaManager.getPlotAreaByString(args[1]); if (area == null) { - player.sendMessage(TranslatableCaption.of("errors.not_valid_plot_world"), Template.of("value", args[1])); + player.sendMessage( + TranslatableCaption.of("errors.not_valid_plot_world"), + TagResolver.resolver("value", Tag.inserting(Component.text(args[1]))) + ); return false; } Location center; diff --git a/Core/src/main/java/com/plotsquared/core/command/Auto.java b/Core/src/main/java/com/plotsquared/core/command/Auto.java index 409e002c4..9217e8267 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Auto.java +++ b/Core/src/main/java/com/plotsquared/core/command/Auto.java @@ -51,7 +51,9 @@ import com.plotsquared.core.util.task.AutoClaimFinishTask; import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.TaskManager; import io.leangen.geantyref.TypeToken; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -117,13 +119,13 @@ public class Auto extends SubCommand { if (diff < 0 && grantedPlots < sizeX * sizeZ) { player.sendMessage( TranslatableCaption.of("permission.cant_claim_more_plots"), - Template.of("amount", String.valueOf(diff + grantedPlots)) + TagResolver.resolver("amount", Tag.inserting(Component.text(diff + grantedPlots))) ); return false; } else if (diff >= 0 && grantedPlots + diff < sizeX * sizeZ) { player.sendMessage( TranslatableCaption.of("permission.cant_claim_more_plots"), - Template.of("amount", String.valueOf(diff + grantedPlots)) + TagResolver.resolver("amount", Tag.inserting(Component.text(diff + grantedPlots))) ); return false; } else { @@ -135,15 +137,16 @@ public class Auto extends SubCommand { } player.sendMessage( TranslatableCaption.of("economy.removed_granted_plot"), - Template.of("usedGrants", String.valueOf(grantedPlots - left)), - Template.of("remainingGrants", String.valueOf(left)) + TagResolver.builder() + .tag("usedGrants", Tag.inserting(Component.text(grantedPlots - left))) + .tag("remainingGrants", Tag.inserting(Component.text(left))) + .build() ); } } else { player.sendMessage( TranslatableCaption.of("permission.cant_claim_more_plots"), - Template.of("amount", String.valueOf(player.getAllowedPlots()) - ) + TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots()))) ); return false; } @@ -222,7 +225,7 @@ public class Auto extends SubCommand { } else { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", getUsage()) + TagResolver.resolver("value", Tag.inserting(Component.text(getUsage()))) ); return true; } @@ -245,7 +248,7 @@ public class Auto extends SubCommand { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Auto claim") + TagResolver.resolver("value", Tag.inserting(Component.text("Auto claim"))) ); return true; } @@ -256,13 +259,13 @@ public class Auto extends SubCommand { if (!force && mega && !Permissions.hasPermission(player, Permission.PERMISSION_AUTO_MEGA)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_AUTO_MEGA)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_AUTO_MEGA)) ); } if (!force && sizeX * sizeZ > Settings.Claim.MAX_AUTO_AREA) { player.sendMessage( TranslatableCaption.of("permission.cant_claim_more_plots_num"), - Template.of("amount", String.valueOf(Settings.Claim.MAX_AUTO_AREA)) + TagResolver.resolver("amount", Tag.inserting(Component.text(Settings.Claim.MAX_AUTO_AREA))) ); return false; } @@ -280,8 +283,10 @@ public class Auto extends SubCommand { if (!plotarea.hasSchematic(schematic)) { player.sendMessage( TranslatableCaption.of("schematics.schematic_invalid_named"), - Template.of("schemname", schematic), - Template.of("reason", "non-existent") + TagResolver.builder() + .tag("schemname", Tag.inserting(Component.text(schematic))) + .tag("reason", Tag.inserting(Component.text("non-existent"))) + .build() ); return true; } @@ -292,7 +297,7 @@ public class Auto extends SubCommand { .hasPermission(player, "plots.admin.command.schematic")) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", "plots.claim.%s0") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.claim.%s0"))) ); return true; } @@ -311,15 +316,20 @@ public class Auto extends SubCommand { if (!force && this.econHandler.getMoney(player) < cost) { player.sendMessage( TranslatableCaption.of("economy.cannot_afford_plot"), - Template.of("money", this.econHandler.format(cost)), - Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) + TagResolver.builder() + .tag("money", Tag.inserting(Component.text(this.econHandler.format(cost)))) + .tag( + "balance", + Tag.inserting(Component.text(this.econHandler.format(this.econHandler.getMoney(player)))) + ) + .build() ); return false; } this.econHandler.withdrawMoney(player, cost); player.sendMessage( TranslatableCaption.of("economy.removed_balance"), - Template.of("money", this.econHandler.format(cost)) + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(cost)))) ); } } @@ -353,7 +363,7 @@ public class Auto extends SubCommand { if (!force && mergeEvent.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Auto merge") + TagResolver.resolver("value", Tag.inserting(Component.text("Auto merge"))) ); return false; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Backup.java b/Core/src/main/java/com/plotsquared/core/command/Backup.java index 0c8b510bb..a00543da2 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Backup.java +++ b/Core/src/main/java/com/plotsquared/core/command/Backup.java @@ -37,7 +37,9 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.nio.file.Files; @@ -74,7 +76,7 @@ public final class Backup extends Command { private static boolean sendMessage(PlotPlayer player) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot backup ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot backup "))) ); return true; } @@ -142,34 +144,45 @@ public final class Backup extends Command { } else if (!plot.hasOwner()) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_unowned").getComponent(player)) + TagResolver.resolver("plot", Tag.inserting( + TranslatableCaption.of("generic.generic_unowned").toComponent(player) + )) ); } else if (plot.getVolume() > Integer.MAX_VALUE) { player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large")); } else if (plot.isMerged()) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_merged").getComponent(player)) + TagResolver.resolver("plot", Tag.inserting( + TranslatableCaption.of("generic.generic_merged").toComponent(player) + )) ); } else if (!plot.isOwner(player.getUUID()) && !Permissions .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BACKUP_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BACKUP_OTHER) + ) ); } else { final BackupProfile backupProfile = Objects.requireNonNull(this.backupManager.getProfile(plot)); if (backupProfile instanceof NullBackupProfile) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_other").getComponent(player)) + TagResolver.resolver( + "plot", Tag.inserting(TranslatableCaption + .of("generic.generic_other") + .toComponent(player)) + ) ); } else { backupProfile.createBackup().whenComplete((backup, throwable) -> { if (throwable != null) { player.sendMessage( TranslatableCaption.of("backups.backup_save_failed"), - Template.of("reason", throwable.getMessage()) + TagResolver.resolver("reason", Tag.inserting(Component.text(throwable.getMessage()))) ); throwable.printStackTrace(); } else { @@ -196,12 +209,16 @@ public final class Backup extends Command { } else if (!plot.hasOwner()) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_unowned").getComponent(player)) + TagResolver.resolver("plot", Tag.inserting( + TranslatableCaption.of("generic.generic_unowned").toComponent(player) + )) ); } else if (plot.isMerged()) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_merged").getComponent(player)) + TagResolver.resolver("plot", Tag.inserting( + TranslatableCaption.of("generic.generic_merged").toComponent(player) + )) ); } else if (plot.getVolume() > Integer.MAX_VALUE) { player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large")); @@ -209,37 +226,48 @@ public final class Backup extends Command { .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BACKUP_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BACKUP_OTHER) + ) ); } else { final BackupProfile backupProfile = Objects.requireNonNull(this.backupManager.getProfile(plot)); if (backupProfile instanceof NullBackupProfile) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_other").getComponent(player)) + TagResolver.resolver("plot", Tag.inserting( + TranslatableCaption.of("generic.generic_other").toComponent(player) + )) ); } else { backupProfile.listBackups().whenComplete((backups, throwable) -> { if (throwable != null) { player.sendMessage( TranslatableCaption.of("backups.backup_list_failed"), - Template.of("reason", throwable.getMessage()) + TagResolver.resolver("reason", Tag.inserting(Component.text(throwable.getMessage()))) ); throwable.printStackTrace(); } else { player.sendMessage( TranslatableCaption.of("backups.backup_list_header"), - Template.of("plot", plot.getId().toCommaSeparatedString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toCommaSeparatedString()))) ); try { for (int i = 0; i < backups.size(); i++) { player.sendMessage( TranslatableCaption.of("backups.backup_list_entry"), - Template.of("number", Integer.toString(i + 1)), - Template.of("value", DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.ofInstant( - Instant.ofEpochMilli(backups.get(i).getCreationTime()), - ZoneId.systemDefault() - ))) + TagResolver.builder() + .tag("number", Tag.inserting(Component.text(i + 1))) + .tag( + "value", + Tag.inserting(Component.text(DateTimeFormatter.RFC_1123_DATE_TIME.format( + ZonedDateTime.ofInstant( + Instant.ofEpochMilli(backups.get(i).getCreationTime()), + ZoneId.systemDefault() + )))) + ) + .build() ); } } catch (final Exception e) { @@ -267,12 +295,16 @@ public final class Backup extends Command { } else if (!plot.hasOwner()) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_unowned").getComponent(player)) + TagResolver.resolver("plot", Tag.inserting( + TranslatableCaption.of("generic.generic_unowned").toComponent(player) + )) ); } else if (plot.isMerged()) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_merged").getComponent(player)) + TagResolver.resolver("plot", Tag.inserting( + TranslatableCaption.of("generic.generic_merged").toComponent(player) + )) ); } else if (plot.getVolume() > Integer.MAX_VALUE) { player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large")); @@ -280,12 +312,15 @@ public final class Backup extends Command { .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BACKUP_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_BACKUP_OTHER) + ) ); } else if (args.length == 0) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Usage: /plot backup save/list/load") + TagResolver.resolver("value", Tag.inserting(Component.text("Usage: /plot backup save/list/load"))) ); } else { final int number; @@ -294,7 +329,7 @@ public final class Backup extends Command { } catch (final Exception e) { player.sendMessage( TranslatableCaption.of("invalid.not_a_number"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); return; } @@ -302,23 +337,27 @@ public final class Backup extends Command { if (backupProfile instanceof NullBackupProfile) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of("plot", TranslatableCaption.of("generic.generic_other").getComponent(player)) + TagResolver.resolver("plot", Tag.inserting( + TranslatableCaption.of("generic.generic_other").toComponent(player) + )) ); } else { backupProfile.listBackups().whenComplete((backups, throwable) -> { if (throwable != null) { player.sendMessage( TranslatableCaption.of("backups.backup_load_failure"), - Template.of("reason", throwable.getMessage()) + TagResolver.resolver("reason", Tag.inserting(Component.text(throwable.getMessage()))) ); throwable.printStackTrace(); } else { if (number < 1 || number > backups.size()) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of( + TagResolver.resolver( "plot", - TranslatableCaption.of("generic.generic_invalid_choice").getComponent(player) + Tag.inserting(TranslatableCaption + .of("generic.generic_invalid_choice") + .toComponent(player)) ) ); } else { @@ -328,9 +367,11 @@ public final class Backup extends Command { .exists(backup.getFile())) { player.sendMessage( TranslatableCaption.of("backups.backup_impossible"), - Template.of( + TagResolver.resolver( "plot", - TranslatableCaption.of("generic.generic_invalid_choice").getComponent(player) + Tag.inserting(TranslatableCaption + .of("generic.generic_invalid_choice") + .toComponent(player)) ) ); } else { @@ -340,7 +381,10 @@ public final class Backup extends Command { if (error != null) { player.sendMessage( TranslatableCaption.of("backups.backup_load_failure"), - Template.of("reason", error.getMessage()) + TagResolver.resolver( + "reason", + Tag.inserting(Component.text(error.getMessage())) + ) ); } else { player.sendMessage(TranslatableCaption.of("backups.backup_load_success")); diff --git a/Core/src/main/java/com/plotsquared/core/command/Biome.java b/Core/src/main/java/com/plotsquared/core/command/Biome.java index 2f235e007..26a796729 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Biome.java +++ b/Core/src/main/java/com/plotsquared/core/command/Biome.java @@ -25,6 +25,7 @@ */ package com.plotsquared.core.command; +import com.plotsquared.core.configuration.caption.StaticCaption; import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.Plot; @@ -32,7 +33,10 @@ import com.plotsquared.core.util.StringMan; import com.sk89q.worldedit.command.util.SuggestionHelper; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.Collection; import java.util.Locale; @@ -54,16 +58,13 @@ public class Biome extends SetCommand { } catch (final Exception ignore) { } if (biome == null) { - String biomes = StringMan.join( - BiomeType.REGISTRY.values(), - MINI_MESSAGE.serialize(MINI_MESSAGE.parse(TranslatableCaption - .of("blocklist.block_list_separator") - .getComponent(player))) - ); + String separator = TranslatableCaption.of("blocklist.block_list_separator").getComponent(player); player.sendMessage(TranslatableCaption.of("biome.need_biome")); player.sendMessage( - TranslatableCaption.of("commandconfig.subcommand_set_options_header"), - Template.of("values", biomes) + StaticCaption.of( + TranslatableCaption.of("commandconfig.subcommand_set_options_header_only").getComponent(player) + + StringMan.join(BiomeType.REGISTRY.values(), separator) + ) ); return false; } @@ -80,7 +81,7 @@ public class Biome extends SetCommand { plot.removeRunning(); player.sendMessage( TranslatableCaption.of("biome.biome_set_to"), - Template.of("value", value.toLowerCase()) + TagResolver.resolver("value", Tag.inserting(Component.text(value.toLowerCase()))) ); }); return true; diff --git a/Core/src/main/java/com/plotsquared/core/command/Buy.java b/Core/src/main/java/com/plotsquared/core/command/Buy.java index 03dad9a7e..110c1decb 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Buy.java +++ b/Core/src/main/java/com/plotsquared/core/command/Buy.java @@ -39,7 +39,9 @@ import com.plotsquared.core.util.EconHandler; import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Set; @@ -91,7 +93,7 @@ public class Buy extends Command { checkTrue( player.getPlotCount() + plots.size() <= player.getAllowedPlots(), TranslatableCaption.of("permission.cant_claim_more_plots"), - Template.of("amount", String.valueOf(player.getAllowedPlots())) + TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots()))) ); double price = plot.getFlag(PriceFlag.class); if (price <= 0) { @@ -104,8 +106,10 @@ public class Buy extends Command { checkTrue( this.econHandler.getMoney(player) >= price, TranslatableCaption.of("economy.cannot_afford_plot"), - Template.of("money", this.econHandler.format(price)), - Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) + TagResolver.builder() + .tag("money", Tag.inserting(Component.text(this.econHandler.format(price)))) + .tag("balance", Tag.inserting(Component.text(this.econHandler.format(this.econHandler.getMoney(player))))) + .build() ); this.econHandler.withdrawMoney(player, price); // Failure @@ -113,7 +117,7 @@ public class Buy extends Command { confirm.run(this, () -> { player.sendMessage( TranslatableCaption.of("economy.removed_balance"), - Template.of("money", this.econHandler.format(price)) + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) ); this.econHandler.depositMoney(PlotSquared.platform().playerManager().getOfflinePlayer(plot.getOwnerAbs()), price); @@ -122,9 +126,11 @@ public class Buy extends Command { if (owner != null) { owner.sendMessage( TranslatableCaption.of("economy.plot_sold"), - Template.of("plot", plot.getId().toString()), - Template.of("player", player.getName()), - Template.of("price", this.econHandler.format(price)) + TagResolver.builder() + .tag("plot", Tag.inserting(Component.text(plot.getId().toString()))) + .tag("player", Tag.inserting(Component.text(player.getName()))) + .tag("price", Tag.inserting(Component.text(this.econHandler.format(price)))) + .build() ); } PlotFlag plotFlag = plot.getFlagContainer().getFlag(PriceFlag.class); @@ -135,7 +141,7 @@ public class Buy extends Command { plot.setOwner(player.getUUID()); player.sendMessage( TranslatableCaption.of("working.claimed"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); whenDone.run(Buy.this, CommandResult.SUCCESS); }, () -> { diff --git a/Core/src/main/java/com/plotsquared/core/command/Caps.java b/Core/src/main/java/com/plotsquared/core/command/Caps.java index 788594a9e..e00a61449 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Caps.java +++ b/Core/src/main/java/com/plotsquared/core/command/Caps.java @@ -37,7 +37,10 @@ import com.plotsquared.core.plot.flag.implementations.MiscCapFlag; import com.plotsquared.core.plot.flag.implementations.MobCapFlag; import com.plotsquared.core.plot.flag.implementations.VehicleCapFlag; import com.plotsquared.core.util.Permissions; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.ComponentLike; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import static com.plotsquared.core.util.entity.EntityCategories.CAP_ANIMAL; import static com.plotsquared.core.util.entity.EntityCategories.CAP_ENTITY; @@ -62,7 +65,7 @@ public class Caps extends SubCommand { .hasPermission(player, Permission.PERMISSION_ADMIN_CAPS_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_CAPS_OTHER)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_ADMIN_CAPS_OTHER)) ); return false; } @@ -89,15 +92,17 @@ public class Caps extends SubCommand { final int current = countedEntities[type]; final int max = plot.getFlag(capFlag); final String percentage = String.format("%.1f", 100 * ((float) current / max)); - String maxBeautified = max >= Integer.MAX_VALUE - ? TranslatableCaption.of("info.infinite").getComponent(player) - : String.valueOf(max); + ComponentLike maxBeautified = max >= Integer.MAX_VALUE + ? TranslatableCaption.of("info.infinite").toComponent(player) + : Component.text(max); player.sendMessage( TranslatableCaption.of("info.plot_caps_format"), - Template.of("cap", name), - Template.of("current", String.valueOf(current)), - Template.of("limit", maxBeautified), - Template.of("percentage", percentage) + TagResolver.builder() + .tag("cap", Tag.inserting(Component.text(name))) + .tag("current", Tag.inserting(Component.text(current))) + .tag("limit", Tag.inserting(maxBeautified)) + .tag("percentage", Tag.inserting(Component.text(percentage))) + .build() ); } diff --git a/Core/src/main/java/com/plotsquared/core/command/Chat.java b/Core/src/main/java/com/plotsquared/core/command/Chat.java index df4edab42..ced1cd68f 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Chat.java +++ b/Core/src/main/java/com/plotsquared/core/command/Chat.java @@ -28,7 +28,9 @@ package com.plotsquared.core.command; import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.PlotArea; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; /** * @deprecated In favor of "/plot toggle chat" and @@ -48,7 +50,7 @@ public class Chat extends SubCommand { check(area, TranslatableCaption.of("errors.not_in_plot_world")); player.sendMessage( TranslatableCaption.of("errors.deprecated_commands"), - Template.of("replacement", "/plot toggle chat") + TagResolver.resolver("replacement", Tag.inserting(Component.text("/plot toggle chat"))) ); if (player.getPlotAreaAbs().isForcingPlotChat()) { player.sendMessage(TranslatableCaption.of("chat.plot_chat_forced")); diff --git a/Core/src/main/java/com/plotsquared/core/command/Claim.java b/Core/src/main/java/com/plotsquared/core/command/Claim.java index ba72aa214..5c092ec3d 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Claim.java +++ b/Core/src/main/java/com/plotsquared/core/command/Claim.java @@ -45,7 +45,9 @@ import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.PlotExpression; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.checkerframework.checker.nullness.qual.NonNull; @@ -89,7 +91,7 @@ public class Claim extends SubCommand { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Claim") + TagResolver.resolver("value", Tag.inserting(Component.text("Claim"))) ); return true; } @@ -108,14 +110,14 @@ public class Claim extends SubCommand { if (grants <= 0) { player.sendMessage( TranslatableCaption.of("permission.cant_claim_more_plots"), - Template.of("amount", String.valueOf(grants)) + TagResolver.resolver("amount", Tag.inserting(Component.text(grants))) ); metaDataAccess.remove(); } } else { player.sendMessage( TranslatableCaption.of("permission.cant_claim_more_plots"), - Template.of("amount", String.valueOf(player.getAllowedPlots())) + TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots()))) ); return false; } @@ -130,8 +132,10 @@ public class Claim extends SubCommand { if (!area.hasSchematic(schematic)) { player.sendMessage( TranslatableCaption.of("schematics.schematic_invalid_named"), - Template.of("schemname", schematic), - Template.of("reason", "non-existent") + TagResolver.builder() + .tag("schemname", Tag.inserting(Component.text(schematic))) + .tag("reason", Tag.inserting(Component.text("non-existent"))) + .build() ); } if (!Permissions.hasPermission(player, Permission.PERMISSION_CLAIM_SCHEMATIC @@ -141,7 +145,7 @@ public class Claim extends SubCommand { ) && !force) { player.sendMessage( TranslatableCaption.of("permission.no_schematic_permission"), - Template.of("value", schematic) + TagResolver.resolver("value", Tag.inserting(Component.text(schematic))) ); } } @@ -157,16 +161,28 @@ public class Claim extends SubCommand { if (this.econHandler.getMoney(player) < cost) { player.sendMessage( TranslatableCaption.of("economy.cannot_afford_plot"), - Template.of("money", this.econHandler.format(cost)), - Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) + TagResolver.builder() + .tag("money", Tag.inserting(Component.text(this.econHandler.format(cost)))) + .tag( + "balance", + Tag.inserting(Component.text(this.econHandler.format(this.econHandler.getMoney( + player)))) + ) + .build() ); return false; } this.econHandler.withdrawMoney(player, cost); player.sendMessage( TranslatableCaption.of("economy.removed_balance"), - Template.of("money", this.econHandler.format(cost)), - Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) + TagResolver.builder() + .tag("money", Tag.inserting(Component.text(this.econHandler.format(cost)))) + .tag( + "balance", + Tag.inserting(Component.text(this.econHandler.format(this.econHandler.getMoney( + player)))) + ) + .build() ); } } @@ -178,8 +194,10 @@ public class Claim extends SubCommand { } player.sendMessage( TranslatableCaption.of("economy.removed_granted_plot"), - Template.of("usedGrants", String.valueOf((grants - 1))), - Template.of("remainingGrants", String.valueOf(grants)) + TagResolver.builder() + .tag("usedGrants", Tag.inserting(Component.text(grants - 1))) + .tag("remainingGrants", Tag.inserting(Component.text(grants))) + .build() ); } } @@ -205,7 +223,7 @@ public class Claim extends SubCommand { if (mergeEvent.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Auto merge on claim") + TagResolver.resolver("value", Tag.inserting(Component.text("Auto merge on claim"))) ); } else { if (plot.getPlotModificationManager().autoMerge( diff --git a/Core/src/main/java/com/plotsquared/core/command/Clear.java b/Core/src/main/java/com/plotsquared/core/command/Clear.java index 94cf354f7..cc3af8f34 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Clear.java +++ b/Core/src/main/java/com/plotsquared/core/command/Clear.java @@ -43,7 +43,9 @@ import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.concurrent.CompletableFuture; @@ -86,7 +88,7 @@ public class Clear extends Command { if (eventResult == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Clear") + TagResolver.resolver("value", Tag.inserting(Component.text("Clear"))) ); return CompletableFuture.completedFuture(true); } @@ -137,8 +139,10 @@ public class Clear extends Command { } player.sendMessage( TranslatableCaption.of("working.clearing_done"), - Template.of("amount", String.valueOf(System.currentTimeMillis() - start)), - Template.of("plot", plot.getId().toString()) + TagResolver.builder() + .tag("amount", Tag.inserting(Component.text(System.currentTimeMillis() - start))) + .tag("plot", Tag.inserting(Component.text(plot.getId().toString()))) + .build() ); }); }); diff --git a/Core/src/main/java/com/plotsquared/core/command/Cluster.java b/Core/src/main/java/com/plotsquared/core/command/Cluster.java index 4eebd5c3e..254900c28 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Cluster.java +++ b/Core/src/main/java/com/plotsquared/core/command/Cluster.java @@ -39,10 +39,15 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotCluster; import com.plotsquared.core.plot.PlotId; +import com.plotsquared.core.util.ComponentHelper; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.query.PlotQuery; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.format.Style; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.Collection; import java.util.Collections; @@ -53,6 +58,7 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; +import java.util.stream.Stream; @CommandDeclaration(command = "cluster", aliases = "clusters", @@ -61,18 +67,19 @@ import java.util.stream.Collectors; permission = "plots.cluster") public class Cluster extends SubCommand { + private static final Component[] AVAILABLE_ARGS = Stream.of( + "list", "create", "delete", "resize", "invite", "kick", "leave", "helpers", "tp", "sethome" + ).map(s -> Component.text(s).style(Style.style(NamedTextColor.DARK_AQUA))).toArray(Component[]::new); + private static final Component SEPARATOR = Component.text(", ").style(Style.style(NamedTextColor.GRAY)); + + // list, create, delete, resize, invite, kick, leave, helpers, tp, sethome @Override public boolean onCommand(PlotPlayer player, String[] args) { - - // list, create, delete, resize, invite, kick, leave, helpers, tp, sethome if (args.length == 0) { // return arguments player.sendMessage( TranslatableCaption.of("cluster.cluster_available_args"), - Template.of( - "list", - "list, create, delete, resize, invite, kick, leave, members, info, tp, sethome" - ) + TagResolver.resolver("list", Tag.inserting(ComponentHelper.join(AVAILABLE_ARGS, SEPARATOR))) ); return false; } @@ -83,14 +90,17 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_LIST)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_LIST)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_LIST) + ) ); return false; } if (args.length != 1) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster list") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster list"))) ); return false; } @@ -102,7 +112,7 @@ public class Cluster extends SubCommand { Set clusters = area.getClusters(); player.sendMessage( TranslatableCaption.of("cluster.cluster_list_heading"), - Template.of("amount", clusters.size() + "") + TagResolver.resolver("amount", Tag.inserting(Component.text(clusters.size()))) ); for (PlotCluster cluster : clusters) { // Ignore unmanaged clusters @@ -110,22 +120,22 @@ public class Cluster extends SubCommand { if (player.getUUID().equals(cluster.owner)) { player.sendMessage( TranslatableCaption.of("cluster.cluster_list_element_owner"), - Template.of("cluster", name) + TagResolver.resolver("cluster", Tag.inserting(Component.text(name))) ); } else if (cluster.helpers.contains(player.getUUID())) { player.sendMessage( TranslatableCaption.of("cluster.cluster_list_element_helpers"), - Template.of("cluster", name) + TagResolver.resolver("cluster", Tag.inserting(Component.text(name))) ); } else if (cluster.invited.contains(player.getUUID())) { player.sendMessage( TranslatableCaption.of("cluster.cluster_list_element_invited"), - Template.of("cluster", name) + TagResolver.resolver("cluster", Tag.inserting(Component.text(name))) ); } else { player.sendMessage( TranslatableCaption.of("cluster.cluster_list_element"), - Template.of("cluster", cluster.toString()) + TagResolver.resolver("cluster", Tag.inserting(Component.text(cluster.toString()))) ); } } @@ -136,7 +146,10 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_CREATE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_CREATE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_CREATE) + ) ); return false; } @@ -148,7 +161,10 @@ public class Cluster extends SubCommand { if (args.length != 4) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster create ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot cluster create ")) + ) ); return false; } @@ -158,7 +174,7 @@ public class Cluster extends SubCommand { if (currentClusters >= player.getAllowedPlots()) { player.sendMessage( TranslatableCaption.of("permission.cant_claim_more_clusters"), - Template.of("amount", String.valueOf(player.getAllowedPlots())) + TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots()))) ); } PlotId pos1; @@ -176,7 +192,7 @@ public class Cluster extends SubCommand { if (area.getCluster(name) != null) { player.sendMessage( TranslatableCaption.of("alias.alias_is_taken"), - Template.of("alias", name) + TagResolver.resolver("alias", Tag.inserting(Component.text(name))) ); return false; } @@ -190,7 +206,7 @@ public class Cluster extends SubCommand { if (cluster != null) { player.sendMessage( TranslatableCaption.of("cluster.cluster_intersection"), - Template.of("cluster", cluster.getName()) + TagResolver.resolver("cluster", Tag.inserting(Component.text(cluster.getName()))) ); return false; } @@ -198,7 +214,7 @@ public class Cluster extends SubCommand { if (!area.contains(pos1) || !area.contains(pos2)) { player.sendMessage( TranslatableCaption.of("cluster.cluster_outside"), - Template.of("area", String.valueOf(area)) + TagResolver.resolver("area", Tag.inserting(Component.text(area.toString()))) ); return false; } @@ -211,7 +227,10 @@ public class Cluster extends SubCommand { if (!plot.isOwner(uuid)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_CREATE_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_CREATE_OTHER) + ) ); return false; } @@ -233,7 +252,10 @@ public class Cluster extends SubCommand { if (current + cluster.getArea() > allowed) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_SIZE + "." + (current + cluster.getArea())) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_CLUSTER_SIZE + "." + (current + cluster.getArea()))) + ) ); return false; } @@ -252,7 +274,7 @@ public class Cluster extends SubCommand { } player.sendMessage( TranslatableCaption.of("cluster.cluster_created"), - Template.of("name", name) + TagResolver.resolver("name", Tag.inserting(Component.text(name))) ); return true; } @@ -262,14 +284,17 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_DELETE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_DELETE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_DELETE) + ) ); return false; } if (args.length != 1 && args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster delete [name]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster delete [name]"))) ); return false; } @@ -284,7 +309,7 @@ public class Cluster extends SubCommand { if (cluster == null) { player.sendMessage( TranslatableCaption.of("cluster.invalid_cluster_name"), - Template.of("cluster", args[1]) + TagResolver.resolver("cluster", Tag.inserting(Component.text(args[1]))) ); return false; } @@ -300,15 +325,18 @@ public class Cluster extends SubCommand { .hasPermission(player, Permission.PERMISSION_CLUSTER_DELETE_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_DELETE_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_DELETE_OTHER) + ) ); return false; } } DBFunc.delete(cluster); - player.sendMessage(TranslatableCaption.of("cluster.cluster_deleted"), Template.of( + player.sendMessage(TranslatableCaption.of("cluster.cluster_deleted"), TagResolver.resolver( "cluster", - String.valueOf(cluster) + Tag.inserting(Component.text(cluster.toString())) )); return true; } @@ -317,14 +345,17 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_RESIZE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_RESIZE) + ) ); return false; } if (args.length != 3) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster resize [name]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster resize [name]"))) ); return false; } @@ -358,7 +389,10 @@ public class Cluster extends SubCommand { .hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_RESIZE_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_RESIZE_OTHER) + ) ); return false; } @@ -368,13 +402,12 @@ public class Cluster extends SubCommand { if (intersect != null) { player.sendMessage( TranslatableCaption.of("cluster.cluster_intersection"), - Template.of("cluster", intersect.getName()) + TagResolver.resolver("cluster", Tag.inserting(Component.text(intersect.getName()))) ); return false; } Set existing = area.getPlotSelectionOwned(cluster.getP1(), cluster.getP2()); Set newPlots = area.getPlotSelectionOwned(pos1, pos2); - // Set removed = (HashSet) existing.clone(); Set removed = new HashSet<>(existing); removed.removeAll(newPlots); @@ -384,7 +417,10 @@ public class Cluster extends SubCommand { .hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_SHRINK)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_RESIZE_SHRINK)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_RESIZE_SHRINK) + ) ); return false; } @@ -395,7 +431,10 @@ public class Cluster extends SubCommand { .hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_EXPAND)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_RESIZE_EXPAND)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_RESIZE_EXPAND) + ) ); return false; } @@ -414,7 +453,9 @@ public class Cluster extends SubCommand { if (current + cluster.getArea() > allowed) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER + "." + (current + cluster.getArea())) + TagResolver.resolver("node", Tag.inserting(Component.text( + Permission.PERMISSION_CLUSTER + "." + (current + cluster.getArea()) + ))) ); return false; } @@ -429,14 +470,17 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_INVITE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_CLUSTER_INVITE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_INVITE) + ) ); return false; } if (args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster invite ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster invite "))) ); return false; } @@ -455,7 +499,10 @@ public class Cluster extends SubCommand { .hasPermission(player, Permission.PERMISSION_CLUSTER_INVITE_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_INVITE_OTHER.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_INVITE_OTHER) + ) ); return false; } @@ -468,7 +515,7 @@ public class Cluster extends SubCommand { } else if (throwable != null) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[1]))) ); } else { if (!cluster.isAdded(uuid)) { @@ -480,7 +527,7 @@ public class Cluster extends SubCommand { if (otherPlayer != null) { player.sendMessage( TranslatableCaption.of("cluster.cluster_invited"), - Template.of("cluster", cluster.getName()) + TagResolver.resolver("cluster", Tag.inserting(Component.text(cluster.getName()))) ); } } @@ -495,14 +542,17 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_KICK)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_KICK.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_KICK) + ) ); return false; } if (args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster kick ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster kick "))) ); return false; } @@ -520,7 +570,10 @@ public class Cluster extends SubCommand { .hasPermission(player, Permission.PERMISSION_CLUSTER_KICK_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_KICK_OTHER.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_KICK_OTHER) + ) ); return false; } @@ -533,7 +586,7 @@ public class Cluster extends SubCommand { } else if (throwable != null) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[1]))) ); } else { // Can't kick if the player is yourself, the owner, or not added to the cluster @@ -541,7 +594,7 @@ public class Cluster extends SubCommand { || !cluster.isAdded(uuid)) { player.sendMessage( TranslatableCaption.of("cluster.cannot_kick_player"), - Template.of("value", cluster.getName()) + TagResolver.resolver("value", Tag.inserting(Component.text(cluster.getName()))) ); } else { if (cluster.helpers.contains(uuid)) { @@ -556,7 +609,7 @@ public class Cluster extends SubCommand { if (player2 != null) { player.sendMessage( TranslatableCaption.of("cluster.cluster_removed"), - Template.of("cluster", cluster.getName()) + TagResolver.resolver("cluster", Tag.inserting(Component.text(cluster.getName()))) ); } removePlayerPlots(cluster, uuid, player2.getLocation().getWorldName()); @@ -571,14 +624,17 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_LEAVE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_LEAVE.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_LEAVE) + ) ); return false; } if (args.length != 1 && args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster leave [name]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster leave [name]"))) ); return false; } @@ -592,7 +648,7 @@ public class Cluster extends SubCommand { if (cluster == null) { player.sendMessage( TranslatableCaption.of("cluster.invalid_cluster_name"), - Template.of("cluster", args[1]) + TagResolver.resolver("cluster", Tag.inserting(Component.text(args[1]))) ); return false; } @@ -620,7 +676,7 @@ public class Cluster extends SubCommand { DBFunc.removeInvited(cluster, uuid); player.sendMessage( TranslatableCaption.of("cluster.cluster_removed"), - Template.of("cluster", cluster.getName()) + TagResolver.resolver("cluster", Tag.inserting(Component.text(cluster.getName()))) ); removePlayerPlots(cluster, uuid, player.getLocation().getWorldName()); return true; @@ -629,14 +685,20 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_HELPERS)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_HELPERS.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_CLUSTER_HELPERS.toString())) + ) ); return false; } if (args.length != 3) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster members ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot cluster members ")) + ) ); return false; } @@ -657,7 +719,7 @@ public class Cluster extends SubCommand { } else if (throwable != null) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[2]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[2]))) ); } else { if (args[1].equalsIgnoreCase("add")) { @@ -671,7 +733,9 @@ public class Cluster extends SubCommand { } else { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster members ") + TagResolver.resolver("value", Tag.inserting(Component.text( + "/plot cluster members " + ))) ); } } @@ -684,14 +748,17 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_TP)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_TP.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_TP) + ) ); return false; } if (args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster tp ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster tp "))) ); return false; } @@ -704,7 +771,7 @@ public class Cluster extends SubCommand { if (cluster == null) { player.sendMessage( TranslatableCaption.of("cluster.invalid_cluster_name"), - Template.of("cluster", args[1]) + TagResolver.resolver("cluster", Tag.inserting(Component.text(args[1]))) ); return false; } @@ -713,7 +780,10 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_TP_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_TP_OTHER.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_TP_OTHER) + ) ); return false; } @@ -729,14 +799,17 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_INFO)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_TP.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_TP) + ) ); return false; } if (args.length != 1 && args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster info [name]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster info [name]"))) ); } PlotArea area = player.getApplicablePlotArea(); @@ -750,7 +823,7 @@ public class Cluster extends SubCommand { if (cluster == null) { player.sendMessage( TranslatableCaption.of("cluster.invalid_cluster_name"), - Template.of("cluster", args[1]) + TagResolver.resolver("cluster", Tag.inserting(Component.text(args[1]))) ); return false; } @@ -779,19 +852,14 @@ public class Cluster extends SubCommand { cluster.getP2().getY() - cluster.getP1().getY() + 1); String rights = cluster.isAdded(player.getUUID()) + ""; Caption message = TranslatableCaption.of("cluster.cluster_info"); - Template idTemplate = Template.of("id", id); - Template ownerTemplate = Template.of("owner", owner); - Template nameTemplate = Template.of("name", name); - Template sizeTemplate = Template.of("size", size); - Template rightsTemplate = Template.of("rights", rights); - player.sendMessage( - message, - idTemplate, - ownerTemplate, - nameTemplate, - sizeTemplate, - rightsTemplate - ); + TagResolver resolver = TagResolver.builder() + .tag("id", Tag.inserting(Component.text(id))) + .tag("owner", Tag.inserting(Component.text(owner))) + .tag("name", Tag.inserting(Component.text(name))) + .tag("size", Tag.inserting(Component.text(size))) + .tag("rights", Tag.inserting(Component.text(rights))) + .build(); + player.sendMessage(message, resolver); } }); return true; @@ -802,14 +870,14 @@ public class Cluster extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_SETHOME)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_SETHOME.toString()) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_CLUSTER_SETHOME)) ); return false; } if (args.length != 1 && args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot cluster sethome") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster sethome"))) ); return false; } @@ -827,7 +895,10 @@ public class Cluster extends SubCommand { .hasPermission(player, Permission.PERMISSION_CLUSTER_SETHOME_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_CLUSTER_SETHOME_OTHER.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_CLUSTER_SETHOME_OTHER) + ) ); return false; } @@ -846,10 +917,7 @@ public class Cluster extends SubCommand { } player.sendMessage( TranslatableCaption.of("cluster.cluster_available_args"), - Template.of( - "list", - "list, create, delete, resize, invite, kick, leave, members, info, tp, sethome" - ) + TagResolver.resolver("list", Tag.inserting(ComponentHelper.join(AVAILABLE_ARGS, SEPARATOR))) ); return false; } diff --git a/Core/src/main/java/com/plotsquared/core/command/CmdConfirm.java b/Core/src/main/java/com/plotsquared/core/command/CmdConfirm.java index 2d94cb1b0..3b7dff835 100644 --- a/Core/src/main/java/com/plotsquared/core/command/CmdConfirm.java +++ b/Core/src/main/java/com/plotsquared/core/command/CmdConfirm.java @@ -32,7 +32,9 @@ import com.plotsquared.core.player.PlayerMetaDataKeys; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.util.task.TaskTime; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.Nullable; public class CmdConfirm { @@ -59,9 +61,11 @@ public class CmdConfirm { if (commandStr != null) { player.sendMessage( TranslatableCaption.of("confirm.requires_confirm"), - Template.of("command", commandStr), - Template.of("timeout", String.valueOf(Settings.Confirmation.CONFIRMATION_TIMEOUT_SECONDS)), - Template.of("value", "/plot confirm") + TagResolver.builder() + .tag("command", Tag.inserting(Component.text(commandStr))) + .tag("timeout", Tag.inserting(Component.text(Settings.Confirmation.CONFIRMATION_TIMEOUT_SECONDS))) + .tag("value", Tag.inserting(Component.text("/plot confirm"))) + .build() ); } TaskManager.runTaskLater(() -> { diff --git a/Core/src/main/java/com/plotsquared/core/command/Command.java b/Core/src/main/java/com/plotsquared/core/command/Command.java index 522a12016..58db525c2 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Command.java +++ b/Core/src/main/java/com/plotsquared/core/command/Command.java @@ -37,8 +37,10 @@ import com.plotsquared.core.util.StringComparison; import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; +import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.Nullable; import java.lang.reflect.InvocationTargetException; @@ -263,10 +265,14 @@ public abstract class Command { max = c.size(); } // Send the header - Template curTemplate = Template.of("cur", String.valueOf(page + 1)); - Template maxTemplate = Template.of("max", String.valueOf(totalPages + 1)); - Template amountTemplate = Template.of("amount", String.valueOf(c.size())); - player.sendMessage(header, curTemplate, maxTemplate, amountTemplate); + player.sendMessage( + header, + TagResolver.builder() + .tag("cur", Tag.inserting(Component.text(page + 1))) + .tag("max", Tag.inserting(Component.text(totalPages + 1))) + .tag("amount", Tag.inserting(Component.text(c.size()))) + .build() + ); // Send the page content List subList = c.subList(page * size, max); int i = page * size; @@ -274,13 +280,24 @@ public abstract class Command { i++; final CaptionHolder msg = new CaptionHolder(); add.run(i, obj, msg); - player.sendMessage(msg.get(), msg.getTemplates()); + player.sendMessage(msg.get(), msg.getTagResolvers()); } // Send the footer - Template command1 = Template.of("command1", baseCommand + " " + page); - Template command2 = Template.of("command2", baseCommand + " " + (page + 2)); - Template clickable = Template.of("clickable", TranslatableCaption.of("list.clickable").getComponent(player)); - player.sendMessage(TranslatableCaption.of("list.page_turn"), command1, command2, clickable); + player.sendMessage( + TranslatableCaption.of("list.page_turn"), + TagResolver.builder() + .tag("cur", Tag.inserting(Component.text(page + 1))) + .tag( + "command1", + Tag.preProcessParsed(baseCommand + " " + page) + ) + .tag("command2", Tag.preProcessParsed(baseCommand + " " + (page + 2))) + .tag( + "clickable", + Tag.inserting(TranslatableCaption.of("list.clickable").toComponent(player)) + ) + .build() + ); } /** @@ -332,7 +349,7 @@ public abstract class Command { if (commands.isEmpty()) { player.sendMessage( TranslatableCaption.of("commandconfig.did_you_mean"), - Template.of("value", MainCommand.getInstance().help.getUsage()) + TagResolver.resolver("value", Tag.inserting(Component.text(MainCommand.getInstance().help.getUsage()))) ); return CompletableFuture.completedFuture(false); } @@ -353,7 +370,7 @@ public abstract class Command { } player.sendMessage( TranslatableCaption.of("commandconfig.did_you_mean"), - Template.of("value", cmd.getUsage()) + TagResolver.resolver("value", Tag.inserting(Component.text(cmd.getUsage()))) ); return CompletableFuture.completedFuture(false); } @@ -388,7 +405,7 @@ public abstract class Command { // TODO improve or remove the Argument system player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", StringMan.join(fullSplit, " ")) + TagResolver.resolver("value", Tag.inserting(Component.text(StringMan.join(fullSplit, " ")))) ); return false; } @@ -477,7 +494,7 @@ public abstract class Command { if (message) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", getPermission()) + TagResolver.resolver("node", Tag.inserting(Component.text(getPermission()))) ); } } else { @@ -502,7 +519,7 @@ public abstract class Command { public void sendUsage(PlotPlayer player) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", getUsage()) + TagResolver.resolver("value", Tag.inserting(Component.text(getUsage()))) ); } @@ -606,13 +623,13 @@ public abstract class Command { return this.getFullId().hashCode(); } - public void checkTrue(boolean mustBeTrue, Caption message, Template... args) { + public void checkTrue(boolean mustBeTrue, Caption message, TagResolver... args) { if (!mustBeTrue) { throw new CommandException(message, args); } } - public T check(T object, Caption message, Template... args) { + public T check(T object, Caption message, TagResolver... args) { if (object == null) { throw new CommandException(message, args); } @@ -628,10 +645,10 @@ public abstract class Command { public static class CommandException extends RuntimeException { - private final Template[] args; private final Caption message; + private final TagResolver[] args; - public CommandException(final @Nullable Caption message, final Template... args) { + public CommandException(final @Nullable Caption message, final TagResolver... args) { this.message = message; this.args = args; } diff --git a/Core/src/main/java/com/plotsquared/core/command/CommandCaller.java b/Core/src/main/java/com/plotsquared/core/command/CommandCaller.java index 2170c7fe7..bf1816070 100644 --- a/Core/src/main/java/com/plotsquared/core/command/CommandCaller.java +++ b/Core/src/main/java/com/plotsquared/core/command/CommandCaller.java @@ -26,7 +26,7 @@ package com.plotsquared.core.command; import com.plotsquared.core.configuration.caption.Caption; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; /** @@ -41,7 +41,7 @@ public interface CommandCaller { * @param caption Caption to send * @param replacements Variable replacements */ - void sendMessage(@NonNull Caption caption, @NonNull Template... replacements); + void sendMessage(@NonNull Caption caption, @NonNull TagResolver... replacements); /** * Check the player's permissions. Will be cached if permission caching is enabled. diff --git a/Core/src/main/java/com/plotsquared/core/command/CommandCategory.java b/Core/src/main/java/com/plotsquared/core/command/CommandCategory.java index fdada2459..d8181ac35 100644 --- a/Core/src/main/java/com/plotsquared/core/command/CommandCategory.java +++ b/Core/src/main/java/com/plotsquared/core/command/CommandCategory.java @@ -29,6 +29,9 @@ import com.plotsquared.core.configuration.caption.Caption; import com.plotsquared.core.configuration.caption.LocaleHolder; import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.player.PlotPlayer; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.ComponentLike; +import net.kyori.adventure.text.minimessage.MiniMessage; import org.checkerframework.checker.nullness.qual.NonNull; /** @@ -97,6 +100,11 @@ public enum CommandCategory implements Caption { return this.caption.getComponent(localeHolder); } + @Override + public @NonNull Component toComponent(@NonNull final LocaleHolder localeHolder) { + return MiniMessage.miniMessage().deserialize(getComponent(localeHolder)); + } + /** * Checks if a player has access to this command category * diff --git a/Core/src/main/java/com/plotsquared/core/command/Comment.java b/Core/src/main/java/com/plotsquared/core/command/Comment.java index 0d963e2ff..3f182aaaa 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Comment.java +++ b/Core/src/main/java/com/plotsquared/core/command/Comment.java @@ -34,7 +34,9 @@ import com.plotsquared.core.plot.comment.CommentInbox; import com.plotsquared.core.plot.comment.CommentManager; import com.plotsquared.core.plot.comment.PlotComment; import com.plotsquared.core.util.StringMan; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.Arrays; import java.util.Locale; @@ -51,8 +53,10 @@ public class Comment extends SubCommand { if (args.length < 2) { player.sendMessage( TranslatableCaption.of("comment.comment_syntax"), - Template.of("command", "/plot comment [X;Z]"), - Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), "|")) + TagResolver.builder() + .tag("command", Tag.inserting(Component.text("/plot comment [X;Z]"))) + .tag("list", Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), "|")))) + .build() ); return false; } @@ -71,8 +75,10 @@ public class Comment extends SubCommand { if (args.length < 3) { player.sendMessage( TranslatableCaption.of("comment.comment_syntax"), - Template.of("command", "/plot comment [X;Z]"), - Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), "|")) + TagResolver.builder() + .tag("command", Tag.inserting(Component.text("/plot comment [X;Z]"))) + .tag("list", Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), "|")))) + .build() ); return false; } @@ -83,8 +89,10 @@ public class Comment extends SubCommand { if (inbox == null) { player.sendMessage( TranslatableCaption.of("comment.comment_syntax"), - Template.of("command", "/plot comment [X;Z]"), - Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), "|")) + TagResolver.builder() + .tag("command", Tag.inserting(Component.text("/plot comment [X;Z]"))) + .tag("list", Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), "|")))) + .build() ); return false; } @@ -104,8 +112,10 @@ public class Comment extends SubCommand { player.sendMessage(TranslatableCaption.of("comment.no_plot_inbox")); player.sendMessage( TranslatableCaption.of("comment.comment_syntax"), - Template.of("command", "/plot comment [X;Z]"), - Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), "|")) + TagResolver.builder() + .tag("command", Tag.inserting(Component.text("/plot comment [X;Z]"))) + .tag("list", Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), "|")))) + .build() ); return false; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Condense.java b/Core/src/main/java/com/plotsquared/core/command/Condense.java index 41c9c1b50..f85daa00c 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Condense.java +++ b/Core/src/main/java/com/plotsquared/core/command/Condense.java @@ -36,7 +36,9 @@ import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.util.task.TaskTime; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.ArrayList; @@ -75,7 +77,9 @@ public class Condense extends SubCommand { if (args.length != 2 && args.length != 3) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot condense [radius]") + TagResolver.resolver("value", Tag.inserting(Component.text( + "/plot condense [radius]" + ))) ); return false; } @@ -89,7 +93,10 @@ public class Condense extends SubCommand { if (args.length == 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot condense" + area + " start ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot condense" + area + " start " + "")) + ) ); return false; } @@ -188,8 +195,10 @@ public class Condense extends SubCommand { if (result.get()) { player.sendMessage( TranslatableCaption.of("condense.moving"), - Template.of("origin", String.valueOf(origin)), - Template.of("possible", String.valueOf(possible)) + TagResolver.builder() + .tag("origin", Tag.inserting(Component.text(origin.toString()))) + .tag("possible", Tag.inserting(Component.text(possible.toString()))) + .build() ); TaskManager.runTaskLater(task, TaskTime.ticks(1L)); } @@ -209,7 +218,7 @@ public class Condense extends SubCommand { if (i >= free.size()) { player.sendMessage( TranslatableCaption.of("condense.skipping"), - Template.of("plot", String.valueOf(origin)) + TagResolver.resolver("plot", Tag.inserting(Component.text(origin.toString()))) ); } } @@ -230,7 +239,10 @@ public class Condense extends SubCommand { if (args.length == 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot condense " + area + " info ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot condense " + area + " info ")) + ) ); return false; } @@ -251,20 +263,20 @@ public class Condense extends SubCommand { player.sendMessage(TranslatableCaption.of("condense.default_eval")); player.sendMessage( TranslatableCaption.of("condense.minimum_radius"), - Template.of("minimumRadius", String.valueOf(minimumRadius)) + TagResolver.resolver("minimumRadius", Tag.inserting(Component.text(minimumRadius))) ); player.sendMessage( - TranslatableCaption.of("condense.minimum_radius"), - Template.of("maxMove", String.valueOf(maxMove)) + TranslatableCaption.of("condense.maximum_moved"), + TagResolver.resolver("maxMove", Tag.inserting(Component.text(maxMove))) ); player.sendMessage(TranslatableCaption.of("condense.input_eval")); player.sendMessage( TranslatableCaption.of("condense.input_radius"), - Template.of("radius", String.valueOf(radius)) + TagResolver.resolver("radius", Tag.inserting(Component.text(radius))) ); player.sendMessage( TranslatableCaption.of("condense.estimated_moves"), - Template.of("userMove", String.valueOf(userMove)) + TagResolver.resolver("userMove", Tag.inserting(Component.text(userMove))) ); player.sendMessage(TranslatableCaption.of("condense.eta")); player.sendMessage(TranslatableCaption.of("condense.radius_measured")); @@ -273,7 +285,10 @@ public class Condense extends SubCommand { } player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot condense " + area.getWorldName() + " [radius]") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot condense " + area.getWorldName() + " [radius]")) + ) ); return false; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Continue.java b/Core/src/main/java/com/plotsquared/core/command/Continue.java index 27b46787b..bf4d17fff 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Continue.java +++ b/Core/src/main/java/com/plotsquared/core/command/Continue.java @@ -37,7 +37,9 @@ import com.plotsquared.core.plot.flag.PlotFlag; import com.plotsquared.core.plot.flag.implementations.DoneFlag; import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.Permissions; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; @CommandDeclaration(command = "continue", @@ -64,7 +66,9 @@ public class Continue extends SubCommand { .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_CONTINUE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", TranslatableCaption.of("permission.no_plot_perms").getComponent(player)) + TagResolver.resolver("node", Tag.inserting( + TranslatableCaption.of("permission.no_plot_perms").toComponent(player) + )) ); return false; } @@ -77,7 +81,7 @@ public class Continue extends SubCommand { < player.getPlotCount() + size)) { player.sendMessage( TranslatableCaption.of("permission.cant_claim_more_plots"), - Template.of("amount", String.valueOf(player.getAllowedPlots())) + TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots()))) ); return false; } @@ -91,7 +95,7 @@ public class Continue extends SubCommand { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Done flag removal") + TagResolver.resolver("value", Tag.inserting(Component.text("Done flag removal"))) ); return true; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Copy.java b/Core/src/main/java/com/plotsquared/core/command/Copy.java index 36be92318..f4c6e31f5 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Copy.java +++ b/Core/src/main/java/com/plotsquared/core/command/Copy.java @@ -31,7 +31,9 @@ import com.plotsquared.core.permissions.Permission; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.Permissions; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; @CommandDeclaration(command = "copy", permission = "plots.copy", @@ -57,7 +59,7 @@ public class Copy extends SubCommand { if (args.length != 1) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot copy ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot copy "))) ); return false; } @@ -76,8 +78,11 @@ public class Copy extends SubCommand { plot1.getPlotModificationManager().copy(plot2, player).thenAccept(result -> { if (result) { - player.sendMessage(TranslatableCaption.of("move.copy_success"), Template.of("origin", String.valueOf(plot1)), - Template.of("target", String.valueOf(plot2)) + player.sendMessage(TranslatableCaption.of("move.copy_success"), + TagResolver.builder() + .tag("origin", Tag.inserting(Component.text(plot1.toString()))) + .tag("target", Tag.inserting(Component.text(plot2.toString()))) + .build() ); } else { player.sendMessage(TranslatableCaption.of("move.requires_unowned")); diff --git a/Core/src/main/java/com/plotsquared/core/command/CreateRoadSchematic.java b/Core/src/main/java/com/plotsquared/core/command/CreateRoadSchematic.java index b14f6f236..f4789fa57 100644 --- a/Core/src/main/java/com/plotsquared/core/command/CreateRoadSchematic.java +++ b/Core/src/main/java/com/plotsquared/core/command/CreateRoadSchematic.java @@ -32,7 +32,9 @@ import com.plotsquared.core.generator.HybridUtils; import com.plotsquared.core.location.Location; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.Plot; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; @CommandDeclaration(command = "createroadschematic", @@ -68,7 +70,7 @@ public class CreateRoadSchematic extends SubCommand { this.hybridUtils.setupRoadSchematic(plot); player.sendMessage( TranslatableCaption.of("schematics.schematic_road_created"), - Template.of("command", "/plot debugroadregen") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot debugroadregen"))) ); return true; } diff --git a/Core/src/main/java/com/plotsquared/core/command/DatabaseCommand.java b/Core/src/main/java/com/plotsquared/core/command/DatabaseCommand.java index eef9c965d..83a260e32 100644 --- a/Core/src/main/java/com/plotsquared/core/command/DatabaseCommand.java +++ b/Core/src/main/java/com/plotsquared/core/command/DatabaseCommand.java @@ -47,7 +47,9 @@ import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.FileUtils; import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.io.File; @@ -108,7 +110,10 @@ public class DatabaseCommand extends SubCommand { if (args.length < 1) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot database [area] ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot database [area] ")) + ) ); return false; } @@ -123,7 +128,7 @@ public class DatabaseCommand extends SubCommand { if (args.length < 1) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot database [area] ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot database [area] "))) ); player.sendMessage(TranslatableCaption.of("database.arg")); return false; @@ -136,7 +141,10 @@ public class DatabaseCommand extends SubCommand { if (args.length < 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot database import [prefix]") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot database import [prefix]")) + ) ); return false; } @@ -147,7 +155,7 @@ public class DatabaseCommand extends SubCommand { if (!file.exists()) { player.sendMessage( TranslatableCaption.of("database.does_not_exist"), - Template.of("value", String.valueOf(file)) + TagResolver.resolver("value", Tag.inserting(Component.text(file.toString()))) ); return false; } @@ -191,8 +199,10 @@ public class DatabaseCommand extends SubCommand { } player.sendMessage( TranslatableCaption.of("database.skipping_duplicated_plot"), - Template.of("plot", String.valueOf(plot)), - Template.of("id", String.valueOf(plot.temp)) + TagResolver.builder() + .tag("plot", Tag.inserting(Component.text(plot.toString()))) + .tag("id", Tag.inserting(Component.text(plot.temp))) + .build() ); continue; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Debug.java b/Core/src/main/java/com/plotsquared/core/command/Debug.java index 69d2b0f7b..adb86828a 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Debug.java +++ b/Core/src/main/java/com/plotsquared/core/command/Debug.java @@ -41,7 +41,10 @@ import com.plotsquared.core.uuid.UUIDMapping; import com.sk89q.worldedit.world.entity.EntityType; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.format.TextColor; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Collection; @@ -75,7 +78,10 @@ public class Debug extends SubCommand { if (args.length == 0) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot debug ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot debug ")) + ) ); } if (args.length > 0) { @@ -102,7 +108,7 @@ public class Debug extends SubCommand { final Collection mappings = PlotSquared.get().getImpromptuUUIDPipeline().getAllImmediately(); player.sendMessage( TranslatableCaption.of("debug.cached_uuids"), - Template.of("value", String.valueOf(mappings.size())) + TagResolver.resolver("value", Tag.inserting(Component.text(mappings.size()))) ); return true; } @@ -111,7 +117,7 @@ public class Debug extends SubCommand { for (final PlotPlayer pp : PlotPlayer.getDebugModePlayers()) { player.sendMessage( TranslatableCaption.of("debug.player_in_debugmode_list"), - Template.of("value", pp.getName()) + TagResolver.resolver("value", Tag.inserting(Component.text(pp.getName()))) ); } return true; @@ -121,10 +127,11 @@ public class Debug extends SubCommand { player.sendMessage(TranslatableCaption.of("debug.entity_categories")); EntityCategory.REGISTRY.forEach(category -> { final StringBuilder builder = - new StringBuilder("§7- §6").append(category.getId()).append("§7: §6"); + new StringBuilder("- ").append(category.getId()).append(": "); for (final EntityType entityType : category.getAll()) { builder.append(entityType.getId()).append(" "); } + builder.append(""); player.sendMessage(StaticCaption.of("" + builder)); }); EntityType.REGISTRY.values().stream().sorted(Comparator.comparing(EntityType::getId)) @@ -144,28 +151,53 @@ public class Debug extends SubCommand { .getCaptionMap(TranslatableCaption.DEFAULT_NAMESPACE) .getCaptions(); TextComponent.Builder information = Component.text(); - Component header = MINI_MESSAGE.parse(TranslatableCaption.of("debug.debug_header").getComponent(player) + "\n"); + Component header = TranslatableCaption.of("debug.debug_header").toComponent(player) + .append(Component.newline()); String line = TranslatableCaption.of("debug.debug_line").getComponent(player) + "\n"; String section = TranslatableCaption.of("debug.debug_section").getComponent(player) + "\n"; information.append(header); - information.append(MINI_MESSAGE.parse(section, Template.of("val", "PlotArea"))); + information.append(MINI_MESSAGE.deserialize( + section, + TagResolver.resolver("val", Tag.inserting(Component.text("PlotArea"))) + )); information.append(MINI_MESSAGE - .parse( + .deserialize( line, - Template.of("var", "Plot Worlds"), - Template.of("val", StringMan.join(this.plotAreaManager.getAllPlotAreas(), ", ")) + TagResolver.builder() + .tag("var", Tag.inserting(Component.text("Plot Worlds"))) + .tag( + "val", + Tag.inserting(Component.text(StringMan.join( + this.plotAreaManager.getAllPlotAreas(), + ", " + ))) + ) + .build() )); information.append( - MINI_MESSAGE.parse( + MINI_MESSAGE.deserialize( line, - Template.of("var", "Owned Plots"), - Template.of("val", String.valueOf(PlotQuery.newQuery().allPlots().count())) + TagResolver.builder() + .tag("var", Tag.inserting(Component.text("Owned Plots"))) + .tag( + "val", + Tag.inserting(Component.text(PlotQuery.newQuery().allPlots().count())) + ) + .build() )); - information.append(MINI_MESSAGE.parse(section, Template.of("val", "Messages"))); - information.append(MINI_MESSAGE.parse( + information.append(MINI_MESSAGE.deserialize( + section, + TagResolver.resolver("val", Tag.inserting(Component.text("Messages"))) + )); + information.append(MINI_MESSAGE.deserialize( line, - Template.of("var", "Total Messages"), - Template.of("val", String.valueOf(captions.size())) + TagResolver.builder() + .tag("var", Tag.inserting(Component.text("Total Messages"))) + .tag( + "val", + Tag.inserting(Component.text(captions.size())) + ) + .build() )); player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(information.build()))); return true; diff --git a/Core/src/main/java/com/plotsquared/core/command/DebugExec.java b/Core/src/main/java/com/plotsquared/core/command/DebugExec.java index d8ab55bd6..a16a313ca 100644 --- a/Core/src/main/java/com/plotsquared/core/command/DebugExec.java +++ b/Core/src/main/java/com/plotsquared/core/command/DebugExec.java @@ -43,12 +43,13 @@ import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.task.RunnableVal; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Arrays; import java.util.Collection; -import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; @@ -103,7 +104,7 @@ public class DebugExec extends SubCommand { if (analysis != null) { player.sendMessage( TranslatableCaption.of("debugexec.changes_column"), - Template.of("value", String.valueOf(analysis.changes)) + TagResolver.resolver("value", Tag.inserting(Component.text(analysis.changes))) ); return true; } @@ -113,7 +114,7 @@ public class DebugExec extends SubCommand { public void run(PlotAnalysis value) { player.sendMessage( TranslatableCaption.of("debugexec.analyze_done"), - Template.of("command", "/plot debugexec analyze") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot debugexec analyze"))) ); } }); @@ -123,7 +124,10 @@ public class DebugExec extends SubCommand { if (args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot debugexec analyze ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot debugexec analyze ")) + ) ); player.sendMessage(TranslatableCaption.of("debugexec.threshold_default")); return false; @@ -134,7 +138,7 @@ public class DebugExec extends SubCommand { } catch (NumberFormatException ignored) { player.sendMessage( TranslatableCaption.of("debugexec.invalid_threshold"), - Template.of("value", args[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[1]))) ); player.sendMessage(TranslatableCaption.of("debugexec.threshold_default_double")); return false; @@ -168,7 +172,7 @@ public class DebugExec extends SubCommand { if (args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot debugexec remove-flag ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot debugexec remove-flag "))) ); return false; } @@ -186,7 +190,7 @@ public class DebugExec extends SubCommand { } player.sendMessage( TranslatableCaption.of("debugexec.cleared_flag"), - Template.of("value", flag) + TagResolver.resolver("value", Tag.inserting(Component.text(flag))) ); return true; } @@ -194,7 +198,10 @@ public class DebugExec extends SubCommand { if (args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Invalid syntax: /plot debugexec start-rgar ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("Invalid syntax: /plot debugexec start-rgar ")) + ) ); return false; } @@ -202,7 +209,7 @@ public class DebugExec extends SubCommand { if (area == null) { player.sendMessage( TranslatableCaption.of("errors.not_valid_plot_world"), - Template.of("value", args[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[1]))) ); return false; } diff --git a/Core/src/main/java/com/plotsquared/core/command/DebugPaste.java b/Core/src/main/java/com/plotsquared/core/command/DebugPaste.java index dd643f6c5..3282e0ee9 100644 --- a/Core/src/main/java/com/plotsquared/core/command/DebugPaste.java +++ b/Core/src/main/java/com/plotsquared/core/command/DebugPaste.java @@ -38,7 +38,9 @@ import com.plotsquared.core.inject.annotations.WorldFile; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.util.PremiumVerification; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.io.File; @@ -138,8 +140,10 @@ public class DebugPaste extends SubCommand { } catch (IOException ignored) { player.sendMessage( TranslatableCaption.of("debugpaste.latest_log"), - Template.of("file", "latest.log"), - Template.of("size", "14MB") + TagResolver.builder() + .tag("file", Tag.inserting(Component.text("latest.log"))) + .tag("size", Tag.inserting(Component.text("14MB"))) + .build() ); } @@ -148,7 +152,7 @@ public class DebugPaste extends SubCommand { } catch (final IllegalArgumentException ignored) { player.sendMessage( TranslatableCaption.of("debugpaste.empty_file"), - Template.of("file", "settings.yml") + TagResolver.resolver("file", Tag.inserting(Component.text("settings.yml"))) ); } try { @@ -156,7 +160,7 @@ public class DebugPaste extends SubCommand { } catch (final IllegalArgumentException ignored) { player.sendMessage( TranslatableCaption.of("debugpaste.empty_file"), - Template.of("file", "worlds.yml") + TagResolver.resolver("file", Tag.inserting(Component.text("worlds.yml"))) ); } @@ -169,7 +173,7 @@ public class DebugPaste extends SubCommand { } catch (final IOException ignored) { player.sendMessage( TranslatableCaption.of("debugpaste.skip_multiverse"), - Template.of("file", "worlds.yml") + TagResolver.resolver("file", Tag.inserting(Component.text("worlds.yml"))) ); } @@ -184,20 +188,20 @@ public class DebugPaste extends SubCommand { String.format("https://athion.net/ISPaster/paste/view/%s", pasteId); player.sendMessage( TranslatableCaption.of("debugpaste.debug_report_created"), - Template.of("url", link) + TagResolver.resolver("url", Tag.preProcessParsed(link)) ); } else { final String responseMessage = jsonObject.get("response").getAsString(); player.sendMessage( TranslatableCaption.of("debugpaste.creation_failed"), - Template.of("value", responseMessage) + TagResolver.resolver("value", Tag.inserting(Component.text(responseMessage))) ); } } catch (final Throwable throwable) { throwable.printStackTrace(); player.sendMessage( TranslatableCaption.of("debugpaste.creation_failed"), - Template.of("value", throwable.getMessage()) + TagResolver.resolver("value", Tag.inserting(Component.text(throwable.getMessage()))) ); } } catch (IOException e) { diff --git a/Core/src/main/java/com/plotsquared/core/command/DebugRoadRegen.java b/Core/src/main/java/com/plotsquared/core/command/DebugRoadRegen.java index 100bcd8ee..650d6f7b4 100644 --- a/Core/src/main/java/com/plotsquared/core/command/DebugRoadRegen.java +++ b/Core/src/main/java/com/plotsquared/core/command/DebugRoadRegen.java @@ -35,7 +35,9 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotManager; import com.plotsquared.core.queue.QueueCoordinator; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Arrays; @@ -67,7 +69,7 @@ public class DebugRoadRegen extends SubCommand { if (args.length < 1) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", DebugRoadRegen.USAGE) + TagResolver.resolver("value", Tag.inserting(Component.text(DebugRoadRegen.USAGE))) ); return false; } @@ -87,7 +89,7 @@ public class DebugRoadRegen extends SubCommand { default: player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", DebugRoadRegen.USAGE) + TagResolver.resolver("value", Tag.inserting(Component.text(DebugRoadRegen.USAGE))) ); return false; } @@ -110,11 +112,11 @@ public class DebugRoadRegen extends SubCommand { queue.setCompleteTask(() -> { player.sendMessage( TranslatableCaption.of("debugroadregen.regen_done"), - Template.of("value", plot.getId().toString()) + TagResolver.resolver("value", Tag.inserting(Component.text(plot.getId().toString()))) ); player.sendMessage( TranslatableCaption.of("debugroadregen.regen_all"), - Template.of("value", "/plot regenallroads") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot regenallroads"))) ); }); manager.createRoadEast(plot, queue); @@ -133,18 +135,18 @@ public class DebugRoadRegen extends SubCommand { } catch (NumberFormatException ignored) { player.sendMessage( TranslatableCaption.of("invalid.not_valid_number"), - Template.of("value", "0, 256") + TagResolver.resolver("value", Tag.inserting(Component.text("0, 256"))) ); player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", DebugRoadRegen.USAGE) + TagResolver.resolver("value", Tag.inserting(Component.text(DebugRoadRegen.USAGE))) ); return false; } } else if (args.length != 0) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", DebugRoadRegen.USAGE) + TagResolver.resolver("value", Tag.inserting(Component.text(DebugRoadRegen.USAGE))) ); return false; } @@ -162,11 +164,11 @@ public class DebugRoadRegen extends SubCommand { } player.sendMessage( TranslatableCaption.of("debugroadregen.schematic"), - Template.of("command", "/plot createroadschematic") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot createroadschematic"))) ); player.sendMessage( TranslatableCaption.of("debugroadregen.regenallroads"), - Template.of("command", "/plot regenallroads") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot regenallroads"))) ); boolean result = this.hybridUtils.scheduleSingleRegionRoadUpdate(plot, height); if (!result) { diff --git a/Core/src/main/java/com/plotsquared/core/command/Delete.java b/Core/src/main/java/com/plotsquared/core/command/Delete.java index 91acaddd3..236e6d212 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Delete.java +++ b/Core/src/main/java/com/plotsquared/core/command/Delete.java @@ -40,7 +40,9 @@ import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.PlotExpression; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; @@ -85,7 +87,7 @@ public class Delete extends SubCommand { if (eventResult == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Delete") + TagResolver.resolver("value", Tag.inserting(Component.text("Delete"))) ); return true; } @@ -121,14 +123,17 @@ public class Delete extends SubCommand { this.econHandler.depositMoney(player, value); player.sendMessage( TranslatableCaption.of("economy.added_balance"), - Template.of("money", this.econHandler.format(value)) + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(value)))) ); } } player.sendMessage( TranslatableCaption.of("working.deleting_done"), - Template.of("amount", String.valueOf(System.currentTimeMillis() - start)), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver( + "amount", + Tag.inserting(Component.text(String.valueOf(System.currentTimeMillis() - start))) + ), + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); eventDispatcher.callPostDelete(plot); }); diff --git a/Core/src/main/java/com/plotsquared/core/command/Deny.java b/Core/src/main/java/com/plotsquared/core/command/Deny.java index 0c925dd76..398c3c87b 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Deny.java +++ b/Core/src/main/java/com/plotsquared/core/command/Deny.java @@ -42,7 +42,9 @@ import com.plotsquared.core.util.PlayerManager; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.WorldUtil; import com.sk89q.worldedit.world.gamemode.GameModes; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Collection; @@ -97,7 +99,7 @@ public class Deny extends SubCommand { if (size >= maxDenySize) { player.sendMessage( TranslatableCaption.of("members.plot_max_members_denied"), - Template.of("amount", String.valueOf(size)) + TagResolver.resolver("amount", Tag.inserting(Component.text(size))) ); return false; } @@ -108,7 +110,7 @@ public class Deny extends SubCommand { } else if (throwable != null || uuids.isEmpty()) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); } else { for (UUID uuid : uuids) { @@ -117,7 +119,7 @@ public class Deny extends SubCommand { .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_DENY))) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); } else if (plot.isOwner(uuid)) { player.sendMessage(TranslatableCaption.of("deny.cant_remove_owner")); @@ -125,7 +127,10 @@ public class Deny extends SubCommand { } else if (plot.getDenied().contains(uuid)) { player.sendMessage( TranslatableCaption.of("member.already_added"), - Template.of("player", PlayerManager.resolveName(uuid).getComponent(player)) + TagResolver.resolver( + "player", + Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player)) + ) ); return; } else { diff --git a/Core/src/main/java/com/plotsquared/core/command/Desc.java b/Core/src/main/java/com/plotsquared/core/command/Desc.java index 4274f8480..e7dea2001 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Desc.java +++ b/Core/src/main/java/com/plotsquared/core/command/Desc.java @@ -34,7 +34,9 @@ import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.flag.implementations.DescriptionFlag; import com.plotsquared.core.util.EventDispatcher; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; @CommandDeclaration(command = "setdescription", @@ -61,7 +63,7 @@ public class Desc extends SetCommand { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Description removal") + TagResolver.resolver("value", Tag.inserting(Component.text("Description removal"))) ); return false; } @@ -76,7 +78,7 @@ public class Desc extends SetCommand { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Description set") + TagResolver.resolver("value", Tag.inserting(Component.text("Description set"))) ); return false; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Done.java b/Core/src/main/java/com/plotsquared/core/command/Done.java index a64360fbf..8ba41141c 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Done.java +++ b/Core/src/main/java/com/plotsquared/core/command/Done.java @@ -43,7 +43,9 @@ import com.plotsquared.core.plot.flag.implementations.DoneFlag; import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.task.RunnableVal; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; @CommandDeclaration(command = "done", @@ -77,7 +79,7 @@ public class Done extends SubCommand { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Done") + TagResolver.resolver("value", Tag.inserting(Component.text("Done"))) ); return true; } @@ -98,7 +100,7 @@ public class Done extends SubCommand { plot.addRunning(); player.sendMessage( TranslatableCaption.of("web.generating_link"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); final Settings.Auto_Clear doneRequirements = Settings.AUTO_CLEAR.get("done"); if (ExpireManager.IMP == null || doneRequirements == null) { diff --git a/Core/src/main/java/com/plotsquared/core/command/Download.java b/Core/src/main/java/com/plotsquared/core/command/Download.java index eee156d8e..7ad2ebb27 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Download.java +++ b/Core/src/main/java/com/plotsquared/core/command/Download.java @@ -41,7 +41,9 @@ import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.task.RunnableVal; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.net.URL; @@ -121,7 +123,10 @@ public class Download extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_DOWNLOAD_WORLD)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_DOWNLOAD_WORLD.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_DOWNLOAD_WORLD) + ) ); return false; } @@ -135,18 +140,24 @@ public class Download extends SubCommand { if (url == null) { player.sendMessage( TranslatableCaption.of("web.generating_link_failed"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); return; } - player.sendMessage(TranslatableCaption.of("web.generation_link_success_legacy_world"), Template.of("url", url.toString())); + player.sendMessage( + TranslatableCaption.of("web.generation_link_success_legacy_world"), + TagResolver.resolver("url", Tag.inserting(Component.text(url.toString()))) + ); } }); } else { sendUsage(player); return false; } - player.sendMessage(TranslatableCaption.of("web.generating_link"), Template.of("plot", plot.getId().toString())); + player.sendMessage( + TranslatableCaption.of("web.generating_link"), + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) + ); return true; } @@ -190,8 +201,10 @@ public class Download extends SubCommand { public void run(URL value) { player.sendMessage( TranslatableCaption.of("web.generation_link_success"), - Template.of("download", value.toString()), - Template.of("delete", "Not available") + TagResolver.builder() + .tag("download", Tag.preProcessParsed(value.toString())) + .tag("delete", Tag.preProcessParsed("Not available")) + .build() ); player.sendMessage(StaticCaption.of(value.toString())); } @@ -205,13 +218,15 @@ public class Download extends SubCommand { if (throwable != null || !result.isSuccess()) { player.sendMessage( TranslatableCaption.of("web.generating_link_failed"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); } else { player.sendMessage( TranslatableCaption.of("web.generation_link_success"), - Template.of("download", result.getDownloadUrl()), - Template.of("delete", result.getDeletionUrl()) + TagResolver.builder() + .tag("download", Tag.preProcessParsed(result.getDownloadUrl())) + .tag("delete", Tag.preProcessParsed(result.getDeletionUrl())) + .build() ); } }); diff --git a/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java b/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java index b7220c134..553a215c0 100644 --- a/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java +++ b/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java @@ -30,7 +30,6 @@ import com.plotsquared.core.PlotSquared; import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.caption.CaptionUtility; import com.plotsquared.core.configuration.caption.StaticCaption; -import com.plotsquared.core.configuration.caption.Templates; import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.events.PlotFlagAddEvent; import com.plotsquared.core.events.PlotFlagRemoveEvent; @@ -55,7 +54,9 @@ import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.format.Style; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -92,7 +93,10 @@ public final class FlagCommand extends Command { private static boolean sendMessage(PlotPlayer player) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot flag ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot flag ")) + ) ); return true; } @@ -118,9 +122,9 @@ public final class FlagCommand extends Command { if (!result) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of( + TagResolver.resolver( "node", - perm + "." + numeric + Tag.inserting(Component.text(perm + "." + numeric)) ) ); } @@ -137,16 +141,21 @@ public final class FlagCommand extends Command { ); final boolean result = Permissions.hasPermission(player, permission); if (!result) { - player.sendMessage(TranslatableCaption.of("permission.no_permission"), Template.of("node", permission)); + player.sendMessage( + TranslatableCaption.of("permission.no_permission"), + TagResolver.resolver("node", Tag.inserting(Component.text(permission))) + ); return false; } } } catch (final FlagParseException e) { player.sendMessage( TranslatableCaption.of("flag.flag_parse_error"), - Template.of("flag_name", flag.getName()), - Template.of("flag_value", e.getValue()), - Template.of("error", e.getErrorMessage().getComponent(player)) + TagResolver.builder() + .tag("flag_name", Tag.inserting(Component.text(flag.getName()))) + .tag("flag_value", Tag.inserting(Component.text(e.getValue()))) + .tag("error", Tag.inserting(e.getErrorMessage().toComponent(player))) + .build() ); return false; } catch (final Exception e) { @@ -163,7 +172,10 @@ public final class FlagCommand extends Command { perm = basePerm; } if (!result) { - player.sendMessage(TranslatableCaption.of("permission.no_permission"), Template.of("node", perm)); + player.sendMessage( + TranslatableCaption.of("permission.no_permission"), + TagResolver.resolver("node", Tag.inserting(Component.text(perm))) + ); } return result; } @@ -188,7 +200,7 @@ public final class FlagCommand extends Command { .hasPermission(player, Permission.PERMISSION_SET_FLAG_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_SET_FLAG_OTHER)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_SET_FLAG_OTHER)) ); return false; } @@ -223,7 +235,7 @@ public final class FlagCommand extends Command { if (best != null) { player.sendMessage( TranslatableCaption.of("flag.not_valid_flag_suggested"), - Template.of("value", best) + TagResolver.resolver("value", Tag.inserting(Component.text(best))) ); suggested = true; } @@ -332,7 +344,7 @@ public final class FlagCommand extends Command { if (args.length < 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot flag set ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot flag set "))) ); return; } @@ -345,7 +357,7 @@ public final class FlagCommand extends Command { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Flag set") + TagResolver.resolver("value", Tag.inserting(Component.text("Flag set"))) ); return; } @@ -361,15 +373,21 @@ public final class FlagCommand extends Command { } catch (final FlagParseException e) { player.sendMessage( TranslatableCaption.of("flag.flag_parse_error"), - Template.of("flag_name", plotFlag.getName()), - Template.of("flag_value", e.getValue()), - Template.of("error", e.getErrorMessage().getComponent(player)) + TagResolver.builder() + .tag("flag_name", Tag.inserting(Component.text(plotFlag.getName()))) + .tag("flag_value", Tag.inserting(Component.text(e.getValue()))) + .tag("error", Tag.inserting(e.getErrorMessage().toComponent(player))) + .build() ); return; } plot.setFlag(parsed); - player.sendMessage(TranslatableCaption.of("flag.flag_added"), Template.of("flag", String.valueOf(args[0])), - Template.of("value", String.valueOf(parsed)) + player.sendMessage( + TranslatableCaption.of("flag.flag_added"), + TagResolver.builder() + .tag("flag", Tag.inserting(Component.text(args[0]))) + .tag("value", Tag.inserting(Component.text(parsed.toString()))) + .build() ); } @@ -391,7 +409,7 @@ public final class FlagCommand extends Command { if (args.length < 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot flag add ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot flag add "))) ); return; } @@ -404,7 +422,7 @@ public final class FlagCommand extends Command { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Flag add") + TagResolver.resolver("value", Tag.inserting(Component.text("Flag add"))) ); return; } @@ -425,9 +443,11 @@ public final class FlagCommand extends Command { } catch (FlagParseException e) { player.sendMessage( TranslatableCaption.of("flag.flag_parse_error"), - Template.of("flag_name", plotFlag.getName()), - Template.of("flag_value", e.getValue()), - Template.of("error", e.getErrorMessage().getComponent(player)) + TagResolver.builder() + .tag("flag_name", Tag.inserting(Component.text(plotFlag.getName()))) + .tag("flag_value", Tag.inserting(Component.text(e.getValue()))) + .tag("error", Tag.inserting(e.getErrorMessage().toComponent(player))) + .build() ); return; } @@ -437,8 +457,12 @@ public final class FlagCommand extends Command { player.sendMessage(TranslatableCaption.of("flag.flag_not_added")); return; } - player.sendMessage(TranslatableCaption.of("flag.flag_added"), Template.of("flag", String.valueOf(args[0])), - Template.of("value", String.valueOf(parsed)) + player.sendMessage( + TranslatableCaption.of("flag.flag_added"), + TagResolver.builder() + .tag("flag", Tag.inserting(Component.text(args[0]))) + .tag("value", Tag.inserting(Component.text(parsed.toString()))) + .build() ); } @@ -460,7 +484,7 @@ public final class FlagCommand extends Command { if (args.length != 1 && args.length != 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot flag remove [values]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot flag remove [values]"))) ); return; } @@ -473,7 +497,7 @@ public final class FlagCommand extends Command { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Flag remove") + TagResolver.resolver("value", Tag.inserting(Component.text("Flag remove"))) ); return; } @@ -483,7 +507,10 @@ public final class FlagCommand extends Command { if (args.length != 2) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_SET_FLAG_KEY.format(args[0].toLowerCase())) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_SET_FLAG_KEY.format(args[0].toLowerCase()))) + ) ); return; } @@ -498,9 +525,11 @@ public final class FlagCommand extends Command { } catch (final FlagParseException e) { player.sendMessage( TranslatableCaption.of("flag.flag_parse_error"), - Template.of("flag_name", flag.getName()), - Template.of("flag_value", e.getValue()), - Template.of("error", String.valueOf(e.getErrorMessage())) + TagResolver.builder() + .tag("flag_name", Tag.inserting(Component.text(flag.getName()))) + .tag("flag_value", Tag.inserting(Component.text(e.getValue()))) + .tag("error", Tag.inserting(e.getErrorMessage().toComponent(player))) + .build() ); return; } @@ -511,10 +540,13 @@ public final class FlagCommand extends Command { if (list.removeAll((List) parsedFlag.getValue())) { if (list.isEmpty()) { if (plot.removeFlag(flag)) { - player.sendMessage(TranslatableCaption.of("flag.flag_removed"), Template.of("flag", args[0]), Template.of( - "value", - String.valueOf(flag) - )); + player.sendMessage( + TranslatableCaption.of("flag.flag_removed"), + TagResolver.builder() + .tag("flag", Tag.inserting(Component.text(args[0]))) + .tag("value", Tag.inserting(Component.text(flag.toString()))) + .build() + ); return; } else { player.sendMessage(TranslatableCaption.of("flag.flag_not_removed")); @@ -526,7 +558,10 @@ public final class FlagCommand extends Command { if (addEvent.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Re-addition of " + plotFlag.getName()) + TagResolver.resolver( + "value", + Tag.inserting(Component.text("Re-addition of " + plotFlag.getName())) + ) ); return; } @@ -549,10 +584,13 @@ public final class FlagCommand extends Command { return; } } - player.sendMessage(TranslatableCaption.of("flag.flag_removed"), Template.of("flag", args[0]), Template.of( - "value", - String.valueOf(flag) - )); + player.sendMessage( + TranslatableCaption.of("flag.flag_removed"), + TagResolver.builder() + .tag("flag", Tag.inserting(Component.text(args[0]))) + .tag("value", Tag.inserting(Component.text(flag.toString()))) + .build() + ); } @CommandDeclaration(command = "list", @@ -570,34 +608,35 @@ public final class FlagCommand extends Command { return; } - final Map> flags = new HashMap<>(); + final Map> flags = new HashMap<>(); for (PlotFlag plotFlag : GlobalFlagContainer.getInstance().getRecognizedPlotFlags()) { if (plotFlag instanceof InternalFlag) { continue; } - final String category = MINI_MESSAGE.stripTokens(plotFlag.getFlagCategory().getComponent(player)); - final Collection flagList = - flags.computeIfAbsent(category, k -> new ArrayList<>()); + final Component category = plotFlag.getFlagCategory().toComponent(player); + final Collection flagList = flags.computeIfAbsent(category, k -> new ArrayList<>()); flagList.add(plotFlag.getName()); } - for (final Map.Entry> entry : flags.entrySet()) { + for (final Map.Entry> entry : flags.entrySet()) { Collections.sort(entry.getValue()); Component category = - MINI_MESSAGE.parse( + MINI_MESSAGE.deserialize( TranslatableCaption.of("flag.flag_list_categories").getComponent(player), - Template.of("category", entry.getKey()) + TagResolver.resolver("category", Tag.inserting(entry.getKey().style(Style.empty()))) ); TextComponent.Builder builder = Component.text().append(category); final Iterator flagIterator = entry.getValue().iterator(); while (flagIterator.hasNext()) { final String flag = flagIterator.next(); builder.append(MINI_MESSAGE - .parse( + .deserialize( TranslatableCaption.of("flag.flag_list_flag").getComponent(player), - Template.of("command", "/plot flag info " + flag), - Template.of("flag", flag), - Template.of("suffix", flagIterator.hasNext() ? ", " : "") + TagResolver.builder() + .tag("command", Tag.preProcessParsed("/plot flag info " + flag)) + .tag("flag", Tag.inserting(Component.text(flag))) + .tag("suffix", Tag.inserting(Component.text(flagIterator.hasNext() ? ", " : ""))) + .build() )); } player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(builder.build()))); @@ -621,7 +660,7 @@ public final class FlagCommand extends Command { if (args.length < 1) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot flag info ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot flag info "))) ); return; } @@ -629,11 +668,17 @@ public final class FlagCommand extends Command { if (plotFlag != null) { player.sendMessage(TranslatableCaption.of("flag.flag_info_header")); // Flag name - player.sendMessage(TranslatableCaption.of("flag.flag_info_name"), Template.of("flag", plotFlag.getName())); + player.sendMessage( + TranslatableCaption.of("flag.flag_info_name"), + TagResolver.resolver("flag", Tag.inserting(Component.text(plotFlag.getName()))) + ); // Flag category player.sendMessage( TranslatableCaption.of("flag.flag_info_category"), - Templates.of(player, "value", plotFlag.getFlagCategory()) + TagResolver.resolver( + "value", + Tag.inserting(plotFlag.getFlagCategory().toComponent(player)) + ) ); // Flag description // TODO maybe merge and \n instead? @@ -642,16 +687,18 @@ public final class FlagCommand extends Command { // Flag example player.sendMessage( TranslatableCaption.of("flag.flag_info_example"), - Template.of("command", "/plot flag set"), - Template.of("flag", plotFlag.getName()), - Template.of("value", plotFlag.getExample()) + TagResolver.builder() + .tag("command", Tag.preProcessParsed("/plot flag set")) + .tag("flag", Tag.inserting(Component.text(plotFlag.getName()))) + .tag("value", Tag.inserting(Component.text(plotFlag.getExample()))) + .build() ); // Default value final String defaultValue = player.getLocation().getPlotArea().getFlagContainer() .getFlagErased(plotFlag.getClass()).toString(); player.sendMessage( TranslatableCaption.of("flag.flag_info_default_value"), - Template.of("value", defaultValue) + TagResolver.resolver("value", Tag.inserting(Component.text(defaultValue))) ); // Footer. Done this way to prevent the duplicate-message-thingy from catching it player.sendMessage(TranslatableCaption.of("flag.flag_info_footer")); diff --git a/Core/src/main/java/com/plotsquared/core/command/Grant.java b/Core/src/main/java/com/plotsquared/core/command/Grant.java index 47d201d49..c0a5cfea6 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Grant.java +++ b/Core/src/main/java/com/plotsquared/core/command/Grant.java @@ -40,7 +40,9 @@ import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; import com.plotsquared.core.uuid.UUIDMapping; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.Collection; import java.util.Collections; @@ -71,7 +73,7 @@ public class Grant extends Command { checkTrue( args.length >= 1 && args.length <= 2, TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot grant [player]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot grant [player]"))) ); final String arg0 = args[0].toLowerCase(); switch (arg0) { @@ -79,7 +81,7 @@ public class Grant extends Command { if (!Permissions.hasPermission(player, Permission.PERMISSION_GRANT.format(arg0))) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_GRANT.format(arg0)) + TagResolver.resolver("node", Tag.inserting(Component.text(Permission.PERMISSION_GRANT.format(arg0)))) ); return CompletableFuture.completedFuture(false); } @@ -92,7 +94,7 @@ public class Grant extends Command { } else if (throwable != null || uuids.size() != 1) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", String.valueOf(uuids)) + TagResolver.resolver("value", Tag.inserting(Component.text(String.valueOf(uuids)))) ); } else { final UUIDMapping uuid = uuids.toArray(new UUIDMapping[0])[0]; @@ -103,7 +105,7 @@ public class Grant extends Command { if (args[0].equalsIgnoreCase("check")) { player.sendMessage( TranslatableCaption.of("grants.granted_plots"), - Template.of("amount", String.valueOf(access.get().orElse(0))) + TagResolver.resolver("amount", Tag.inserting(Component.text(access.get().orElse(0)))) ); } else { access.set(access.get().orElse(0) + 1); @@ -123,7 +125,7 @@ public class Grant extends Command { } player.sendMessage( TranslatableCaption.of("grants.granted_plots"), - Template.of("amount", String.valueOf(granted)) + TagResolver.resolver("amount", Tag.inserting(Component.text(granted))) ); } else { // add int amount; @@ -138,7 +140,7 @@ public class Grant extends Command { DBFunc.addPersistentMeta(uuid.getUuid(), key, rawData, replace); player.sendMessage( TranslatableCaption.of("grants.added"), - Template.of("grants", String.valueOf(amount)) + TagResolver.resolver("grants", Tag.inserting(Component.text(amount))) ); } } diff --git a/Core/src/main/java/com/plotsquared/core/command/Help.java b/Core/src/main/java/com/plotsquared/core/command/Help.java index 6694e4fde..1b68c9f90 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Help.java +++ b/Core/src/main/java/com/plotsquared/core/command/Help.java @@ -35,7 +35,8 @@ import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.ArrayList; import java.util.Collection; @@ -117,27 +118,31 @@ public class Help extends Command { } if (cat == null && page == 0) { TextComponent.Builder builder = Component.text(); - builder.append(MINI_MESSAGE.parse(TranslatableCaption.of("help.help_header").getComponent(player))); + builder.append(MINI_MESSAGE.deserialize(TranslatableCaption.of("help.help_header").getComponent(player))); for (CommandCategory c : CommandCategory.values()) { if (!c.canAccess(player)) { continue; } builder.append(Component.newline()).append(MINI_MESSAGE - .parse( + .deserialize( TranslatableCaption.of("help.help_info_item").getComponent(player), - Template.of("command", "/plot help"), - Template.of("category", c.name().toLowerCase()), - Template.of("category_desc", c.getComponent(player)) + TagResolver.builder() + .tag("command", Tag.inserting(Component.text("/plot help"))) + .tag("category", Tag.inserting(Component.text(c.name().toLowerCase()))) + .tag("category_desc", Tag.inserting(c.toComponent(player))) + .build() )); } builder.append(Component.newline()).append(MINI_MESSAGE - .parse( + .deserialize( TranslatableCaption.of("help.help_info_item").getComponent(player), - Template.of("command", "/plot help"), - Template.of("category", "all"), - Template.of("category_desc", "Display all commands") + TagResolver.builder() + .tag("command", Tag.inserting(Component.text("/plot help"))) + .tag("category", Tag.inserting(Component.text("all"))) + .tag("category_desc", Tag.inserting(Component.text("Display all commands"))) + .build() )); - builder.append(Component.newline()).append(MINI_MESSAGE.parse(TranslatableCaption + builder.append(Component.newline()).append(MINI_MESSAGE.deserialize(TranslatableCaption .of("help.help_footer") .getComponent(player))); player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(builder.asComponent()))); diff --git a/Core/src/main/java/com/plotsquared/core/command/HomeCommand.java b/Core/src/main/java/com/plotsquared/core/command/HomeCommand.java index 845d7cc12..4d59f181f 100644 --- a/Core/src/main/java/com/plotsquared/core/command/HomeCommand.java +++ b/Core/src/main/java/com/plotsquared/core/command/HomeCommand.java @@ -42,7 +42,9 @@ import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.query.SortingStrategy; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.ArrayList; @@ -79,8 +81,10 @@ public class HomeCommand extends Command { } else if (plots.size() < page || page < 1) { player.sendMessage( TranslatableCaption.of("invalid.number_not_in_range"), - Template.of("min", "1"), - Template.of("max", String.valueOf(plots.size())) + TagResolver.builder() + .tag("min", Tag.inserting(Component.text(1))) + .tag("max", Tag.inserting(Component.text(plots.size()))) + .build() ); return; } @@ -115,7 +119,7 @@ public class HomeCommand extends Command { .hasPermission(player, Permission.PERMISSION_HOME)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_VISIT_OWNED.toString()) + TagResolver.resolver("node", Tag.inserting(Component.text(Permission.PERMISSION_VISIT_OWNED.toString()))) ); return CompletableFuture.completedFuture(false); } @@ -137,7 +141,7 @@ public class HomeCommand extends Command { } catch (NumberFormatException ignored) { player.sendMessage( TranslatableCaption.of("invalid.not_a_number"), - Template.of("value", identifier) + TagResolver.resolver("value", Tag.inserting(Component.text(identifier))) ); return CompletableFuture.completedFuture(false); } @@ -178,7 +182,7 @@ public class HomeCommand extends Command { } catch (NumberFormatException ignored) { player.sendMessage( TranslatableCaption.of("invalid.not_a_number"), - Template.of("value", identifier) + TagResolver.resolver("value", Tag.inserting(Component.text(identifier))) ); return CompletableFuture.completedFuture(false); } diff --git a/Core/src/main/java/com/plotsquared/core/command/Inbox.java b/Core/src/main/java/com/plotsquared/core/command/Inbox.java index 8b1ee5df6..8760c67af 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Inbox.java +++ b/Core/src/main/java/com/plotsquared/core/command/Inbox.java @@ -27,7 +27,6 @@ package com.plotsquared.core.command; import com.google.inject.TypeLiteral; import com.plotsquared.core.configuration.caption.StaticCaption; -import com.plotsquared.core.configuration.caption.Templates; import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.permissions.Permission; import com.plotsquared.core.player.MetaDataAccess; @@ -43,7 +42,8 @@ import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.task.RunnableVal; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.Collection; import java.util.Collections; @@ -79,9 +79,14 @@ public class Inbox extends SubCommand { max = comments.length; } TextComponent.Builder builder = Component.text(); - builder.append(MINI_MESSAGE.parse(TranslatableCaption.of("list.comment_list_header_paged").getComponent(player) + '\n', - Template.of("amount", String.valueOf(comments.length)), Template.of("cur", String.valueOf(page + 1)), - Template.of("max", String.valueOf(totalPages + 1)), Template.of("word", "all") + builder.append(MINI_MESSAGE.deserialize( + TranslatableCaption.of("list.comment_list_header_paged").getComponent(player) + '\n', + TagResolver.builder() + .tag("amount", Tag.inserting(Component.text(comments.length))) + .tag("cur", Tag.inserting(Component.text(page + 1))) + .tag("max", Tag.inserting(Component.text(totalPages + 1))) + .tag("word", Tag.inserting(Component.text("all"))) + .build() )); // This might work xD @@ -90,30 +95,28 @@ public class Inbox extends SubCommand { Component commentColored; if (player.getName().equals(comment.senderName)) { commentColored = MINI_MESSAGE - .parse( + .deserialize( TranslatableCaption.of("list.comment_list_by_lister").getComponent(player), - Template.of("comment", comment.comment) + TagResolver.resolver("comment", Tag.inserting(Component.text(comment.comment))) ); } else { commentColored = MINI_MESSAGE - .parse( + .deserialize( TranslatableCaption.of("list.comment_list_by_other").getComponent(player), - Template.of("comment", comment.comment) + TagResolver.resolver("comment", Tag.inserting(Component.text(comment.comment))) ); } - Template number = Template.of("number", String.valueOf(x)); - Template world = Template.of("world", comment.world); - Template plot_id = Template.of("plot_id", comment.id.getX() + ";" + comment.id.getY()); - Template commenter = Template.of("commenter", comment.senderName); - Template commentTemplate = Template.of("comment", commentColored); + TagResolver resolver = TagResolver.builder() + .tag("number", Tag.inserting(Component.text(x))) + .tag("world", Tag.inserting(Component.text(comment.world))) + .tag("plot_id", Tag.inserting(Component.text(comment.id.getX() + ";" + comment.id.getY()))) + .tag("commenter", Tag.inserting(Component.text(comment.senderName))) + .tag("comment", Tag.inserting(commentColored)) + .build(); builder.append(MINI_MESSAGE - .parse( + .deserialize( TranslatableCaption.of("list.comment_list_comment").getComponent(player), - number, - world, - plot_id, - commenter, - commentTemplate + resolver )); } player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(builder.build()))); @@ -150,20 +153,23 @@ public class Inbox extends SubCommand { if (total != 0) { player.sendMessage( TranslatableCaption.of("comment.inbox_item"), - Template.of("value", inbox + " (" + total + '/' + unread + ')') + TagResolver.resolver( + "value", + Tag.inserting(Component.text(inbox + " (" + total + '/' + unread + ')')) + ) ); return; } } player.sendMessage( TranslatableCaption.of("comment.inbox_item"), - Template.of("value", inbox.toString()) + TagResolver.resolver("value", Tag.inserting(Component.text(inbox.toString()))) ); } })) { player.sendMessage( TranslatableCaption.of("comment.inbox_item"), - Template.of("value", inbox.toString()) + TagResolver.resolver("value", Tag.inserting(Component.text(inbox.toString()))) ); } } @@ -174,7 +180,10 @@ public class Inbox extends SubCommand { if (inbox == null) { player.sendMessage( TranslatableCaption.of("comment.invalid_inbox"), - Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), ", ")) + TagResolver.resolver( + "list", + Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), ", "))) + ) ); return false; } @@ -197,7 +206,10 @@ public class Inbox extends SubCommand { if (args.length != 3) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot inbox " + inbox + " delete ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot inbox " + inbox + " delete ")) + ) ); return true; } @@ -207,14 +219,17 @@ public class Inbox extends SubCommand { if (index < 1) { player.sendMessage( TranslatableCaption.of("comment.not_valid_inbox_index"), - Templates.of("number", index) + TagResolver.resolver("number", Tag.inserting(Component.text(index))) ); return false; } } catch (NumberFormatException ignored) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot inbox " + inbox + " delete ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("/plot inbox " + inbox + " delete ")) + ) ); return false; } @@ -225,7 +240,7 @@ public class Inbox extends SubCommand { if (index > value.size()) { player.sendMessage( TranslatableCaption.of("comment.not_valid_inbox_index"), - Templates.of("number", index) + TagResolver.resolver("number", Tag.inserting(Component.text(index))) ); return; } @@ -235,7 +250,7 @@ public class Inbox extends SubCommand { if (success) { player.sendMessage( TranslatableCaption.of("comment.comment_removed_success"), - Template.of("value", comment.comment) + TagResolver.resolver("value", Tag.inserting(Component.text(comment.comment))) ); } else { player.sendMessage( @@ -256,7 +271,7 @@ public class Inbox extends SubCommand { if (!comments.isEmpty()) { player.sendMessage( TranslatableCaption.of("comment.comment_removed_success"), - Template.of("value", String.valueOf(comments)) + TagResolver.resolver("value", Tag.inserting(Component.text("*"))) ); plot.getPlotCommentContainer().removeComments(comments); } diff --git a/Core/src/main/java/com/plotsquared/core/command/Info.java b/Core/src/main/java/com/plotsquared/core/command/Info.java index cef8a550b..f2509148e 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Info.java +++ b/Core/src/main/java/com/plotsquared/core/command/Info.java @@ -36,7 +36,9 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.flag.implementations.HideInfoFlag; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.TabCompletions; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.Collection; import java.util.Collections; @@ -98,7 +100,10 @@ public class Info extends SubCommand { .hasPermission(Permission.PERMISSION_AREA_INFO_FORCE.toString())) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_AREA_INFO_FORCE.toString()) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_AREA_INFO_FORCE) + ) ); return true; } @@ -120,7 +125,10 @@ public class Info extends SubCommand { if (!hasOwner && !containsEveryone && !trustedEveryone) { player.sendMessage( TranslatableCaption.of("info.plot_info_unclaimed"), - Template.of("plot", plot.getId().getX() + ";" + plot.getId().getY()) + TagResolver.resolver( + "plot", + Tag.inserting(Component.text(plot.getId().getX() + ";" + plot.getId().getY())) + ) ); return true; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Kick.java b/Core/src/main/java/com/plotsquared/core/command/Kick.java index e3c049b14..dcc709090 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Kick.java +++ b/Core/src/main/java/com/plotsquared/core/command/Kick.java @@ -38,7 +38,9 @@ import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.PlayerManager; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.WorldUtil; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Collection; @@ -89,7 +91,7 @@ public class Kick extends SubCommand { } else if (throwable != null || uuids.isEmpty()) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); } else { Set> players = new HashSet<>(); @@ -113,7 +115,7 @@ public class Kick extends SubCommand { if (players.isEmpty()) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); return; } @@ -121,14 +123,14 @@ public class Kick extends SubCommand { if (!plot.equals(player2.getCurrentPlot())) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); return; } if (Permissions.hasPermission(player2, Permission.PERMISSION_ADMIN_ENTRY_DENIED)) { player.sendMessage( TranslatableCaption.of("cluster.cannot_kick_player"), - Template.of("name", player2.getName()) + TagResolver.resolver("name", Tag.inserting(Component.text(player2.getName()))) ); return; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Leave.java b/Core/src/main/java/com/plotsquared/core/command/Leave.java index bc5dcf898..1ad0b0164 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Leave.java +++ b/Core/src/main/java/com/plotsquared/core/command/Leave.java @@ -32,7 +32,9 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.UUID; @@ -74,7 +76,7 @@ public class Leave extends Command { } player.sendMessage( TranslatableCaption.of("member.plot_left"), - Template.of("player", player.getName()) + TagResolver.resolver("player", Tag.inserting(Component.text(player.getName()))) ); } else { player.sendMessage( diff --git a/Core/src/main/java/com/plotsquared/core/command/Like.java b/Core/src/main/java/com/plotsquared/core/command/Like.java index d848b1149..ba1cdf2dc 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Like.java +++ b/Core/src/main/java/com/plotsquared/core/command/Like.java @@ -41,7 +41,9 @@ import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Collection; @@ -160,7 +162,7 @@ public class Like extends SubCommand { if (oldRating != null) { player.sendMessage( TranslatableCaption.of("ratings.rating_already_exists"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); return; } @@ -178,12 +180,12 @@ public class Like extends SubCommand { if (like) { player.sendMessage( TranslatableCaption.of("ratings.rating_liked"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); } else { player.sendMessage( TranslatableCaption.of("ratings.rating_disliked"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); } } diff --git a/Core/src/main/java/com/plotsquared/core/command/ListCmd.java b/Core/src/main/java/com/plotsquared/core/command/ListCmd.java index 8fe2fd46c..0e43bff26 100644 --- a/Core/src/main/java/com/plotsquared/core/command/ListCmd.java +++ b/Core/src/main/java/com/plotsquared/core/command/ListCmd.java @@ -30,7 +30,6 @@ import com.plotsquared.core.PlotSquared; import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.caption.Caption; import com.plotsquared.core.configuration.caption.CaptionHolder; -import com.plotsquared.core.configuration.caption.Templates; import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.database.DBFunc; import com.plotsquared.core.permissions.Permission; @@ -55,7 +54,8 @@ import com.plotsquared.core.util.task.RunnableVal3; import com.plotsquared.core.uuid.UUIDMapping; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.ArrayList; @@ -132,7 +132,7 @@ public class ListCmd extends SubCommand { public void noArgs(PlotPlayer player) { player.sendMessage( TranslatableCaption.of("commandconfig.subcommand_set_options_header"), - Templates.of("values", Arrays.toString(getArgumentList(player))) + TagResolver.resolver("values", Tag.inserting(Component.text(Arrays.toString(getArgumentList(player))))) ); } @@ -168,9 +168,14 @@ public class ListCmd extends SubCommand { if (query == null) { player.sendMessage( TranslatableCaption.of("commandconfig.did_you_mean"), - Template.of( + TagResolver.resolver( "value", - new StringComparison<>(args[0], new String[]{"mine", "shared", "world", "all"}).getBestMatch() + Tag.inserting(Component.text( + new StringComparison<>( + args[0], + new String[]{"mine", "shared", "world", "all"} + ).getBestMatch() + )) ) ); return; @@ -198,7 +203,7 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_MINE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.mine") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.mine"))) ); return false; } @@ -213,7 +218,7 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_SHARED)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.shared") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.shared"))) ); return false; } @@ -226,14 +231,14 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_WORLD)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.world") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.world"))) ); return false; } if (!Permissions.hasPermission(player, "plots.list.world." + world)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.world." + world) + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.world." + world))) ); return false; } @@ -243,7 +248,7 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_EXPIRED)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.expired") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.expired"))) ); return false; } @@ -257,14 +262,14 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_AREA)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.area") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.area"))) ); return false; } if (!Permissions.hasPermission(player, "plots.list.world." + world)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.world." + world) + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.world." + world))) ); return false; } @@ -278,7 +283,7 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_ALL)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.all") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.all"))) ); return false; } @@ -288,7 +293,7 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_DONE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.done") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.done"))) ); return false; } @@ -303,7 +308,7 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_TOP)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.top") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.top"))) ); return false; } @@ -314,7 +319,7 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_FOR_SALE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.forsale") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.forsale"))) ); return false; } @@ -327,7 +332,7 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_UNOWNED)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.unowned") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.unowned"))) ); return false; } @@ -337,14 +342,14 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_FUZZY)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.fuzzy") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.fuzzy"))) ); return false; } if (args.length < (page == -1 ? 2 : 3)) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Templates.of("value", "/plot list fuzzy [#]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot list fuzzy [#]"))) ); return false; } @@ -362,14 +367,14 @@ public class ListCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_WORLD)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.world") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.world"))) ); return false; } if (!Permissions.hasPermission(player, "plots.list.world." + args[0])) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.world." + args[0]) + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.world." + args[0]))) ); return false; } @@ -388,12 +393,15 @@ public class ListCmd extends SubCommand { } } if (uuid == null) { - player.sendMessage(TranslatableCaption.of("errors.invalid_player"), Templates.of("value", args[0])); + player.sendMessage( + TranslatableCaption.of("errors.invalid_player"), + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) + ); } else { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_PLAYER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Templates.of("node", "plots.list.player") + TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.player"))) ); } else { sort[0] = false; @@ -429,32 +437,34 @@ public class ListCmd extends SubCommand { } else { color = TranslatableCaption.of("info.plot_list_default"); } - Component trusted = MINI_MESSAGE.parse( + Component trusted = MINI_MESSAGE.deserialize( TranslatableCaption.of("info.plot_info_trusted").getComponent(player), - Template.of("trusted", PlayerManager.getPlayerList(plot.getTrusted(), player)) + TagResolver.resolver("trusted", Tag.inserting(PlayerManager.getPlayerList(plot.getTrusted(), player))) ); - Component members = MINI_MESSAGE.parse( + Component members = MINI_MESSAGE.deserialize( TranslatableCaption.of("info.plot_info_members").getComponent(player), - Template.of("members", PlayerManager.getPlayerList(plot.getMembers(), player)) + TagResolver.resolver("members", Tag.inserting(PlayerManager.getPlayerList(plot.getMembers(), player))) ); - Template command_tp = Template.of("command_tp", "/plot visit " + plot.getArea() + ";" + plot.getId()); - Template command_info = Template.of("command_info", "/plot info " + plot.getArea() + ";" + plot.getId()); - Template hover_info = - Template.of( - "hover_info", - MINI_MESSAGE.serialize(Component - .text() - .append(trusted) - .append(Component.newline()) - .append(members) - .asComponent()) - ); - Template numberTemplate = Template.of("number", String.valueOf(i)); - Template plotTemplate = Template.of( - "plot", - MINI_MESSAGE.parse(color.getComponent(player), Template.of("plot", plot.toString())) + TagResolver.Builder finalResolver = TagResolver.builder(); + finalResolver.tag( + "command_tp", + Tag.preProcessParsed("/plot visit " + plot.getArea() + ";" + plot.getId()) ); - + finalResolver.tag( + "command_info", + Tag.preProcessParsed("/plot info " + plot.getArea() + ";" + plot.getId()) + ); + finalResolver.tag("hover_info", Tag.inserting( + Component.text() + .append(trusted) + .append(Component.newline()) + .append(members) + .asComponent() + )); + finalResolver.tag("number", Tag.inserting(Component.text(i))); + finalResolver.tag("plot", Tag.inserting(MINI_MESSAGE.deserialize( + color.getComponent(player), TagResolver.resolver("plot", Tag.inserting(Component.text(plot.toString()))) + ))); String prefix = ""; String online = TranslatableCaption.of("info.plot_list_player_online").getComponent(player); String offline = TranslatableCaption.of("info.plot_list_player_offline").getComponent(player); @@ -463,35 +473,37 @@ public class ListCmd extends SubCommand { String everyone = TranslatableCaption.of("info.plot_list_player_everyone").getComponent(player); TextComponent.Builder builder = Component.text(); if (plot.getFlag(ServerPlotFlag.class)) { - Template serverTemplate = Template.of( + TagResolver serverResolver = TagResolver.resolver( "info.server", - TranslatableCaption.of("info.server").getComponent(player) + Tag.inserting(TranslatableCaption.of("info.server").toComponent(player)) ); - builder.append(MINI_MESSAGE.parse(server, serverTemplate)); + builder.append(MINI_MESSAGE.deserialize(server, serverResolver)); } else { try { final List names = PlotSquared.get().getImpromptuUUIDPipeline().getNames(plot.getOwners()) .get(Settings.UUID.BLOCKING_TIMEOUT, TimeUnit.MILLISECONDS); for (final UUIDMapping uuidMapping : names) { PlotPlayer pp = PlotSquared.platform().playerManager().getPlayerIfExists(uuidMapping.getUuid()); - Template prefixTemplate = Template.of("prefix", prefix); - Template playerTemplate = Template.of("player", uuidMapping.getUsername()); - if (pp != null) { - builder.append(MINI_MESSAGE.parse(online, prefixTemplate, playerTemplate)); + TagResolver resolver = TagResolver.builder() + .tag("prefix", Tag.inserting(Component.text(prefix))) + .tag("player", Tag.inserting(Component.text(uuidMapping.getUsername()))) + .build(); + if (pp != null) { + builder.append(MINI_MESSAGE.deserialize(online, resolver)); } else if (uuidMapping.getUsername().equalsIgnoreCase("unknown")) { - Template unknownTemplate = Template.of( + TagResolver unknownResolver = TagResolver.resolver( "info.unknown", - TranslatableCaption.of("info.unknown").getComponent(player) + Tag.inserting(TranslatableCaption.of("info.unknown").toComponent(player)) ); - builder.append(MINI_MESSAGE.parse(unknown, unknownTemplate)); + builder.append(MINI_MESSAGE.deserialize(unknown, unknownResolver)); } else if (uuidMapping.getUuid().equals(DBFunc.EVERYONE)) { - Template everyoneTemplate = Template.of( + TagResolver everyoneResolver = TagResolver.resolver( "info.everyone", - TranslatableCaption.of("info.everyone").getComponent(player) + Tag.inserting(TranslatableCaption.of("info.everyone").toComponent(player)) ); - builder.append(MINI_MESSAGE.parse(everyone, everyoneTemplate)); + builder.append(MINI_MESSAGE.deserialize(everyone, everyoneResolver)); } else { - builder.append(MINI_MESSAGE.parse(offline, prefixTemplate, playerTemplate)); + builder.append(MINI_MESSAGE.deserialize(offline, resolver)); } prefix = ", "; } @@ -507,15 +519,15 @@ public class ListCmd extends SubCommand { } player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Templates.of("value", playerBuilder.toString()) + TagResolver.resolver("value", Tag.inserting(Component.text(playerBuilder.toString()))) ); } catch (TimeoutException e) { player.sendMessage(TranslatableCaption.of("players.fetching_players_timeout")); } } - Template players = Template.of("players", builder.asComponent()); + finalResolver.tag("players", Tag.inserting(builder.asComponent())); caption.set(TranslatableCaption.of("info.plot_list_item")); - caption.setTemplates(command_tp, command_info, hover_info, numberTemplate, plotTemplate, players); + caption.setTagResolvers(finalResolver.build()); } }, "/plot list " + args[0], TranslatableCaption.of("list.plot_list_header_paged")); } diff --git a/Core/src/main/java/com/plotsquared/core/command/Load.java b/Core/src/main/java/com/plotsquared/core/command/Load.java index 86878d15a..b3342afe1 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Load.java +++ b/Core/src/main/java/com/plotsquared/core/command/Load.java @@ -43,7 +43,9 @@ import com.plotsquared.core.util.SchematicHandler; import com.plotsquared.core.util.TimeUtil; import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.net.MalformedURLException; @@ -106,7 +108,7 @@ public class Load extends SubCommand { // No schematics found: player.sendMessage( TranslatableCaption.of("web.load_null"), - Template.of("command", "/plot load") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot load"))) ); return false; } @@ -117,7 +119,7 @@ public class Load extends SubCommand { // use /plot load player.sendMessage( TranslatableCaption.of("invalid.not_valid_number"), - Template.of("value", "(1, " + schematics.size() + ')') + TagResolver.resolver("value", Tag.inserting(Component.text("(1, " + schematics.size() + ')'))) ); return false; } @@ -137,7 +139,10 @@ public class Load extends SubCommand { plot.removeRunning(); player.sendMessage( TranslatableCaption.of("schematics.schematic_invalid"), - Template.of("reason", "non-existent or not in gzip format") + TagResolver.resolver( + "reason", + Tag.inserting(Component.text("non-existent or not in gzip format")) + ) ); return; } @@ -168,7 +173,7 @@ public class Load extends SubCommand { plot.removeRunning(); player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot load ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot load "))) ); return false; } @@ -219,7 +224,7 @@ public class Load extends SubCommand { } player.sendMessage( TranslatableCaption.of("web.load_list"), - Template.of("command", "/plot load #") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot load #"))) ); } } diff --git a/Core/src/main/java/com/plotsquared/core/command/MainCommand.java b/Core/src/main/java/com/plotsquared/core/command/MainCommand.java index e343ec2e5..5e21fef4e 100644 --- a/Core/src/main/java/com/plotsquared/core/command/MainCommand.java +++ b/Core/src/main/java/com/plotsquared/core/command/MainCommand.java @@ -43,6 +43,9 @@ import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.PlotExpression; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -318,7 +321,7 @@ public class MainCommand extends Command { if (message != null) { player.sendMessage( TranslatableCaption.of("errors.error"), - net.kyori.adventure.text.minimessage.Template.of("value", message) + TagResolver.resolver("value", Tag.inserting(Component.text(message))) ); } else { player.sendMessage( diff --git a/Core/src/main/java/com/plotsquared/core/command/Merge.java b/Core/src/main/java/com/plotsquared/core/command/Merge.java index 82c8133cc..721a04b21 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Merge.java +++ b/Core/src/main/java/com/plotsquared/core/command/Merge.java @@ -42,7 +42,9 @@ import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.PlotExpression; import com.plotsquared.core.util.StringMan; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.UUID; @@ -122,11 +124,13 @@ public class Merge extends SubCommand { if (direction == null) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot merge <" + StringMan.join(values, " | ") + "> [removeroads]") + TagResolver.resolver("value", Tag.inserting(Component.text( + "/plot merge <" + StringMan.join(values, " | ") + "> [removeroads]" + ))) ); player.sendMessage( TranslatableCaption.of("help.direction"), - Template.of("dir", direction(location.getYaw())) + TagResolver.resolver("dir", Tag.inserting(Component.text(direction(location.getYaw())))) ); return false; } @@ -137,7 +141,7 @@ public class Merge extends SubCommand { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Merge") + TagResolver.resolver("value", Tag.inserting(Component.text("Merge"))) ); return false; } @@ -148,7 +152,7 @@ public class Merge extends SubCommand { if (!force && size - 1 > maxSize) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_MERGE + "." + (size + 1)) + TagResolver.resolver("node", Tag.inserting(Component.text(Permission.PERMISSION_MERGE + "." + (size + 1)))) ); return false; } @@ -175,7 +179,10 @@ public class Merge extends SubCommand { .hasPermission(player, Permission.PERMISSION_MERGE_KEEP_ROAD)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_MERGE_KEEP_ROAD)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_MERGE_KEEP_ROAD) + ) ); return true; } @@ -184,8 +191,11 @@ public class Merge extends SubCommand { this.econHandler.withdrawMoney(player, price); player.sendMessage( TranslatableCaption.of("economy.removed_balance"), - Template.of("money", this.econHandler.format(price)), - Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))), + TagResolver.resolver( + "balance", + Tag.inserting(Component.text(this.econHandler.format(this.econHandler.getMoney(player)))) + ) ); } player.sendMessage(TranslatableCaption.of("merge.success_merge")); @@ -199,7 +209,7 @@ public class Merge extends SubCommand { && this.econHandler.getMoney(player) < price) { player.sendMessage( TranslatableCaption.of("economy.cannot_afford_merge"), - Template.of("money", this.econHandler.format(price)) + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) ); return false; } @@ -213,7 +223,7 @@ public class Merge extends SubCommand { .hasPermission(player, Permission.PERMISSION_MERGE_KEEP_ROAD)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_MERGE_KEEP_ROAD)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_MERGE_KEEP_ROAD)) ); return true; } @@ -222,7 +232,7 @@ public class Merge extends SubCommand { this.econHandler.withdrawMoney(player, price); player.sendMessage( TranslatableCaption.of("economy.removed_balance"), - Template.of("money", this.econHandler.format(price)) + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) ); } player.sendMessage(TranslatableCaption.of("merge.success_merge")); @@ -238,7 +248,7 @@ public class Merge extends SubCommand { if (!force && !Permissions.hasPermission(player, Permission.PERMISSION_MERGE_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_MERGE_OTHER)) + TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_MERGE_OTHER)) ); return false; } @@ -263,14 +273,14 @@ public class Merge extends SubCommand { if (!force && this.econHandler.getMoney(player) < price) { player.sendMessage( TranslatableCaption.of("economy.cannot_afford_merge"), - Template.of("money", this.econHandler.format(price)) + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) ); return; } this.econHandler.withdrawMoney(player, price); player.sendMessage( TranslatableCaption.of("economy.removed_balance"), - Template.of("money", this.econHandler.format(price)) + TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) ); } player.sendMessage(TranslatableCaption.of("merge.success_merge")); @@ -278,10 +288,15 @@ public class Merge extends SubCommand { }; if (!force && hasConfirmation(player)) { CmdConfirm.addPending(accepter, MINI_MESSAGE.serialize(MINI_MESSAGE - .parse( + .deserialize( TranslatableCaption.of("merge.merge_request_confirm").getComponent(player), - Template.of("player", player.getName()), - Template.of("location", plot.getWorldName() + ";" + plot.getId()) + TagResolver.builder() + .tag("player", Tag.inserting(Component.text(player.getName()))) + .tag( + "location", + Tag.inserting(Component.text(plot.getWorldName() + " " + plot.getId())) + ) + .build() )), run ); diff --git a/Core/src/main/java/com/plotsquared/core/command/Move.java b/Core/src/main/java/com/plotsquared/core/command/Move.java index e94a9d8ef..d1ecad038 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Move.java +++ b/Core/src/main/java/com/plotsquared/core/command/Move.java @@ -36,7 +36,9 @@ import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.concurrent.CompletableFuture; @@ -114,8 +116,10 @@ public class Move extends SubCommand { if (result) { player.sendMessage( TranslatableCaption.of("move.move_success"), - Template.of("origin", p1), - Template.of("target", p2) + TagResolver.builder() + .tag("origin", Tag.inserting(Component.text(p1))) + .tag("target", Tag.inserting(Component.text(p2))) + .build() ); return true; } else { diff --git a/Core/src/main/java/com/plotsquared/core/command/Music.java b/Core/src/main/java/com/plotsquared/core/command/Music.java index a8eec9db8..cdb2a58d6 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Music.java +++ b/Core/src/main/java/com/plotsquared/core/command/Music.java @@ -43,7 +43,9 @@ import com.plotsquared.core.util.InventoryUtil; import com.plotsquared.core.util.Permissions; import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemTypes; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import javax.annotation.Nullable; @@ -90,7 +92,10 @@ public class Music extends SubCommand { .hasPermission(player, Permission.PERMISSION_ADMIN_MUSIC_OTHER)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_MUSIC_OTHER)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_ADMIN_MUSIC_OTHER) + ) ); return true; } @@ -113,15 +118,17 @@ public class Music extends SubCommand { if (event.getEventResult() == Result.DENY) { getPlayer().sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Music removal") + TagResolver.resolver("value", Tag.inserting(Component.text("Music removal"))) ); return true; } plot.removeFlag(event.getFlag()); getPlayer().sendMessage( TranslatableCaption.of("flag.flag_removed"), - Template.of("flag", "music"), - Template.of("value", "music_disc") + TagResolver.builder() + .tag("flag", Tag.inserting(Component.text("music"))) + .tag("value", Tag.inserting(Component.text("music_disc"))) + .build() ); } else if (item.getName().toLowerCase(Locale.ENGLISH).contains("disc")) { PlotFlag plotFlag = plot.getFlagContainer().getFlag(MusicFlag.class) @@ -130,13 +137,17 @@ public class Music extends SubCommand { if (event.getEventResult() == Result.DENY) { getPlayer().sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Music addition") + TagResolver.resolver("value", Tag.inserting(Component.text("Music addition"))) ); return true; } plot.setFlag(event.getFlag()); - getPlayer().sendMessage(TranslatableCaption.of("flag.flag_added"), Template.of("flag", "music"), - Template.of("value", String.valueOf(event.getFlag().getValue())) + getPlayer().sendMessage( + TranslatableCaption.of("flag.flag_added"), + TagResolver.builder() + .tag("flag", Tag.inserting(Component.text("music"))) + .tag("value", Tag.inserting(Component.text(event.getFlag().getValue().toString()))) + .build() ); } else { getPlayer().sendMessage(TranslatableCaption.of("flag.flag_not_added")); diff --git a/Core/src/main/java/com/plotsquared/core/command/Near.java b/Core/src/main/java/com/plotsquared/core/command/Near.java index 8684ee118..898ffa5aa 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Near.java +++ b/Core/src/main/java/com/plotsquared/core/command/Near.java @@ -31,7 +31,9 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.concurrent.CompletableFuture; @@ -55,7 +57,7 @@ public class Near extends Command { final Plot plot = check(player.getCurrentPlot(), TranslatableCaption.of("errors.not_in_plot")); player.sendMessage( TranslatableCaption.of("near.plot_near"), - Template.of("list", StringMan.join(plot.getPlayersInPlot(), ", ")) + TagResolver.resolver("list", Tag.inserting(Component.text(StringMan.join(plot.getPlayersInPlot(), ", ")))) ); return CompletableFuture.completedFuture(true); } diff --git a/Core/src/main/java/com/plotsquared/core/command/Owner.java b/Core/src/main/java/com/plotsquared/core/command/Owner.java index 661d70665..c6c7172fe 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Owner.java +++ b/Core/src/main/java/com/plotsquared/core/command/Owner.java @@ -42,7 +42,9 @@ import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.PlayerManager; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -73,7 +75,7 @@ public class Owner extends SetCommand { if (value == null || value.isEmpty()) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot setowner ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot setowner "))) ); return false; } @@ -85,7 +87,7 @@ public class Owner extends SetCommand { && !value.equalsIgnoreCase("-")) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", value) + TagResolver.resolver("value", Tag.inserting(Component.text(value))) ); return; } @@ -99,7 +101,7 @@ public class Owner extends SetCommand { if (event.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Owner change") + TagResolver.resolver("value", Tag.inserting(Component.text("Owner change"))) ); return; } @@ -122,7 +124,7 @@ public class Owner extends SetCommand { if (unlinkEvent.getEventResult() == Result.DENY) { player.sendMessage( TranslatableCaption.of("events.event_denied"), - Template.of("value", "Unlink on owner change") + TagResolver.resolver("value", Tag.inserting(Component.text("Unlink on owner change"))) ); return; } @@ -142,7 +144,10 @@ public class Owner extends SetCommand { if (plot.isOwner(uuid)) { player.sendMessage( TranslatableCaption.of("member.already_owner"), - Template.of("player", PlayerManager.resolveName(uuid, false).getComponent(player)) + TagResolver.resolver( + "player", + Tag.inserting(PlayerManager.resolveName(uuid, false).toComponent(player)) + ) ); return; } @@ -151,7 +156,10 @@ public class Owner extends SetCommand { if (other == null) { player.sendMessage( TranslatableCaption.of("errors.invalid_player_offline"), - Template.of("player", PlayerManager.resolveName(uuid).getComponent(player)) + TagResolver.resolver( + "player", + Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player)) + ) ); return; } @@ -187,7 +195,10 @@ public class Owner extends SetCommand { if (other != null) { other.sendMessage( TranslatableCaption.of("owner.now_owner"), - Template.of("plot", plot.getArea() + ";" + plot.getId()) + TagResolver.resolver( + "plot", + Tag.inserting(Component.text(plot.getArea() + ";" + plot.getId())) + ) ); } } else { diff --git a/Core/src/main/java/com/plotsquared/core/command/PluginCmd.java b/Core/src/main/java/com/plotsquared/core/command/PluginCmd.java index 34aaf3c47..de6259e06 100644 --- a/Core/src/main/java/com/plotsquared/core/command/PluginCmd.java +++ b/Core/src/main/java/com/plotsquared/core/command/PluginCmd.java @@ -30,7 +30,9 @@ import com.plotsquared.core.configuration.caption.StaticCaption; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.util.PremiumVerification; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; @CommandDeclaration(command = "plugin", permission = "plots.use", @@ -46,7 +48,7 @@ public class PluginCmd extends SubCommand { StaticCaption.of(">> " + PlotSquared .platform() .pluginName() + " (Version: )"), - Template.of("version", String.valueOf(PlotSquared.get().getVersion())) + TagResolver.resolver("version", Tag.inserting(Component.text(String.valueOf(PlotSquared.get().getVersion())))) ); player.sendMessage(StaticCaption.of( ">> Authors: Citymonstret & Empire92 & MattBDev & dordsor21 & NotMyFault & SirYwell")); @@ -56,7 +58,7 @@ public class PluginCmd extends SubCommand { ">> Discord: https://discord.gg/intellectualsites")); player.sendMessage( StaticCaption.of(">> Premium: "), - Template.of("value", String.valueOf(PremiumVerification.isPremium())) + TagResolver.resolver("value", Tag.inserting(Component.text(PremiumVerification.isPremium()))) ); }); return true; diff --git a/Core/src/main/java/com/plotsquared/core/command/Purge.java b/Core/src/main/java/com/plotsquared/core/command/Purge.java index c2268a5de..468a8e204 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Purge.java +++ b/Core/src/main/java/com/plotsquared/core/command/Purge.java @@ -40,7 +40,9 @@ import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.uuid.UUIDMapping; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.checkerframework.checker.nullness.qual.NonNull; @@ -105,7 +107,7 @@ public class Purge extends SubCommand { if (area == null) { player.sendMessage( TranslatableCaption.of("errors.not_valid_plot_world"), - Template.of("value", split[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(split[1]))) ); return false; } @@ -117,7 +119,7 @@ public class Purge extends SubCommand { } catch (IllegalArgumentException ignored) { player.sendMessage( TranslatableCaption.of("invalid.not_valid_plot_id"), - Template.of("value", split[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(split[1]))) ); return false; } @@ -128,7 +130,7 @@ public class Purge extends SubCommand { if (ownerMapping == null) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", split[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(split[1]))) ); return false; } @@ -140,7 +142,7 @@ public class Purge extends SubCommand { if (addedMapping == null) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", split[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(split[1]))) ); return false; } @@ -265,7 +267,10 @@ public class Purge extends SubCommand { DBFunc.purgeIds(ids); player.sendMessage( TranslatableCaption.of("purge.purge_success"), - Template.of("amount", ids.size() + "/" + toDelete.size()) + TagResolver.resolver( + "amount", + Tag.inserting(Component.text(ids.size() + "/" + toDelete.size())) + ) ); }); } diff --git a/Core/src/main/java/com/plotsquared/core/command/Rate.java b/Core/src/main/java/com/plotsquared/core/command/Rate.java index b6d7d8133..043c56d92 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Rate.java +++ b/Core/src/main/java/com/plotsquared/core/command/Rate.java @@ -45,7 +45,9 @@ import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Collection; @@ -155,7 +157,7 @@ public class Rate extends SubCommand { if (plot.getRatings().containsKey(player.getUUID())) { player.sendMessage( TranslatableCaption.of("ratings.rating_already_exists"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); return; } @@ -175,7 +177,7 @@ public class Rate extends SubCommand { plot.addRating(this.getPlayer().getUUID(), event.getRating()); getPlayer().sendMessage( TranslatableCaption.of("ratings.rating_applied"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); } return false; @@ -248,7 +250,7 @@ public class Rate extends SubCommand { if (plot.getRatings().containsKey(uuid)) { player.sendMessage( TranslatableCaption.of("ratings.rating_already_exists"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); return; } @@ -258,7 +260,7 @@ public class Rate extends SubCommand { plot.addRating(uuid, event.getRating()); player.sendMessage( TranslatableCaption.of("ratings.rating_applied"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); } }; diff --git a/Core/src/main/java/com/plotsquared/core/command/RegenAllRoads.java b/Core/src/main/java/com/plotsquared/core/command/RegenAllRoads.java index 1c49d8a05..b74fdaf9f 100644 --- a/Core/src/main/java/com/plotsquared/core/command/RegenAllRoads.java +++ b/Core/src/main/java/com/plotsquared/core/command/RegenAllRoads.java @@ -33,7 +33,9 @@ import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotManager; import com.plotsquared.core.plot.world.PlotAreaManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; @CommandDeclaration(command = "regenallroads", @@ -65,18 +67,18 @@ public class RegenAllRoads extends SubCommand { } catch (NumberFormatException ignored) { player.sendMessage( TranslatableCaption.of("invalid.not_valid_number"), - Template.of("value", "(0, 256)") + TagResolver.resolver("value", Tag.inserting(Component.text("(0, 256)"))) ); player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot regenallroads [height]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot regenallroads [height]"))) ); return false; } } else if (args.length != 1) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot regenallroads [height]") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot regenallroads [height]"))) ); return false; } @@ -84,7 +86,7 @@ public class RegenAllRoads extends SubCommand { if (area == null) { player.sendMessage( TranslatableCaption.of("errors.not_valid_plot_world"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); return false; } @@ -95,7 +97,7 @@ public class RegenAllRoads extends SubCommand { } player.sendMessage( TranslatableCaption.of("debugroadregen.schematic"), - Template.of("command", "/plot createroadschematic") + TagResolver.resolver("command", Tag.inserting(Component.text("/plot createroadschematic"))) ); player.sendMessage(TranslatableCaption.of("debugroadregen.regenallroads_started")); boolean result = this.hybridUtils.scheduleRoadUpdate(area, height); diff --git a/Core/src/main/java/com/plotsquared/core/command/Remove.java b/Core/src/main/java/com/plotsquared/core/command/Remove.java index c76b85c38..94f6689ee 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Remove.java +++ b/Core/src/main/java/com/plotsquared/core/command/Remove.java @@ -36,7 +36,9 @@ import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.PlayerManager; import com.plotsquared.core.util.TabCompletions; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Collection; @@ -86,7 +88,7 @@ public class Remove extends SubCommand { } else if (throwable != null) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); return; } else if (!uuids.isEmpty()) { @@ -123,12 +125,12 @@ public class Remove extends SubCommand { if (count == 0) { player.sendMessage( TranslatableCaption.of("errors.invalid_player"), - Template.of("value", args[0]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[0]))) ); } else { player.sendMessage( TranslatableCaption.of("member.removed_players"), - Template.of("amount", count + "") + TagResolver.resolver("amount", Tag.inserting(Component.text(count))) ); } }); diff --git a/Core/src/main/java/com/plotsquared/core/command/Save.java b/Core/src/main/java/com/plotsquared/core/command/Save.java index 27c408e27..8ce2e4dda 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Save.java +++ b/Core/src/main/java/com/plotsquared/core/command/Save.java @@ -39,7 +39,9 @@ import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.SchematicHandler; import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.net.URL; @@ -123,7 +125,7 @@ public class Save extends SubCommand { player.sendMessage(TranslatableCaption.of("web.save_success")); player.sendMessage( TranslatableCaption.of("errors.deprecated_commands"), - Template.of("replacement", "/plot download") + TagResolver.resolver("replacement", Tag.inserting(Component.text("/plot download"))) ); try (final MetaDataAccess> schematicAccess = player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_SCHEMATICS)) { diff --git a/Core/src/main/java/com/plotsquared/core/command/SchematicCmd.java b/Core/src/main/java/com/plotsquared/core/command/SchematicCmd.java index 60dd5feab..e40cc987e 100644 --- a/Core/src/main/java/com/plotsquared/core/command/SchematicCmd.java +++ b/Core/src/main/java/com/plotsquared/core/command/SchematicCmd.java @@ -43,7 +43,9 @@ import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.TaskManager; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.net.URL; @@ -80,7 +82,7 @@ public class SchematicCmd extends SubCommand { if (args.length < 1) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Possible values: save, paste, exportall, list") + TagResolver.resolver("value", Tag.inserting(Component.text("Possible values: save, paste, exportall, list"))) ); return true; } @@ -90,14 +92,20 @@ public class SchematicCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_PASTE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_SCHEMATIC_PASTE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_SCHEMATIC_PASTE) + ) ); return false; } if (args.length < 2) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Possible values: save, paste, exportall, list") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("Possible values: save, paste, exportall, list")) + ) ); break; } @@ -138,7 +146,10 @@ public class SchematicCmd extends SubCommand { e.printStackTrace(); player.sendMessage( TranslatableCaption.of("schematics.schematic_invalid"), - Template.of("reason", "non-existent url: " + location) + TagResolver.resolver( + "reason", + Tag.inserting(Component.text("non-existent url: " + location)) + ) ); SchematicCmd.this.running = false; return; @@ -154,7 +165,10 @@ public class SchematicCmd extends SubCommand { SchematicCmd.this.running = false; player.sendMessage( TranslatableCaption.of("schematics.schematic_invalid"), - Template.of("reason", "non-existent or not in gzip format") + TagResolver.resolver( + "reason", + Tag.inserting(Component.text("non-existent or not in gzip format")) + ) ); return; } @@ -189,7 +203,10 @@ public class SchematicCmd extends SubCommand { player.sendMessage(TranslatableCaption.of("schematics.schematic_exportall_world_args")); player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Use /plot schematic exportall ") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("Use /plot schematic exportall ")) + ) ); return false; } @@ -197,7 +214,7 @@ public class SchematicCmd extends SubCommand { if (area == null) { player.sendMessage( TranslatableCaption.of("errors.not_valid_plot_world"), - Template.of("value", args[1]) + TagResolver.resolver("value", Tag.inserting(Component.text(args[1]))) ); return false; } @@ -206,7 +223,7 @@ public class SchematicCmd extends SubCommand { player.sendMessage(TranslatableCaption.of("schematic.schematic_exportall_world")); player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Use /plot sch exportall ") + TagResolver.resolver("value", Tag.inserting(Component.text("Use /plot sch exportall "))) ); return false; } @@ -220,7 +237,7 @@ public class SchematicCmd extends SubCommand { player.sendMessage(TranslatableCaption.of("schematics.schematic_exportall_started")); player.sendMessage( TranslatableCaption.of("schematics.plot_to_schem"), - Template.of("amount", String.valueOf(plots.size())) + TagResolver.resolver("amount", Tag.inserting(Component.text(plots.size()))) ); } } @@ -228,7 +245,10 @@ public class SchematicCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_SAVE)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_SCHEMATIC_SAVE)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_SCHEMATIC_SAVE) + ) ); return false; } @@ -271,19 +291,22 @@ public class SchematicCmd extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_LIST)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", String.valueOf(Permission.PERMISSION_SCHEMATIC_LIST)) + TagResolver.resolver( + "node", + Tag.inserting(Permission.PERMISSION_SCHEMATIC_LIST) + ) ); return false; } final String string = StringMan.join(this.schematicHandler.getSchematicNames(), "$2, $1"); player.sendMessage( TranslatableCaption.of("schematics.schematic_list"), - Template.of("list", string) + TagResolver.resolver("list", Tag.inserting(Component.text(string))) ); } default -> player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Possible values: save, paste, exportall, list") + TagResolver.resolver("value", Tag.inserting(Component.text("Possible values: save, paste, exportall, list"))) ); } return true; diff --git a/Core/src/main/java/com/plotsquared/core/command/Set.java b/Core/src/main/java/com/plotsquared/core/command/Set.java index 615d8d141..61ec7482d 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Set.java +++ b/Core/src/main/java/com/plotsquared/core/command/Set.java @@ -47,7 +47,9 @@ import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.world.block.BlockCategory; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.ArrayList; @@ -130,7 +132,7 @@ public class Set extends SubCommand { } player.sendMessage( TranslatableCaption.of("invalid.component_illegal_block"), - Template.of("value", forbiddenType) + TagResolver.resolver("value", Tag.inserting(Component.text(forbiddenType))) ); return true; } @@ -142,7 +144,10 @@ public class Set extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_SET_COMPONENT.format(component))) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_SET_COMPONENT.format(component)) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_SET_COMPONENT.format(component))) + ) ); return false; } @@ -165,7 +170,7 @@ public class Set extends SubCommand { plot.removeRunning(); player.sendMessage( TranslatableCaption.of("working.component_complete"), - Template.of("plot", plot.getId().toString()) + TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString()))) ); }); if (Settings.QUEUE.NOTIFY_PROGRESS) { diff --git a/Core/src/main/java/com/plotsquared/core/command/SetCommand.java b/Core/src/main/java/com/plotsquared/core/command/SetCommand.java index 69fd4d198..b37d9c1c7 100644 --- a/Core/src/main/java/com/plotsquared/core/command/SetCommand.java +++ b/Core/src/main/java/com/plotsquared/core/command/SetCommand.java @@ -32,7 +32,9 @@ import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.StringMan; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; public abstract class SetCommand extends SubCommand { @@ -48,7 +50,10 @@ public abstract class SetCommand extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND.format(getFullId()))) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_ADMIN_COMMAND.format(getFullId())) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_COMMAND.format(getFullId()))) + ) ); player.sendMessage(TranslatableCaption.of("working.plot_not_claimed")); return false; @@ -58,7 +63,10 @@ public abstract class SetCommand extends SubCommand { if (!Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND.format(getFullId()))) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - Template.of("node", Permission.PERMISSION_ADMIN_COMMAND.format(getFullId())) + TagResolver.resolver( + "node", + Tag.inserting(Component.text(Permission.PERMISSION_ADMIN_COMMAND.format(getFullId()))) + ) ); player.sendMessage(TranslatableCaption.of("permission.no_plot_perms")); return false; diff --git a/Core/src/main/java/com/plotsquared/core/command/SetHome.java b/Core/src/main/java/com/plotsquared/core/command/SetHome.java index c54691c36..956b37341 100644 --- a/Core/src/main/java/com/plotsquared/core/command/SetHome.java +++ b/Core/src/main/java/com/plotsquared/core/command/SetHome.java @@ -30,7 +30,9 @@ import com.plotsquared.core.location.BlockLoc; import com.plotsquared.core.location.Location; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.Plot; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; @CommandDeclaration(command = "sethome", permission = "plots.set.home", @@ -71,7 +73,7 @@ public class SetHome extends SetCommand { default -> { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Use /plot set home [none]") + TagResolver.resolver("value", Tag.inserting(Component.text("Use /plot set home [none]"))) ); return false; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Setup.java b/Core/src/main/java/com/plotsquared/core/command/Setup.java index 3e26cdadc..2b6629f3e 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Setup.java +++ b/Core/src/main/java/com/plotsquared/core/command/Setup.java @@ -36,7 +36,9 @@ import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.setup.SetupProcess; import com.plotsquared.core.setup.SetupStep; import com.plotsquared.core.util.SetupUtils; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.ArrayList; @@ -85,7 +87,10 @@ public class Setup extends SubCommand { player.sendMessage(TranslatableCaption.of("setup.setup_not_started")); player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "Use /plot setup to start a setup process.") + TagResolver.resolver( + "value", + Tag.inserting(Component.text("Use /plot setup to start a setup process.")) + ) ); return true; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Swap.java b/Core/src/main/java/com/plotsquared/core/command/Swap.java index 29c50dfc7..29f601c31 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Swap.java +++ b/Core/src/main/java/com/plotsquared/core/command/Swap.java @@ -33,7 +33,9 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal3; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.concurrent.CompletableFuture; @@ -91,8 +93,10 @@ public class Swap extends SubCommand { if (result) { player.sendMessage( TranslatableCaption.of("swap.swap_success"), - Template.of("origin", p1), - Template.of("target", p2) + TagResolver.builder() + .tag("origin", Tag.inserting(Component.text(p1))) + .tag("target", Tag.inserting(Component.text(p2))) + .build() ); return true; } else { diff --git a/Core/src/main/java/com/plotsquared/core/command/Target.java b/Core/src/main/java/com/plotsquared/core/command/Target.java index fe76b5194..9521ad978 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Target.java +++ b/Core/src/main/java/com/plotsquared/core/command/Target.java @@ -31,7 +31,9 @@ import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.Plot; import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.query.PlotQuery; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import java.util.Collection; import java.util.Locale; @@ -59,7 +61,7 @@ public class Target extends SubCommand { if (args.length == 0) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - Template.of("value", "/plot target < | nearest>") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot target < | nearest>"))) ); return false; } @@ -83,7 +85,7 @@ public class Target extends SubCommand { target.getCenter(player::setCompassTarget); player.sendMessage( TranslatableCaption.of("compass.compass_target"), - Template.of("target", target.toString()) + TagResolver.resolver("target", Tag.inserting(Component.text(target.toString()))) ); return true; } diff --git a/Core/src/main/java/com/plotsquared/core/command/Template.java b/Core/src/main/java/com/plotsquared/core/command/Template.java index 433cb7fd6..8013faf10 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Template.java +++ b/Core/src/main/java/com/plotsquared/core/command/Template.java @@ -51,6 +51,9 @@ import com.plotsquared.core.util.SetupUtils; import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.task.TaskManager; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.checkerframework.checker.nullness.qual.NonNull; import java.io.File; @@ -176,13 +179,16 @@ public class Template extends SubCommand { if (args[0].equalsIgnoreCase("export")) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - net.kyori.adventure.text.minimessage.Template.of("value", "/plot template export ") + TagResolver.resolver("value", Tag.inserting(Component.text("/plot template export "))) ); return true; } else if (args[0].equalsIgnoreCase("import")) { player.sendMessage( TranslatableCaption.of("commandconfig.command_syntax"), - net.kyori.adventure.text.minimessage.Template.of("value", "/plot template import