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.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;

View File

@@ -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<String> 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<>();