From 2195c1d0eba79f2aa959d85acbac1305b4a19c89 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Mon, 20 Jun 2022 17:33:49 +0200 Subject: [PATCH] Implements #11 --- .../command/CommandVisualizer.java | 15 ++++++++++++++- .../command/VisualizerTabCompleter.java | 19 +++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/knarcraft/stargatecommand/command/CommandVisualizer.java b/src/main/java/net/knarcraft/stargatecommand/command/CommandVisualizer.java index bcf2d47..8231e85 100644 --- a/src/main/java/net/knarcraft/stargatecommand/command/CommandVisualizer.java +++ b/src/main/java/net/knarcraft/stargatecommand/command/CommandVisualizer.java @@ -10,9 +10,11 @@ import net.knarcraft.stargatecommand.formatting.TranslatableMessage; import net.knarcraft.stargatecommand.manager.IconManager; import net.knarcraft.stargatecommand.property.Icon; import net.knarcraft.stargatecommand.property.StargateCommandCommand; +import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import static net.knarcraft.stargatecommand.formatting.StringFormatter.getTranslatedErrorMessage; @@ -47,7 +49,18 @@ public class CommandVisualizer implements CommandExecutor { return true; } - Network network = registryAPI.getNetwork(args[0].replace(spaceReplacement, " "), false); + String networkName = args[0].trim().replace(spaceReplacement, " "); + + //Replace {playerName} with network UUID + if (networkName.matches("^\\{.*}$")) { + Player player = Bukkit.getPlayer(networkName.substring(1, networkName.length() - 1)); + if (player != null) { + networkName = player.getUniqueId().toString(); + } + } + + Network network = registryAPI.getNetwork(networkName, false); + if (network == null) { commandSender.sendMessage(getTranslatedErrorMessage(TranslatableMessage.INVALID_NETWORK_GIVEN)); return true; diff --git a/src/main/java/net/knarcraft/stargatecommand/command/VisualizerTabCompleter.java b/src/main/java/net/knarcraft/stargatecommand/command/VisualizerTabCompleter.java index 5e4309d..1503b0d 100644 --- a/src/main/java/net/knarcraft/stargatecommand/command/VisualizerTabCompleter.java +++ b/src/main/java/net/knarcraft/stargatecommand/command/VisualizerTabCompleter.java @@ -4,14 +4,17 @@ import net.TheDgtl.Stargate.network.RegistryAPI; import net.knarcraft.stargatecommand.manager.IconManager; import net.knarcraft.stargatecommand.property.Icon; import net.knarcraft.stargatecommand.property.StargateCommandCommand; +import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import static net.knarcraft.stargatecommand.util.TabCompleterHelper.filterMatching; @@ -42,8 +45,20 @@ public class VisualizerTabCompleter implements TabCompleter { if (args.length < 2) { List networkNames = new ArrayList<>(); - registryAPI.getNetworkMap().values().forEach(item -> networkNames.add(item.getName().replace(" ", - IconManager.getIconString(Icon.SPACE_REPLACEMENT)))); + registryAPI.getNetworkMap().values().forEach(network -> { + String networkName = network.getName().replace(" ", IconManager.getIconString( + Icon.SPACE_REPLACEMENT)); + try { + UUID userID = UUID.fromString(network.getName()); + Player player = Bukkit.getPlayer(userID); + if (player != null) { + networkName = "{" + player.getName() + "}"; + } + } catch (IllegalArgumentException exception) { + //Ignored. Not a UUID + } + networkNames.add(networkName); + }); return filterMatching(networkNames, args[0]); } else { return new ArrayList<>();