Implements #11

This commit is contained in:
2022-06-20 17:33:49 +02:00
parent a16cf8086f
commit 2195c1d0eb
2 changed files with 31 additions and 3 deletions

View File

@@ -10,9 +10,11 @@ import net.knarcraft.stargatecommand.formatting.TranslatableMessage;
import net.knarcraft.stargatecommand.manager.IconManager; import net.knarcraft.stargatecommand.manager.IconManager;
import net.knarcraft.stargatecommand.property.Icon; import net.knarcraft.stargatecommand.property.Icon;
import net.knarcraft.stargatecommand.property.StargateCommandCommand; import net.knarcraft.stargatecommand.property.StargateCommandCommand;
import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import static net.knarcraft.stargatecommand.formatting.StringFormatter.getTranslatedErrorMessage; import static net.knarcraft.stargatecommand.formatting.StringFormatter.getTranslatedErrorMessage;
@@ -47,7 +49,18 @@ public class CommandVisualizer implements CommandExecutor {
return true; 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) { if (network == null) {
commandSender.sendMessage(getTranslatedErrorMessage(TranslatableMessage.INVALID_NETWORK_GIVEN)); commandSender.sendMessage(getTranslatedErrorMessage(TranslatableMessage.INVALID_NETWORK_GIVEN));
return true; return true;

View File

@@ -4,14 +4,17 @@ import net.TheDgtl.Stargate.network.RegistryAPI;
import net.knarcraft.stargatecommand.manager.IconManager; import net.knarcraft.stargatecommand.manager.IconManager;
import net.knarcraft.stargatecommand.property.Icon; import net.knarcraft.stargatecommand.property.Icon;
import net.knarcraft.stargatecommand.property.StargateCommandCommand; import net.knarcraft.stargatecommand.property.StargateCommandCommand;
import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter; import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID;
import static net.knarcraft.stargatecommand.util.TabCompleterHelper.filterMatching; import static net.knarcraft.stargatecommand.util.TabCompleterHelper.filterMatching;
@@ -42,8 +45,20 @@ public class VisualizerTabCompleter implements TabCompleter {
if (args.length < 2) { if (args.length < 2) {
List<String> networkNames = new ArrayList<>(); List<String> networkNames = new ArrayList<>();
registryAPI.getNetworkMap().values().forEach(item -> networkNames.add(item.getName().replace(" ", registryAPI.getNetworkMap().values().forEach(network -> {
IconManager.getIconString(Icon.SPACE_REPLACEMENT)))); 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]); return filterMatching(networkNames, args[0]);
} else { } else {
return new ArrayList<>(); return new ArrayList<>();