Compare commits

...

13 Commits

Author SHA1 Message Date
dd996ae44f Address comments 2022-06-09 13:43:00 +01:00
43150abb86 Address deprecations in queue/generation code 2022-06-08 21:12:55 +01:00
3d87ee41b3 v7 is 7.0.0-SNAPSHOT 2022-06-08 14:42:14 +01:00
fd8832ac98 Merge branch 'v6' into v7 2022-06-01 20:13:07 +02:00
228acc196c Merge branch 'v7' of https://github.com/IntellectualSites/PlotSquared into v7 2022-05-29 22:05:37 +02:00
62197f3deb Merge branch 'v6' into v7 2022-05-29 22:05:17 +02:00
daa9348993 chore: Change maven group and artifact ID (#3632)
chore: Change maven group and artifact ID
2022-05-21 11:58:30 +02:00
7e4499e092 Merge branch 'v7' of https://github.com/IntellectualSites/PlotSquared into v7 2022-05-18 22:14:35 +02:00
396a1575d2 Merge branch 'v6' into v7 2022-05-18 22:13:29 +02:00
953d57d1b5 Replace legacy color codes in flag examples (#3520) 2022-05-16 13:28:03 +01:00
b53d2d03a4 Merge branch 'v6' into v7 2022-05-15 15:41:17 +02:00
c1431c0971 build: Update to Paper 1.18.2 (#3622)
build: Align MM and Adventure version
2022-05-15 12:31:40 +02:00
62ee60a76c 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
2022-05-14 17:05:28 +02:00
137 changed files with 2265 additions and 1611 deletions

View File

@ -18,7 +18,7 @@ repositories {
} }
dependencies { dependencies {
api(projects.plotSquaredCore) api(projects.plotsquaredCore)
// Metrics // Metrics
implementation(libs.bstats) implementation(libs.bstats)

View File

@ -31,7 +31,7 @@ import com.plotsquared.core.location.ChunkWrapper;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.queue.QueueCoordinator; import com.plotsquared.core.queue.QueueCoordinator;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.bukkit.BukkitWorld;
import org.bukkit.Chunk; import org.bukkit.Chunk;
import org.bukkit.World; import org.bukkit.World;
@ -65,7 +65,7 @@ final class BlockStatePopulator extends BlockPopulator {
return; return;
} }
final ChunkWrapper wrap = new ChunkWrapper(area.getWorldName(), source.getX(), source.getZ()); final ChunkWrapper wrap = new ChunkWrapper(area.getWorldName(), source.getX(), source.getZ());
final ScopedQueueCoordinator chunk = this.queue.getForChunk(wrap.x, wrap.z, final ZeroedDelegateScopedQueueCoordinator chunk = this.queue.getForChunk(wrap.x, wrap.z,
com.plotsquared.bukkit.util.BukkitWorld.getMinWorldHeight(world), com.plotsquared.bukkit.util.BukkitWorld.getMinWorldHeight(world),
com.plotsquared.bukkit.util.BukkitWorld.getMaxWorldHeight(world) - 1 com.plotsquared.bukkit.util.BukkitWorld.getMaxWorldHeight(world) - 1
); );

View File

@ -35,7 +35,7 @@ import com.plotsquared.core.generator.SingleWorldGenerator;
import com.plotsquared.core.location.ChunkWrapper; import com.plotsquared.core.location.ChunkWrapper;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.plotsquared.core.util.ChunkManager; import com.plotsquared.core.util.ChunkManager;
import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector2;
import org.bukkit.World; import org.bukkit.World;
@ -198,7 +198,7 @@ public class BukkitPlotGenerator extends ChunkGenerator
return result.getChunkData(); return result.getChunkData();
} }
private void generate(BlockVector2 loc, World world, ScopedQueueCoordinator result) { private void generate(BlockVector2 loc, World world, ZeroedDelegateScopedQueueCoordinator result) {
// Load if improperly loaded // Load if improperly loaded
if (!this.loaded) { if (!this.loaded) {
String name = world.getName(); String name = world.getName();

View File

@ -31,7 +31,7 @@ import com.plotsquared.core.generator.IndependentPlotGenerator;
import com.plotsquared.core.location.Location; import com.plotsquared.core.location.Location;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotId; import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.MathMan;
import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.bukkit.BukkitAdapter;
import org.bukkit.World; import org.bukkit.World;
@ -67,7 +67,7 @@ final class DelegatePlotGenerator extends IndependentPlotGenerator {
} }
@Override @Override
public void generateChunk(final ScopedQueueCoordinator result, PlotArea settings) { public void generateChunk(final ZeroedDelegateScopedQueueCoordinator result, PlotArea settings) {
World world = BukkitUtil.getWorld(this.world); World world = BukkitUtil.getWorld(this.world);
Location min = result.getMin(); Location min = result.getMin();
int chunkX = min.getX() >> 4; int chunkX = min.getX() >> 4;

View File

@ -68,7 +68,9 @@ import com.plotsquared.core.util.task.TaskTime;
import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.world.block.BlockType; 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.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
@ -285,15 +287,20 @@ public class BlockEventListener implements Listener {
event.setCancelled(true); event.setCancelled(true);
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("height.height_limit"), TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())), TagResolver.builder()
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight())) .tag("minheight", Tag.inserting(Component.text(area.getMinBuildHeight())))
.tag("maxheight", Tag.inserting(Component.text(area.getMaxBuildHeight())))
.build()
); );
} }
if (!plot.hasOwner()) { if (!plot.hasOwner()) {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
return; return;
@ -310,7 +317,10 @@ public class BlockEventListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
plot.debug(player.getName() + " could not place " + event.getBlock().getType() 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)) { } else if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -360,7 +373,10 @@ public class BlockEventListener implements Listener {
.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL)) { .hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
return; return;
@ -371,8 +387,10 @@ public class BlockEventListener implements Listener {
event.setCancelled(true); event.setCancelled(true);
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("height.height_limit"), TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())), TagResolver.builder()
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight())) .tag("minheight", Tag.inserting(Component.text(area.getMinBuildHeight())))
.tag("maxheight", Tag.inserting(Component.text(area.getMaxBuildHeight())))
.build()
); );
} }
if (!plot.hasOwner()) { if (!plot.hasOwner()) {
@ -397,7 +415,10 @@ public class BlockEventListener implements Listener {
} }
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} else if (Settings.Done.RESTRICT_BUILDING && DoneFlag.isDone(plot)) { } else if (Settings.Done.RESTRICT_BUILDING && DoneFlag.isDone(plot)) {
@ -423,7 +444,10 @@ public class BlockEventListener implements Listener {
} }
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1099,7 +1123,10 @@ public class BlockEventListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_ROAD)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1107,7 +1134,10 @@ public class BlockEventListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1115,7 +1145,10 @@ public class BlockEventListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1239,7 +1272,7 @@ public class BlockEventListener implements Listener {
) && !(Objects.equals(currentLocation.getPlot(), plot))) { ) && !(Objects.equals(currentLocation.getPlot(), plot))) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
break; break;
@ -1250,8 +1283,10 @@ public class BlockEventListener implements Listener {
if (currentLocation.getY() >= area.getMaxBuildHeight() || currentLocation.getY() < area.getMinBuildHeight()) { if (currentLocation.getY() >= area.getMaxBuildHeight() || currentLocation.getY() < area.getMinBuildHeight()) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("height.height_limit"), TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())), TagResolver.builder()
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight())) .tag("minheight", Tag.inserting(Component.text(area.getMinBuildHeight())))
.tag("maxheight", Tag.inserting(Component.text(area.getMaxBuildHeight())))
.build()
); );
event.setCancelled(true); event.setCancelled(true);
break; break;

View File

@ -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.flag.implementations.ProjectilesFlag;
import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.util.Permissions; 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.Chunk;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.TileState; import org.bukkit.block.TileState;
@ -305,7 +307,7 @@ public class PaperListener implements Listener {
final PlotPlayer<?> plotPlayer = BukkitUtil.adapt(event.getPlayer()); final PlotPlayer<?> plotPlayer = BukkitUtil.adapt(event.getPlayer());
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("errors.tile_entity_cap_reached"), 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.setCancelled(true);
event.setBuild(false); event.setBuild(false);
@ -339,7 +341,10 @@ public class PaperListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_ROAD)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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(); entity.remove();
event.setCancelled(true); event.setCancelled(true);
@ -348,7 +353,10 @@ public class PaperListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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(); entity.remove();
event.setCancelled(true); event.setCancelled(true);
@ -358,7 +366,10 @@ public class PaperListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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(); entity.remove();
event.setCancelled(true); event.setCancelled(true);

View File

@ -33,7 +33,9 @@ import com.plotsquared.core.location.Location;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.world.PlotAreaManager; 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.Banner;
import org.bukkit.block.Beacon; import org.bukkit.block.Beacon;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
@ -84,7 +86,7 @@ public class PaperListener113 extends PaperListener {
final PlotPlayer<?> plotPlayer = BukkitUtil.adapt(event.getPlayer()); final PlotPlayer<?> plotPlayer = BukkitUtil.adapt(event.getPlayer());
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("errors.tile_entity_cap_reached"), 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.setCancelled(true);
event.setBuild(false); event.setBuild(false);

View File

@ -84,7 +84,10 @@ import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockType;
import io.papermc.lib.PaperLib; import io.papermc.lib.PaperLib;
import net.kyori.adventure.text.Component; 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.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.FluidCollisionMode; import org.bukkit.FluidCollisionMode;
@ -152,13 +155,11 @@ import org.bukkit.util.Vector;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.regex.Pattern;
/** /**
* Player Events involving plots. * Player Events involving plots.
@ -363,11 +364,15 @@ public class PlayerEventListener extends PlotListener implements Listener {
&& PremiumVerification.isPremium() && UpdateUtility.hasUpdate) { && PremiumVerification.isPremium() && UpdateUtility.hasUpdate) {
Caption boundary = TranslatableCaption.of("update.update_boundary"); Caption boundary = TranslatableCaption.of("update.update_boundary");
Caption updateNotification = TranslatableCaption.of("update.update_notification"); 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(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); pp.sendMessage(boundary);
} }
} }
@ -419,7 +424,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
.equals(BukkitUtil.adaptComplete(to)))) { .equals(BukkitUtil.adaptComplete(to)))) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("deny.no_enter"), TranslatableCaption.of("deny.no_enter"),
Template.of("plot", plot.toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.toString())))
); );
event.setCancelled(true); 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)) { if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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; this.tmpTeleport = false;
if (lastPlot.equals(BukkitUtil.adapt(from).getPlot())) { 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) { } else if (!plotEntry(pp, now) && this.tmpTeleport) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("deny.no_enter"), TranslatableCaption.of("deny.no_enter"),
Template.of("plot", now.toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(now.toString())))
); );
this.tmpTeleport = false; this.tmpTeleport = false;
to.setX(from.getBlockX()); 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)) { if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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; this.tmpTeleport = false;
if (lastPlot.equals(BukkitUtil.adapt(from).getPlot())) { 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) { } else if (!plotEntry(pp, plot) && this.tmpTeleport) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("deny.no_enter"), TranslatableCaption.of("deny.no_enter"),
Template.of("plot", plot.toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.toString())))
); );
this.tmpTeleport = false; this.tmpTeleport = false;
player.teleport(from); player.teleport(from);
@ -728,46 +739,34 @@ public class PlayerEventListener extends PlotListener implements Listener {
PlotId id = plot.getId(); PlotId id = plot.getId();
String worldName = plot.getWorldName(); String worldName = plot.getWorldName();
Caption msg = TranslatableCaption.of("chat.plot_chat_format"); Caption msg = TranslatableCaption.of("chat.plot_chat_format");
Template msgTemplate; TagResolver.Builder builder = TagResolver.builder();
Template worldNameTemplate = Template.of("world", worldName); builder.tag("world", Tag.inserting(Component.text(worldName)));
Template plotTemplate = Template.of("plot_id", id.toString()); builder.tag("plot_id", Tag.inserting(Component.text(id.toString())));
Template senderTemplate = Template.of("sender", sender); builder.tag("sender", Tag.inserting(Component.text(sender)));
// If we do/don't want colour, we need to be careful about how to go about it, as players could attempt either <gold></gold> 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.
if (plotPlayer.hasPermission("plots.chat.color")) { if (plotPlayer.hasPermission("plots.chat.color")) {
msgTemplate = Template builder.tag("msg", Tag.inserting(MiniMessage.miniMessage().deserialize(
.of( message,
"msg", TagResolver.resolver(StandardTags.color(), StandardTags.gradient(),
BukkitUtil.LEGACY_COMPONENT_SERIALIZER.deserialize(ChatColor.translateAlternateColorCodes( StandardTags.rainbow(), StandardTags.decorations()
'&', )
message )));
))
);
} else { } else {
msgTemplate = Template.of("msg", BukkitUtil.MINI_MESSAGE.deserialize( builder.tag("msg", Tag.inserting(Component.text(message)));
ChatColor.stripColor(BukkitUtil.LEGACY_COMPONENT_SERIALIZER.serialize(Component.text(message)))));
} }
for (PlotPlayer<?> receiver : plotRecipients) { for (PlotPlayer<?> receiver : plotRecipients) {
receiver.sendMessage(msg, worldNameTemplate, msgTemplate, plotTemplate, senderTemplate); receiver.sendMessage(msg, builder.build());
} }
if (!spies.isEmpty()) { if (!spies.isEmpty()) {
Caption spymsg = TranslatableCaption.of("chat.plot_chat_spy_format"); 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) { 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) { if (Settings.Chat.LOG_PLOTCHAT_TO_CONSOLE) {
Caption spymsg = TranslatableCaption.of("chat.plot_chat_spy_format"); Caption spymsg = TranslatableCaption.of("chat.plot_chat_spy_format");
Template plotidTemplate = Template.of("plot_id", id.getX() + ";" + id.getY()); ConsolePlayer.getConsole().sendMessage(
Template spysenderTemplate = Template.of("sender", sender); spymsg,
Template spymessageTemplate = Template.of("msg", Component.text(message)); builder.tag("message", Tag.inserting(Component.text(message))).build()
ConsolePlayer.getConsole().sendMessage(spymsg, worldNameTemplate, plotidTemplate, spysenderTemplate,
spymessageTemplate
); );
} }
} }
@ -921,7 +920,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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; cancelled = true;
} }
@ -929,7 +931,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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; cancelled = true;
} }
@ -939,7 +944,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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; cancelled = true;
} }
@ -977,7 +985,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) { .hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); e.setCancelled(true);
} }
@ -995,7 +1006,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, "plots.admin.interact.unowned")) { if (!Permissions.hasPermission(pp, "plots.admin.interact.unowned")) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); e.setCancelled(true);
} }
@ -1010,7 +1024,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); e.setCancelled(true);
plot.debug(pp.getName() + " could not interact with " + entity.getType() plot.debug(pp.getName() + " could not interact with " + entity.getType()
@ -1134,7 +1151,8 @@ public class PlayerEventListener extends PlotListener implements Listener {
return; return;
} }
switch (type) { 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 FIREWORK_ROCKET, FIREWORK_STAR -> eventType = PlayerBlockEventType.SPAWN_MOB;
case BOOK, KNOWLEDGE_BOOK, WRITABLE_BOOK, WRITTEN_BOOK -> eventType = PlayerBlockEventType.READ; case BOOK, KNOWLEDGE_BOOK, WRITABLE_BOOK, WRITTEN_BOOK -> eventType = PlayerBlockEventType.READ;
case ARMOR_STAND -> { case ARMOR_STAND -> {
@ -1230,7 +1248,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
} }
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} else if (!plot.hasOwner()) { } else if (!plot.hasOwner()) {
@ -1239,7 +1257,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
} }
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} else if (!plot.isAdded(pp.getUUID())) { } else if (!plot.isAdded(pp.getUUID())) {
@ -1248,7 +1269,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
} }
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} else if (Settings.Done.RESTRICT_BUILDING && DoneFlag.isDone(plot)) { } else if (Settings.Done.RESTRICT_BUILDING && DoneFlag.isDone(plot)) {
@ -1295,7 +1319,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
} }
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} else if (!plot.hasOwner()) { } else if (!plot.hasOwner()) {
@ -1304,7 +1328,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
} }
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} else if (!plot.isAdded(plotPlayer.getUUID())) { } else if (!plot.isAdded(plotPlayer.getUUID())) {
@ -1313,7 +1340,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
} }
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} else if (Settings.Done.RESTRICT_BUILDING && DoneFlag.isDone(plot)) { } 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)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1354,7 +1387,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1365,7 +1401,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1394,7 +1433,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_ROAD)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1402,7 +1444,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1413,7 +1458,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
plot.debug(p.getName() plot.debug(p.getName()
@ -1435,7 +1483,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
.hasPermission(player, Permission.PERMISSION_ADMIN_DESTROY_UNOWNED)) { .hasPermission(player, Permission.PERMISSION_ADMIN_DESTROY_UNOWNED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1445,7 +1496,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
.hasPermission(player, Permission.PERMISSION_ADMIN_DESTROY_OTHER)) { .hasPermission(player, Permission.PERMISSION_ADMIN_DESTROY_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
plot.debug(player.getName() plot.debug(player.getName()
@ -1477,7 +1531,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1485,7 +1542,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1543,7 +1603,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_INTERACT_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1565,7 +1628,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_ROAD)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
} }
@ -1574,7 +1640,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
return; return;
@ -1588,7 +1657,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_DESTROY_VEHICLE_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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); event.setCancelled(true);
plot.debug(pp.getName() plot.debug(pp.getName()

View File

@ -38,7 +38,9 @@ import com.plotsquared.core.plot.PlotHandler;
import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag; import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag;
import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.util.Permissions; 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.Entity;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -114,7 +116,10 @@ public class ProjectileEventListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_ROAD)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_ROAD)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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(); entity.remove();
event.setCancelled(true); event.setCancelled(true);
@ -123,7 +128,10 @@ public class ProjectileEventListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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(); entity.remove();
event.setCancelled(true); event.setCancelled(true);
@ -133,7 +141,10 @@ public class ProjectileEventListener implements Listener {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) { if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) {
pp.sendMessage( pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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(); entity.remove();
event.setCancelled(true); event.setCancelled(true);

View File

@ -30,7 +30,7 @@ import com.plotsquared.bukkit.util.BukkitBlockUtil;
import com.plotsquared.bukkit.util.BukkitUtil; import com.plotsquared.bukkit.util.BukkitUtil;
import com.plotsquared.core.location.ChunkWrapper; import com.plotsquared.core.location.ChunkWrapper;
import com.plotsquared.core.location.Location; import com.plotsquared.core.location.Location;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.plotsquared.core.util.AnnotationHelper; import com.plotsquared.core.util.AnnotationHelper;
import com.plotsquared.core.util.ChunkUtil; import com.plotsquared.core.util.ChunkUtil;
import com.plotsquared.core.util.PatternUtil; import com.plotsquared.core.util.PatternUtil;
@ -52,7 +52,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Arrays; import java.util.Arrays;
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.") @AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.")
public class GenChunk extends ScopedQueueCoordinator { public class GenChunk extends ZeroedDelegateScopedQueueCoordinator {
public final Biome[] biomes; public final Biome[] biomes;
public BlockState[][] result; public BlockState[][] result;

View File

@ -50,7 +50,9 @@ import com.plotsquared.core.util.EntityUtil;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.entity.EntityCategories; import com.plotsquared.core.util.entity.EntityCategories;
import com.sk89q.worldedit.bukkit.BukkitAdapter; 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.Arrow;
import org.bukkit.entity.Creature; import org.bukkit.entity.Creature;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@ -188,7 +190,10 @@ public class BukkitEntityUtil {
if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY + "." + stub)) { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY + "." + stub)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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; return false;
} }
@ -200,7 +205,10 @@ public class BukkitEntityUtil {
if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY + "." + stub)) { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_DESTROY + "." + stub)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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) { if (plot != null) {
plot.debug(player.getName() plot.debug(player.getName()
@ -221,7 +229,10 @@ public class BukkitEntityUtil {
if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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) { if (plot != null) {
plot.debug(player.getName() + " could not attack " + entityType plot.debug(player.getName() + " could not attack " + entityType
@ -242,7 +253,10 @@ public class BukkitEntityUtil {
if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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) { if (plot != null) {
plot.debug(player.getName() + " could not attack " + entityType plot.debug(player.getName() + " could not attack " + entityType
@ -256,7 +270,10 @@ public class BukkitEntityUtil {
.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVP + "." + stub)) { .hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVP + "." + stub)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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 plot.debug(player.getName() + " could not attack " + entityType
+ " because pve = false"); + " because pve = false");
@ -270,7 +287,10 @@ public class BukkitEntityUtil {
if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVP + "." + stub)) { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVP + "." + stub)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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; return false;
} }
@ -287,7 +307,10 @@ public class BukkitEntityUtil {
if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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) { if (plot != null) {
plot.debug(player.getName() + " could not attack " + entityType plot.debug(player.getName() + " could not attack " + entityType
@ -309,7 +332,10 @@ public class BukkitEntityUtil {
if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) { if (!Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_PVE + "." + stub)) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("permission.no_permission_event"), 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) { if (plot != null) {
plot.debug(player.getName() + " could not attack " + entityType plot.debug(player.getName() + " could not attack " + entityType

View File

@ -63,7 +63,7 @@ public class BukkitInventoryUtil extends InventoryUtil {
ItemMeta meta = null; ItemMeta meta = null;
if (item.getName() != null) { if (item.getName() != null) {
meta = stack.getItemMeta(); 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)); meta.setDisplayName(BukkitUtil.LEGACY_COMPONENT_SERIALIZER.serialize(nameComponent));
} }
if (item.getLore() != null) { if (item.getLore() != null) {

View File

@ -37,7 +37,7 @@ import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotManager; import com.plotsquared.core.plot.PlotManager;
import com.plotsquared.core.queue.GlobalBlockQueue; import com.plotsquared.core.queue.GlobalBlockQueue;
import com.plotsquared.core.queue.QueueCoordinator; import com.plotsquared.core.queue.QueueCoordinator;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.plotsquared.core.util.ChunkManager; import com.plotsquared.core.util.ChunkManager;
import com.plotsquared.core.util.RegionManager; import com.plotsquared.core.util.RegionManager;
import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.WorldUtil;
@ -264,9 +264,9 @@ public class BukkitRegionManager extends RegionManager {
map.saveEntitiesOut(Bukkit.getWorld(world.getName()).getChunkAt(x, z), currentPlotClear); map.saveEntitiesOut(Bukkit.getWorld(world.getName()).getChunkAt(x, z), currentPlotClear);
AugmentedUtils.bypass( AugmentedUtils.bypass(
ignoreAugment, ignoreAugment,
() -> ChunkManager.setChunkInPlotArea(null, new RunnableVal<ScopedQueueCoordinator>() { () -> ChunkManager.setChunkInPlotArea(null, new RunnableVal<ZeroedDelegateScopedQueueCoordinator>() {
@Override @Override
public void run(ScopedQueueCoordinator value) { public void run(ZeroedDelegateScopedQueueCoordinator value) {
Location min = value.getMin(); Location min = value.getMin();
int bx = min.getX(); int bx = min.getX();
int bz = min.getZ(); int bz = min.getZ();

View File

@ -52,7 +52,7 @@ import com.sk89q.worldedit.world.block.BlockTypes;
import io.papermc.lib.PaperLib; import io.papermc.lib.PaperLib;
import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.minimessage.MiniMessage; 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 net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -339,7 +339,7 @@ public class BukkitUtil extends WorldUtil {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public void setSign( public void setSign(
final @NonNull Location location, final @NonNull Caption[] lines, final @NonNull Location location, final @NonNull Caption[] lines,
final @NonNull Template... replacements final @NonNull TagResolver... replacements
) { ) {
ensureLoaded(location.getWorldName(), location.getX(), location.getZ(), chunk -> { ensureLoaded(location.getWorldName(), location.getX(), location.getZ(), chunk -> {
PlotArea area = location.getPlotArea(); PlotArea area = location.getPlotArea();
@ -372,8 +372,9 @@ public class BukkitUtil extends WorldUtil {
final org.bukkit.block.BlockState blockstate = block.getState(); final org.bukkit.block.BlockState blockstate = block.getState();
if (blockstate instanceof final Sign sign) { if (blockstate instanceof final Sign sign) {
for (int i = 0; i < lines.length; i++) { for (int i = 0; i < lines.length; i++) {
sign.setLine(i, LEGACY_COMPONENT_SERIALIZER sign.setLine(i, LEGACY_COMPONENT_SERIALIZER.serialize(
.serialize(MINI_MESSAGE.parse(lines[i].getComponent(LocaleHolder.console()), replacements))); MINI_MESSAGE.deserialize(lines[i].getComponent(LocaleHolder.console()), replacements)
));
} }
sign.update(true, false); sign.update(true, false);
} }

View File

@ -37,7 +37,7 @@ import com.plotsquared.core.util.ChunkManager;
import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.SchematicHandler; import com.plotsquared.core.util.SchematicHandler;
import com.plotsquared.core.util.query.PlotQuery; 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.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
@ -152,7 +152,7 @@ public class PlotAPI {
*/ */
public void sendConsoleMessage( public void sendConsoleMessage(
final @NonNull String message, final @NonNull String message,
final @NonNull Template @NonNull ... replacements final @NonNull TagResolver @NonNull ... replacements
) { ) {
ConsolePlayer.getConsole().sendMessage(StaticCaption.of(message), replacements); ConsolePlayer.getConsole().sendMessage(StaticCaption.of(message), replacements);
} }
@ -165,7 +165,7 @@ public class PlotAPI {
*/ */
public void sendConsoleMessage( public void sendConsoleMessage(
final @NonNull Caption caption, final @NonNull Caption caption,
final @NonNull Template @NonNull ... replacements final @NonNull TagResolver @NonNull ... replacements
) { ) {
ConsolePlayer.getConsole().sendMessage(caption, replacements); ConsolePlayer.getConsole().sendMessage(caption, replacements);
} }

View File

@ -207,7 +207,7 @@ public class PlayerBackupProfile implements BackupProfile {
if (value) { if (value) {
future.complete(null); future.complete(null);
} else { } else {
future.completeExceptionally(new RuntimeException(MINI_MESSAGE.stripTokens( future.completeExceptionally(new RuntimeException(MINI_MESSAGE.escapeTags(
TranslatableCaption TranslatableCaption
.of("schematics.schematic_paste_failed") .of("schematics.schematic_paste_failed")
.getComponent(ConsolePlayer.getConsole())))); .getComponent(ConsolePlayer.getConsole()))));

View File

@ -31,13 +31,14 @@ import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import com.plotsquared.core.PlotSquared; import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.Templates;
import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.inject.factory.PlayerBackupProfileFactory; import com.plotsquared.core.inject.factory.PlayerBackupProfileFactory;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
@ -107,7 +108,7 @@ public class SimpleBackupManager implements BackupManager {
if (player != null) { if (player != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_automatic_started"), 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) -> { profile.createBackup().whenComplete((backup, throwable) -> {
@ -115,7 +116,7 @@ public class SimpleBackupManager implements BackupManager {
if (player != null) { if (player != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_automatic_failure"), TranslatableCaption.of("backups.backup_automatic_failure"),
Templates.of("reason", throwable.getMessage()) TagResolver.resolver("reason", Tag.inserting(Component.text(throwable.getMessage())))
); );
} }
throwable.printStackTrace(); throwable.printStackTrace();

View File

@ -38,7 +38,9 @@ import com.plotsquared.core.util.PlayerManager;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Collection; import java.util.Collection;
@ -77,7 +79,7 @@ public class Add extends Command {
TranslatableCaption.of("permission.no_plot_perms") TranslatableCaption.of("permission.no_plot_perms")
); );
checkTrue(args.length == 1, TranslatableCaption.of("commandconfig.command_syntax"), checkTrue(args.length == 1, TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot add <player | *>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot add <player | *>")))
); );
final CompletableFuture<Boolean> future = new CompletableFuture<>(); final CompletableFuture<Boolean> future = new CompletableFuture<>();
PlayerManager.getUUIDsFromString(args[0], (uuids, throwable) -> { PlayerManager.getUUIDsFromString(args[0], (uuids, throwable) -> {
@ -87,7 +89,7 @@ public class Add extends Command {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
} }
future.completeExceptionally(throwable); future.completeExceptionally(throwable);
@ -95,7 +97,7 @@ public class Add extends Command {
} else { } else {
try { try {
checkTrue(!uuids.isEmpty(), TranslatableCaption.of("errors.invalid_player"), checkTrue(!uuids.isEmpty(), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
Iterator<UUID> iterator = uuids.iterator(); Iterator<UUID> iterator = uuids.iterator();
int size = plot.getTrusted().size() + plot.getMembers().size(); int size = plot.getTrusted().size() + plot.getMembers().size();
@ -106,7 +108,9 @@ public class Add extends Command {
.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_TRUST))) { .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_TRUST))) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), 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(); iterator.remove();
continue; continue;
@ -114,7 +118,9 @@ public class Add extends Command {
if (plot.isOwner(uuid)) { if (plot.isOwner(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("member.already_added"), 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(); iterator.remove();
continue; continue;
@ -122,7 +128,9 @@ public class Add extends Command {
if (plot.getMembers().contains(uuid)) { if (plot.getMembers().contains(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("member.already_added"), 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(); iterator.remove();
continue; continue;
@ -135,7 +143,7 @@ public class Add extends Command {
if (localAddSize >= maxAddSize) { if (localAddSize >= maxAddSize) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("members.plot_max_members_added"), TranslatableCaption.of("members.plot_max_members_added"),
Template.of("amount", String.valueOf(localAddSize)) TagResolver.resolver("amount", Tag.inserting(Component.text(localAddSize)))
); );
return; return;
} }

View File

@ -35,7 +35,9 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.query.PlotQuery; 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.ArrayList;
import java.util.Collection; import java.util.Collection;
@ -99,7 +101,10 @@ public class Alias extends SubCommand {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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 { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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()) { .anyMatch()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("alias.alias_is_taken"), TranslatableCaption.of("alias.alias_is_taken"),
Template.of("alias", alias) TagResolver.resolver("alias", Tag.inserting(Component.text(alias)))
); );
return; return;
} }
if (Settings.UUID.OFFLINE) { if (Settings.UUID.OFFLINE) {
plot.setAlias(alias); 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; return;
} }
PlotSquared.get().getImpromptuUUIDPipeline().getSingle(alias, ((uuid, throwable) -> { PlotSquared.get().getImpromptuUUIDPipeline().getSingle(alias, ((uuid, throwable) -> {
@ -171,13 +182,13 @@ public class Alias extends SubCommand {
} else if (uuid != null) { } else if (uuid != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("alias.alias_is_taken"), TranslatableCaption.of("alias.alias_is_taken"),
Template.of("alias", alias) TagResolver.resolver("alias", Tag.inserting(Component.text(alias)))
); );
} else { } else {
plot.setAlias(alias); plot.setAlias(alias);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("alias.alias_set_to"), 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()) { if (!plot.getAlias().isEmpty()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("alias.alias_removed"), TranslatableCaption.of("alias.alias_removed"),
Template.of("alias", alias) TagResolver.resolver("alias", Tag.inserting(Component.text(alias)))
); );
} else { } else {
player.sendMessage( player.sendMessage(

View File

@ -31,7 +31,6 @@ import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.ConfigurationUtil; import com.plotsquared.core.configuration.ConfigurationUtil;
import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.CaptionHolder; 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.caption.TranslatableCaption;
import com.plotsquared.core.configuration.file.YamlConfiguration; import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.events.TeleportCause; 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.CuboidRegion;
import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.Region;
import com.sk89q.worldedit.world.World; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.io.File; import java.io.File;
@ -148,14 +149,17 @@ public class Area extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_CREATE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_CREATE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
if (args.length < 2) { if (args.length < 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("single.single_area_needs_name"), TranslatableCaption.of("single.single_area_needs_name"),
Template.of("command", "/plot area single <name>") TagResolver.resolver("command", Tag.inserting(Component.text("/plot area single <name>")))
); );
return false; return false;
} }
@ -287,7 +291,7 @@ public class Area extends SubCommand {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.error_create"), 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)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_CREATE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -306,7 +313,10 @@ public class Area extends SubCommand {
case 1: case 1:
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", "/plot area create [world[:id]] [<modifier>=<value>]...") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot area create [world[:id]] [<modifier>=<value>]..."))
)
); );
return false; return false;
case 2: case 2:
@ -320,7 +330,11 @@ public class Area extends SubCommand {
if (area == null) { if (area == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", "/plot area create [world[:id]] [<modifier>=<value>]...") TagResolver.resolver(
"value",
Tag.inserting(Component.text(
"/plot area create [world[:id]] [<modifier>=<value>]..."))
)
); );
return false; return false;
} }
@ -331,12 +345,18 @@ public class Area extends SubCommand {
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("set.set_attribute"), TranslatableCaption.of("set.set_attribute"),
Template.of("attribute", "area_pos1"), TagResolver.builder()
Template.of("value", location.getX() + "," + location.getZ()) .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( player.sendMessage(
TranslatableCaption.of("area.set_pos2"), 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; return true;
} }
@ -350,7 +370,11 @@ public class Area extends SubCommand {
if (area == null) { if (area == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", "/plot area create [world[:id]] [<modifier>=<value>]...") TagResolver.resolver(
"value",
Tag.inserting(Component.text(
"/plot area create [world[:id]] [<modifier>=<value>]..."))
)
); );
return false; return false;
} }
@ -377,7 +401,10 @@ public class Area extends SubCommand {
if (!areas.isEmpty()) { if (!areas.isEmpty()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_intersection"), TranslatableCaption.of("cluster.cluster_intersection"),
Template.of("cluster", areas.iterator().next().toString()) TagResolver.resolver(
"cluster",
Tag.inserting(areas.iterator().next())
)
); );
return false; return false;
} }
@ -403,8 +430,7 @@ public class Area extends SubCommand {
player.sendMessage(TranslatableCaption.of("setup.setup_finished")); player.sendMessage(TranslatableCaption.of("setup.setup_finished"));
if (area.getTerrain() != PlotAreaTerrainType.ALL) { if (area.getTerrain() != PlotAreaTerrainType.ALL) {
QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(world)); QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(world));
queue.setChunkConsumer(chunk -> AugmentedUtils.generate( queue.setChunkConsumer(chunk -> AugmentedUtils.generateChunk(
null,
world, world,
chunk.getX(), chunk.getX(),
chunk.getZ(), chunk.getZ(),
@ -416,7 +442,7 @@ public class Area extends SubCommand {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.error_create"), TranslatableCaption.of("errors.error_create"),
Template.of("world", area.getWorldName()) TagResolver.resolver("world", Tag.inserting(Component.text(area.getWorldName())))
); );
} }
}; };
@ -450,7 +476,7 @@ public class Area extends SubCommand {
if (other != null && Objects.equals(pa.getId(), other.getId())) { if (other != null && Objects.equals(pa.getId(), other.getId())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("setup.setup_world_taken"), TranslatableCaption.of("setup.setup_world_taken"),
Template.of("value", pa.toString()) TagResolver.resolver("value", Tag.inserting(Component.text(pa.getId())))
); );
return false; return false;
} }
@ -465,8 +491,13 @@ public class Area extends SubCommand {
if (pair.length != 2) { if (pair.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax_extended"), TranslatableCaption.of("commandconfig.command_syntax_extended"),
Template.of("value1,", getCommandString()), TagResolver.builder()
Template.of("value2", " create [world[:id]] [<modifier>=<value>]...") .tag("value1", Tag.inserting(Component.text(getCommandString())))
.tag(
"value2",
Tag.inserting(Component.text("create [world[:id]] [<modifier>=<value>]..."))
)
.build()
); );
return false; return false;
} }
@ -502,8 +533,14 @@ public class Area extends SubCommand {
default -> { default -> {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax_extended"), TranslatableCaption.of("commandconfig.command_syntax_extended"),
Template.of("value1", getCommandString()), TagResolver.builder()
Template.of("value2", " create [world[:id]] [<modifier>=<value>]...") .tag("value1", Tag.inserting(Component.text(getCommandString())))
.tag(
"value2",
Tag.inserting(Component.text(
" create [world[:id]] [<modifier>=<value>]..."))
)
.build()
); );
return false; return false;
} }
@ -513,7 +550,7 @@ public class Area extends SubCommand {
if (this.worldUtil.isWorld(pa.getWorldName())) { if (this.worldUtil.isWorld(pa.getWorldName())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("setup.setup_world_taken"), TranslatableCaption.of("setup.setup_world_taken"),
Template.of("value", pa.getWorldName()) TagResolver.resolver("value", Tag.inserting(Component.text(pa.getWorldName())))
); );
return false; return false;
} }
@ -534,7 +571,7 @@ public class Area extends SubCommand {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.error_create"), TranslatableCaption.of("errors.error_create"),
Template.of("world", pa.getWorldName()) TagResolver.resolver("world", Tag.inserting(Component.text(pa.getWorldName())))
); );
} }
try { try {
@ -553,12 +590,18 @@ public class Area extends SubCommand {
if (pa.getId() == null) { if (pa.getId() == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", getUsage()) TagResolver.resolver("value", Tag.inserting(Component.text(getUsage())))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax_extended"), TranslatableCaption.of("commandconfig.command_syntax_extended"),
Template.of("value1", getCommandString()), TagResolver.builder()
Template.of("value2", " create [world[:id]] [<modifier>=<value>]...") .tag("value1", Tag.inserting(Component.text(getCommandString())))
.tag(
"value2",
Tag.inserting(Component.text(
" create [world[:id]] [<modifier>=<value>]..."))
)
.build()
); );
return false; return false;
} }
@ -575,7 +618,7 @@ public class Area extends SubCommand {
metaData.computeIfAbsent(player.getUUID(), missingUUID -> new HashMap<>()).put("area_create_area", pa); metaData.computeIfAbsent(player.getUUID(), missingUUID -> new HashMap<>()).put("area_create_area", pa);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("single.get_position"), TranslatableCaption.of("single.get_position"),
Template.of("command", getCommandString()) TagResolver.resolver("command", Tag.inserting(Component.text(getCommandString())))
); );
break; break;
} }
@ -585,7 +628,10 @@ public class Area extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_INFO)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_INFO)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -596,15 +642,20 @@ public class Area extends SubCommand {
default -> { default -> {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax_extended"), TranslatableCaption.of("commandconfig.command_syntax_extended"),
Template.of("value1", getCommandString()), TagResolver.builder()
Template.of("value2", " info [area]") .tag("value1", Tag.inserting(Component.text(getCommandString())))
.tag("value2", Tag.inserting(Component.text(" info [area]")))
.build()
); );
return false; return false;
} }
} }
if (area == null) { if (area == null) {
if (args.length == 2) { 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 { } else {
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world")); player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
} }
@ -628,42 +679,35 @@ public class Area extends SubCommand {
percent = claimed == 0 ? 0 : 100d * claimed / Integer.MAX_VALUE; percent = claimed == 0 ? 0 : 100d * claimed / Integer.MAX_VALUE;
region = "N/A"; region = "N/A";
} }
Template headerTemplate = Template.of( TagResolver resolver = TagResolver.builder()
.tag(
"header", "header",
TranslatableCaption.of("info.plot_info_header").getComponent(player) Tag.inserting(TranslatableCaption.of("info.plot_info_header").toComponent(player))
); )
Template nameTemplate = Template.of("name", name); .tag("name", Tag.inserting(Component.text(name)))
Template typeTemplate = Template.of("type", area.getType().name()); .tag("type", Tag.inserting(Component.text(area.getType().name())))
Template terrainTemplate = Template.of("terrain", area.getTerrain().name()); .tag("terrain", Tag.inserting(Component.text(area.getTerrain().name())))
Template usageTemplate = Template.of("usage", String.format("%.2f", percent)); .tag("usage", Tag.inserting(Component.text(String.format("%.2f", percent))))
Template claimedTemplate = Template.of("claimed", String.valueOf(claimed)); .tag("claimed", Tag.inserting(Component.text(claimed)))
Template clustersTemplate = Template.of("clusters", String.valueOf(clusters)); .tag("clusters", Tag.inserting(Component.text(clusters)))
Template regionTemplate = Template.of("region", region); .tag("region", Tag.inserting(Component.text(region)))
Template generatorTemplate = Template.of("generator", generator); .tag("generator", Tag.inserting(Component.text(generator)))
Template footerTemplate = Template.of( .tag(
"footer", "footer",
TranslatableCaption.of("info.plot_info_footer").getComponent(player) Tag.inserting(TranslatableCaption.of("info.plot_info_footer").toComponent(player))
); )
player.sendMessage( .build();
TranslatableCaption.of("info.area_info_format"), player.sendMessage(TranslatableCaption.of("info.area_info_format"), resolver);
headerTemplate,
nameTemplate,
typeTemplate,
terrainTemplate,
usageTemplate,
claimedTemplate,
clustersTemplate,
regionTemplate,
generatorTemplate,
footerTemplate
);
return true; return true;
} }
case "l", "list" -> { case "l", "list" -> {
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_LIST)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_LIST)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -680,8 +724,10 @@ public class Area extends SubCommand {
default: default:
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax_extended"), TranslatableCaption.of("commandconfig.command_syntax_extended"),
Template.of("value1", getCommandString()), TagResolver.builder()
Template.of("value2", " list [#]") .tag("value1", Tag.inserting(Component.text(getCommandString())))
.tag("value2", Tag.inserting(Component.text(" list [#]")))
.build()
); );
return false; return false;
} }
@ -707,37 +753,27 @@ public class Area extends SubCommand {
percent = claimed == 0 ? 0 : (double) claimed / Short.MAX_VALUE * Short.MAX_VALUE; percent = claimed == 0 ? 0 : (double) claimed / Short.MAX_VALUE * Short.MAX_VALUE;
region = "N/A"; region = "N/A";
} }
Template claimedTemplate = Template.of("claimed", String.valueOf(claimed)); Component tooltip = MINI_MESSAGE.deserialize(
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), TranslatableCaption.of("info.area_list_tooltip").getComponent(player),
claimedTemplate, TagResolver.builder()
usageTemplate, .tag("claimed", Tag.inserting(Component.text(claimed)))
clustersTemplate, .tag("usage", Tag.inserting(Component.text(String.format("%.2f", percent) + "%")))
regionTemplate, .tag("clusters", Tag.inserting(Component.text(clusters)))
generatorTemplate .tag("region", Tag.inserting(Component.text(region)))
)); .tag("generator", Tag.inserting(Component.text(generator)))
Template tooltipTemplate = Template.of("hover_info", tooltip); .build()
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
); );
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")); }, "/plot area list", TranslatableCaption.of("list.area_list_header_paged"));
return true; return true;
@ -746,7 +782,10 @@ public class Area extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_REGEN)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_REGEN)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -758,13 +797,12 @@ public class Area extends SubCommand {
if (area.getType() != PlotAreaType.PARTIAL) { if (area.getType() != PlotAreaType.PARTIAL) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("single.delete_world_region"), TranslatableCaption.of("single.delete_world_region"),
Template.of("world", area.getWorldName()) TagResolver.resolver("world", Tag.inserting(Component.text(area.getWorldName())))
); );
return false; return false;
} }
QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(area.getWorldName())); QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(area.getWorldName()));
queue.setChunkConsumer(chunk -> AugmentedUtils.generate( queue.setChunkConsumer(chunk -> AugmentedUtils.generateChunk(
null,
area.getWorldName(), area.getWorldName(),
chunk.getX(), chunk.getX(),
chunk.getZ(), chunk.getZ(),
@ -779,20 +817,23 @@ public class Area extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_TP)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_TP)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
if (args.length != 2) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; return false;
} }
PlotArea area = this.plotAreaManager.getPlotAreaByString(args[1]); PlotArea area = this.plotAreaManager.getPlotAreaByString(args[1]);
if (area == null) { 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; return false;
} }
Location center; Location center;

View File

@ -51,7 +51,9 @@ import com.plotsquared.core.util.task.AutoClaimFinishTask;
import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.RunnableVal;
import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.util.task.TaskManager;
import io.leangen.geantyref.TypeToken; 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.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
@ -117,13 +119,13 @@ public class Auto extends SubCommand {
if (diff < 0 && grantedPlots < sizeX * sizeZ) { if (diff < 0 && grantedPlots < sizeX * sizeZ) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.cant_claim_more_plots"), 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; return false;
} else if (diff >= 0 && grantedPlots + diff < sizeX * sizeZ) { } else if (diff >= 0 && grantedPlots + diff < sizeX * sizeZ) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.cant_claim_more_plots"), 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; return false;
} else { } else {
@ -135,15 +137,16 @@ public class Auto extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.removed_granted_plot"), TranslatableCaption.of("economy.removed_granted_plot"),
Template.of("usedGrants", String.valueOf(grantedPlots - left)), TagResolver.builder()
Template.of("remainingGrants", String.valueOf(left)) .tag("usedGrants", Tag.inserting(Component.text(grantedPlots - left)))
.tag("remainingGrants", Tag.inserting(Component.text(left)))
.build()
); );
} }
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.cant_claim_more_plots"), 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; return false;
} }
@ -222,7 +225,7 @@ public class Auto extends SubCommand {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", getUsage()) TagResolver.resolver("value", Tag.inserting(Component.text(getUsage())))
); );
return true; return true;
} }
@ -245,7 +248,7 @@ public class Auto extends SubCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Auto claim") TagResolver.resolver("value", Tag.inserting(Component.text("Auto claim")))
); );
return true; return true;
} }
@ -256,13 +259,13 @@ public class Auto extends SubCommand {
if (!force && mega && !Permissions.hasPermission(player, Permission.PERMISSION_AUTO_MEGA)) { if (!force && mega && !Permissions.hasPermission(player, Permission.PERMISSION_AUTO_MEGA)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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) { if (!force && sizeX * sizeZ > Settings.Claim.MAX_AUTO_AREA) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.cant_claim_more_plots_num"), 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; return false;
} }
@ -280,8 +283,10 @@ public class Auto extends SubCommand {
if (!plotarea.hasSchematic(schematic)) { if (!plotarea.hasSchematic(schematic)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("schematics.schematic_invalid_named"), TranslatableCaption.of("schematics.schematic_invalid_named"),
Template.of("schemname", schematic), TagResolver.builder()
Template.of("reason", "non-existent") .tag("schemname", Tag.inserting(Component.text(schematic)))
.tag("reason", Tag.inserting(Component.text("non-existent")))
.build()
); );
return true; return true;
} }
@ -292,7 +297,7 @@ public class Auto extends SubCommand {
.hasPermission(player, "plots.admin.command.schematic")) { .hasPermission(player, "plots.admin.command.schematic")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", "plots.claim.%s0") TagResolver.resolver("node", Tag.inserting(Component.text("plots.claim.%s0")))
); );
return true; return true;
} }
@ -311,15 +316,20 @@ public class Auto extends SubCommand {
if (!force && this.econHandler.getMoney(player) < cost) { if (!force && this.econHandler.getMoney(player) < cost) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.cannot_afford_plot"), TranslatableCaption.of("economy.cannot_afford_plot"),
Template.of("money", this.econHandler.format(cost)), TagResolver.builder()
Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) .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; return false;
} }
this.econHandler.withdrawMoney(player, cost); this.econHandler.withdrawMoney(player, cost);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.removed_balance"), 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) { if (!force && mergeEvent.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Auto merge") TagResolver.resolver("value", Tag.inserting(Component.text("Auto merge")))
); );
return false; return false;
} }

View File

@ -37,7 +37,9 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.nio.file.Files; import java.nio.file.Files;
@ -74,7 +76,7 @@ public final class Backup extends Command {
private static boolean sendMessage(PlotPlayer<?> player) { private static boolean sendMessage(PlotPlayer<?> player) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot backup <save | list | load>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot backup <save | list | load>")))
); );
return true; return true;
} }
@ -142,34 +144,45 @@ public final class Backup extends Command {
} else if (!plot.hasOwner()) { } else if (!plot.hasOwner()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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) { } else if (plot.getVolume() > Integer.MAX_VALUE) {
player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large")); player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
} else if (plot.isMerged()) { } else if (plot.isMerged()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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 } else if (!plot.isOwner(player.getUUID()) && !Permissions
.hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) { .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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 { } else {
final BackupProfile backupProfile = Objects.requireNonNull(this.backupManager.getProfile(plot)); final BackupProfile backupProfile = Objects.requireNonNull(this.backupManager.getProfile(plot));
if (backupProfile instanceof NullBackupProfile) { if (backupProfile instanceof NullBackupProfile) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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 { } else {
backupProfile.createBackup().whenComplete((backup, throwable) -> { backupProfile.createBackup().whenComplete((backup, throwable) -> {
if (throwable != null) { if (throwable != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_save_failed"), TranslatableCaption.of("backups.backup_save_failed"),
Template.of("reason", throwable.getMessage()) TagResolver.resolver("reason", Tag.inserting(Component.text(throwable.getMessage())))
); );
throwable.printStackTrace(); throwable.printStackTrace();
} else { } else {
@ -196,12 +209,16 @@ public final class Backup extends Command {
} else if (!plot.hasOwner()) { } else if (!plot.hasOwner()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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()) { } else if (plot.isMerged()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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) { } else if (plot.getVolume() > Integer.MAX_VALUE) {
player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large")); 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)) { .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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 { } else {
final BackupProfile backupProfile = Objects.requireNonNull(this.backupManager.getProfile(plot)); final BackupProfile backupProfile = Objects.requireNonNull(this.backupManager.getProfile(plot));
if (backupProfile instanceof NullBackupProfile) { if (backupProfile instanceof NullBackupProfile) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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 { } else {
backupProfile.listBackups().whenComplete((backups, throwable) -> { backupProfile.listBackups().whenComplete((backups, throwable) -> {
if (throwable != null) { if (throwable != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_list_failed"), TranslatableCaption.of("backups.backup_list_failed"),
Template.of("reason", throwable.getMessage()) TagResolver.resolver("reason", Tag.inserting(Component.text(throwable.getMessage())))
); );
throwable.printStackTrace(); throwable.printStackTrace();
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_list_header"), TranslatableCaption.of("backups.backup_list_header"),
Template.of("plot", plot.getId().toCommaSeparatedString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toCommaSeparatedString())))
); );
try { try {
for (int i = 0; i < backups.size(); i++) { for (int i = 0; i < backups.size(); i++) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_list_entry"), TranslatableCaption.of("backups.backup_list_entry"),
Template.of("number", Integer.toString(i + 1)), TagResolver.builder()
Template.of("value", DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.ofInstant( .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()), Instant.ofEpochMilli(backups.get(i).getCreationTime()),
ZoneId.systemDefault() ZoneId.systemDefault()
))) ))))
)
.build()
); );
} }
} catch (final Exception e) { } catch (final Exception e) {
@ -267,12 +295,16 @@ public final class Backup extends Command {
} else if (!plot.hasOwner()) { } else if (!plot.hasOwner()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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()) { } else if (plot.isMerged()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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) { } else if (plot.getVolume() > Integer.MAX_VALUE) {
player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large")); 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)) { .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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) { } else if (args.length == 0) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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 { } else {
final int number; final int number;
@ -294,7 +329,7 @@ public final class Backup extends Command {
} catch (final Exception e) { } catch (final Exception e) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_a_number"), TranslatableCaption.of("invalid.not_a_number"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
return; return;
} }
@ -302,23 +337,27 @@ public final class Backup extends Command {
if (backupProfile instanceof NullBackupProfile) { if (backupProfile instanceof NullBackupProfile) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), 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 { } else {
backupProfile.listBackups().whenComplete((backups, throwable) -> { backupProfile.listBackups().whenComplete((backups, throwable) -> {
if (throwable != null) { if (throwable != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_load_failure"), TranslatableCaption.of("backups.backup_load_failure"),
Template.of("reason", throwable.getMessage()) TagResolver.resolver("reason", Tag.inserting(Component.text(throwable.getMessage())))
); );
throwable.printStackTrace(); throwable.printStackTrace();
} else { } else {
if (number < 1 || number > backups.size()) { if (number < 1 || number > backups.size()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), TranslatableCaption.of("backups.backup_impossible"),
Template.of( TagResolver.resolver(
"plot", "plot",
TranslatableCaption.of("generic.generic_invalid_choice").getComponent(player) Tag.inserting(TranslatableCaption
.of("generic.generic_invalid_choice")
.toComponent(player))
) )
); );
} else { } else {
@ -328,9 +367,11 @@ public final class Backup extends Command {
.exists(backup.getFile())) { .exists(backup.getFile())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_impossible"), TranslatableCaption.of("backups.backup_impossible"),
Template.of( TagResolver.resolver(
"plot", "plot",
TranslatableCaption.of("generic.generic_invalid_choice").getComponent(player) Tag.inserting(TranslatableCaption
.of("generic.generic_invalid_choice")
.toComponent(player))
) )
); );
} else { } else {
@ -340,7 +381,10 @@ public final class Backup extends Command {
if (error != null) { if (error != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("backups.backup_load_failure"), TranslatableCaption.of("backups.backup_load_failure"),
Template.of("reason", error.getMessage()) TagResolver.resolver(
"reason",
Tag.inserting(Component.text(error.getMessage()))
)
); );
} else { } else {
player.sendMessage(TranslatableCaption.of("backups.backup_load_success")); player.sendMessage(TranslatableCaption.of("backups.backup_load_success"));

View File

@ -25,6 +25,7 @@
*/ */
package com.plotsquared.core.command; package com.plotsquared.core.command;
import com.plotsquared.core.configuration.caption.StaticCaption;
import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; 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.command.util.SuggestionHelper;
import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.biome.BiomeTypes; 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.Collection;
import java.util.Locale; import java.util.Locale;
@ -54,16 +58,13 @@ public class Biome extends SetCommand {
} catch (final Exception ignore) { } catch (final Exception ignore) {
} }
if (biome == null) { if (biome == null) {
String biomes = StringMan.join( String separator = TranslatableCaption.of("blocklist.block_list_separator").getComponent(player);
BiomeType.REGISTRY.values(),
MINI_MESSAGE.serialize(MINI_MESSAGE.parse(TranslatableCaption
.of("blocklist.block_list_separator")
.getComponent(player)))
);
player.sendMessage(TranslatableCaption.of("biome.need_biome")); player.sendMessage(TranslatableCaption.of("biome.need_biome"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.subcommand_set_options_header"), StaticCaption.of(
Template.of("values", biomes) TranslatableCaption.of("commandconfig.subcommand_set_options_header_only").getComponent(player)
+ StringMan.join(BiomeType.REGISTRY.values(), separator)
)
); );
return false; return false;
} }
@ -80,7 +81,7 @@ public class Biome extends SetCommand {
plot.removeRunning(); plot.removeRunning();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("biome.biome_set_to"), TranslatableCaption.of("biome.biome_set_to"),
Template.of("value", value.toLowerCase()) TagResolver.resolver("value", Tag.inserting(Component.text(value.toLowerCase())))
); );
}); });
return true; return true;

View File

@ -39,7 +39,9 @@ import com.plotsquared.core.util.EconHandler;
import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Set; import java.util.Set;
@ -91,7 +93,7 @@ public class Buy extends Command {
checkTrue( checkTrue(
player.getPlotCount() + plots.size() <= player.getAllowedPlots(), player.getPlotCount() + plots.size() <= player.getAllowedPlots(),
TranslatableCaption.of("permission.cant_claim_more_plots"), 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); double price = plot.getFlag(PriceFlag.class);
if (price <= 0) { if (price <= 0) {
@ -104,8 +106,10 @@ public class Buy extends Command {
checkTrue( checkTrue(
this.econHandler.getMoney(player) >= price, this.econHandler.getMoney(player) >= price,
TranslatableCaption.of("economy.cannot_afford_plot"), TranslatableCaption.of("economy.cannot_afford_plot"),
Template.of("money", this.econHandler.format(price)), TagResolver.builder()
Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) .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); this.econHandler.withdrawMoney(player, price);
// Failure // Failure
@ -113,7 +117,7 @@ public class Buy extends Command {
confirm.run(this, () -> { confirm.run(this, () -> {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.removed_balance"), 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); this.econHandler.depositMoney(PlotSquared.platform().playerManager().getOfflinePlayer(plot.getOwnerAbs()), price);
@ -122,9 +126,11 @@ public class Buy extends Command {
if (owner != null) { if (owner != null) {
owner.sendMessage( owner.sendMessage(
TranslatableCaption.of("economy.plot_sold"), TranslatableCaption.of("economy.plot_sold"),
Template.of("plot", plot.getId().toString()), TagResolver.builder()
Template.of("player", player.getName()), .tag("plot", Tag.inserting(Component.text(plot.getId().toString())))
Template.of("price", this.econHandler.format(price)) .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); PlotFlag<?, ?> plotFlag = plot.getFlagContainer().getFlag(PriceFlag.class);
@ -135,7 +141,7 @@ public class Buy extends Command {
plot.setOwner(player.getUUID()); plot.setOwner(player.getUUID());
player.sendMessage( player.sendMessage(
TranslatableCaption.of("working.claimed"), 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); whenDone.run(Buy.this, CommandResult.SUCCESS);
}, () -> { }, () -> {

View File

@ -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.MobCapFlag;
import com.plotsquared.core.plot.flag.implementations.VehicleCapFlag; import com.plotsquared.core.plot.flag.implementations.VehicleCapFlag;
import com.plotsquared.core.util.Permissions; 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_ANIMAL;
import static com.plotsquared.core.util.entity.EntityCategories.CAP_ENTITY; 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)) { .hasPermission(player, Permission.PERMISSION_ADMIN_CAPS_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -89,15 +92,17 @@ public class Caps extends SubCommand {
final int current = countedEntities[type]; final int current = countedEntities[type];
final int max = plot.getFlag(capFlag); final int max = plot.getFlag(capFlag);
final String percentage = String.format("%.1f", 100 * ((float) current / max)); final String percentage = String.format("%.1f", 100 * ((float) current / max));
String maxBeautified = max >= Integer.MAX_VALUE ComponentLike maxBeautified = max >= Integer.MAX_VALUE
? TranslatableCaption.of("info.infinite").getComponent(player) ? TranslatableCaption.of("info.infinite").toComponent(player)
: String.valueOf(max); : Component.text(max);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("info.plot_caps_format"), TranslatableCaption.of("info.plot_caps_format"),
Template.of("cap", name), TagResolver.builder()
Template.of("current", String.valueOf(current)), .tag("cap", Tag.inserting(Component.text(name)))
Template.of("limit", maxBeautified), .tag("current", Tag.inserting(Component.text(current)))
Template.of("percentage", percentage) .tag("limit", Tag.inserting(maxBeautified))
.tag("percentage", Tag.inserting(Component.text(percentage)))
.build()
); );
} }

View File

@ -28,7 +28,9 @@ package com.plotsquared.core.command;
import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.PlotArea; 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 * @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")); check(area, TranslatableCaption.of("errors.not_in_plot_world"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.deprecated_commands"), 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()) { if (player.getPlotAreaAbs().isForcingPlotChat()) {
player.sendMessage(TranslatableCaption.of("chat.plot_chat_forced")); player.sendMessage(TranslatableCaption.of("chat.plot_chat_forced"));

View File

@ -45,7 +45,9 @@ import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PlotExpression; import com.plotsquared.core.util.PlotExpression;
import com.plotsquared.core.util.task.TaskManager; 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.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
@ -89,7 +91,7 @@ public class Claim extends SubCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Claim") TagResolver.resolver("value", Tag.inserting(Component.text("Claim")))
); );
return true; return true;
} }
@ -108,14 +110,14 @@ public class Claim extends SubCommand {
if (grants <= 0) { if (grants <= 0) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.cant_claim_more_plots"), TranslatableCaption.of("permission.cant_claim_more_plots"),
Template.of("amount", String.valueOf(grants)) TagResolver.resolver("amount", Tag.inserting(Component.text(grants)))
); );
metaDataAccess.remove(); metaDataAccess.remove();
} }
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.cant_claim_more_plots"), 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; return false;
} }
@ -130,8 +132,10 @@ public class Claim extends SubCommand {
if (!area.hasSchematic(schematic)) { if (!area.hasSchematic(schematic)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("schematics.schematic_invalid_named"), TranslatableCaption.of("schematics.schematic_invalid_named"),
Template.of("schemname", schematic), TagResolver.builder()
Template.of("reason", "non-existent") .tag("schemname", Tag.inserting(Component.text(schematic)))
.tag("reason", Tag.inserting(Component.text("non-existent")))
.build()
); );
} }
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLAIM_SCHEMATIC if (!Permissions.hasPermission(player, Permission.PERMISSION_CLAIM_SCHEMATIC
@ -141,7 +145,7 @@ public class Claim extends SubCommand {
) && !force) { ) && !force) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_schematic_permission"), 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) { if (this.econHandler.getMoney(player) < cost) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.cannot_afford_plot"), TranslatableCaption.of("economy.cannot_afford_plot"),
Template.of("money", this.econHandler.format(cost)), TagResolver.builder()
Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) .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; return false;
} }
this.econHandler.withdrawMoney(player, cost); this.econHandler.withdrawMoney(player, cost);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.removed_balance"), TranslatableCaption.of("economy.removed_balance"),
Template.of("money", this.econHandler.format(cost)), TagResolver.builder()
Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) .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( player.sendMessage(
TranslatableCaption.of("economy.removed_granted_plot"), TranslatableCaption.of("economy.removed_granted_plot"),
Template.of("usedGrants", String.valueOf((grants - 1))), TagResolver.builder()
Template.of("remainingGrants", String.valueOf(grants)) .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) { if (mergeEvent.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Auto merge on claim") TagResolver.resolver("value", Tag.inserting(Component.text("Auto merge on claim")))
); );
} else { } else {
if (plot.getPlotModificationManager().autoMerge( if (plot.getPlotModificationManager().autoMerge(

View File

@ -43,7 +43,9 @@ import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; import com.plotsquared.core.util.task.RunnableVal3;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@ -86,7 +88,7 @@ public class Clear extends Command {
if (eventResult == Result.DENY) { if (eventResult == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Clear") TagResolver.resolver("value", Tag.inserting(Component.text("Clear")))
); );
return CompletableFuture.completedFuture(true); return CompletableFuture.completedFuture(true);
} }
@ -137,8 +139,10 @@ public class Clear extends Command {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("working.clearing_done"), TranslatableCaption.of("working.clearing_done"),
Template.of("amount", String.valueOf(System.currentTimeMillis() - start)), TagResolver.builder()
Template.of("plot", plot.getId().toString()) .tag("amount", Tag.inserting(Component.text(System.currentTimeMillis() - start)))
.tag("plot", Tag.inserting(Component.text(plot.getId().toString())))
.build()
); );
}); });
}); });

View File

@ -39,10 +39,15 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotCluster; import com.plotsquared.core.plot.PlotCluster;
import com.plotsquared.core.plot.PlotId; import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.util.ComponentHelper;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.query.PlotQuery; 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.Collection;
import java.util.Collections; import java.util.Collections;
@ -53,6 +58,7 @@ import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
@CommandDeclaration(command = "cluster", @CommandDeclaration(command = "cluster",
aliases = "clusters", aliases = "clusters",
@ -61,18 +67,19 @@ import java.util.stream.Collectors;
permission = "plots.cluster") permission = "plots.cluster")
public class Cluster extends SubCommand { public class Cluster extends SubCommand {
@Override private static final Component[] AVAILABLE_ARGS = Stream.of(
public boolean onCommand(PlotPlayer<?> player, String[] args) { "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 // list, create, delete, resize, invite, kick, leave, helpers, tp, sethome
@Override
public boolean onCommand(PlotPlayer<?> player, String[] args) {
if (args.length == 0) { if (args.length == 0) {
// return arguments // return arguments
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_available_args"), TranslatableCaption.of("cluster.cluster_available_args"),
Template.of( TagResolver.resolver("list", Tag.inserting(ComponentHelper.join(AVAILABLE_ARGS, SEPARATOR)))
"list",
"<dark_aqua>list</dark_aqua><gray>, </gray><dark_aqua>create</dark_aqua><gray>, </gray><dark_aqua>delete</dark_aqua><gray>, </gray><dark_aqua>resize</dark_aqua><gray>, </gray><dark_aqua>invite</dark_aqua><gray>, </gray><dark_aqua>kick</dark_aqua><gray>, </gray><dark_aqua>leave</dark_aqua><gray>, </gray><dark_aqua>members</dark_aqua><gray>, </gray><dark_aqua>info</dark_aqua><gray>, </gray><dark_aqua>tp</dark_aqua><gray>, </gray><dark_aqua>sethome</dark_aqua>"
)
); );
return false; return false;
} }
@ -83,14 +90,17 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_LIST)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_LIST)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
if (args.length != 1) { if (args.length != 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot cluster list") TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster list")))
); );
return false; return false;
} }
@ -102,7 +112,7 @@ public class Cluster extends SubCommand {
Set<PlotCluster> clusters = area.getClusters(); Set<PlotCluster> clusters = area.getClusters();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_list_heading"), TranslatableCaption.of("cluster.cluster_list_heading"),
Template.of("amount", clusters.size() + "") TagResolver.resolver("amount", Tag.inserting(Component.text(clusters.size())))
); );
for (PlotCluster cluster : clusters) { for (PlotCluster cluster : clusters) {
// Ignore unmanaged clusters // Ignore unmanaged clusters
@ -110,22 +120,22 @@ public class Cluster extends SubCommand {
if (player.getUUID().equals(cluster.owner)) { if (player.getUUID().equals(cluster.owner)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_list_element_owner"), 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())) { } else if (cluster.helpers.contains(player.getUUID())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_list_element_helpers"), 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())) { } else if (cluster.invited.contains(player.getUUID())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_list_element_invited"), TranslatableCaption.of("cluster.cluster_list_element_invited"),
Template.of("cluster", name) TagResolver.resolver("cluster", Tag.inserting(Component.text(name)))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_list_element"), 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)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_CREATE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -148,7 +161,10 @@ public class Cluster extends SubCommand {
if (args.length != 4) { if (args.length != 4) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot cluster create <name> <id-bot> <id-top>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot cluster create <name> <id-bot> <id-top>"))
)
); );
return false; return false;
} }
@ -158,7 +174,7 @@ public class Cluster extends SubCommand {
if (currentClusters >= player.getAllowedPlots()) { if (currentClusters >= player.getAllowedPlots()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.cant_claim_more_clusters"), 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; PlotId pos1;
@ -176,7 +192,7 @@ public class Cluster extends SubCommand {
if (area.getCluster(name) != null) { if (area.getCluster(name) != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("alias.alias_is_taken"), TranslatableCaption.of("alias.alias_is_taken"),
Template.of("alias", name) TagResolver.resolver("alias", Tag.inserting(Component.text(name)))
); );
return false; return false;
} }
@ -190,7 +206,7 @@ public class Cluster extends SubCommand {
if (cluster != null) { if (cluster != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_intersection"), TranslatableCaption.of("cluster.cluster_intersection"),
Template.of("cluster", cluster.getName()) TagResolver.resolver("cluster", Tag.inserting(Component.text(cluster.getName())))
); );
return false; return false;
} }
@ -198,7 +214,7 @@ public class Cluster extends SubCommand {
if (!area.contains(pos1) || !area.contains(pos2)) { if (!area.contains(pos1) || !area.contains(pos2)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_outside"), TranslatableCaption.of("cluster.cluster_outside"),
Template.of("area", String.valueOf(area)) TagResolver.resolver("area", Tag.inserting(Component.text(area.toString())))
); );
return false; return false;
} }
@ -211,7 +227,10 @@ public class Cluster extends SubCommand {
if (!plot.isOwner(uuid)) { if (!plot.isOwner(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -233,7 +252,10 @@ public class Cluster extends SubCommand {
if (current + cluster.getArea() > allowed) { if (current + cluster.getArea() > allowed) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -252,7 +274,7 @@ public class Cluster extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_created"), TranslatableCaption.of("cluster.cluster_created"),
Template.of("name", name) TagResolver.resolver("name", Tag.inserting(Component.text(name)))
); );
return true; return true;
} }
@ -262,14 +284,17 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_DELETE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_DELETE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
if (args.length != 1 && args.length != 2) { if (args.length != 1 && args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; return false;
} }
@ -284,7 +309,7 @@ public class Cluster extends SubCommand {
if (cluster == null) { if (cluster == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.invalid_cluster_name"), TranslatableCaption.of("cluster.invalid_cluster_name"),
Template.of("cluster", args[1]) TagResolver.resolver("cluster", Tag.inserting(Component.text(args[1])))
); );
return false; return false;
} }
@ -300,15 +325,18 @@ public class Cluster extends SubCommand {
.hasPermission(player, Permission.PERMISSION_CLUSTER_DELETE_OTHER)) { .hasPermission(player, Permission.PERMISSION_CLUSTER_DELETE_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
} }
DBFunc.delete(cluster); DBFunc.delete(cluster);
player.sendMessage(TranslatableCaption.of("cluster.cluster_deleted"), Template.of( player.sendMessage(TranslatableCaption.of("cluster.cluster_deleted"), TagResolver.resolver(
"cluster", "cluster",
String.valueOf(cluster) Tag.inserting(Component.text(cluster.toString()))
)); ));
return true; return true;
} }
@ -317,14 +345,17 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
if (args.length != 3) { if (args.length != 3) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; return false;
} }
@ -358,7 +389,10 @@ public class Cluster extends SubCommand {
.hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_OTHER)) { .hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -368,13 +402,12 @@ public class Cluster extends SubCommand {
if (intersect != null) { if (intersect != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_intersection"), TranslatableCaption.of("cluster.cluster_intersection"),
Template.of("cluster", intersect.getName()) TagResolver.resolver("cluster", Tag.inserting(Component.text(intersect.getName())))
); );
return false; return false;
} }
Set<Plot> existing = area.getPlotSelectionOwned(cluster.getP1(), cluster.getP2()); Set<Plot> existing = area.getPlotSelectionOwned(cluster.getP1(), cluster.getP2());
Set<Plot> newPlots = area.getPlotSelectionOwned(pos1, pos2); Set<Plot> newPlots = area.getPlotSelectionOwned(pos1, pos2);
// Set<Plot> removed = (HashSet<Plot>) existing.clone();
Set<Plot> removed = new HashSet<>(existing); Set<Plot> removed = new HashSet<>(existing);
removed.removeAll(newPlots); removed.removeAll(newPlots);
@ -384,7 +417,10 @@ public class Cluster extends SubCommand {
.hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_SHRINK)) { .hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_SHRINK)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -395,7 +431,10 @@ public class Cluster extends SubCommand {
.hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_EXPAND)) { .hasPermission(player, Permission.PERMISSION_CLUSTER_RESIZE_EXPAND)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -414,7 +453,9 @@ public class Cluster extends SubCommand {
if (current + cluster.getArea() > allowed) { if (current + cluster.getArea() > allowed) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -429,14 +470,17 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_INVITE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_INVITE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
if (args.length != 2) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot cluster invite <player>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster invite <player>")))
); );
return false; return false;
} }
@ -455,7 +499,10 @@ public class Cluster extends SubCommand {
.hasPermission(player, Permission.PERMISSION_CLUSTER_INVITE_OTHER)) { .hasPermission(player, Permission.PERMISSION_CLUSTER_INVITE_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -468,7 +515,7 @@ public class Cluster extends SubCommand {
} else if (throwable != null) { } else if (throwable != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[1]) TagResolver.resolver("value", Tag.inserting(Component.text(args[1])))
); );
} else { } else {
if (!cluster.isAdded(uuid)) { if (!cluster.isAdded(uuid)) {
@ -480,7 +527,7 @@ public class Cluster extends SubCommand {
if (otherPlayer != null) { if (otherPlayer != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_invited"), 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)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_KICK)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", Permission.PERMISSION_CLUSTER_KICK.toString()) TagResolver.resolver(
"node",
Tag.inserting(Permission.PERMISSION_CLUSTER_KICK)
)
); );
return false; return false;
} }
if (args.length != 2) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot cluster kick <player>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster kick <player>")))
); );
return false; return false;
} }
@ -520,7 +570,10 @@ public class Cluster extends SubCommand {
.hasPermission(player, Permission.PERMISSION_CLUSTER_KICK_OTHER)) { .hasPermission(player, Permission.PERMISSION_CLUSTER_KICK_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -533,7 +586,7 @@ public class Cluster extends SubCommand {
} else if (throwable != null) { } else if (throwable != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[1]) TagResolver.resolver("value", Tag.inserting(Component.text(args[1])))
); );
} else { } else {
// Can't kick if the player is yourself, the owner, or not added to the cluster // 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)) { || !cluster.isAdded(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cannot_kick_player"), TranslatableCaption.of("cluster.cannot_kick_player"),
Template.of("value", cluster.getName()) TagResolver.resolver("value", Tag.inserting(Component.text(cluster.getName())))
); );
} else { } else {
if (cluster.helpers.contains(uuid)) { if (cluster.helpers.contains(uuid)) {
@ -556,7 +609,7 @@ public class Cluster extends SubCommand {
if (player2 != null) { if (player2 != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_removed"), 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()); removePlayerPlots(cluster, uuid, player2.getLocation().getWorldName());
@ -571,14 +624,17 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_LEAVE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_LEAVE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", Permission.PERMISSION_CLUSTER_LEAVE.toString()) TagResolver.resolver(
"node",
Tag.inserting(Permission.PERMISSION_CLUSTER_LEAVE)
)
); );
return false; return false;
} }
if (args.length != 1 && args.length != 2) { if (args.length != 1 && args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; return false;
} }
@ -592,7 +648,7 @@ public class Cluster extends SubCommand {
if (cluster == null) { if (cluster == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.invalid_cluster_name"), TranslatableCaption.of("cluster.invalid_cluster_name"),
Template.of("cluster", args[1]) TagResolver.resolver("cluster", Tag.inserting(Component.text(args[1])))
); );
return false; return false;
} }
@ -620,7 +676,7 @@ public class Cluster extends SubCommand {
DBFunc.removeInvited(cluster, uuid); DBFunc.removeInvited(cluster, uuid);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_removed"), 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()); removePlayerPlots(cluster, uuid, player.getLocation().getWorldName());
return true; return true;
@ -629,14 +685,20 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_HELPERS)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_HELPERS)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
if (args.length != 3) { if (args.length != 3) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot cluster members <add | remove> <player>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot cluster members <add | remove> <player>"))
)
); );
return false; return false;
} }
@ -657,7 +719,7 @@ public class Cluster extends SubCommand {
} else if (throwable != null) { } else if (throwable != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[2]) TagResolver.resolver("value", Tag.inserting(Component.text(args[2])))
); );
} else { } else {
if (args[1].equalsIgnoreCase("add")) { if (args[1].equalsIgnoreCase("add")) {
@ -671,7 +733,9 @@ public class Cluster extends SubCommand {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot cluster members <add | remove> <player>") TagResolver.resolver("value", Tag.inserting(Component.text(
"/plot cluster members <add | remove> <player>"
)))
); );
} }
} }
@ -684,14 +748,17 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_TP)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_TP)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", Permission.PERMISSION_CLUSTER_TP.toString()) TagResolver.resolver(
"node",
Tag.inserting(Permission.PERMISSION_CLUSTER_TP)
)
); );
return false; return false;
} }
if (args.length != 2) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot cluster tp <name>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster tp <name>")))
); );
return false; return false;
} }
@ -704,7 +771,7 @@ public class Cluster extends SubCommand {
if (cluster == null) { if (cluster == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.invalid_cluster_name"), TranslatableCaption.of("cluster.invalid_cluster_name"),
Template.of("cluster", args[1]) TagResolver.resolver("cluster", Tag.inserting(Component.text(args[1])))
); );
return false; return false;
} }
@ -713,7 +780,10 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_TP_OTHER)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_TP_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -729,14 +799,17 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_INFO)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_INFO)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", Permission.PERMISSION_CLUSTER_TP.toString()) TagResolver.resolver(
"node",
Tag.inserting(Permission.PERMISSION_CLUSTER_TP)
)
); );
return false; return false;
} }
if (args.length != 1 && args.length != 2) { if (args.length != 1 && args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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(); PlotArea area = player.getApplicablePlotArea();
@ -750,7 +823,7 @@ public class Cluster extends SubCommand {
if (cluster == null) { if (cluster == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.invalid_cluster_name"), TranslatableCaption.of("cluster.invalid_cluster_name"),
Template.of("cluster", args[1]) TagResolver.resolver("cluster", Tag.inserting(Component.text(args[1])))
); );
return false; return false;
} }
@ -779,19 +852,14 @@ public class Cluster extends SubCommand {
cluster.getP2().getY() - cluster.getP1().getY() + 1); cluster.getP2().getY() - cluster.getP1().getY() + 1);
String rights = cluster.isAdded(player.getUUID()) + ""; String rights = cluster.isAdded(player.getUUID()) + "";
Caption message = TranslatableCaption.of("cluster.cluster_info"); Caption message = TranslatableCaption.of("cluster.cluster_info");
Template idTemplate = Template.of("id", id); TagResolver resolver = TagResolver.builder()
Template ownerTemplate = Template.of("owner", owner); .tag("id", Tag.inserting(Component.text(id)))
Template nameTemplate = Template.of("name", name); .tag("owner", Tag.inserting(Component.text(owner)))
Template sizeTemplate = Template.of("size", size); .tag("name", Tag.inserting(Component.text(name)))
Template rightsTemplate = Template.of("rights", rights); .tag("size", Tag.inserting(Component.text(size)))
player.sendMessage( .tag("rights", Tag.inserting(Component.text(rights)))
message, .build();
idTemplate, player.sendMessage(message, resolver);
ownerTemplate,
nameTemplate,
sizeTemplate,
rightsTemplate
);
} }
}); });
return true; return true;
@ -802,14 +870,14 @@ public class Cluster extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_SETHOME)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_CLUSTER_SETHOME)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", Permission.PERMISSION_CLUSTER_SETHOME.toString()) TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_CLUSTER_SETHOME))
); );
return false; return false;
} }
if (args.length != 1 && args.length != 2) { if (args.length != 1 && args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot cluster sethome") TagResolver.resolver("value", Tag.inserting(Component.text("/plot cluster sethome")))
); );
return false; return false;
} }
@ -827,7 +895,10 @@ public class Cluster extends SubCommand {
.hasPermission(player, Permission.PERMISSION_CLUSTER_SETHOME_OTHER)) { .hasPermission(player, Permission.PERMISSION_CLUSTER_SETHOME_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -846,10 +917,7 @@ public class Cluster extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cluster_available_args"), TranslatableCaption.of("cluster.cluster_available_args"),
Template.of( TagResolver.resolver("list", Tag.inserting(ComponentHelper.join(AVAILABLE_ARGS, SEPARATOR)))
"list",
"<dark_aqua>list</dark_aqua><gray>, </gray><dark_aqua>create</dark_aqua><gray>, </gray><dark_aqua>delete</dark_aqua><gray>, </gray><dark_aqua>resize</dark_aqua><gray>, </gray><dark_aqua>invite</dark_aqua><gray>, </gray><dark_aqua>kick</dark_aqua><gray>, </gray><dark_aqua>leave</dark_aqua><gray>, </gray><dark_aqua>members</dark_aqua><gray>, </gray><dark_aqua>info</dark_aqua><gray>, </gray><dark_aqua>tp</dark_aqua><gray>, </gray><dark_aqua>sethome</dark_aqua>"
)
); );
return false; return false;
} }

View File

@ -32,7 +32,9 @@ import com.plotsquared.core.player.PlayerMetaDataKeys;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.util.task.TaskManager;
import com.plotsquared.core.util.task.TaskTime; 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; import org.checkerframework.checker.nullness.qual.Nullable;
public class CmdConfirm { public class CmdConfirm {
@ -59,9 +61,11 @@ public class CmdConfirm {
if (commandStr != null) { if (commandStr != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("confirm.requires_confirm"), TranslatableCaption.of("confirm.requires_confirm"),
Template.of("command", commandStr), TagResolver.builder()
Template.of("timeout", String.valueOf(Settings.Confirmation.CONFIRMATION_TIMEOUT_SECONDS)), .tag("command", Tag.inserting(Component.text(commandStr)))
Template.of("value", "/plot confirm") .tag("timeout", Tag.inserting(Component.text(Settings.Confirmation.CONFIRMATION_TIMEOUT_SECONDS)))
.tag("value", Tag.inserting(Component.text("/plot confirm")))
.build()
); );
} }
TaskManager.runTaskLater(() -> { TaskManager.runTaskLater(() -> {

View File

@ -37,8 +37,10 @@ import com.plotsquared.core.util.StringComparison;
import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.StringMan;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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.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 org.checkerframework.checker.nullness.qual.Nullable;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@ -263,10 +265,14 @@ public abstract class Command {
max = c.size(); max = c.size();
} }
// Send the header // Send the header
Template curTemplate = Template.of("cur", String.valueOf(page + 1)); player.sendMessage(
Template maxTemplate = Template.of("max", String.valueOf(totalPages + 1)); header,
Template amountTemplate = Template.of("amount", String.valueOf(c.size())); TagResolver.builder()
player.sendMessage(header, curTemplate, maxTemplate, amountTemplate); .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 // Send the page content
List<T> subList = c.subList(page * size, max); List<T> subList = c.subList(page * size, max);
int i = page * size; int i = page * size;
@ -274,13 +280,24 @@ public abstract class Command {
i++; i++;
final CaptionHolder msg = new CaptionHolder(); final CaptionHolder msg = new CaptionHolder();
add.run(i, obj, msg); add.run(i, obj, msg);
player.sendMessage(msg.get(), msg.getTemplates()); player.sendMessage(msg.get(), msg.getTagResolvers());
} }
// Send the footer // Send the footer
Template command1 = Template.of("command1", baseCommand + " " + page); player.sendMessage(
Template command2 = Template.of("command2", baseCommand + " " + (page + 2)); TranslatableCaption.of("list.page_turn"),
Template clickable = Template.of("clickable", TranslatableCaption.of("list.clickable").getComponent(player)); TagResolver.builder()
player.sendMessage(TranslatableCaption.of("list.page_turn"), command1, command2, clickable); .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()) { if (commands.isEmpty()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.did_you_mean"), 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); return CompletableFuture.completedFuture(false);
} }
@ -353,7 +370,7 @@ public abstract class Command {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.did_you_mean"), TranslatableCaption.of("commandconfig.did_you_mean"),
Template.of("value", cmd.getUsage()) TagResolver.resolver("value", Tag.inserting(Component.text(cmd.getUsage())))
); );
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
@ -388,7 +405,7 @@ public abstract class Command {
// TODO improve or remove the Argument system // TODO improve or remove the Argument system
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", StringMan.join(fullSplit, " ")) TagResolver.resolver("value", Tag.inserting(Component.text(StringMan.join(fullSplit, " "))))
); );
return false; return false;
} }
@ -477,7 +494,7 @@ public abstract class Command {
if (message) { if (message) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", getPermission()) TagResolver.resolver("node", Tag.inserting(Component.text(getPermission())))
); );
} }
} else { } else {
@ -502,7 +519,7 @@ public abstract class Command {
public void sendUsage(PlotPlayer<?> player) { public void sendUsage(PlotPlayer<?> player) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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(); return this.getFullId().hashCode();
} }
public void checkTrue(boolean mustBeTrue, Caption message, Template... args) { public void checkTrue(boolean mustBeTrue, Caption message, TagResolver... args) {
if (!mustBeTrue) { if (!mustBeTrue) {
throw new CommandException(message, args); throw new CommandException(message, args);
} }
} }
public <T> T check(T object, Caption message, Template... args) { public <T> T check(T object, Caption message, TagResolver... args) {
if (object == null) { if (object == null) {
throw new CommandException(message, args); throw new CommandException(message, args);
} }
@ -628,10 +645,10 @@ public abstract class Command {
public static class CommandException extends RuntimeException { public static class CommandException extends RuntimeException {
private final Template[] args;
private final Caption message; 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.message = message;
this.args = args; this.args = args;
} }

View File

@ -26,7 +26,7 @@
package com.plotsquared.core.command; package com.plotsquared.core.command;
import com.plotsquared.core.configuration.caption.Caption; 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; import org.checkerframework.checker.nullness.qual.NonNull;
/** /**
@ -41,7 +41,7 @@ public interface CommandCaller {
* @param caption Caption to send * @param caption Caption to send
* @param replacements Variable replacements * @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. <i>Will be cached if permission caching is enabled.</i> * Check the player's permissions. <i>Will be cached if permission caching is enabled.</i>

View File

@ -29,6 +29,9 @@ import com.plotsquared.core.configuration.caption.Caption;
import com.plotsquared.core.configuration.caption.LocaleHolder; import com.plotsquared.core.configuration.caption.LocaleHolder;
import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.player.PlotPlayer; 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; import org.checkerframework.checker.nullness.qual.NonNull;
/** /**
@ -97,6 +100,11 @@ public enum CommandCategory implements Caption {
return this.caption.getComponent(localeHolder); 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 * Checks if a player has access to this command category
* *

View File

@ -34,7 +34,9 @@ import com.plotsquared.core.plot.comment.CommentInbox;
import com.plotsquared.core.plot.comment.CommentManager; import com.plotsquared.core.plot.comment.CommentManager;
import com.plotsquared.core.plot.comment.PlotComment; import com.plotsquared.core.plot.comment.PlotComment;
import com.plotsquared.core.util.StringMan; 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.Arrays;
import java.util.Locale; import java.util.Locale;
@ -51,8 +53,10 @@ public class Comment extends SubCommand {
if (args.length < 2) { if (args.length < 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.comment_syntax"), TranslatableCaption.of("comment.comment_syntax"),
Template.of("command", "/plot comment [X;Z]"), TagResolver.builder()
Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), "|")) .tag("command", Tag.inserting(Component.text("/plot comment [X;Z]")))
.tag("list", Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), "|"))))
.build()
); );
return false; return false;
} }
@ -71,8 +75,10 @@ public class Comment extends SubCommand {
if (args.length < 3) { if (args.length < 3) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.comment_syntax"), TranslatableCaption.of("comment.comment_syntax"),
Template.of("command", "/plot comment [X;Z]"), TagResolver.builder()
Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), "|")) .tag("command", Tag.inserting(Component.text("/plot comment [X;Z]")))
.tag("list", Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), "|"))))
.build()
); );
return false; return false;
} }
@ -83,8 +89,10 @@ public class Comment extends SubCommand {
if (inbox == null) { if (inbox == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.comment_syntax"), TranslatableCaption.of("comment.comment_syntax"),
Template.of("command", "/plot comment [X;Z]"), TagResolver.builder()
Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), "|")) .tag("command", Tag.inserting(Component.text("/plot comment [X;Z]")))
.tag("list", Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), "|"))))
.build()
); );
return false; return false;
} }
@ -104,8 +112,10 @@ public class Comment extends SubCommand {
player.sendMessage(TranslatableCaption.of("comment.no_plot_inbox")); player.sendMessage(TranslatableCaption.of("comment.no_plot_inbox"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.comment_syntax"), TranslatableCaption.of("comment.comment_syntax"),
Template.of("command", "/plot comment [X;Z]"), TagResolver.builder()
Template.of("list", StringMan.join(CommentManager.inboxes.keySet(), "|")) .tag("command", Tag.inserting(Component.text("/plot comment [X;Z]")))
.tag("list", Tag.inserting(Component.text(StringMan.join(CommentManager.inboxes.keySet(), "|"))))
.build()
); );
return false; return false;
} }

View File

@ -36,7 +36,9 @@ import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.WorldUtil;
import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.util.task.TaskManager;
import com.plotsquared.core.util.task.TaskTime; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.ArrayList; import java.util.ArrayList;
@ -75,7 +77,9 @@ public class Condense extends SubCommand {
if (args.length != 2 && args.length != 3) { if (args.length != 2 && args.length != 3) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot condense <area> <start | stop | info> [radius]") TagResolver.resolver("value", Tag.inserting(Component.text(
"/plot condense <area> <start | stop | info> [radius]"
)))
); );
return false; return false;
} }
@ -89,7 +93,10 @@ public class Condense extends SubCommand {
if (args.length == 2) { if (args.length == 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot condense" + area + " start <radius>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot condense" + area + " start " + "<radius>"))
)
); );
return false; return false;
} }
@ -188,8 +195,10 @@ public class Condense extends SubCommand {
if (result.get()) { if (result.get()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("condense.moving"), TranslatableCaption.of("condense.moving"),
Template.of("origin", String.valueOf(origin)), TagResolver.builder()
Template.of("possible", String.valueOf(possible)) .tag("origin", Tag.inserting(Component.text(origin.toString())))
.tag("possible", Tag.inserting(Component.text(possible.toString())))
.build()
); );
TaskManager.runTaskLater(task, TaskTime.ticks(1L)); TaskManager.runTaskLater(task, TaskTime.ticks(1L));
} }
@ -209,7 +218,7 @@ public class Condense extends SubCommand {
if (i >= free.size()) { if (i >= free.size()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("condense.skipping"), 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) { if (args.length == 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot condense " + area + " info <radius>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot condense " + area + " info <radius>"))
)
); );
return false; return false;
} }
@ -251,20 +263,20 @@ public class Condense extends SubCommand {
player.sendMessage(TranslatableCaption.of("condense.default_eval")); player.sendMessage(TranslatableCaption.of("condense.default_eval"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("condense.minimum_radius"), TranslatableCaption.of("condense.minimum_radius"),
Template.of("minimumRadius", String.valueOf(minimumRadius)) TagResolver.resolver("minimumRadius", Tag.inserting(Component.text(minimumRadius)))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("condense.minimum_radius"), TranslatableCaption.of("condense.maximum_moved"),
Template.of("maxMove", String.valueOf(maxMove)) TagResolver.resolver("maxMove", Tag.inserting(Component.text(maxMove)))
); );
player.sendMessage(TranslatableCaption.of("condense.input_eval")); player.sendMessage(TranslatableCaption.of("condense.input_eval"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("condense.input_radius"), TranslatableCaption.of("condense.input_radius"),
Template.of("radius", String.valueOf(radius)) TagResolver.resolver("radius", Tag.inserting(Component.text(radius)))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("condense.estimated_moves"), 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.eta"));
player.sendMessage(TranslatableCaption.of("condense.radius_measured")); player.sendMessage(TranslatableCaption.of("condense.radius_measured"));
@ -273,7 +285,10 @@ public class Condense extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot condense " + area.getWorldName() + " <start | stop | info> [radius]") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot condense " + area.getWorldName() + " <start | stop | info> [radius]"))
)
); );
return false; return false;
} }

View File

@ -37,7 +37,9 @@ import com.plotsquared.core.plot.flag.PlotFlag;
import com.plotsquared.core.plot.flag.implementations.DoneFlag; import com.plotsquared.core.plot.flag.implementations.DoneFlag;
import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.Permissions; 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; import org.checkerframework.checker.nullness.qual.NonNull;
@CommandDeclaration(command = "continue", @CommandDeclaration(command = "continue",
@ -64,7 +66,9 @@ public class Continue extends SubCommand {
.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_CONTINUE)) { .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_CONTINUE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -77,7 +81,7 @@ public class Continue extends SubCommand {
< player.getPlotCount() + size)) { < player.getPlotCount() + size)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.cant_claim_more_plots"), 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; return false;
} }
@ -91,7 +95,7 @@ public class Continue extends SubCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Done flag removal") TagResolver.resolver("value", Tag.inserting(Component.text("Done flag removal")))
); );
return true; return true;
} }

View File

@ -31,7 +31,9 @@ import com.plotsquared.core.permissions.Permission;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.Permissions; 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", @CommandDeclaration(command = "copy",
permission = "plots.copy", permission = "plots.copy",
@ -57,7 +59,7 @@ public class Copy extends SubCommand {
if (args.length != 1) { if (args.length != 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot copy <X;Z>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot copy <X;Z>")))
); );
return false; return false;
} }
@ -76,8 +78,11 @@ public class Copy extends SubCommand {
plot1.getPlotModificationManager().copy(plot2, player).thenAccept(result -> { plot1.getPlotModificationManager().copy(plot2, player).thenAccept(result -> {
if (result) { if (result) {
player.sendMessage(TranslatableCaption.of("move.copy_success"), Template.of("origin", String.valueOf(plot1)), player.sendMessage(TranslatableCaption.of("move.copy_success"),
Template.of("target", String.valueOf(plot2)) TagResolver.builder()
.tag("origin", Tag.inserting(Component.text(plot1.toString())))
.tag("target", Tag.inserting(Component.text(plot2.toString())))
.build()
); );
} else { } else {
player.sendMessage(TranslatableCaption.of("move.requires_unowned")); player.sendMessage(TranslatableCaption.of("move.requires_unowned"));

View File

@ -32,7 +32,9 @@ import com.plotsquared.core.generator.HybridUtils;
import com.plotsquared.core.location.Location; import com.plotsquared.core.location.Location;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; 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; import org.checkerframework.checker.nullness.qual.NonNull;
@CommandDeclaration(command = "createroadschematic", @CommandDeclaration(command = "createroadschematic",
@ -68,7 +70,7 @@ public class CreateRoadSchematic extends SubCommand {
this.hybridUtils.setupRoadSchematic(plot); this.hybridUtils.setupRoadSchematic(plot);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("schematics.schematic_road_created"), TranslatableCaption.of("schematics.schematic_road_created"),
Template.of("command", "/plot debugroadregen") TagResolver.resolver("command", Tag.inserting(Component.text("/plot debugroadregen")))
); );
return true; return true;
} }

View File

@ -47,7 +47,9 @@ import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.FileUtils; import com.plotsquared.core.util.FileUtils;
import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.query.PlotQuery;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import java.io.File; import java.io.File;
@ -108,7 +110,10 @@ public class DatabaseCommand extends SubCommand {
if (args.length < 1) { if (args.length < 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot database [area] <sqlite | mysql | import>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot database [area] <sqlite | mysql | import>"))
)
); );
return false; return false;
} }
@ -123,7 +128,7 @@ public class DatabaseCommand extends SubCommand {
if (args.length < 1) { if (args.length < 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot database [area] <sqlite|mysql|import>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot database [area] <sqlite|mysql|import>")))
); );
player.sendMessage(TranslatableCaption.of("database.arg")); player.sendMessage(TranslatableCaption.of("database.arg"));
return false; return false;
@ -136,7 +141,10 @@ public class DatabaseCommand extends SubCommand {
if (args.length < 2) { if (args.length < 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot database import <sqlite file> [prefix]") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot database import <sqlite file> [prefix]"))
)
); );
return false; return false;
} }
@ -147,7 +155,7 @@ public class DatabaseCommand extends SubCommand {
if (!file.exists()) { if (!file.exists()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("database.does_not_exist"), TranslatableCaption.of("database.does_not_exist"),
Template.of("value", String.valueOf(file)) TagResolver.resolver("value", Tag.inserting(Component.text(file.toString())))
); );
return false; return false;
} }
@ -191,8 +199,10 @@ public class DatabaseCommand extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("database.skipping_duplicated_plot"), TranslatableCaption.of("database.skipping_duplicated_plot"),
Template.of("plot", String.valueOf(plot)), TagResolver.builder()
Template.of("id", String.valueOf(plot.temp)) .tag("plot", Tag.inserting(Component.text(plot.toString())))
.tag("id", Tag.inserting(Component.text(plot.temp)))
.build()
); );
continue; continue;
} }

View File

@ -41,7 +41,10 @@ import com.plotsquared.core.uuid.UUIDMapping;
import com.sk89q.worldedit.world.entity.EntityType; import com.sk89q.worldedit.world.entity.EntityType;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Collection; import java.util.Collection;
@ -75,7 +78,10 @@ public class Debug extends SubCommand {
if (args.length == 0) { if (args.length == 0) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot debug <loadedchunks | player | debug-players | entitytypes | msg>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot debug <loadedchunks | player | debug-players | entitytypes | msg>"))
)
); );
} }
if (args.length > 0) { if (args.length > 0) {
@ -102,7 +108,7 @@ public class Debug extends SubCommand {
final Collection<UUIDMapping> mappings = PlotSquared.get().getImpromptuUUIDPipeline().getAllImmediately(); final Collection<UUIDMapping> mappings = PlotSquared.get().getImpromptuUUIDPipeline().getAllImmediately();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debug.cached_uuids"), TranslatableCaption.of("debug.cached_uuids"),
Template.of("value", String.valueOf(mappings.size())) TagResolver.resolver("value", Tag.inserting(Component.text(mappings.size())))
); );
return true; return true;
} }
@ -111,7 +117,7 @@ public class Debug extends SubCommand {
for (final PlotPlayer<?> pp : PlotPlayer.getDebugModePlayers()) { for (final PlotPlayer<?> pp : PlotPlayer.getDebugModePlayers()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debug.player_in_debugmode_list"), TranslatableCaption.of("debug.player_in_debugmode_list"),
Template.of("value", pp.getName()) TagResolver.resolver("value", Tag.inserting(Component.text(pp.getName())))
); );
} }
return true; return true;
@ -121,10 +127,11 @@ public class Debug extends SubCommand {
player.sendMessage(TranslatableCaption.of("debug.entity_categories")); player.sendMessage(TranslatableCaption.of("debug.entity_categories"));
EntityCategory.REGISTRY.forEach(category -> { EntityCategory.REGISTRY.forEach(category -> {
final StringBuilder builder = final StringBuilder builder =
new StringBuilder("§7- §6").append(category.getId()).append("§7: §6"); new StringBuilder("<gray>-</gray> <gold>").append(category.getId()).append("</gold><gray>: <gold>");
for (final EntityType entityType : category.getAll()) { for (final EntityType entityType : category.getAll()) {
builder.append(entityType.getId()).append(" "); builder.append(entityType.getId()).append(" ");
} }
builder.append("</gold>");
player.sendMessage(StaticCaption.of("<prefix>" + builder)); player.sendMessage(StaticCaption.of("<prefix>" + builder));
}); });
EntityType.REGISTRY.values().stream().sorted(Comparator.comparing(EntityType::getId)) EntityType.REGISTRY.values().stream().sorted(Comparator.comparing(EntityType::getId))
@ -144,28 +151,53 @@ public class Debug extends SubCommand {
.getCaptionMap(TranslatableCaption.DEFAULT_NAMESPACE) .getCaptionMap(TranslatableCaption.DEFAULT_NAMESPACE)
.getCaptions(); .getCaptions();
TextComponent.Builder information = Component.text(); 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 line = TranslatableCaption.of("debug.debug_line").getComponent(player) + "\n";
String section = TranslatableCaption.of("debug.debug_section").getComponent(player) + "\n"; String section = TranslatableCaption.of("debug.debug_section").getComponent(player) + "\n";
information.append(header); 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 information.append(MINI_MESSAGE
.parse( .deserialize(
line, line,
Template.of("var", "Plot Worlds"), TagResolver.builder()
Template.of("val", StringMan.join(this.plotAreaManager.getAllPlotAreas(), ", ")) .tag("var", Tag.inserting(Component.text("Plot Worlds")))
.tag(
"val",
Tag.inserting(Component.text(StringMan.join(
this.plotAreaManager.getAllPlotAreas(),
", "
)))
)
.build()
)); ));
information.append( information.append(
MINI_MESSAGE.parse( MINI_MESSAGE.deserialize(
line, line,
Template.of("var", "Owned Plots"), TagResolver.builder()
Template.of("val", String.valueOf(PlotQuery.newQuery().allPlots().count())) .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.deserialize(
information.append(MINI_MESSAGE.parse( section,
TagResolver.resolver("val", Tag.inserting(Component.text("Messages")))
));
information.append(MINI_MESSAGE.deserialize(
line, line,
Template.of("var", "Total Messages"), TagResolver.builder()
Template.of("val", String.valueOf(captions.size())) .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()))); player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(information.build())));
return true; return true;

View File

@ -43,12 +43,13 @@ import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.StringMan;
import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.query.PlotQuery;
import com.plotsquared.core.util.task.RunnableVal; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
@ -103,7 +104,7 @@ public class DebugExec extends SubCommand {
if (analysis != null) { if (analysis != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugexec.changes_column"), TranslatableCaption.of("debugexec.changes_column"),
Template.of("value", String.valueOf(analysis.changes)) TagResolver.resolver("value", Tag.inserting(Component.text(analysis.changes)))
); );
return true; return true;
} }
@ -113,7 +114,7 @@ public class DebugExec extends SubCommand {
public void run(PlotAnalysis value) { public void run(PlotAnalysis value) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugexec.analyze_done"), 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) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot debugexec analyze <threshold>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot debugexec analyze <threshold>"))
)
); );
player.sendMessage(TranslatableCaption.of("debugexec.threshold_default")); player.sendMessage(TranslatableCaption.of("debugexec.threshold_default"));
return false; return false;
@ -134,7 +138,7 @@ public class DebugExec extends SubCommand {
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugexec.invalid_threshold"), 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")); player.sendMessage(TranslatableCaption.of("debugexec.threshold_default_double"));
return false; return false;
@ -168,7 +172,7 @@ public class DebugExec extends SubCommand {
if (args.length != 2) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot debugexec remove-flag <flag>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot debugexec remove-flag <flag>")))
); );
return false; return false;
} }
@ -186,7 +190,7 @@ public class DebugExec extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugexec.cleared_flag"), TranslatableCaption.of("debugexec.cleared_flag"),
Template.of("value", flag) TagResolver.resolver("value", Tag.inserting(Component.text(flag)))
); );
return true; return true;
} }
@ -194,7 +198,10 @@ public class DebugExec extends SubCommand {
if (args.length != 2) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "Invalid syntax: /plot debugexec start-rgar <world>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("Invalid syntax: /plot debugexec start-rgar <world>"))
)
); );
return false; return false;
} }
@ -202,7 +209,7 @@ public class DebugExec extends SubCommand {
if (area == null) { if (area == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.not_valid_plot_world"), TranslatableCaption.of("errors.not_valid_plot_world"),
Template.of("value", args[1]) TagResolver.resolver("value", Tag.inserting(Component.text(args[1])))
); );
return false; return false;
} }

View File

@ -38,7 +38,9 @@ import com.plotsquared.core.inject.annotations.WorldFile;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.util.PremiumVerification; import com.plotsquared.core.util.PremiumVerification;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import java.io.File; import java.io.File;
@ -138,8 +140,10 @@ public class DebugPaste extends SubCommand {
} catch (IOException ignored) { } catch (IOException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugpaste.latest_log"), TranslatableCaption.of("debugpaste.latest_log"),
Template.of("file", "latest.log"), TagResolver.builder()
Template.of("size", "14MB") .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) { } catch (final IllegalArgumentException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugpaste.empty_file"), TranslatableCaption.of("debugpaste.empty_file"),
Template.of("file", "settings.yml") TagResolver.resolver("file", Tag.inserting(Component.text("settings.yml")))
); );
} }
try { try {
@ -156,7 +160,7 @@ public class DebugPaste extends SubCommand {
} catch (final IllegalArgumentException ignored) { } catch (final IllegalArgumentException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugpaste.empty_file"), 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) { } catch (final IOException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugpaste.skip_multiverse"), 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); String.format("https://athion.net/ISPaster/paste/view/%s", pasteId);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugpaste.debug_report_created"), TranslatableCaption.of("debugpaste.debug_report_created"),
Template.of("url", link) TagResolver.resolver("url", Tag.preProcessParsed(link))
); );
} else { } else {
final String responseMessage = jsonObject.get("response").getAsString(); final String responseMessage = jsonObject.get("response").getAsString();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugpaste.creation_failed"), TranslatableCaption.of("debugpaste.creation_failed"),
Template.of("value", responseMessage) TagResolver.resolver("value", Tag.inserting(Component.text(responseMessage)))
); );
} }
} catch (final Throwable throwable) { } catch (final Throwable throwable) {
throwable.printStackTrace(); throwable.printStackTrace();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugpaste.creation_failed"), TranslatableCaption.of("debugpaste.creation_failed"),
Template.of("value", throwable.getMessage()) TagResolver.resolver("value", Tag.inserting(Component.text(throwable.getMessage())))
); );
} }
} catch (IOException e) { } catch (IOException e) {

View File

@ -35,7 +35,9 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotManager; import com.plotsquared.core.plot.PlotManager;
import com.plotsquared.core.queue.QueueCoordinator; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Arrays; import java.util.Arrays;
@ -67,7 +69,7 @@ public class DebugRoadRegen extends SubCommand {
if (args.length < 1) { if (args.length < 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", DebugRoadRegen.USAGE) TagResolver.resolver("value", Tag.inserting(Component.text(DebugRoadRegen.USAGE)))
); );
return false; return false;
} }
@ -87,7 +89,7 @@ public class DebugRoadRegen extends SubCommand {
default: default:
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", DebugRoadRegen.USAGE) TagResolver.resolver("value", Tag.inserting(Component.text(DebugRoadRegen.USAGE)))
); );
return false; return false;
} }
@ -110,11 +112,11 @@ public class DebugRoadRegen extends SubCommand {
queue.setCompleteTask(() -> { queue.setCompleteTask(() -> {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugroadregen.regen_done"), TranslatableCaption.of("debugroadregen.regen_done"),
Template.of("value", plot.getId().toString()) TagResolver.resolver("value", Tag.inserting(Component.text(plot.getId().toString())))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugroadregen.regen_all"), TranslatableCaption.of("debugroadregen.regen_all"),
Template.of("value", "/plot regenallroads") TagResolver.resolver("value", Tag.inserting(Component.text("/plot regenallroads")))
); );
}); });
manager.createRoadEast(plot, queue); manager.createRoadEast(plot, queue);
@ -133,18 +135,18 @@ public class DebugRoadRegen extends SubCommand {
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_valid_number"), TranslatableCaption.of("invalid.not_valid_number"),
Template.of("value", "0, 256") TagResolver.resolver("value", Tag.inserting(Component.text("0, 256")))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", DebugRoadRegen.USAGE) TagResolver.resolver("value", Tag.inserting(Component.text(DebugRoadRegen.USAGE)))
); );
return false; return false;
} }
} else if (args.length != 0) { } else if (args.length != 0) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", DebugRoadRegen.USAGE) TagResolver.resolver("value", Tag.inserting(Component.text(DebugRoadRegen.USAGE)))
); );
return false; return false;
} }
@ -162,11 +164,11 @@ public class DebugRoadRegen extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugroadregen.schematic"), TranslatableCaption.of("debugroadregen.schematic"),
Template.of("command", "/plot createroadschematic") TagResolver.resolver("command", Tag.inserting(Component.text("/plot createroadschematic")))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugroadregen.regenallroads"), 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); boolean result = this.hybridUtils.scheduleSingleRegionRoadUpdate(plot, height);
if (!result) { if (!result) {

View File

@ -40,7 +40,9 @@ import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PlotExpression; import com.plotsquared.core.util.PlotExpression;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
@ -85,7 +87,7 @@ public class Delete extends SubCommand {
if (eventResult == Result.DENY) { if (eventResult == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Delete") TagResolver.resolver("value", Tag.inserting(Component.text("Delete")))
); );
return true; return true;
} }
@ -121,14 +123,17 @@ public class Delete extends SubCommand {
this.econHandler.depositMoney(player, value); this.econHandler.depositMoney(player, value);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.added_balance"), 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( player.sendMessage(
TranslatableCaption.of("working.deleting_done"), TranslatableCaption.of("working.deleting_done"),
Template.of("amount", String.valueOf(System.currentTimeMillis() - start)), TagResolver.resolver(
Template.of("plot", plot.getId().toString()) "amount",
Tag.inserting(Component.text(String.valueOf(System.currentTimeMillis() - start)))
),
TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
eventDispatcher.callPostDelete(plot); eventDispatcher.callPostDelete(plot);
}); });

View File

@ -42,7 +42,9 @@ import com.plotsquared.core.util.PlayerManager;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.WorldUtil;
import com.sk89q.worldedit.world.gamemode.GameModes; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Collection; import java.util.Collection;
@ -97,7 +99,7 @@ public class Deny extends SubCommand {
if (size >= maxDenySize) { if (size >= maxDenySize) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("members.plot_max_members_denied"), TranslatableCaption.of("members.plot_max_members_denied"),
Template.of("amount", String.valueOf(size)) TagResolver.resolver("amount", Tag.inserting(Component.text(size)))
); );
return false; return false;
} }
@ -108,7 +110,7 @@ public class Deny extends SubCommand {
} else if (throwable != null || uuids.isEmpty()) { } else if (throwable != null || uuids.isEmpty()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
} else { } else {
for (UUID uuid : uuids) { for (UUID uuid : uuids) {
@ -117,7 +119,7 @@ public class Deny extends SubCommand {
.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_DENY))) { .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_DENY))) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
} else if (plot.isOwner(uuid)) { } else if (plot.isOwner(uuid)) {
player.sendMessage(TranslatableCaption.of("deny.cant_remove_owner")); player.sendMessage(TranslatableCaption.of("deny.cant_remove_owner"));
@ -125,7 +127,10 @@ public class Deny extends SubCommand {
} else if (plot.getDenied().contains(uuid)) { } else if (plot.getDenied().contains(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("member.already_added"), TranslatableCaption.of("member.already_added"),
Template.of("player", PlayerManager.resolveName(uuid).getComponent(player)) TagResolver.resolver(
"player",
Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player))
)
); );
return; return;
} else { } else {

View File

@ -34,7 +34,9 @@ import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.plot.flag.implementations.DescriptionFlag; import com.plotsquared.core.plot.flag.implementations.DescriptionFlag;
import com.plotsquared.core.util.EventDispatcher; 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; import org.checkerframework.checker.nullness.qual.NonNull;
@CommandDeclaration(command = "setdescription", @CommandDeclaration(command = "setdescription",
@ -61,7 +63,7 @@ public class Desc extends SetCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Description removal") TagResolver.resolver("value", Tag.inserting(Component.text("Description removal")))
); );
return false; return false;
} }
@ -76,7 +78,7 @@ public class Desc extends SetCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Description set") TagResolver.resolver("value", Tag.inserting(Component.text("Description set")))
); );
return false; return false;
} }

View File

@ -43,7 +43,9 @@ import com.plotsquared.core.plot.flag.implementations.DoneFlag;
import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.task.RunnableVal; 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 org.checkerframework.checker.nullness.qual.NonNull;
@CommandDeclaration(command = "done", @CommandDeclaration(command = "done",
@ -77,7 +79,7 @@ public class Done extends SubCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Done") TagResolver.resolver("value", Tag.inserting(Component.text("Done")))
); );
return true; return true;
} }
@ -98,7 +100,7 @@ public class Done extends SubCommand {
plot.addRunning(); plot.addRunning();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("web.generating_link"), 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"); final Settings.Auto_Clear doneRequirements = Settings.AUTO_CLEAR.get("done");
if (ExpireManager.IMP == null || doneRequirements == null) { if (ExpireManager.IMP == null || doneRequirements == null) {

View File

@ -41,7 +41,9 @@ import com.plotsquared.core.util.StringMan;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.WorldUtil;
import com.plotsquared.core.util.task.RunnableVal; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.net.URL; import java.net.URL;
@ -121,7 +123,10 @@ public class Download extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_DOWNLOAD_WORLD)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_DOWNLOAD_WORLD)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", Permission.PERMISSION_DOWNLOAD_WORLD.toString()) TagResolver.resolver(
"node",
Tag.inserting(Permission.PERMISSION_DOWNLOAD_WORLD)
)
); );
return false; return false;
} }
@ -135,18 +140,24 @@ public class Download extends SubCommand {
if (url == null) { if (url == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("web.generating_link_failed"), TranslatableCaption.of("web.generating_link_failed"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
return; 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 { } else {
sendUsage(player); sendUsage(player);
return false; 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; return true;
} }
@ -190,8 +201,10 @@ public class Download extends SubCommand {
public void run(URL value) { public void run(URL value) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("web.generation_link_success"), TranslatableCaption.of("web.generation_link_success"),
Template.of("download", value.toString()), TagResolver.builder()
Template.of("delete", "Not available") .tag("download", Tag.preProcessParsed(value.toString()))
.tag("delete", Tag.preProcessParsed("Not available"))
.build()
); );
player.sendMessage(StaticCaption.of(value.toString())); player.sendMessage(StaticCaption.of(value.toString()));
} }
@ -205,13 +218,15 @@ public class Download extends SubCommand {
if (throwable != null || !result.isSuccess()) { if (throwable != null || !result.isSuccess()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("web.generating_link_failed"), TranslatableCaption.of("web.generating_link_failed"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("web.generation_link_success"), TranslatableCaption.of("web.generation_link_success"),
Template.of("download", result.getDownloadUrl()), TagResolver.builder()
Template.of("delete", result.getDeletionUrl()) .tag("download", Tag.preProcessParsed(result.getDownloadUrl()))
.tag("delete", Tag.preProcessParsed(result.getDeletionUrl()))
.build()
); );
} }
}); });

View File

@ -30,7 +30,6 @@ import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.CaptionUtility; import com.plotsquared.core.configuration.caption.CaptionUtility;
import com.plotsquared.core.configuration.caption.StaticCaption; 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.configuration.caption.TranslatableCaption;
import com.plotsquared.core.events.PlotFlagAddEvent; import com.plotsquared.core.events.PlotFlagAddEvent;
import com.plotsquared.core.events.PlotFlagRemoveEvent; 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 com.plotsquared.core.util.task.RunnableVal3;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent; 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.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
@ -92,7 +93,10 @@ public final class FlagCommand extends Command {
private static boolean sendMessage(PlotPlayer<?> player) { private static boolean sendMessage(PlotPlayer<?> player) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot flag <set | remove | add | list | info> <flag> <value>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot flag <set | remove | add | list | info> <flag> <value>"))
)
); );
return true; return true;
} }
@ -118,9 +122,9 @@ public final class FlagCommand extends Command {
if (!result) { if (!result) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of( TagResolver.resolver(
"node", "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); final boolean result = Permissions.hasPermission(player, permission);
if (!result) { 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; return false;
} }
} }
} catch (final FlagParseException e) { } catch (final FlagParseException e) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("flag.flag_parse_error"), TranslatableCaption.of("flag.flag_parse_error"),
Template.of("flag_name", flag.getName()), TagResolver.builder()
Template.of("flag_value", e.getValue()), .tag("flag_name", Tag.inserting(Component.text(flag.getName())))
Template.of("error", e.getErrorMessage().getComponent(player)) .tag("flag_value", Tag.inserting(Component.text(e.getValue())))
.tag("error", Tag.inserting(e.getErrorMessage().toComponent(player)))
.build()
); );
return false; return false;
} catch (final Exception e) { } catch (final Exception e) {
@ -163,7 +172,10 @@ public final class FlagCommand extends Command {
perm = basePerm; perm = basePerm;
} }
if (!result) { 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; return result;
} }
@ -188,7 +200,7 @@ public final class FlagCommand extends Command {
.hasPermission(player, Permission.PERMISSION_SET_FLAG_OTHER)) { .hasPermission(player, Permission.PERMISSION_SET_FLAG_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -223,7 +235,7 @@ public final class FlagCommand extends Command {
if (best != null) { if (best != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("flag.not_valid_flag_suggested"), TranslatableCaption.of("flag.not_valid_flag_suggested"),
Template.of("value", best) TagResolver.resolver("value", Tag.inserting(Component.text(best)))
); );
suggested = true; suggested = true;
} }
@ -332,7 +344,7 @@ public final class FlagCommand extends Command {
if (args.length < 2) { if (args.length < 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot flag set <flag> <value>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot flag set <flag> <value>")))
); );
return; return;
} }
@ -345,7 +357,7 @@ public final class FlagCommand extends Command {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Flag set") TagResolver.resolver("value", Tag.inserting(Component.text("Flag set")))
); );
return; return;
} }
@ -361,15 +373,21 @@ public final class FlagCommand extends Command {
} catch (final FlagParseException e) { } catch (final FlagParseException e) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("flag.flag_parse_error"), TranslatableCaption.of("flag.flag_parse_error"),
Template.of("flag_name", plotFlag.getName()), TagResolver.builder()
Template.of("flag_value", e.getValue()), .tag("flag_name", Tag.inserting(Component.text(plotFlag.getName())))
Template.of("error", e.getErrorMessage().getComponent(player)) .tag("flag_value", Tag.inserting(Component.text(e.getValue())))
.tag("error", Tag.inserting(e.getErrorMessage().toComponent(player)))
.build()
); );
return; return;
} }
plot.setFlag(parsed); plot.setFlag(parsed);
player.sendMessage(TranslatableCaption.of("flag.flag_added"), Template.of("flag", String.valueOf(args[0])), player.sendMessage(
Template.of("value", String.valueOf(parsed)) 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) { if (args.length < 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot flag add <flag> <values>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot flag add <flag> <values>")))
); );
return; return;
} }
@ -404,7 +422,7 @@ public final class FlagCommand extends Command {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Flag add") TagResolver.resolver("value", Tag.inserting(Component.text("Flag add")))
); );
return; return;
} }
@ -425,9 +443,11 @@ public final class FlagCommand extends Command {
} catch (FlagParseException e) { } catch (FlagParseException e) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("flag.flag_parse_error"), TranslatableCaption.of("flag.flag_parse_error"),
Template.of("flag_name", plotFlag.getName()), TagResolver.builder()
Template.of("flag_value", e.getValue()), .tag("flag_name", Tag.inserting(Component.text(plotFlag.getName())))
Template.of("error", e.getErrorMessage().getComponent(player)) .tag("flag_value", Tag.inserting(Component.text(e.getValue())))
.tag("error", Tag.inserting(e.getErrorMessage().toComponent(player)))
.build()
); );
return; return;
} }
@ -437,8 +457,12 @@ public final class FlagCommand extends Command {
player.sendMessage(TranslatableCaption.of("flag.flag_not_added")); player.sendMessage(TranslatableCaption.of("flag.flag_not_added"));
return; return;
} }
player.sendMessage(TranslatableCaption.of("flag.flag_added"), Template.of("flag", String.valueOf(args[0])), player.sendMessage(
Template.of("value", String.valueOf(parsed)) 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) { if (args.length != 1 && args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot flag remove <flag> [values]") TagResolver.resolver("value", Tag.inserting(Component.text("/plot flag remove <flag> [values]")))
); );
return; return;
} }
@ -473,7 +497,7 @@ public final class FlagCommand extends Command {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Flag remove") TagResolver.resolver("value", Tag.inserting(Component.text("Flag remove")))
); );
return; return;
} }
@ -483,7 +507,10 @@ public final class FlagCommand extends Command {
if (args.length != 2) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return;
} }
@ -498,9 +525,11 @@ public final class FlagCommand extends Command {
} catch (final FlagParseException e) { } catch (final FlagParseException e) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("flag.flag_parse_error"), TranslatableCaption.of("flag.flag_parse_error"),
Template.of("flag_name", flag.getName()), TagResolver.builder()
Template.of("flag_value", e.getValue()), .tag("flag_name", Tag.inserting(Component.text(flag.getName())))
Template.of("error", String.valueOf(e.getErrorMessage())) .tag("flag_value", Tag.inserting(Component.text(e.getValue())))
.tag("error", Tag.inserting(e.getErrorMessage().toComponent(player)))
.build()
); );
return; return;
} }
@ -511,10 +540,13 @@ public final class FlagCommand extends Command {
if (list.removeAll((List) parsedFlag.getValue())) { if (list.removeAll((List) parsedFlag.getValue())) {
if (list.isEmpty()) { if (list.isEmpty()) {
if (plot.removeFlag(flag)) { if (plot.removeFlag(flag)) {
player.sendMessage(TranslatableCaption.of("flag.flag_removed"), Template.of("flag", args[0]), Template.of( player.sendMessage(
"value", TranslatableCaption.of("flag.flag_removed"),
String.valueOf(flag) TagResolver.builder()
)); .tag("flag", Tag.inserting(Component.text(args[0])))
.tag("value", Tag.inserting(Component.text(flag.toString())))
.build()
);
return; return;
} else { } else {
player.sendMessage(TranslatableCaption.of("flag.flag_not_removed")); player.sendMessage(TranslatableCaption.of("flag.flag_not_removed"));
@ -526,7 +558,10 @@ public final class FlagCommand extends Command {
if (addEvent.getEventResult() == Result.DENY) { if (addEvent.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), 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; return;
} }
@ -549,10 +584,13 @@ public final class FlagCommand extends Command {
return; return;
} }
} }
player.sendMessage(TranslatableCaption.of("flag.flag_removed"), Template.of("flag", args[0]), Template.of( player.sendMessage(
"value", TranslatableCaption.of("flag.flag_removed"),
String.valueOf(flag) TagResolver.builder()
)); .tag("flag", Tag.inserting(Component.text(args[0])))
.tag("value", Tag.inserting(Component.text(flag.toString())))
.build()
);
} }
@CommandDeclaration(command = "list", @CommandDeclaration(command = "list",
@ -570,34 +608,35 @@ public final class FlagCommand extends Command {
return; return;
} }
final Map<String, ArrayList<String>> flags = new HashMap<>(); final Map<Component, ArrayList<String>> flags = new HashMap<>();
for (PlotFlag<?, ?> plotFlag : GlobalFlagContainer.getInstance().getRecognizedPlotFlags()) { for (PlotFlag<?, ?> plotFlag : GlobalFlagContainer.getInstance().getRecognizedPlotFlags()) {
if (plotFlag instanceof InternalFlag) { if (plotFlag instanceof InternalFlag) {
continue; continue;
} }
final String category = MINI_MESSAGE.stripTokens(plotFlag.getFlagCategory().getComponent(player)); final Component category = plotFlag.getFlagCategory().toComponent(player);
final Collection<String> flagList = final Collection<String> flagList = flags.computeIfAbsent(category, k -> new ArrayList<>());
flags.computeIfAbsent(category, k -> new ArrayList<>());
flagList.add(plotFlag.getName()); flagList.add(plotFlag.getName());
} }
for (final Map.Entry<String, ArrayList<String>> entry : flags.entrySet()) { for (final Map.Entry<Component, ArrayList<String>> entry : flags.entrySet()) {
Collections.sort(entry.getValue()); Collections.sort(entry.getValue());
Component category = Component category =
MINI_MESSAGE.parse( MINI_MESSAGE.deserialize(
TranslatableCaption.of("flag.flag_list_categories").getComponent(player), 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); TextComponent.Builder builder = Component.text().append(category);
final Iterator<String> flagIterator = entry.getValue().iterator(); final Iterator<String> flagIterator = entry.getValue().iterator();
while (flagIterator.hasNext()) { while (flagIterator.hasNext()) {
final String flag = flagIterator.next(); final String flag = flagIterator.next();
builder.append(MINI_MESSAGE builder.append(MINI_MESSAGE
.parse( .deserialize(
TranslatableCaption.of("flag.flag_list_flag").getComponent(player), TranslatableCaption.of("flag.flag_list_flag").getComponent(player),
Template.of("command", "/plot flag info " + flag), TagResolver.builder()
Template.of("flag", flag), .tag("command", Tag.preProcessParsed("/plot flag info " + flag))
Template.of("suffix", flagIterator.hasNext() ? ", " : "") .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()))); player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(builder.build())));
@ -621,7 +660,7 @@ public final class FlagCommand extends Command {
if (args.length < 1) { if (args.length < 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot flag info <flag>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot flag info <flag>")))
); );
return; return;
} }
@ -629,11 +668,17 @@ public final class FlagCommand extends Command {
if (plotFlag != null) { if (plotFlag != null) {
player.sendMessage(TranslatableCaption.of("flag.flag_info_header")); player.sendMessage(TranslatableCaption.of("flag.flag_info_header"));
// Flag name // 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 // Flag category
player.sendMessage( player.sendMessage(
TranslatableCaption.of("flag.flag_info_category"), TranslatableCaption.of("flag.flag_info_category"),
Templates.of(player, "value", plotFlag.getFlagCategory()) TagResolver.resolver(
"value",
Tag.inserting(plotFlag.getFlagCategory().toComponent(player))
)
); );
// Flag description // Flag description
// TODO maybe merge and \n instead? // TODO maybe merge and \n instead?
@ -642,16 +687,18 @@ public final class FlagCommand extends Command {
// Flag example // Flag example
player.sendMessage( player.sendMessage(
TranslatableCaption.of("flag.flag_info_example"), TranslatableCaption.of("flag.flag_info_example"),
Template.of("command", "/plot flag set"), TagResolver.builder()
Template.of("flag", plotFlag.getName()), .tag("command", Tag.preProcessParsed("/plot flag set"))
Template.of("value", plotFlag.getExample()) .tag("flag", Tag.inserting(Component.text(plotFlag.getName())))
.tag("value", Tag.inserting(Component.text(plotFlag.getExample())))
.build()
); );
// Default value // Default value
final String defaultValue = player.getLocation().getPlotArea().getFlagContainer() final String defaultValue = player.getLocation().getPlotArea().getFlagContainer()
.getFlagErased(plotFlag.getClass()).toString(); .getFlagErased(plotFlag.getClass()).toString();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("flag.flag_info_default_value"), 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 // Footer. Done this way to prevent the duplicate-message-thingy from catching it
player.sendMessage(TranslatableCaption.of("flag.flag_info_footer")); player.sendMessage(TranslatableCaption.of("flag.flag_info_footer"));

View File

@ -40,7 +40,9 @@ import com.plotsquared.core.util.task.RunnableVal;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; import com.plotsquared.core.util.task.RunnableVal3;
import com.plotsquared.core.uuid.UUIDMapping; 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.Collection;
import java.util.Collections; import java.util.Collections;
@ -71,7 +73,7 @@ public class Grant extends Command {
checkTrue( checkTrue(
args.length >= 1 && args.length <= 2, args.length >= 1 && args.length <= 2,
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot grant <check | add> [player]") TagResolver.resolver("value", Tag.inserting(Component.text("/plot grant <check | add> [player]")))
); );
final String arg0 = args[0].toLowerCase(); final String arg0 = args[0].toLowerCase();
switch (arg0) { switch (arg0) {
@ -79,7 +81,7 @@ public class Grant extends Command {
if (!Permissions.hasPermission(player, Permission.PERMISSION_GRANT.format(arg0))) { if (!Permissions.hasPermission(player, Permission.PERMISSION_GRANT.format(arg0))) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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); return CompletableFuture.completedFuture(false);
} }
@ -92,7 +94,7 @@ public class Grant extends Command {
} else if (throwable != null || uuids.size() != 1) { } else if (throwable != null || uuids.size() != 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", String.valueOf(uuids)) TagResolver.resolver("value", Tag.inserting(Component.text(String.valueOf(uuids))))
); );
} else { } else {
final UUIDMapping uuid = uuids.toArray(new UUIDMapping[0])[0]; final UUIDMapping uuid = uuids.toArray(new UUIDMapping[0])[0];
@ -103,7 +105,7 @@ public class Grant extends Command {
if (args[0].equalsIgnoreCase("check")) { if (args[0].equalsIgnoreCase("check")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("grants.granted_plots"), 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 { } else {
access.set(access.get().orElse(0) + 1); access.set(access.get().orElse(0) + 1);
@ -123,7 +125,7 @@ public class Grant extends Command {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("grants.granted_plots"), TranslatableCaption.of("grants.granted_plots"),
Template.of("amount", String.valueOf(granted)) TagResolver.resolver("amount", Tag.inserting(Component.text(granted)))
); );
} else { // add } else { // add
int amount; int amount;
@ -138,7 +140,7 @@ public class Grant extends Command {
DBFunc.addPersistentMeta(uuid.getUuid(), key, rawData, replace); DBFunc.addPersistentMeta(uuid.getUuid(), key, rawData, replace);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("grants.added"), TranslatableCaption.of("grants.added"),
Template.of("grants", String.valueOf(amount)) TagResolver.resolver("grants", Tag.inserting(Component.text(amount)))
); );
} }
} }

View File

@ -35,7 +35,8 @@ import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; import com.plotsquared.core.util.task.RunnableVal3;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent; 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.ArrayList;
import java.util.Collection; import java.util.Collection;
@ -117,27 +118,31 @@ public class Help extends Command {
} }
if (cat == null && page == 0) { if (cat == null && page == 0) {
TextComponent.Builder builder = Component.text(); 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()) { for (CommandCategory c : CommandCategory.values()) {
if (!c.canAccess(player)) { if (!c.canAccess(player)) {
continue; continue;
} }
builder.append(Component.newline()).append(MINI_MESSAGE builder.append(Component.newline()).append(MINI_MESSAGE
.parse( .deserialize(
TranslatableCaption.of("help.help_info_item").getComponent(player), TranslatableCaption.of("help.help_info_item").getComponent(player),
Template.of("command", "/plot help"), TagResolver.builder()
Template.of("category", c.name().toLowerCase()), .tag("command", Tag.inserting(Component.text("/plot help")))
Template.of("category_desc", c.getComponent(player)) .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 builder.append(Component.newline()).append(MINI_MESSAGE
.parse( .deserialize(
TranslatableCaption.of("help.help_info_item").getComponent(player), TranslatableCaption.of("help.help_info_item").getComponent(player),
Template.of("command", "/plot help"), TagResolver.builder()
Template.of("category", "all"), .tag("command", Tag.inserting(Component.text("/plot help")))
Template.of("category_desc", "Display all commands") .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") .of("help.help_footer")
.getComponent(player))); .getComponent(player)));
player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(builder.asComponent()))); player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(builder.asComponent())));

View File

@ -42,7 +42,9 @@ import com.plotsquared.core.util.query.PlotQuery;
import com.plotsquared.core.util.query.SortingStrategy; import com.plotsquared.core.util.query.SortingStrategy;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.ArrayList; import java.util.ArrayList;
@ -79,8 +81,10 @@ public class HomeCommand extends Command {
} else if (plots.size() < page || page < 1) { } else if (plots.size() < page || page < 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.number_not_in_range"), TranslatableCaption.of("invalid.number_not_in_range"),
Template.of("min", "1"), TagResolver.builder()
Template.of("max", String.valueOf(plots.size())) .tag("min", Tag.inserting(Component.text(1)))
.tag("max", Tag.inserting(Component.text(plots.size())))
.build()
); );
return; return;
} }
@ -115,7 +119,7 @@ public class HomeCommand extends Command {
.hasPermission(player, Permission.PERMISSION_HOME)) { .hasPermission(player, Permission.PERMISSION_HOME)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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); return CompletableFuture.completedFuture(false);
} }
@ -137,7 +141,7 @@ public class HomeCommand extends Command {
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_a_number"), TranslatableCaption.of("invalid.not_a_number"),
Template.of("value", identifier) TagResolver.resolver("value", Tag.inserting(Component.text(identifier)))
); );
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
@ -178,7 +182,7 @@ public class HomeCommand extends Command {
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_a_number"), TranslatableCaption.of("invalid.not_a_number"),
Template.of("value", identifier) TagResolver.resolver("value", Tag.inserting(Component.text(identifier)))
); );
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }

View File

@ -27,7 +27,6 @@ package com.plotsquared.core.command;
import com.google.inject.TypeLiteral; import com.google.inject.TypeLiteral;
import com.plotsquared.core.configuration.caption.StaticCaption; 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.configuration.caption.TranslatableCaption;
import com.plotsquared.core.permissions.Permission; import com.plotsquared.core.permissions.Permission;
import com.plotsquared.core.player.MetaDataAccess; import com.plotsquared.core.player.MetaDataAccess;
@ -43,7 +42,8 @@ import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.RunnableVal;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent; 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.Collection;
import java.util.Collections; import java.util.Collections;
@ -79,9 +79,14 @@ public class Inbox extends SubCommand {
max = comments.length; max = comments.length;
} }
TextComponent.Builder builder = Component.text(); TextComponent.Builder builder = Component.text();
builder.append(MINI_MESSAGE.parse(TranslatableCaption.of("list.comment_list_header_paged").getComponent(player) + '\n', builder.append(MINI_MESSAGE.deserialize(
Template.of("amount", String.valueOf(comments.length)), Template.of("cur", String.valueOf(page + 1)), TranslatableCaption.of("list.comment_list_header_paged").getComponent(player) + '\n',
Template.of("max", String.valueOf(totalPages + 1)), Template.of("word", "all") 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 // This might work xD
@ -90,30 +95,28 @@ public class Inbox extends SubCommand {
Component commentColored; Component commentColored;
if (player.getName().equals(comment.senderName)) { if (player.getName().equals(comment.senderName)) {
commentColored = MINI_MESSAGE commentColored = MINI_MESSAGE
.parse( .deserialize(
TranslatableCaption.of("list.comment_list_by_lister").getComponent(player), TranslatableCaption.of("list.comment_list_by_lister").getComponent(player),
Template.of("comment", comment.comment) TagResolver.resolver("comment", Tag.inserting(Component.text(comment.comment)))
); );
} else { } else {
commentColored = MINI_MESSAGE commentColored = MINI_MESSAGE
.parse( .deserialize(
TranslatableCaption.of("list.comment_list_by_other").getComponent(player), 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)); TagResolver resolver = TagResolver.builder()
Template world = Template.of("world", comment.world); .tag("number", Tag.inserting(Component.text(x)))
Template plot_id = Template.of("plot_id", comment.id.getX() + ";" + comment.id.getY()); .tag("world", Tag.inserting(Component.text(comment.world)))
Template commenter = Template.of("commenter", comment.senderName); .tag("plot_id", Tag.inserting(Component.text(comment.id.getX() + ";" + comment.id.getY())))
Template commentTemplate = Template.of("comment", commentColored); .tag("commenter", Tag.inserting(Component.text(comment.senderName)))
.tag("comment", Tag.inserting(commentColored))
.build();
builder.append(MINI_MESSAGE builder.append(MINI_MESSAGE
.parse( .deserialize(
TranslatableCaption.of("list.comment_list_comment").getComponent(player), TranslatableCaption.of("list.comment_list_comment").getComponent(player),
number, resolver
world,
plot_id,
commenter,
commentTemplate
)); ));
} }
player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(builder.build()))); player.sendMessage(StaticCaption.of(MINI_MESSAGE.serialize(builder.build())));
@ -150,20 +153,23 @@ public class Inbox extends SubCommand {
if (total != 0) { if (total != 0) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.inbox_item"), TranslatableCaption.of("comment.inbox_item"),
Template.of("value", inbox + " (" + total + '/' + unread + ')') TagResolver.resolver(
"value",
Tag.inserting(Component.text(inbox + " (" + total + '/' + unread + ')'))
)
); );
return; return;
} }
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.inbox_item"), TranslatableCaption.of("comment.inbox_item"),
Template.of("value", inbox.toString()) TagResolver.resolver("value", Tag.inserting(Component.text(inbox.toString())))
); );
} }
})) { })) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.inbox_item"), 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) { if (inbox == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.invalid_inbox"), 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; return false;
} }
@ -197,7 +206,10 @@ public class Inbox extends SubCommand {
if (args.length != 3) { if (args.length != 3) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot inbox " + inbox + " delete <index>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot inbox " + inbox + " delete <index>"))
)
); );
return true; return true;
} }
@ -207,14 +219,17 @@ public class Inbox extends SubCommand {
if (index < 1) { if (index < 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.not_valid_inbox_index"), TranslatableCaption.of("comment.not_valid_inbox_index"),
Templates.of("number", index) TagResolver.resolver("number", Tag.inserting(Component.text(index)))
); );
return false; return false;
} }
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot inbox " + inbox + " delete <index>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot inbox " + inbox + " delete <index>"))
)
); );
return false; return false;
} }
@ -225,7 +240,7 @@ public class Inbox extends SubCommand {
if (index > value.size()) { if (index > value.size()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.not_valid_inbox_index"), TranslatableCaption.of("comment.not_valid_inbox_index"),
Templates.of("number", index) TagResolver.resolver("number", Tag.inserting(Component.text(index)))
); );
return; return;
} }
@ -235,7 +250,7 @@ public class Inbox extends SubCommand {
if (success) { if (success) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.comment_removed_success"), TranslatableCaption.of("comment.comment_removed_success"),
Template.of("value", comment.comment) TagResolver.resolver("value", Tag.inserting(Component.text(comment.comment)))
); );
} else { } else {
player.sendMessage( player.sendMessage(
@ -256,7 +271,7 @@ public class Inbox extends SubCommand {
if (!comments.isEmpty()) { if (!comments.isEmpty()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("comment.comment_removed_success"), TranslatableCaption.of("comment.comment_removed_success"),
Template.of("value", String.valueOf(comments)) TagResolver.resolver("value", Tag.inserting(Component.text("*")))
); );
plot.getPlotCommentContainer().removeComments(comments); plot.getPlotCommentContainer().removeComments(comments);
} }

View File

@ -36,7 +36,9 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.plot.flag.implementations.HideInfoFlag; import com.plotsquared.core.plot.flag.implementations.HideInfoFlag;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.TabCompletions; 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.Collection;
import java.util.Collections; import java.util.Collections;
@ -98,7 +100,10 @@ public class Info extends SubCommand {
.hasPermission(Permission.PERMISSION_AREA_INFO_FORCE.toString())) { .hasPermission(Permission.PERMISSION_AREA_INFO_FORCE.toString())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return true;
} }
@ -120,7 +125,10 @@ public class Info extends SubCommand {
if (!hasOwner && !containsEveryone && !trustedEveryone) { if (!hasOwner && !containsEveryone && !trustedEveryone) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("info.plot_info_unclaimed"), 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; return true;
} }

View File

@ -38,7 +38,9 @@ import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PlayerManager; import com.plotsquared.core.util.PlayerManager;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.WorldUtil; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Collection; import java.util.Collection;
@ -89,7 +91,7 @@ public class Kick extends SubCommand {
} else if (throwable != null || uuids.isEmpty()) { } else if (throwable != null || uuids.isEmpty()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
} else { } else {
Set<PlotPlayer<?>> players = new HashSet<>(); Set<PlotPlayer<?>> players = new HashSet<>();
@ -113,7 +115,7 @@ public class Kick extends SubCommand {
if (players.isEmpty()) { if (players.isEmpty()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
return; return;
} }
@ -121,14 +123,14 @@ public class Kick extends SubCommand {
if (!plot.equals(player2.getCurrentPlot())) { if (!plot.equals(player2.getCurrentPlot())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
return; return;
} }
if (Permissions.hasPermission(player2, Permission.PERMISSION_ADMIN_ENTRY_DENIED)) { if (Permissions.hasPermission(player2, Permission.PERMISSION_ADMIN_ENTRY_DENIED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("cluster.cannot_kick_player"), TranslatableCaption.of("cluster.cannot_kick_player"),
Template.of("name", player2.getName()) TagResolver.resolver("name", Tag.inserting(Component.text(player2.getName())))
); );
return; return;
} }

View File

@ -32,7 +32,9 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.UUID; import java.util.UUID;
@ -74,7 +76,7 @@ public class Leave extends Command {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("member.plot_left"), TranslatableCaption.of("member.plot_left"),
Template.of("player", player.getName()) TagResolver.resolver("player", Tag.inserting(Component.text(player.getName())))
); );
} else { } else {
player.sendMessage( player.sendMessage(

View File

@ -41,7 +41,9 @@ import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.query.PlotQuery;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import java.util.Collection; import java.util.Collection;
@ -160,7 +162,7 @@ public class Like extends SubCommand {
if (oldRating != null) { if (oldRating != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("ratings.rating_already_exists"), TranslatableCaption.of("ratings.rating_already_exists"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
return; return;
} }
@ -178,12 +180,12 @@ public class Like extends SubCommand {
if (like) { if (like) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("ratings.rating_liked"), TranslatableCaption.of("ratings.rating_liked"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("ratings.rating_disliked"), TranslatableCaption.of("ratings.rating_disliked"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
} }
} }

View File

@ -30,7 +30,6 @@ import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.Caption; import com.plotsquared.core.configuration.caption.Caption;
import com.plotsquared.core.configuration.caption.CaptionHolder; 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.caption.TranslatableCaption;
import com.plotsquared.core.database.DBFunc; import com.plotsquared.core.database.DBFunc;
import com.plotsquared.core.permissions.Permission; import com.plotsquared.core.permissions.Permission;
@ -55,7 +54,8 @@ import com.plotsquared.core.util.task.RunnableVal3;
import com.plotsquared.core.uuid.UUIDMapping; import com.plotsquared.core.uuid.UUIDMapping;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.ArrayList; import java.util.ArrayList;
@ -132,7 +132,7 @@ public class ListCmd extends SubCommand {
public void noArgs(PlotPlayer<?> player) { public void noArgs(PlotPlayer<?> player) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.subcommand_set_options_header"), 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) { if (query == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.did_you_mean"), TranslatableCaption.of("commandconfig.did_you_mean"),
Template.of( TagResolver.resolver(
"value", "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; return;
@ -198,7 +203,7 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_MINE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_MINE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.mine") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.mine")))
); );
return false; return false;
} }
@ -213,7 +218,7 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_SHARED)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_SHARED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.shared") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.shared")))
); );
return false; return false;
} }
@ -226,14 +231,14 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_WORLD)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_WORLD)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.world") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.world")))
); );
return false; return false;
} }
if (!Permissions.hasPermission(player, "plots.list.world." + world)) { if (!Permissions.hasPermission(player, "plots.list.world." + world)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -243,7 +248,7 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_EXPIRED)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_EXPIRED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.expired") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.expired")))
); );
return false; return false;
} }
@ -257,14 +262,14 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_AREA)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_AREA)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.area") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.area")))
); );
return false; return false;
} }
if (!Permissions.hasPermission(player, "plots.list.world." + world)) { if (!Permissions.hasPermission(player, "plots.list.world." + world)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -278,7 +283,7 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_ALL)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_ALL)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.all") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.all")))
); );
return false; return false;
} }
@ -288,7 +293,7 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_DONE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_DONE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.done") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.done")))
); );
return false; return false;
} }
@ -303,7 +308,7 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_TOP)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_TOP)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.top") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.top")))
); );
return false; return false;
} }
@ -314,7 +319,7 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_FOR_SALE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_FOR_SALE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.forsale") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.forsale")))
); );
return false; return false;
} }
@ -327,7 +332,7 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_UNOWNED)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_UNOWNED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.unowned") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.unowned")))
); );
return false; return false;
} }
@ -337,14 +342,14 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_FUZZY)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_FUZZY)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.fuzzy") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.fuzzy")))
); );
return false; return false;
} }
if (args.length < (page == -1 ? 2 : 3)) { if (args.length < (page == -1 ? 2 : 3)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", "/plot list fuzzy <search...> [#]") TagResolver.resolver("value", Tag.inserting(Component.text("/plot list fuzzy <search...> [#]")))
); );
return false; return false;
} }
@ -362,14 +367,14 @@ public class ListCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_WORLD)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_WORLD)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.world") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.world")))
); );
return false; return false;
} }
if (!Permissions.hasPermission(player, "plots.list.world." + args[0])) { if (!Permissions.hasPermission(player, "plots.list.world." + args[0])) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -388,12 +393,15 @@ public class ListCmd extends SubCommand {
} }
} }
if (uuid == null) { 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 { } else {
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_PLAYER)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_PLAYER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.list.player") TagResolver.resolver("node", Tag.inserting(Component.text("plots.list.player")))
); );
} else { } else {
sort[0] = false; sort[0] = false;
@ -429,32 +437,34 @@ public class ListCmd extends SubCommand {
} else { } else {
color = TranslatableCaption.of("info.plot_list_default"); 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), 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), 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()); TagResolver.Builder finalResolver = TagResolver.builder();
Template command_info = Template.of("command_info", "/plot info " + plot.getArea() + ";" + plot.getId()); finalResolver.tag(
Template hover_info = "command_tp",
Template.of( Tag.preProcessParsed("/plot visit " + plot.getArea() + ";" + plot.getId())
"hover_info", );
MINI_MESSAGE.serialize(Component finalResolver.tag(
.text() "command_info",
Tag.preProcessParsed("/plot info " + plot.getArea() + ";" + plot.getId())
);
finalResolver.tag("hover_info", Tag.inserting(
Component.text()
.append(trusted) .append(trusted)
.append(Component.newline()) .append(Component.newline())
.append(members) .append(members)
.asComponent()) .asComponent()
); ));
Template numberTemplate = Template.of("number", String.valueOf(i)); finalResolver.tag("number", Tag.inserting(Component.text(i)));
Template plotTemplate = Template.of( finalResolver.tag("plot", Tag.inserting(MINI_MESSAGE.deserialize(
"plot", color.getComponent(player), TagResolver.resolver("plot", Tag.inserting(Component.text(plot.toString())))
MINI_MESSAGE.parse(color.getComponent(player), Template.of("plot", plot.toString())) )));
);
String prefix = ""; String prefix = "";
String online = TranslatableCaption.of("info.plot_list_player_online").getComponent(player); String online = TranslatableCaption.of("info.plot_list_player_online").getComponent(player);
String offline = TranslatableCaption.of("info.plot_list_player_offline").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); String everyone = TranslatableCaption.of("info.plot_list_player_everyone").getComponent(player);
TextComponent.Builder builder = Component.text(); TextComponent.Builder builder = Component.text();
if (plot.getFlag(ServerPlotFlag.class)) { if (plot.getFlag(ServerPlotFlag.class)) {
Template serverTemplate = Template.of( TagResolver serverResolver = TagResolver.resolver(
"info.server", "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 { } else {
try { try {
final List<UUIDMapping> names = PlotSquared.get().getImpromptuUUIDPipeline().getNames(plot.getOwners()) final List<UUIDMapping> names = PlotSquared.get().getImpromptuUUIDPipeline().getNames(plot.getOwners())
.get(Settings.UUID.BLOCKING_TIMEOUT, TimeUnit.MILLISECONDS); .get(Settings.UUID.BLOCKING_TIMEOUT, TimeUnit.MILLISECONDS);
for (final UUIDMapping uuidMapping : names) { for (final UUIDMapping uuidMapping : names) {
PlotPlayer<?> pp = PlotSquared.platform().playerManager().getPlayerIfExists(uuidMapping.getUuid()); PlotPlayer<?> pp = PlotSquared.platform().playerManager().getPlayerIfExists(uuidMapping.getUuid());
Template prefixTemplate = Template.of("prefix", prefix); TagResolver resolver = TagResolver.builder()
Template playerTemplate = Template.of("player", uuidMapping.getUsername()); .tag("prefix", Tag.inserting(Component.text(prefix)))
.tag("player", Tag.inserting(Component.text(uuidMapping.getUsername())))
.build();
if (pp != null) { if (pp != null) {
builder.append(MINI_MESSAGE.parse(online, prefixTemplate, playerTemplate)); builder.append(MINI_MESSAGE.deserialize(online, resolver));
} else if (uuidMapping.getUsername().equalsIgnoreCase("unknown")) { } else if (uuidMapping.getUsername().equalsIgnoreCase("unknown")) {
Template unknownTemplate = Template.of( TagResolver unknownResolver = TagResolver.resolver(
"info.unknown", "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)) { } else if (uuidMapping.getUuid().equals(DBFunc.EVERYONE)) {
Template everyoneTemplate = Template.of( TagResolver everyoneResolver = TagResolver.resolver(
"info.everyone", "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 { } else {
builder.append(MINI_MESSAGE.parse(offline, prefixTemplate, playerTemplate)); builder.append(MINI_MESSAGE.deserialize(offline, resolver));
} }
prefix = ", "; prefix = ", ";
} }
@ -507,15 +519,15 @@ public class ListCmd extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Templates.of("value", playerBuilder.toString()) TagResolver.resolver("value", Tag.inserting(Component.text(playerBuilder.toString())))
); );
} catch (TimeoutException e) { } catch (TimeoutException e) {
player.sendMessage(TranslatableCaption.of("players.fetching_players_timeout")); 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.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")); }, "/plot list " + args[0], TranslatableCaption.of("list.plot_list_header_paged"));
} }

View File

@ -43,7 +43,9 @@ import com.plotsquared.core.util.SchematicHandler;
import com.plotsquared.core.util.TimeUtil; import com.plotsquared.core.util.TimeUtil;
import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.RunnableVal;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import java.net.MalformedURLException; import java.net.MalformedURLException;
@ -106,7 +108,7 @@ public class Load extends SubCommand {
// No schematics found: // No schematics found:
player.sendMessage( player.sendMessage(
TranslatableCaption.of("web.load_null"), TranslatableCaption.of("web.load_null"),
Template.of("command", "/plot load") TagResolver.resolver("command", Tag.inserting(Component.text("/plot load")))
); );
return false; return false;
} }
@ -117,7 +119,7 @@ public class Load extends SubCommand {
// use /plot load <index> // use /plot load <index>
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_valid_number"), TranslatableCaption.of("invalid.not_valid_number"),
Template.of("value", "(1, " + schematics.size() + ')') TagResolver.resolver("value", Tag.inserting(Component.text("(1, " + schematics.size() + ')')))
); );
return false; return false;
} }
@ -137,7 +139,10 @@ public class Load extends SubCommand {
plot.removeRunning(); plot.removeRunning();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("schematics.schematic_invalid"), 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; return;
} }
@ -168,7 +173,7 @@ public class Load extends SubCommand {
plot.removeRunning(); plot.removeRunning();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot load <index>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot load <index>")))
); );
return false; return false;
} }
@ -219,7 +224,7 @@ public class Load extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("web.load_list"), TranslatableCaption.of("web.load_list"),
Template.of("command", "/plot load #") TagResolver.resolver("command", Tag.inserting(Component.text("/plot load #")))
); );
} }
} }

View File

@ -43,6 +43,9 @@ import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PlotExpression; import com.plotsquared.core.util.PlotExpression;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -318,7 +321,7 @@ public class MainCommand extends Command {
if (message != null) { if (message != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.error"), TranslatableCaption.of("errors.error"),
net.kyori.adventure.text.minimessage.Template.of("value", message) TagResolver.resolver("value", Tag.inserting(Component.text(message)))
); );
} else { } else {
player.sendMessage( player.sendMessage(

View File

@ -42,7 +42,9 @@ import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PlotExpression; import com.plotsquared.core.util.PlotExpression;
import com.plotsquared.core.util.StringMan; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.UUID; import java.util.UUID;
@ -122,11 +124,13 @@ public class Merge extends SubCommand {
if (direction == null) { if (direction == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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( player.sendMessage(
TranslatableCaption.of("help.direction"), TranslatableCaption.of("help.direction"),
Template.of("dir", direction(location.getYaw())) TagResolver.resolver("dir", Tag.inserting(Component.text(direction(location.getYaw()))))
); );
return false; return false;
} }
@ -137,7 +141,7 @@ public class Merge extends SubCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Merge") TagResolver.resolver("value", Tag.inserting(Component.text("Merge")))
); );
return false; return false;
} }
@ -148,7 +152,7 @@ public class Merge extends SubCommand {
if (!force && size - 1 > maxSize) { if (!force && size - 1 > maxSize) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -175,7 +179,10 @@ public class Merge extends SubCommand {
.hasPermission(player, Permission.PERMISSION_MERGE_KEEP_ROAD)) { .hasPermission(player, Permission.PERMISSION_MERGE_KEEP_ROAD)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return true;
} }
@ -184,8 +191,11 @@ public class Merge extends SubCommand {
this.econHandler.withdrawMoney(player, price); this.econHandler.withdrawMoney(player, price);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.removed_balance"), TranslatableCaption.of("economy.removed_balance"),
Template.of("money", this.econHandler.format(price)), TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))),
Template.of("balance", this.econHandler.format(this.econHandler.getMoney(player))) TagResolver.resolver(
"balance",
Tag.inserting(Component.text(this.econHandler.format(this.econHandler.getMoney(player))))
)
); );
} }
player.sendMessage(TranslatableCaption.of("merge.success_merge")); player.sendMessage(TranslatableCaption.of("merge.success_merge"));
@ -199,7 +209,7 @@ public class Merge extends SubCommand {
&& this.econHandler.getMoney(player) < price) { && this.econHandler.getMoney(player) < price) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.cannot_afford_merge"), 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; return false;
} }
@ -213,7 +223,7 @@ public class Merge extends SubCommand {
.hasPermission(player, Permission.PERMISSION_MERGE_KEEP_ROAD)) { .hasPermission(player, Permission.PERMISSION_MERGE_KEEP_ROAD)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return true;
} }
@ -222,7 +232,7 @@ public class Merge extends SubCommand {
this.econHandler.withdrawMoney(player, price); this.econHandler.withdrawMoney(player, price);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.removed_balance"), 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")); 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)) { if (!force && !Permissions.hasPermission(player, Permission.PERMISSION_MERGE_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -263,14 +273,14 @@ public class Merge extends SubCommand {
if (!force && this.econHandler.getMoney(player) < price) { if (!force && this.econHandler.getMoney(player) < price) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.cannot_afford_merge"), 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; return;
} }
this.econHandler.withdrawMoney(player, price); this.econHandler.withdrawMoney(player, price);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("economy.removed_balance"), 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")); player.sendMessage(TranslatableCaption.of("merge.success_merge"));
@ -278,10 +288,15 @@ public class Merge extends SubCommand {
}; };
if (!force && hasConfirmation(player)) { if (!force && hasConfirmation(player)) {
CmdConfirm.addPending(accepter, MINI_MESSAGE.serialize(MINI_MESSAGE CmdConfirm.addPending(accepter, MINI_MESSAGE.serialize(MINI_MESSAGE
.parse( .deserialize(
TranslatableCaption.of("merge.merge_request_confirm").getComponent(player), TranslatableCaption.of("merge.merge_request_confirm").getComponent(player),
Template.of("player", player.getName()), TagResolver.builder()
Template.of("location", plot.getWorldName() + ";" + plot.getId()) .tag("player", Tag.inserting(Component.text(player.getName())))
.tag(
"location",
Tag.inserting(Component.text(plot.getWorldName() + " " + plot.getId()))
)
.build()
)), )),
run run
); );

View File

@ -36,7 +36,9 @@ import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@ -114,8 +116,10 @@ public class Move extends SubCommand {
if (result) { if (result) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("move.move_success"), TranslatableCaption.of("move.move_success"),
Template.of("origin", p1), TagResolver.builder()
Template.of("target", p2) .tag("origin", Tag.inserting(Component.text(p1)))
.tag("target", Tag.inserting(Component.text(p2)))
.build()
); );
return true; return true;
} else { } else {

View File

@ -43,7 +43,9 @@ import com.plotsquared.core.util.InventoryUtil;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemType;
import com.sk89q.worldedit.world.item.ItemTypes; 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 org.checkerframework.checker.nullness.qual.NonNull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -90,7 +92,10 @@ public class Music extends SubCommand {
.hasPermission(player, Permission.PERMISSION_ADMIN_MUSIC_OTHER)) { .hasPermission(player, Permission.PERMISSION_ADMIN_MUSIC_OTHER)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return true;
} }
@ -113,15 +118,17 @@ public class Music extends SubCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
getPlayer().sendMessage( getPlayer().sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Music removal") TagResolver.resolver("value", Tag.inserting(Component.text("Music removal")))
); );
return true; return true;
} }
plot.removeFlag(event.getFlag()); plot.removeFlag(event.getFlag());
getPlayer().sendMessage( getPlayer().sendMessage(
TranslatableCaption.of("flag.flag_removed"), TranslatableCaption.of("flag.flag_removed"),
Template.of("flag", "music"), TagResolver.builder()
Template.of("value", "music_disc") .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")) { } else if (item.getName().toLowerCase(Locale.ENGLISH).contains("disc")) {
PlotFlag<?, ?> plotFlag = plot.getFlagContainer().getFlag(MusicFlag.class) PlotFlag<?, ?> plotFlag = plot.getFlagContainer().getFlag(MusicFlag.class)
@ -130,13 +137,17 @@ public class Music extends SubCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
getPlayer().sendMessage( getPlayer().sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Music addition") TagResolver.resolver("value", Tag.inserting(Component.text("Music addition")))
); );
return true; return true;
} }
plot.setFlag(event.getFlag()); plot.setFlag(event.getFlag());
getPlayer().sendMessage(TranslatableCaption.of("flag.flag_added"), Template.of("flag", "music"), getPlayer().sendMessage(
Template.of("value", String.valueOf(event.getFlag().getValue())) 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 { } else {
getPlayer().sendMessage(TranslatableCaption.of("flag.flag_not_added")); getPlayer().sendMessage(TranslatableCaption.of("flag.flag_not_added"));

View File

@ -31,7 +31,9 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.StringMan;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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; 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")); final Plot plot = check(player.getCurrentPlot(), TranslatableCaption.of("errors.not_in_plot"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("near.plot_near"), 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); return CompletableFuture.completedFuture(true);
} }

View File

@ -42,7 +42,9 @@ import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PlayerManager; import com.plotsquared.core.util.PlayerManager;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
@ -73,7 +75,7 @@ public class Owner extends SetCommand {
if (value == null || value.isEmpty()) { if (value == null || value.isEmpty()) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot setowner <owner>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot setowner <owner>")))
); );
return false; return false;
} }
@ -85,7 +87,7 @@ public class Owner extends SetCommand {
&& !value.equalsIgnoreCase("-")) { && !value.equalsIgnoreCase("-")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", value) TagResolver.resolver("value", Tag.inserting(Component.text(value)))
); );
return; return;
} }
@ -99,7 +101,7 @@ public class Owner extends SetCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Owner change") TagResolver.resolver("value", Tag.inserting(Component.text("Owner change")))
); );
return; return;
} }
@ -122,7 +124,7 @@ public class Owner extends SetCommand {
if (unlinkEvent.getEventResult() == Result.DENY) { if (unlinkEvent.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Unlink on owner change") TagResolver.resolver("value", Tag.inserting(Component.text("Unlink on owner change")))
); );
return; return;
} }
@ -142,7 +144,10 @@ public class Owner extends SetCommand {
if (plot.isOwner(uuid)) { if (plot.isOwner(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("member.already_owner"), 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; return;
} }
@ -151,7 +156,10 @@ public class Owner extends SetCommand {
if (other == null) { if (other == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player_offline"), 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; return;
} }
@ -187,7 +195,10 @@ public class Owner extends SetCommand {
if (other != null) { if (other != null) {
other.sendMessage( other.sendMessage(
TranslatableCaption.of("owner.now_owner"), TranslatableCaption.of("owner.now_owner"),
Template.of("plot", plot.getArea() + ";" + plot.getId()) TagResolver.resolver(
"plot",
Tag.inserting(Component.text(plot.getArea() + ";" + plot.getId()))
)
); );
} }
} else { } else {

View File

@ -30,7 +30,9 @@ import com.plotsquared.core.configuration.caption.StaticCaption;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.util.PremiumVerification; import com.plotsquared.core.util.PremiumVerification;
import com.plotsquared.core.util.task.TaskManager; 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", @CommandDeclaration(command = "plugin",
permission = "plots.use", permission = "plots.use",
@ -46,7 +48,7 @@ public class PluginCmd extends SubCommand {
StaticCaption.of("<gray>>> </gray><gold><bold>" + PlotSquared StaticCaption.of("<gray>>> </gray><gold><bold>" + PlotSquared
.platform() .platform()
.pluginName() + " <reset><gray>(<gold>Version</gold><gray>: </gray><gold><version></gold><gray>)</gray>"), .pluginName() + " <reset><gray>(<gold>Version</gold><gray>: </gray><gold><version></gold><gray>)</gray>"),
Template.of("version", String.valueOf(PlotSquared.get().getVersion())) TagResolver.resolver("version", Tag.inserting(Component.text(String.valueOf(PlotSquared.get().getVersion()))))
); );
player.sendMessage(StaticCaption.of( player.sendMessage(StaticCaption.of(
"<gray>>> </gray><gold><bold>Authors<reset><gray>: </gray><gold>Citymonstret </gold><gray>& </gray><gold>Empire92 </gold><gray>& </gray><gold>MattBDev </gold><gray>& </gray><gold>dordsor21 </gold><gray>& </gray><gold>NotMyFault </gold><gray>& </gray><gold>SirYwell</gold>")); "<gray>>> </gray><gold><bold>Authors<reset><gray>: </gray><gold>Citymonstret </gold><gray>& </gray><gold>Empire92 </gold><gray>& </gray><gold>MattBDev </gold><gray>& </gray><gold>dordsor21 </gold><gray>& </gray><gold>NotMyFault </gold><gray>& </gray><gold>SirYwell</gold>"));
@ -56,7 +58,7 @@ public class PluginCmd extends SubCommand {
"<gray>>> </gray><gold><bold>Discord<reset><gray>: </gray><gold><click:open_url:https://discord.gg/intellectualsites>https://discord.gg/intellectualsites</gold>")); "<gray>>> </gray><gold><bold>Discord<reset><gray>: </gray><gold><click:open_url:https://discord.gg/intellectualsites>https://discord.gg/intellectualsites</gold>"));
player.sendMessage( player.sendMessage(
StaticCaption.of("<gray>>> </gray><gold><bold>Premium<reset><gray>: <gold><value></gold>"), StaticCaption.of("<gray>>> </gray><gold><bold>Premium<reset><gray>: <gold><value></gold>"),
Template.of("value", String.valueOf(PremiumVerification.isPremium())) TagResolver.resolver("value", Tag.inserting(Component.text(PremiumVerification.isPremium())))
); );
}); });
return true; return true;

View File

@ -40,7 +40,9 @@ import com.plotsquared.core.util.StringMan;
import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.query.PlotQuery;
import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.util.task.TaskManager;
import com.plotsquared.core.uuid.UUIDMapping; 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.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
@ -105,7 +107,7 @@ public class Purge extends SubCommand {
if (area == null) { if (area == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.not_valid_plot_world"), TranslatableCaption.of("errors.not_valid_plot_world"),
Template.of("value", split[1]) TagResolver.resolver("value", Tag.inserting(Component.text(split[1])))
); );
return false; return false;
} }
@ -117,7 +119,7 @@ public class Purge extends SubCommand {
} catch (IllegalArgumentException ignored) { } catch (IllegalArgumentException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_valid_plot_id"), TranslatableCaption.of("invalid.not_valid_plot_id"),
Template.of("value", split[1]) TagResolver.resolver("value", Tag.inserting(Component.text(split[1])))
); );
return false; return false;
} }
@ -128,7 +130,7 @@ public class Purge extends SubCommand {
if (ownerMapping == null) { if (ownerMapping == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", split[1]) TagResolver.resolver("value", Tag.inserting(Component.text(split[1])))
); );
return false; return false;
} }
@ -140,7 +142,7 @@ public class Purge extends SubCommand {
if (addedMapping == null) { if (addedMapping == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", split[1]) TagResolver.resolver("value", Tag.inserting(Component.text(split[1])))
); );
return false; return false;
} }
@ -265,7 +267,10 @@ public class Purge extends SubCommand {
DBFunc.purgeIds(ids); DBFunc.purgeIds(ids);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("purge.purge_success"), TranslatableCaption.of("purge.purge_success"),
Template.of("amount", ids.size() + "/" + toDelete.size()) TagResolver.resolver(
"amount",
Tag.inserting(Component.text(ids.size() + "/" + toDelete.size()))
)
); );
}); });
} }

View File

@ -45,7 +45,9 @@ import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.query.PlotQuery;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import java.util.Collection; import java.util.Collection;
@ -155,7 +157,7 @@ public class Rate extends SubCommand {
if (plot.getRatings().containsKey(player.getUUID())) { if (plot.getRatings().containsKey(player.getUUID())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("ratings.rating_already_exists"), TranslatableCaption.of("ratings.rating_already_exists"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
return; return;
} }
@ -175,7 +177,7 @@ public class Rate extends SubCommand {
plot.addRating(this.getPlayer().getUUID(), event.getRating()); plot.addRating(this.getPlayer().getUUID(), event.getRating());
getPlayer().sendMessage( getPlayer().sendMessage(
TranslatableCaption.of("ratings.rating_applied"), TranslatableCaption.of("ratings.rating_applied"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
} }
return false; return false;
@ -248,7 +250,7 @@ public class Rate extends SubCommand {
if (plot.getRatings().containsKey(uuid)) { if (plot.getRatings().containsKey(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("ratings.rating_already_exists"), TranslatableCaption.of("ratings.rating_already_exists"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
return; return;
} }
@ -258,7 +260,7 @@ public class Rate extends SubCommand {
plot.addRating(uuid, event.getRating()); plot.addRating(uuid, event.getRating());
player.sendMessage( player.sendMessage(
TranslatableCaption.of("ratings.rating_applied"), TranslatableCaption.of("ratings.rating_applied"),
Template.of("plot", plot.getId().toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.getId().toString())))
); );
} }
}; };

View File

@ -33,7 +33,9 @@ import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotManager; import com.plotsquared.core.plot.PlotManager;
import com.plotsquared.core.plot.world.PlotAreaManager; 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; import org.checkerframework.checker.nullness.qual.NonNull;
@CommandDeclaration(command = "regenallroads", @CommandDeclaration(command = "regenallroads",
@ -65,18 +67,18 @@ public class RegenAllRoads extends SubCommand {
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_valid_number"), TranslatableCaption.of("invalid.not_valid_number"),
Template.of("value", "(0, 256)") TagResolver.resolver("value", Tag.inserting(Component.text("(0, 256)")))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot regenallroads <world> [height]") TagResolver.resolver("value", Tag.inserting(Component.text("/plot regenallroads <world> [height]")))
); );
return false; return false;
} }
} else if (args.length != 1) { } else if (args.length != 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot regenallroads <world> [height]") TagResolver.resolver("value", Tag.inserting(Component.text("/plot regenallroads <world> [height]")))
); );
return false; return false;
} }
@ -84,7 +86,7 @@ public class RegenAllRoads extends SubCommand {
if (area == null) { if (area == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.not_valid_plot_world"), TranslatableCaption.of("errors.not_valid_plot_world"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
return false; return false;
} }
@ -95,7 +97,7 @@ public class RegenAllRoads extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("debugroadregen.schematic"), 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")); player.sendMessage(TranslatableCaption.of("debugroadregen.regenallroads_started"));
boolean result = this.hybridUtils.scheduleRoadUpdate(area, height); boolean result = this.hybridUtils.scheduleRoadUpdate(area, height);

View File

@ -36,7 +36,9 @@ import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PlayerManager; import com.plotsquared.core.util.PlayerManager;
import com.plotsquared.core.util.TabCompletions; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Collection; import java.util.Collection;
@ -86,7 +88,7 @@ public class Remove extends SubCommand {
} else if (throwable != null) { } else if (throwable != null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
return; return;
} else if (!uuids.isEmpty()) { } else if (!uuids.isEmpty()) {
@ -123,12 +125,12 @@ public class Remove extends SubCommand {
if (count == 0) { if (count == 0) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("member.removed_players"), TranslatableCaption.of("member.removed_players"),
Template.of("amount", count + "") TagResolver.resolver("amount", Tag.inserting(Component.text(count)))
); );
} }
}); });

View File

@ -39,7 +39,9 @@ import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.SchematicHandler; import com.plotsquared.core.util.SchematicHandler;
import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.RunnableVal;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import java.net.URL; import java.net.URL;
@ -123,7 +125,7 @@ public class Save extends SubCommand {
player.sendMessage(TranslatableCaption.of("web.save_success")); player.sendMessage(TranslatableCaption.of("web.save_success"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.deprecated_commands"), TranslatableCaption.of("errors.deprecated_commands"),
Template.of("replacement", "/plot download") TagResolver.resolver("replacement", Tag.inserting(Component.text("/plot download")))
); );
try (final MetaDataAccess<List<String>> schematicAccess = try (final MetaDataAccess<List<String>> schematicAccess =
player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_SCHEMATICS)) { player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_SCHEMATICS)) {

View File

@ -43,7 +43,9 @@ import com.plotsquared.core.util.StringMan;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.RunnableVal;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
import java.net.URL; import java.net.URL;
@ -80,7 +82,7 @@ public class SchematicCmd extends SubCommand {
if (args.length < 1) { if (args.length < 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; return true;
} }
@ -90,14 +92,20 @@ public class SchematicCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_PASTE)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_PASTE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
if (args.length < 2) { if (args.length < 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; break;
} }
@ -138,7 +146,10 @@ public class SchematicCmd extends SubCommand {
e.printStackTrace(); e.printStackTrace();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("schematics.schematic_invalid"), 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; SchematicCmd.this.running = false;
return; return;
@ -154,7 +165,10 @@ public class SchematicCmd extends SubCommand {
SchematicCmd.this.running = false; SchematicCmd.this.running = false;
player.sendMessage( player.sendMessage(
TranslatableCaption.of("schematics.schematic_invalid"), 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; return;
} }
@ -189,7 +203,10 @@ public class SchematicCmd extends SubCommand {
player.sendMessage(TranslatableCaption.of("schematics.schematic_exportall_world_args")); player.sendMessage(TranslatableCaption.of("schematics.schematic_exportall_world_args"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "Use /plot schematic exportall <area>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("Use /plot schematic exportall <area>"))
)
); );
return false; return false;
} }
@ -197,7 +214,7 @@ public class SchematicCmd extends SubCommand {
if (area == null) { if (area == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.not_valid_plot_world"), TranslatableCaption.of("errors.not_valid_plot_world"),
Template.of("value", args[1]) TagResolver.resolver("value", Tag.inserting(Component.text(args[1])))
); );
return false; return false;
} }
@ -206,7 +223,7 @@ public class SchematicCmd extends SubCommand {
player.sendMessage(TranslatableCaption.of("schematic.schematic_exportall_world")); player.sendMessage(TranslatableCaption.of("schematic.schematic_exportall_world"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "Use /plot sch exportall <area>") TagResolver.resolver("value", Tag.inserting(Component.text("Use /plot sch exportall <area>")))
); );
return false; return false;
} }
@ -220,7 +237,7 @@ public class SchematicCmd extends SubCommand {
player.sendMessage(TranslatableCaption.of("schematics.schematic_exportall_started")); player.sendMessage(TranslatableCaption.of("schematics.schematic_exportall_started"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("schematics.plot_to_schem"), 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)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_SAVE)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -271,19 +291,22 @@ public class SchematicCmd extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_LIST)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_LIST)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
final String string = StringMan.join(this.schematicHandler.getSchematicNames(), "$2, $1"); final String string = StringMan.join(this.schematicHandler.getSchematicNames(), "$2, $1");
player.sendMessage( player.sendMessage(
TranslatableCaption.of("schematics.schematic_list"), TranslatableCaption.of("schematics.schematic_list"),
Template.of("list", string) TagResolver.resolver("list", Tag.inserting(Component.text(string)))
); );
} }
default -> player.sendMessage( default -> player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; return true;

View File

@ -47,7 +47,9 @@ import com.sk89q.worldedit.function.pattern.Pattern;
import com.sk89q.worldedit.world.block.BlockCategory; import com.sk89q.worldedit.world.block.BlockCategory;
import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.block.BlockTypes; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.ArrayList; import java.util.ArrayList;
@ -130,7 +132,7 @@ public class Set extends SubCommand {
} }
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.component_illegal_block"), TranslatableCaption.of("invalid.component_illegal_block"),
Template.of("value", forbiddenType) TagResolver.resolver("value", Tag.inserting(Component.text(forbiddenType)))
); );
return true; return true;
} }
@ -142,7 +144,10 @@ public class Set extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_SET_COMPONENT.format(component))) { if (!Permissions.hasPermission(player, Permission.PERMISSION_SET_COMPONENT.format(component))) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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; return false;
} }
@ -165,7 +170,7 @@ public class Set extends SubCommand {
plot.removeRunning(); plot.removeRunning();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("working.component_complete"), 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) { if (Settings.QUEUE.NOTIFY_PROGRESS) {

View File

@ -32,7 +32,9 @@ import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.StringMan; 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 { 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()))) { if (!Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND.format(getFullId()))) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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")); player.sendMessage(TranslatableCaption.of("working.plot_not_claimed"));
return false; return false;
@ -58,7 +63,10 @@ public abstract class SetCommand extends SubCommand {
if (!Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND.format(getFullId()))) { if (!Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND.format(getFullId()))) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), 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")); player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
return false; return false;

View File

@ -30,7 +30,9 @@ import com.plotsquared.core.location.BlockLoc;
import com.plotsquared.core.location.Location; import com.plotsquared.core.location.Location;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; 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", @CommandDeclaration(command = "sethome",
permission = "plots.set.home", permission = "plots.set.home",
@ -71,7 +73,7 @@ public class SetHome extends SetCommand {
default -> { default -> {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; return false;
} }

View File

@ -36,7 +36,9 @@ import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.setup.SetupProcess; import com.plotsquared.core.setup.SetupProcess;
import com.plotsquared.core.setup.SetupStep; import com.plotsquared.core.setup.SetupStep;
import com.plotsquared.core.util.SetupUtils; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.ArrayList; 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("setup.setup_not_started"));
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), 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; return true;
} }

View File

@ -33,7 +33,9 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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; import java.util.concurrent.CompletableFuture;
@ -91,8 +93,10 @@ public class Swap extends SubCommand {
if (result) { if (result) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("swap.swap_success"), TranslatableCaption.of("swap.swap_success"),
Template.of("origin", p1), TagResolver.builder()
Template.of("target", p2) .tag("origin", Tag.inserting(Component.text(p1)))
.tag("target", Tag.inserting(Component.text(p2)))
.build()
); );
return true; return true;
} else { } else {

View File

@ -31,7 +31,9 @@ import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.StringMan;
import com.plotsquared.core.util.query.PlotQuery; 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.Collection;
import java.util.Locale; import java.util.Locale;
@ -59,7 +61,7 @@ public class Target extends SubCommand {
if (args.length == 0) { if (args.length == 0) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Template.of("value", "/plot target <<X;Z> | nearest>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot target <<X;Z> | nearest>")))
); );
return false; return false;
} }
@ -83,7 +85,7 @@ public class Target extends SubCommand {
target.getCenter(player::setCompassTarget); target.getCenter(player::setCompassTarget);
player.sendMessage( player.sendMessage(
TranslatableCaption.of("compass.compass_target"), TranslatableCaption.of("compass.compass_target"),
Template.of("target", target.toString()) TagResolver.resolver("target", Tag.inserting(Component.text(target.toString())))
); );
return true; return true;
} }

View File

@ -51,6 +51,9 @@ import com.plotsquared.core.util.SetupUtils;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.WorldUtil;
import com.plotsquared.core.util.task.TaskManager; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.io.File; import java.io.File;
@ -176,13 +179,16 @@ public class Template extends SubCommand {
if (args[0].equalsIgnoreCase("export")) { if (args[0].equalsIgnoreCase("export")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
net.kyori.adventure.text.minimessage.Template.of("value", "/plot template export <world>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot template export <world>")))
); );
return true; return true;
} else if (args[0].equalsIgnoreCase("import")) { } else if (args[0].equalsIgnoreCase("import")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
net.kyori.adventure.text.minimessage.Template.of("value", "/plot template import <world> <template>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot template import <world> <template>"))
)
); );
return true; return true;
} }
@ -196,14 +202,17 @@ public class Template extends SubCommand {
if (args.length != 3) { if (args.length != 3) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
net.kyori.adventure.text.minimessage.Template.of("value", "/plot template import <world> <template>") TagResolver.resolver(
"value",
Tag.inserting(Component.text("/plot template import <world> <template>"))
)
); );
return false; return false;
} }
if (this.plotAreaManager.hasPlotArea(world)) { if (this.plotAreaManager.hasPlotArea(world)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("setup.setup_world_taken"), TranslatableCaption.of("setup.setup_world_taken"),
net.kyori.adventure.text.minimessage.Template.of("value", world) TagResolver.resolver("value", Tag.inserting(Component.text(world)))
); );
return false; return false;
} }
@ -211,7 +220,7 @@ public class Template extends SubCommand {
if (!result) { if (!result) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("template.invalid_template"), TranslatableCaption.of("template.invalid_template"),
net.kyori.adventure.text.minimessage.Template.of("value", args[2]) TagResolver.resolver("value", Tag.inserting(Component.text(args[2])))
); );
return false; return false;
} }
@ -249,7 +258,7 @@ public class Template extends SubCommand {
if (args.length != 2) { if (args.length != 2) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
net.kyori.adventure.text.minimessage.Template.of("value", "/plot template export <world>") TagResolver.resolver("value", Tag.inserting(Component.text("/plot template export <world>")))
); );
return false; return false;
} }
@ -257,7 +266,7 @@ public class Template extends SubCommand {
if (area == null) { if (area == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.not_valid_plot_world"), TranslatableCaption.of("errors.not_valid_plot_world"),
net.kyori.adventure.text.minimessage.Template.of("value", args[1]) TagResolver.resolver("value", Tag.inserting(Component.text(args[1])))
); );
return false; return false;
} }
@ -269,7 +278,7 @@ public class Template extends SubCommand {
e.printStackTrace(); e.printStackTrace();
player.sendMessage( player.sendMessage(
TranslatableCaption.of("template.template_failed"), TranslatableCaption.of("template.template_failed"),
net.kyori.adventure.text.minimessage.Template.of("value", e.getMessage()) TagResolver.resolver("value", Tag.inserting(Component.text(e.getMessage())))
); );
return; return;
} }

View File

@ -29,7 +29,9 @@ import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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;
@CommandDeclaration(command = "toggle", @CommandDeclaration(command = "toggle",
aliases = {"attribute"}, aliases = {"attribute"},
@ -54,12 +56,12 @@ public class Toggle extends Command {
if (toggle(player, "chatspy")) { if (toggle(player, "chatspy")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_disabled"), TranslatableCaption.of("toggle.toggle_disabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_enabled"), TranslatableCaption.of("toggle.toggle_enabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} }
} }
@ -75,12 +77,12 @@ public class Toggle extends Command {
if (toggle(player, "worldedit")) { if (toggle(player, "worldedit")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_disabled"), TranslatableCaption.of("toggle.toggle_disabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_enabled"), TranslatableCaption.of("toggle.toggle_enabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} }
} }
@ -95,12 +97,12 @@ public class Toggle extends Command {
if (toggle(player, "chat")) { if (toggle(player, "chat")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_disabled"), TranslatableCaption.of("toggle.toggle_disabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_enabled"), TranslatableCaption.of("toggle.toggle_enabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} }
} }
@ -115,12 +117,12 @@ public class Toggle extends Command {
if (toggle(player, "ignoreExpireTask")) { if (toggle(player, "ignoreExpireTask")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_enabled"), TranslatableCaption.of("toggle.toggle_enabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_disabled"), TranslatableCaption.of("toggle.toggle_disabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} }
} }
@ -135,12 +137,12 @@ public class Toggle extends Command {
if (toggle(player, "disabletitles")) { if (toggle(player, "disabletitles")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_enabled"), TranslatableCaption.of("toggle.toggle_enabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_disabled"), TranslatableCaption.of("toggle.toggle_disabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} }
} }
@ -155,12 +157,12 @@ public class Toggle extends Command {
if (toggle(player, "disabletime")) { if (toggle(player, "disabletime")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_enabled"), TranslatableCaption.of("toggle.toggle_enabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_disabled"), TranslatableCaption.of("toggle.toggle_disabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} }
} }
@ -175,12 +177,12 @@ public class Toggle extends Command {
if (toggle(player, "debug")) { if (toggle(player, "debug")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_disabled"), TranslatableCaption.of("toggle.toggle_disabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("toggle.toggle_enabled"), TranslatableCaption.of("toggle.toggle_enabled"),
Template.of("setting", command.toString()) TagResolver.resolver("setting", Tag.inserting(Component.text(command.toString())))
); );
} }
player.refreshDebug(); player.refreshDebug();

View File

@ -27,7 +27,6 @@ package com.plotsquared.core.command;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.Templates;
import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.database.DBFunc; import com.plotsquared.core.database.DBFunc;
import com.plotsquared.core.permissions.Permission; import com.plotsquared.core.permissions.Permission;
@ -39,7 +38,9 @@ import com.plotsquared.core.util.PlayerManager;
import com.plotsquared.core.util.TabCompletions; import com.plotsquared.core.util.TabCompletions;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Collection; import java.util.Collection;
@ -82,7 +83,7 @@ public class Trust extends Command {
); );
checkTrue(args.length == 1, TranslatableCaption.of("commandconfig.command_syntax"), checkTrue(args.length == 1, TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", getUsage()) TagResolver.resolver("value", Tag.inserting(Component.text(getUsage())))
); );
final CompletableFuture<Boolean> future = new CompletableFuture<>(); final CompletableFuture<Boolean> future = new CompletableFuture<>();
@ -93,14 +94,14 @@ public class Trust extends Command {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
} }
future.completeExceptionally(throwable); future.completeExceptionally(throwable);
return; return;
} else { } else {
checkTrue(!uuids.isEmpty(), TranslatableCaption.of("errors.invalid_player"), checkTrue(!uuids.isEmpty(), TranslatableCaption.of("errors.invalid_player"),
Templates.of("value", args[0]) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
Iterator<UUID> iterator = uuids.iterator(); Iterator<UUID> iterator = uuids.iterator();
@ -112,7 +113,10 @@ public class Trust extends Command {
.hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_TRUST))) { .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_TRUST))) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), 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(); iterator.remove();
continue; continue;
@ -120,7 +124,10 @@ public class Trust extends Command {
if (currentPlot.isOwner(uuid)) { if (currentPlot.isOwner(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("member.already_added"), TranslatableCaption.of("member.already_added"),
Template.of("value", PlayerManager.resolveName(uuid).getComponent(player)) TagResolver.resolver(
"value",
Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player))
)
); );
iterator.remove(); iterator.remove();
continue; continue;
@ -128,7 +135,10 @@ public class Trust extends Command {
if (currentPlot.getTrusted().contains(uuid)) { if (currentPlot.getTrusted().contains(uuid)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("member.already_added"), TranslatableCaption.of("member.already_added"),
Template.of("value", PlayerManager.resolveName(uuid).getComponent(player)) TagResolver.resolver(
"value",
Tag.inserting(PlayerManager.resolveName(uuid).toComponent(player))
)
); );
iterator.remove(); iterator.remove();
continue; continue;
@ -141,7 +151,7 @@ public class Trust extends Command {
if (localTrustSize >= maxTrustSize) { if (localTrustSize >= maxTrustSize) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("members.plot_max_members_trusted"), TranslatableCaption.of("members.plot_max_members_trusted"),
Template.of("amount", String.valueOf(localTrustSize)) TagResolver.resolver("amount", Tag.inserting(Component.text(localTrustSize)))
); );
return; return;
} }

View File

@ -37,7 +37,9 @@ import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.StringMan;
import com.plotsquared.core.util.task.TaskManager; 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.NonNull;
@CommandDeclaration(command = "unlink", @CommandDeclaration(command = "unlink",
@ -93,7 +95,7 @@ public class Unlink extends SubCommand {
if (event.getEventResult() == Result.DENY) { if (event.getEventResult() == Result.DENY) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("events.event_denied"), TranslatableCaption.of("events.event_denied"),
Template.of("value", "Unlink") TagResolver.resolver("value", Tag.inserting(Component.text("Unlink")))
); );
return true; return true;
} }

View File

@ -28,7 +28,6 @@ package com.plotsquared.core.command;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.plotsquared.core.PlotSquared; import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.Templates;
import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.events.TeleportCause; import com.plotsquared.core.events.TeleportCause;
import com.plotsquared.core.permissions.Permission; import com.plotsquared.core.permissions.Permission;
@ -45,7 +44,9 @@ import com.plotsquared.core.util.query.PlotQuery;
import com.plotsquared.core.util.query.SortingStrategy; import com.plotsquared.core.util.query.SortingStrategy;
import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.ArrayList; import java.util.ArrayList;
@ -107,8 +108,10 @@ public class Visit extends Command {
} else if (plots.size() < page || page < 1) { } else if (plots.size() < page || page < 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.number_not_in_range"), TranslatableCaption.of("invalid.number_not_in_range"),
Template.of("min", "1"), TagResolver.builder()
Template.of("max", String.valueOf(plots.size())) .tag("min", Tag.inserting(Component.text(1)))
.tag("max", Tag.inserting(Component.text(plots.size())))
.build()
); );
return; return;
} }
@ -118,7 +121,7 @@ public class Visit extends Command {
if (!Permissions.hasPermission(player, Permission.PERMISSION_VISIT_UNOWNED)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_VISIT_UNOWNED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.visit.unowned") TagResolver.resolver("node", Tag.inserting(Component.text("plots.visit.unowned")))
); );
return; return;
} }
@ -127,7 +130,7 @@ public class Visit extends Command {
.hasPermission(player, Permission.PERMISSION_HOME)) { .hasPermission(player, Permission.PERMISSION_HOME)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.visit.owned") TagResolver.resolver("node", Tag.inserting(Component.text("plots.visit.owned")))
); );
return; return;
} }
@ -135,7 +138,7 @@ public class Visit extends Command {
if (!Permissions.hasPermission(player, Permission.PERMISSION_SHARED)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_SHARED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.visit.shared") TagResolver.resolver("node", Tag.inserting(Component.text("plots.visit.shared")))
); );
return; return;
} }
@ -146,7 +149,7 @@ public class Visit extends Command {
&& !Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_VISIT_UNTRUSTED)) { && !Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_VISIT_UNTRUSTED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Templates.of("node", "plots.visit.other") TagResolver.resolver("node", Tag.inserting(Component.text("plots.visit.other")))
); );
return; return;
} }
@ -154,7 +157,10 @@ public class Visit extends Command {
if (!Permissions.hasPermission(player, Permission.PERMISSION_VISIT_DENIED)) { if (!Permissions.hasPermission(player, Permission.PERMISSION_VISIT_DENIED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("permission.no_permission"), TranslatableCaption.of("permission.no_permission"),
Template.of("node", String.valueOf(Permission.PERMISSION_VISIT_DENIED)) TagResolver.resolver(
"node",
Tag.inserting(Permission.PERMISSION_VISIT_DENIED)
)
); );
return; return;
} }
@ -196,11 +202,11 @@ public class Visit extends Command {
if (!MathMan.isInteger(args[2])) { if (!MathMan.isInteger(args[2])) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_valid_number"), TranslatableCaption.of("invalid.not_valid_number"),
Templates.of("value", "(1, ∞)") TagResolver.resolver("value", Tag.inserting(Component.text("(1, ∞)")))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", getUsage()) TagResolver.resolver("value", Tag.inserting(Component.text(getUsage())))
); );
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
@ -213,11 +219,11 @@ public class Visit extends Command {
if (sortByArea == null) { if (sortByArea == null) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_valid_number"), TranslatableCaption.of("invalid.not_valid_number"),
Templates.of("value", "(1, ∞)") TagResolver.resolver("value", Tag.inserting(Component.text("(1, ∞)")))
); );
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", getUsage()) TagResolver.resolver("value", Tag.inserting(Component.text(getUsage())))
); );
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
@ -230,7 +236,7 @@ public class Visit extends Command {
} else if (throwable != null || uuids.size() != 1) { } else if (throwable != null || uuids.size() != 1) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", getUsage()) TagResolver.resolver("value", Tag.inserting(Component.text(getUsage())))
); );
} else { } else {
final UUID uuid = uuids.toArray(new UUID[0])[0]; final UUID uuid = uuids.toArray(new UUID[0])[0];
@ -257,7 +263,7 @@ public class Visit extends Command {
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("invalid.not_a_number"), TranslatableCaption.of("invalid.not_a_number"),
Template.of("value", args[1]) TagResolver.resolver("value", Tag.inserting(Component.text(args[1])))
); );
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
@ -292,7 +298,7 @@ public class Visit extends Command {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("errors.invalid_player"), TranslatableCaption.of("errors.invalid_player"),
Template.of("value", finalArgs[0]) TagResolver.resolver("value", Tag.inserting(Component.text(finalArgs[0])))
); );
} }
} else { } else {
@ -320,7 +326,7 @@ public class Visit extends Command {
// /p v is invalid // /p v is invalid
player.sendMessage( player.sendMessage(
TranslatableCaption.of("commandconfig.command_syntax"), TranslatableCaption.of("commandconfig.command_syntax"),
Templates.of("value", getUsage()) TagResolver.resolver("value", Tag.inserting(Component.text(getUsage())))
); );
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
default: default:

View File

@ -45,8 +45,10 @@ import com.plotsquared.core.util.PatternUtil;
import com.plotsquared.core.util.Permissions; import com.plotsquared.core.util.Permissions;
import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.function.pattern.Pattern;
import com.sk89q.worldedit.world.item.ItemTypes; import com.sk89q.worldedit.world.item.ItemTypes;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; 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.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
@ -187,7 +189,8 @@ public class ComponentPresetManager {
} }
final int size = (int) Math.ceil((double) allowedPresets.size() / 9.0D); final int size = (int) Math.ceil((double) allowedPresets.size() / 9.0D);
final PlotInventory plotInventory = new PlotInventory(this.inventoryUtil, player, size, final PlotInventory plotInventory = new PlotInventory(this.inventoryUtil, player, size,
TranslatableCaption.of("preset.title").getComponent(player)) { TranslatableCaption.of("preset.title").getComponent(player)
) {
@Override @Override
public boolean onClick(final int index) { public boolean onClick(final int index) {
if (!getPlayer().getCurrentPlot().equals(plot)) { if (!getPlayer().getCurrentPlot().equals(plot)) {
@ -218,7 +221,8 @@ public class ComponentPresetManager {
if (!econHandler.isEnabled(plot.getArea())) { if (!econHandler.isEnabled(plot.getArea())) {
getPlayer().sendMessage( getPlayer().sendMessage(
TranslatableCaption.of("preset.economy_disabled"), TranslatableCaption.of("preset.economy_disabled"),
Template.of("preset", componentPreset.getDisplayName())); TagResolver.resolver("preset", Tag.inserting(Component.text(componentPreset.getDisplayName())))
);
return false; return false;
} }
if (econHandler.getMoney(getPlayer()) < componentPreset.getCost()) { if (econHandler.getMoney(getPlayer()) < componentPreset.getCost()) {
@ -228,7 +232,10 @@ public class ComponentPresetManager {
econHandler.withdrawMoney(getPlayer(), componentPreset.getCost()); econHandler.withdrawMoney(getPlayer(), componentPreset.getCost());
getPlayer().sendMessage( getPlayer().sendMessage(
TranslatableCaption.of("economy.removed_balance"), TranslatableCaption.of("economy.removed_balance"),
Template.of("money", econHandler.format(componentPreset.getCost())) TagResolver.resolver(
"money",
Tag.inserting(Component.text(econHandler.format(componentPreset.getCost())))
)
); );
} }
} }
@ -258,19 +265,21 @@ public class ComponentPresetManager {
final List<String> lore = new ArrayList<>(); final List<String> lore = new ArrayList<>();
if (preset.getCost() > 0) { if (preset.getCost() > 0) {
if (!this.econHandler.isEnabled(plot.getArea())) { if (!this.econHandler.isEnabled(plot.getArea())) {
lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.parse( lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.deserialize(
TranslatableCaption.of("preset.preset_lore_economy_disabled").getComponent(player)))); TranslatableCaption.of("preset.preset_lore_economy_disabled").getComponent(player))));
} else { } else {
lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.parse( lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.deserialize(
TranslatableCaption.of("preset.preset_lore_cost").getComponent(player), TranslatableCaption.of("preset.preset_lore_cost").getComponent(player),
Template.of("cost", String.format("%.2f", preset.getCost())) TagResolver.resolver("cost", Tag.inserting(Component.text(String.format("%.2f", preset.getCost()))))
))); )));
} }
} }
lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.parse( lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.deserialize(
TranslatableCaption.of("preset.preset_lore_component").getComponent(player), TranslatableCaption.of("preset.preset_lore_component").getComponent(player),
Template.of("component", preset.getComponent().name().toLowerCase()), TagResolver.builder()
Template.of("prefix", TranslatableCaption.of("core.prefix").getComponent(player)) .tag("component", Tag.inserting(Component.text(preset.getComponent().name().toLowerCase())))
.tag("prefix", Tag.inserting(TranslatableCaption.of("core.prefix").toComponent(player)))
.build()
))); )));
lore.removeIf(String::isEmpty); lore.removeIf(String::isEmpty);
lore.addAll(preset.getDescription()); lore.addAll(preset.getDescription());

View File

@ -25,6 +25,8 @@
*/ */
package com.plotsquared.core.configuration.caption; package com.plotsquared.core.configuration.caption;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentLike;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
/** /**
@ -40,4 +42,13 @@ public interface Caption {
*/ */
@NonNull String getComponent(@NonNull LocaleHolder localeHolder); @NonNull String getComponent(@NonNull LocaleHolder localeHolder);
/**
* Get the Adventure {@link ComponentLike} for this caption
*
* @param localeHolder Locale holder
* @return {@link ComponentLike}
* @since TODO
*/
@NonNull Component toComponent(@NonNull LocaleHolder localeHolder);
} }

View File

@ -25,27 +25,53 @@
*/ */
package com.plotsquared.core.configuration.caption; package com.plotsquared.core.configuration.caption;
import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
/**
* A holder for a caption.
* Useful when constructing messages in multiple steps with {@link TagResolver}s.
*/
public class CaptionHolder { public class CaptionHolder {
private Caption caption = StaticCaption.of(""); private Caption caption = StaticCaption.of("");
private Template[] templates = new Template[0]; private TagResolver[] tagResolvers = new TagResolver[0];
/**
* Set the {@link Caption} to send.
*
* @param caption The new caption.
*/
public void set(Caption caption) { public void set(Caption caption) {
this.caption = caption; this.caption = caption;
} }
/**
* Get the {@link Caption} to send.
*
* @return The caption to send.
*/
public Caption get() { public Caption get() {
return this.caption; return this.caption;
} }
public Template[] getTemplates() { /**
return this.templates; * Get the {@link TagResolver}s to use when resolving tags in the {@link Caption}.
*
* @return The tag resolvers to use.
* @since TODO
*/
public TagResolver[] getTagResolvers() {
return this.tagResolvers;
} }
public void setTemplates(Template... templates) { /**
this.templates = templates; * Set the {@link TagResolver}s to use when resolving tags in the {@link Caption}.
*
* @param tagResolvers The tag resolvers to use.
* @since TODO
*/
public void setTagResolvers(TagResolver... tagResolvers) {
this.tagResolvers = tagResolvers;
} }
} }

View File

@ -107,9 +107,9 @@ public class CaptionUtility {
*/ */
public static String stripClickEvents(final @NonNull String miniMessageString) { public static String stripClickEvents(final @NonNull String miniMessageString) {
// parse, transform and serialize again // parse, transform and serialize again
Component component = MiniMessage.get().parse(miniMessageString); Component component = MiniMessage.miniMessage().deserialize(miniMessageString);
component = CLICK_STRIP_TRANSFORM.transform(component); component = CLICK_STRIP_TRANSFORM.transform(component);
return MiniMessage.get().serialize(component); return MiniMessage.miniMessage().serialize(component);
} }
/** /**

View File

@ -26,6 +26,9 @@
package com.plotsquared.core.configuration.caption; package com.plotsquared.core.configuration.caption;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
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; import org.checkerframework.checker.nullness.qual.NonNull;
public final class StaticCaption implements Caption { public final class StaticCaption implements Caption {
@ -51,4 +54,9 @@ public final class StaticCaption implements Caption {
return this.value; // can't be translated return this.value; // can't be translated
} }
@Override
public @NonNull Component toComponent(@NonNull final LocaleHolder localeHolder) {
return MiniMessage.miniMessage().deserialize(this.value);
}
} }

View File

@ -1,110 +0,0 @@
/*
* _____ _ _ _____ _
* | __ \| | | | / ____| | |
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
* | |
* |_|
* PlotSquared plot management system for Minecraft
* Copyright (C) 2014 - 2022 IntellectualSites
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.plotsquared.core.configuration.caption;
import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.util.PlayerManager;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template;
import org.checkerframework.checker.nullness.qual.NonNull;
import java.util.UUID;
/**
* Utility class that generates {@link net.kyori.adventure.text.minimessage.Template templates}
*/
public final class Templates {
private static final MiniMessage MINI_MESSAGE = MiniMessage.builder().build();
private Templates() {
throw new UnsupportedOperationException(
"This is a utility class and cannot be instantiated");
}
/**
* Create a {@link net.kyori.adventure.text.minimessage.Template} from a PlotSquared {@link Caption}
*
* @param localeHolder Locale holder
* @param key Template key
* @param caption Caption object
* @param replacements Replacements
* @return Generated template
*/
public static @NonNull Template of(
final @NonNull LocaleHolder localeHolder,
final @NonNull String key, final @NonNull Caption caption,
final @NonNull Template... replacements
) {
return Template.of(key, MINI_MESSAGE.parse(caption.getComponent(localeHolder), replacements));
}
/**
* Create a {@link Template} from a username (using UUID mappings)
*
* @param key Template key
* @param uuid Player UUID
* @return Generated template
*/
public static @NonNull Template of(final @NonNull String key, final @NonNull UUID uuid) {
final String username = PlayerManager.resolveName(uuid).getComponent(LocaleHolder.console());
return Template.of(key, username);
}
/**
* Create a {@link Template} from a string
*
* @param key Template key
* @param value Template value
* @return Generated template
*/
public static @NonNull Template of(final @NonNull String key, final @NonNull String value) {
return Template.of(key, value);
}
/**
* Create a {@link Template} from a plot area
*
* @param key Template Key
* @param area Plot area
* @return Generated template
*/
public static @NonNull Template of(final @NonNull String key, final @NonNull PlotArea area) {
return Template.of(key, area.toString());
}
/**
* Create a {@link Template} from a number
*
* @param key Template key
* @param number Number
* @return Generated template
*/
public static @NonNull Template of(final @NonNull String key, final @NonNull Number number) {
return Template.of(key, number.toString());
}
}

View File

@ -27,6 +27,11 @@ package com.plotsquared.core.configuration.caption;
import com.google.common.base.Objects; import com.google.common.base.Objects;
import com.plotsquared.core.PlotSquared; import com.plotsquared.core.PlotSquared;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentLike;
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 org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Locale; import java.util.Locale;
@ -96,6 +101,17 @@ public final class TranslatableCaption implements NamespacedCaption {
return PlotSquared.get().getCaptionMap(this.namespace).getMessage(this, localeHolder); return PlotSquared.get().getCaptionMap(this.namespace).getMessage(this, localeHolder);
} }
@Override
public @NonNull Component toComponent(@NonNull final LocaleHolder localeHolder) {
if (getKey().equals("core.prefix")) {
return MiniMessage.miniMessage().deserialize(getComponent(localeHolder));
}
return MiniMessage.miniMessage().deserialize(getComponent(localeHolder), TagResolver.resolver(
"prefix",
Tag.inserting(TranslatableCaption.of("core.prefix").toComponent(localeHolder))
));
}
@Override @Override
public @NonNull String getKey() { public @NonNull String getKey() {
return this.key; return this.key;

View File

@ -34,7 +34,7 @@ import com.plotsquared.core.plot.PlotManager;
import com.plotsquared.core.queue.AreaBoundDelegateQueueCoordinator; import com.plotsquared.core.queue.AreaBoundDelegateQueueCoordinator;
import com.plotsquared.core.queue.LocationOffsetDelegateQueueCoordinator; import com.plotsquared.core.queue.LocationOffsetDelegateQueueCoordinator;
import com.plotsquared.core.queue.QueueCoordinator; import com.plotsquared.core.queue.QueueCoordinator;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.plotsquared.core.util.RegionUtil; import com.plotsquared.core.util.RegionUtil;
import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.CuboidRegion;
import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockState;
@ -168,8 +168,8 @@ public class AugmentedUtils {
// This queue should not be enqueued as it is simply used to restrict block setting, and then delegate to the // This queue should not be enqueued as it is simply used to restrict block setting, and then delegate to the
// actual queue // actual queue
ScopedQueueCoordinator scoped = ZeroedDelegateScopedQueueCoordinator scoped =
new ScopedQueueCoordinator( new ZeroedDelegateScopedQueueCoordinator(
secondaryMask, secondaryMask,
Location.at(world, blockX, area.getMinGenHeight(), blockZ), Location.at(world, blockX, area.getMinGenHeight(), blockZ),
Location.at(world, blockX + 15, area.getMaxGenHeight(), blockZ + 15) Location.at(world, blockX + 15, area.getMaxGenHeight(), blockZ + 15)
@ -183,19 +183,4 @@ public class AugmentedUtils {
return generationResult; return generationResult;
} }
/**
* @deprecated Use {@link AugmentedUtils#generateChunk(String, int, int, QueueCoordinator)} as chunkObject is not required
* in the above method
*/
@Deprecated(forRemoval = true, since = "6.8.0")
public static boolean generate(
@Nullable Object chunkObject,
final @NonNull String world,
final int chunkX,
final int chunkZ,
QueueCoordinator queue
) {
return generateChunk(world, chunkX, chunkZ, queue);
}
} }

View File

@ -33,7 +33,7 @@ import com.plotsquared.core.inject.factory.HybridPlotWorldFactory;
import com.plotsquared.core.location.Location; import com.plotsquared.core.location.Location;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotId; import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.MathMan;
import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BaseBlock;
@ -55,12 +55,16 @@ public class HybridGen extends IndependentPlotGenerator {
} }
private void placeSchem( private void placeSchem(
HybridPlotWorld world, ScopedQueueCoordinator result, short relativeX, HybridPlotWorld world,
short relativeZ, int x, int z, boolean isRoad ZeroedDelegateScopedQueueCoordinator result,
short relativeX,
short relativeZ,
int x,
int z,
boolean isRoad
) { ) {
int minY; // Math.min(world.PLOT_HEIGHT, world.ROAD_HEIGHT); int minY; // Math.min(world.PLOT_HEIGHT, world.ROAD_HEIGHT);
if ((isRoad && Settings.Schematics.PASTE_ROAD_ON_TOP) || (!isRoad if ((isRoad && Settings.Schematics.PASTE_ROAD_ON_TOP) || (!isRoad && Settings.Schematics.PASTE_ON_TOP)) {
&& Settings.Schematics.PASTE_ON_TOP)) {
minY = world.SCHEM_Y; minY = world.SCHEM_Y;
} else { } else {
minY = world.getMinBuildHeight(); minY = world.getMinBuildHeight();
@ -80,7 +84,7 @@ public class HybridGen extends IndependentPlotGenerator {
} }
@Override @Override
public void generateChunk(@NonNull ScopedQueueCoordinator result, @NonNull PlotArea settings) { public void generateChunk(@NonNull ZeroedDelegateScopedQueueCoordinator result, @NonNull PlotArea settings) {
Preconditions.checkNotNull(result, "result cannot be null"); Preconditions.checkNotNull(result, "result cannot be null");
Preconditions.checkNotNull(settings, "settings cannot be null"); Preconditions.checkNotNull(settings, "settings cannot be null");

View File

@ -594,20 +594,6 @@ public class HybridUtils {
return ey; return ey;
} }
/**
* Regenerate the road in a chunk in a plot area.
*
* @param area Plot area to regenerate road for
* @param chunk Chunk location to regenerate
* @param extend How far to extend setting air above the road
* @return if successful
* @deprecated use {@link HybridUtils#regenerateRoad(PlotArea, BlockVector2, int, QueueCoordinator)}
*/
@Deprecated(forRemoval = true, since = "6.6.0")
public boolean regenerateRoad(final PlotArea area, final BlockVector2 chunk, int extend) {
return regenerateRoad(area, chunk, extend, null);
}
/** /**
* Regenerate the road in a chunk in a plot area. * Regenerate the road in a chunk in a plot area.
* *

View File

@ -28,7 +28,7 @@ package com.plotsquared.core.generator;
import com.plotsquared.core.PlotSquared; import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotId; import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.plotsquared.core.setup.PlotAreaBuilder; import com.plotsquared.core.setup.PlotAreaBuilder;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
@ -54,9 +54,9 @@ public abstract class IndependentPlotGenerator {
* @param result queue * @param result queue
* @param settings PlotArea (settings) * @param settings PlotArea (settings)
*/ */
public abstract void generateChunk(ScopedQueueCoordinator result, PlotArea settings); public abstract void generateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea settings);
public boolean populateChunk(ScopedQueueCoordinator result, PlotArea setting) { public boolean populateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea setting) {
return false; return false;
} }

View File

@ -32,7 +32,7 @@ import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.plot.world.SinglePlotArea; import com.plotsquared.core.plot.world.SinglePlotArea;
import com.plotsquared.core.plot.world.SinglePlotAreaManager; import com.plotsquared.core.plot.world.SinglePlotAreaManager;
import com.plotsquared.core.queue.ScopedQueueCoordinator; import com.plotsquared.core.queue.ZeroedDelegateScopedQueueCoordinator;
import com.sk89q.worldedit.world.biome.BiomeTypes; import com.sk89q.worldedit.world.biome.BiomeTypes;
import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypes;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
@ -59,7 +59,7 @@ public class SingleWorldGenerator extends IndependentPlotGenerator {
} }
@Override @Override
public void generateChunk(ScopedQueueCoordinator result, PlotArea settings) { public void generateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea settings) {
SinglePlotArea area = (SinglePlotArea) settings; SinglePlotArea area = (SinglePlotArea) settings;
if (area.VOID) { if (area.VOID) {
Location min = result.getMin(); Location min = result.getMin();

View File

@ -72,8 +72,11 @@ import com.sk89q.worldedit.world.gamemode.GameMode;
import com.sk89q.worldedit.world.gamemode.GameModes; import com.sk89q.worldedit.world.gamemode.GameModes;
import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemType;
import com.sk89q.worldedit.world.item.ItemTypes; import com.sk89q.worldedit.world.item.ItemTypes;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentLike;
import net.kyori.adventure.text.minimessage.MiniMessage; 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 org.checkerframework.checker.nullness.qual.Nullable;
import java.util.HashMap; import java.util.HashMap;
@ -85,7 +88,7 @@ import java.util.function.Consumer;
public class PlotListener { public class PlotListener {
private static final MiniMessage MINI_MESSAGE = MiniMessage.builder().build(); private static final MiniMessage MINI_MESSAGE = MiniMessage.miniMessage();
private final HashMap<UUID, Interval> feedRunnable = new HashMap<>(); private final HashMap<UUID, Interval> feedRunnable = new HashMap<>();
private final HashMap<UUID, Interval> healRunnable = new HashMap<>(); private final HashMap<UUID, Interval> healRunnable = new HashMap<>();
@ -146,7 +149,7 @@ public class PlotListener {
.hasPermission(player, "plots.admin.entry.denied")) { .hasPermission(player, "plots.admin.entry.denied")) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("deny.no_enter"), TranslatableCaption.of("deny.no_enter"),
Template.of("plot", plot.toString()) TagResolver.resolver("plot", Tag.inserting(Component.text(plot.toString())))
); );
return false; return false;
} }
@ -214,8 +217,10 @@ public class PlotListener {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("gamemode.gamemode_was_bypassed"), TranslatableCaption.of("gamemode.gamemode_was_bypassed"),
Template.of("gamemode", String.valueOf(gameMode)), TagResolver.builder()
Template.of("plot", plot.getId().toString()) .tag("gamemode", Tag.inserting(Component.text(gameMode.toString())))
.tag("plot", Tag.inserting(Component.text(plot.getId().toString())))
.build()
); );
} }
} }
@ -229,8 +234,10 @@ public class PlotListener {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("gamemode.gamemode_was_bypassed"), TranslatableCaption.of("gamemode.gamemode_was_bypassed"),
Template.of("gamemode", String.valueOf(guestGameMode)), TagResolver.builder()
Template.of("plot", plot.getId().toString()) .tag("gamemode", Tag.inserting(Component.text(guestGameMode.toString())))
.tag("plot", Tag.inserting(Component.text(plot.getId().toString())))
.build()
); );
} }
} }
@ -309,39 +316,21 @@ public class PlotListener {
} }
if ((lastPlot != null) && plot.getId().equals(lastPlot.getId()) && plot.hasOwner()) { if ((lastPlot != null) && plot.getId().equals(lastPlot.getId()) && plot.hasOwner()) {
final UUID plotOwner = plot.getOwnerAbs(); final UUID plotOwner = plot.getOwnerAbs();
String owner = PlayerManager.resolveName(plotOwner, true).getComponent(player); ComponentLike owner = PlayerManager.resolveName(plotOwner, true).toComponent(player);
Caption header = fromFlag ? StaticCaption.of(title) : TranslatableCaption.of("titles" + Caption header = fromFlag ? StaticCaption.of(title) : TranslatableCaption.of("titles" +
".title_entered_plot"); ".title_entered_plot");
Caption subHeader = fromFlag ? StaticCaption.of(subtitle) : TranslatableCaption.of("titles" + Caption subHeader = fromFlag ? StaticCaption.of(subtitle) : TranslatableCaption.of("titles" +
".title_entered_plot_sub"); ".title_entered_plot_sub");
Template plotTemplate = Template.of("plot", lastPlot.getId().toString()); TagResolver resolver = TagResolver.builder()
Template worldTemplate = Template.of("world", player.getLocation().getWorldName()); .tag("plot", Tag.inserting(Component.text(lastPlot.getId().toString())))
Template ownerTemplate = Template.of("owner", owner); .tag("world", Tag.inserting(Component.text(player.getLocation().getWorldName())))
Template aliasTemplate = Template.of("alias", plot.getAlias()); .tag("owner", Tag.inserting(owner))
.tag("alias", Tag.inserting(Component.text(plot.getAlias())))
final Consumer<String> userConsumer = user -> { .build();
if (Settings.Titles.TITLES_AS_ACTIONBAR) { if (Settings.Titles.TITLES_AS_ACTIONBAR) {
player.sendActionBar(header, aliasTemplate, plotTemplate, worldTemplate, ownerTemplate); player.sendActionBar(header, resolver);
} else { } else {
player.sendTitle(header, subHeader, aliasTemplate, plotTemplate, worldTemplate, ownerTemplate); player.sendTitle(header, subHeader, resolver);
}
};
UUID uuid = plot.getOwner();
if (uuid == null) {
userConsumer.accept("Unknown");
} else if (uuid.equals(DBFunc.SERVER)) {
userConsumer.accept(MINI_MESSAGE.stripTokens(TranslatableCaption
.of("info.server")
.getComponent(player)));
} else {
PlotSquared.get().getImpromptuUUIDPipeline().getSingle(plot.getOwner(), (user, throwable) -> {
if (throwable != null) {
userConsumer.accept("Unknown");
} else {
userConsumer.accept(user);
}
});
} }
} }
}, TaskTime.seconds(1L)); }, TaskTime.seconds(1L));
@ -391,8 +380,10 @@ public class PlotListener {
} else { } else {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("gamemode.gamemode_was_bypassed"), TranslatableCaption.of("gamemode.gamemode_was_bypassed"),
Template.of("gamemode", pw.getGameMode().getName().toLowerCase()), TagResolver.builder()
Template.of("plot", plot.toString()) .tag("gamemode", Tag.inserting(Component.text(pw.getGameMode().toString())))
.tag("plot", Tag.inserting(Component.text(plot.toString())))
.build()
); );
} }
} }
@ -462,13 +453,15 @@ public class PlotListener {
} }
private void notifyPlotOwner(final PlotPlayer<?> player, final Plot plot, final PlotPlayer<?> owner, final Caption caption) { private void notifyPlotOwner(final PlotPlayer<?> player, final Plot plot, final PlotPlayer<?> owner, final Caption caption) {
Template playerTemplate = Template.of("player", player.getName()); TagResolver resolver = TagResolver.builder()
Template plotTemplate = Template.of("plot", plot.getId().toString()); .tag("player", Tag.inserting(Component.text(player.getName())))
Template areaTemplate = Template.of("area", plot.getArea().toString()); .tag("plot", Tag.inserting(Component.text(plot.getId().toString())))
.tag("area", Tag.inserting(Component.text(String.valueOf(plot.getArea()))))
.build();
if (!Settings.Chat.NOTIFICATION_AS_ACTIONBAR) { if (!Settings.Chat.NOTIFICATION_AS_ACTIONBAR) {
owner.sendMessage(caption, playerTemplate, plotTemplate, areaTemplate); owner.sendMessage(caption, resolver);
} else { } else {
owner.sendActionBar(caption, playerTemplate, plotTemplate, areaTemplate); owner.sendActionBar(caption, resolver);
} }
} }

View File

@ -46,7 +46,9 @@ import com.sk89q.worldedit.util.Location;
import com.sk89q.worldedit.util.eventbus.EventHandler.Priority; import com.sk89q.worldedit.util.eventbus.EventHandler.Priority;
import com.sk89q.worldedit.util.eventbus.Subscribe; import com.sk89q.worldedit.util.eventbus.Subscribe;
import com.sk89q.worldedit.world.World; 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 org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Set; import java.util.Set;
@ -102,7 +104,7 @@ public class WESubscriber {
if (Permissions.hasPermission(plotPlayer, "plots.worldedit.bypass")) { if (Permissions.hasPermission(plotPlayer, "plots.worldedit.bypass")) {
plotPlayer.sendMessage( plotPlayer.sendMessage(
TranslatableCaption.of("worldedit.worldedit_bypass"), TranslatableCaption.of("worldedit.worldedit_bypass"),
Template.of("command", "/plot toggle worldedit") TagResolver.resolver("command", Tag.inserting(Component.text("/plot toggle worldedit")))
); );
} }
if (this.plotAreaManager.hasPlotArea(world)) { if (this.plotAreaManager.hasPlotArea(world)) {

View File

@ -25,12 +25,15 @@
*/ */
package com.plotsquared.core.permissions; package com.plotsquared.core.permissions;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentLike;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
import org.jetbrains.annotations.NotNull;
/** /**
* Permission class. * Permission class.
*/ */
public enum Permission { public enum Permission implements ComponentLike {
//@formatter:off //@formatter:off
//<editor-fold desc="Static Permission"> //<editor-fold desc="Static Permission">
@ -225,4 +228,9 @@ public enum Permission {
return String.format(this.toString(), replacements); return String.format(this.toString(), replacements);
} }
@Override
public @NotNull Component asComponent() {
return Component.text(text);
}
} }

View File

@ -49,7 +49,7 @@ import com.sk89q.worldedit.world.gamemode.GameModes;
import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemType;
import net.kyori.adventure.audience.Audience; import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
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.NonNull;
import java.util.UUID; import java.util.UUID;
@ -117,7 +117,7 @@ public class ConsolePlayer extends PlotPlayer<Actor> {
@Override @Override
public void sendTitle( public void sendTitle(
final @NonNull Caption title, final @NonNull Caption subtitle, final @NonNull Caption title, final @NonNull Caption subtitle,
final int fadeIn, final int stay, final int fadeOut, final @NonNull Template... replacements final int fadeIn, final int stay, final int fadeOut, final @NonNull TagResolver... resolvers
) { ) {
} }
@ -151,7 +151,7 @@ public class ConsolePlayer extends PlotPlayer<Actor> {
@Override @Override
public void sendMessage( public void sendMessage(
final @NonNull Caption caption, final @NonNull Caption caption,
final @NonNull Template... replacements final @NonNull TagResolver... replacements
) { ) {
String message = caption.getComponent(this); String message = caption.getComponent(this);
if (message.isEmpty()) { if (message.isEmpty()) {
@ -161,7 +161,7 @@ public class ConsolePlayer extends PlotPlayer<Actor> {
.replace('\u2010', '%').replace('\u2020', '&').replace('\u2030', '&') .replace('\u2010', '%').replace('\u2020', '&').replace('\u2030', '&')
.replace("<prefix>", TranslatableCaption.of("core.prefix").getComponent(this)); .replace("<prefix>", TranslatableCaption.of("core.prefix").getComponent(this));
// Parse the message // Parse the message
PlotSquared.platform().consoleAudience().sendMessage(MINI_MESSAGE.parse(message, replacements)); PlotSquared.platform().consoleAudience().sendMessage(MINI_MESSAGE.deserialize(message, replacements));
} }
@Override @Override

View File

@ -65,8 +65,9 @@ import com.sk89q.worldedit.world.gamemode.GameMode;
import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemType;
import net.kyori.adventure.audience.Audience; import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentLike;
import net.kyori.adventure.text.minimessage.MiniMessage; 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.title.Title; import net.kyori.adventure.title.Title;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -844,7 +845,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
*/ */
public void sendTitle( public void sendTitle(
final @NonNull Caption title, final @NonNull Caption subtitle, final @NonNull Caption title, final @NonNull Caption subtitle,
final @NonNull Template... replacements final @NonNull TagResolver... replacements
) { ) {
sendTitle( sendTitle(
title, title,
@ -869,11 +870,11 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
public void sendTitle( public void sendTitle(
final @NonNull Caption title, final @NonNull Caption subtitle, final @NonNull Caption title, final @NonNull Caption subtitle,
final int fadeIn, final int stay, final int fadeOut, final int fadeIn, final int stay, final int fadeOut,
final @NonNull Template... replacements final @NonNull TagResolver... replacements
) { ) {
final Component titleComponent = MiniMessage.get().parse(title.getComponent(this), replacements); final Component titleComponent = MiniMessage.miniMessage().deserialize(title.getComponent(this), replacements);
final Component subtitleComponent = final Component subtitleComponent =
MiniMessage.get().parse(subtitle.getComponent(this), replacements); MiniMessage.miniMessage().deserialize(subtitle.getComponent(this), replacements);
final Title.Times times = Title.Times.of( final Title.Times times = Title.Times.of(
Duration.of(Settings.Titles.TITLES_FADE_IN * 50L, ChronoUnit.MILLIS), Duration.of(Settings.Titles.TITLES_FADE_IN * 50L, ChronoUnit.MILLIS),
Duration.of(Settings.Titles.TITLES_STAY * 50L, ChronoUnit.MILLIS), Duration.of(Settings.Titles.TITLES_STAY * 50L, ChronoUnit.MILLIS),
@ -891,7 +892,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
*/ */
public void sendActionBar( public void sendActionBar(
final @NonNull Caption caption, final @NonNull Caption caption,
final @NonNull Template... replacements final @NonNull TagResolver... replacements
) { ) {
String message; String message;
try { try {
@ -911,14 +912,14 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
.replace("<prefix>", TranslatableCaption.of("core.prefix").getComponent(this)); .replace("<prefix>", TranslatableCaption.of("core.prefix").getComponent(this));
final Component component = MiniMessage.get().parse(message, replacements); final Component component = MiniMessage.miniMessage().deserialize(message, replacements);
getAudience().sendActionBar(component); getAudience().sendActionBar(component);
} }
@Override @Override
public void sendMessage( public void sendMessage(
final @NonNull Caption caption, final @NonNull Caption caption,
final @NonNull Template... replacements final @NonNull TagResolver... replacements
) { ) {
String message; String message;
try { try {
@ -937,7 +938,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
.replace('\u2010', '%').replace('\u2020', '&').replace('\u2030', '&') .replace('\u2010', '%').replace('\u2020', '&').replace('\u2030', '&')
.replace("<prefix>", TranslatableCaption.of("core.prefix").getComponent(this)); .replace("<prefix>", TranslatableCaption.of("core.prefix").getComponent(this));
// Parse the message // Parse the message
final Component component = MiniMessage.get().parse(message, replacements); final Component component = MiniMessage.miniMessage().deserialize(message, replacements);
if (!Objects.equal(component, this.getMeta("lastMessage")) if (!Objects.equal(component, this.getMeta("lastMessage"))
|| System.currentTimeMillis() - this.<Long>getMeta("lastMessageTime") > 5000) { || System.currentTimeMillis() - this.<Long>getMeta("lastMessageTime") > 5000) {
setMeta("lastMessage", component); setMeta("lastMessage", component);

Some files were not shown because too many files have changed in this diff Show More