Adds a small workaround to handle Networks and Portals with spaces #8
This commit is contained in:
@@ -57,6 +57,15 @@ public class StargateCommand extends JavaPlugin {
|
||||
//Currently, nothing needs to be disabled
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the character used to replace spaces in portal and network names
|
||||
*
|
||||
* @return <p>The character used to replace spaces</p>
|
||||
*/
|
||||
public static char getSpaceReplacementCharacter() {
|
||||
return '⚊';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an instance of this plugin
|
||||
*
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.TheDgtl.Stargate.manager.PermissionManager;
|
||||
import net.TheDgtl.Stargate.network.Network;
|
||||
import net.TheDgtl.Stargate.network.RegistryAPI;
|
||||
import net.TheDgtl.Stargate.network.portal.RealPortal;
|
||||
import net.knarcraft.stargatecommand.StargateCommand;
|
||||
import net.knarcraft.stargatecommand.manager.OverrideManager;
|
||||
import net.knarcraft.stargatecommand.util.PortalFinderHelper;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -18,6 +19,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
*/
|
||||
public class CommandDial implements CommandExecutor {
|
||||
|
||||
private final char spaceReplacement = StargateCommand.getSpaceReplacementCharacter();
|
||||
private final StargateAPI stargateAPI;
|
||||
private final RegistryAPI registryAPI;
|
||||
|
||||
@@ -49,8 +51,8 @@ public class CommandDial implements CommandExecutor {
|
||||
}
|
||||
|
||||
PermissionManager permissionManager = stargateAPI.getPermissionManager(player);
|
||||
String networkName = args[0];
|
||||
String portalName = args[1];
|
||||
String networkName = args[0].replace(spaceReplacement, ' ');
|
||||
String portalName = args[1].replace(spaceReplacement, ' ');
|
||||
Network network = registryAPI.getNetwork(networkName, false);
|
||||
if (network == null) {
|
||||
commandSender.sendMessage("Invalid network selected");
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.TheDgtl.Stargate.network.RegistryAPI;
|
||||
import net.TheDgtl.Stargate.network.portal.FixedPortal;
|
||||
import net.TheDgtl.Stargate.network.portal.Portal;
|
||||
import net.TheDgtl.Stargate.network.portal.PortalFlag;
|
||||
import net.knarcraft.stargatecommand.StargateCommand;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -15,6 +16,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
*/
|
||||
public class CommandVisualizer implements CommandExecutor {
|
||||
|
||||
private final char spaceReplacement = StargateCommand.getSpaceReplacementCharacter();
|
||||
private final RegistryAPI registryAPI;
|
||||
|
||||
/**
|
||||
@@ -39,7 +41,7 @@ public class CommandVisualizer implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
Network network = registryAPI.getNetwork(args[0], false);
|
||||
Network network = registryAPI.getNetwork(args[0].replace(spaceReplacement, ' '), false);
|
||||
if (network == null) {
|
||||
commandSender.sendMessage("You must provide a valid network to visualize");
|
||||
return true;
|
||||
@@ -49,29 +51,23 @@ public class CommandVisualizer implements CommandExecutor {
|
||||
|
||||
stringBuilder.append("All portals in network: ").append(network.getName()).append("\n");
|
||||
stringBuilder.append("Symbol explanation: ").append("\n");
|
||||
stringBuilder.append("# = hidden, ¤ = not hidden").append("\n");
|
||||
stringBuilder.append("O = always on, - = not always on").append("\n");
|
||||
stringBuilder.append("| = fixed, > = destination choose-able");
|
||||
stringBuilder.append("⇒ = hidden, ⇄ = not hidden").append("\n");
|
||||
stringBuilder.append("⬛ = always on, ⬜ = not always on").append("\n");
|
||||
|
||||
//Print info about all portals in the network
|
||||
for (Portal portal : network.getAllPortals()) {
|
||||
stringBuilder.append("\n");
|
||||
if (portal.hasFlag(PortalFlag.HIDDEN)) {
|
||||
stringBuilder.append('#');
|
||||
stringBuilder.append('⇒');
|
||||
} else {
|
||||
stringBuilder.append('¤');
|
||||
stringBuilder.append('⇄');
|
||||
}
|
||||
if (portal.hasFlag(PortalFlag.ALWAYS_ON)) {
|
||||
stringBuilder.append('O');
|
||||
stringBuilder.append('⬛');
|
||||
} else {
|
||||
stringBuilder.append('-');
|
||||
stringBuilder.append('⬜');
|
||||
}
|
||||
//TODO: Look for the fixed flag instead of FixedPortal once it's fixed
|
||||
if (portal instanceof FixedPortal) {
|
||||
stringBuilder.append('|');
|
||||
} else {
|
||||
stringBuilder.append('>');
|
||||
}
|
||||
stringBuilder.append(" ").append(portal.getName());
|
||||
if (portal instanceof FixedPortal) {
|
||||
stringBuilder.append(" -> ");
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.TheDgtl.Stargate.network.Network;
|
||||
import net.TheDgtl.Stargate.network.RegistryAPI;
|
||||
import net.TheDgtl.Stargate.network.portal.Portal;
|
||||
import net.TheDgtl.Stargate.network.portal.RealPortal;
|
||||
import net.knarcraft.stargatecommand.StargateCommand;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
@@ -27,6 +28,7 @@ import static net.knarcraft.stargatecommand.util.TabCompleterHelper.filterMatchi
|
||||
*/
|
||||
public class DialTabCompleter implements TabCompleter {
|
||||
|
||||
private final char spaceReplacement = StargateCommand.getSpaceReplacementCharacter();
|
||||
private final StargateAPI stargateAPI;
|
||||
|
||||
/**
|
||||
@@ -56,14 +58,14 @@ public class DialTabCompleter implements TabCompleter {
|
||||
populateNetworksAndPortals(permissionManager, availableNetworks, availablePortals);
|
||||
|
||||
if (args.length > 1) {
|
||||
Network network = registryAPI.getNetwork(args[0], false);
|
||||
Network network = registryAPI.getNetwork(args[0].replace(spaceReplacement, ' '), false);
|
||||
if (network != null && availablePortals.containsKey(network)) {
|
||||
return filterMatching(availablePortals.get(network), args[1]);
|
||||
return filterMatching(availablePortals.get(network), args[1].replace(spaceReplacement, ' '));
|
||||
} else {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
} else {
|
||||
return filterMatching(availableNetworks, args[0]);
|
||||
return filterMatching(availableNetworks, args[0].replace(spaceReplacement, ' '));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,12 +88,13 @@ public class DialTabCompleter implements TabCompleter {
|
||||
if (!availablePortals.containsKey(network)) {
|
||||
availablePortals.put(network, new LinkedList<>());
|
||||
}
|
||||
availablePortals.get(network).add(portal.getName());
|
||||
availablePortals.get(network).add(portal.getName().replace(' ', spaceReplacement));
|
||||
}
|
||||
}
|
||||
}
|
||||
//Add only the network names with portals available to the player
|
||||
availablePortals.keySet().forEach((item) -> availableNetworks.add(item.getName()));
|
||||
availablePortals.keySet().forEach((item) -> availableNetworks.add(item.getName().replace(' ',
|
||||
spaceReplacement)));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.knarcraft.stargatecommand.command;
|
||||
|
||||
import net.TheDgtl.Stargate.network.RegistryAPI;
|
||||
import net.knarcraft.stargatecommand.StargateCommand;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
@@ -34,7 +35,8 @@ public class VisualizerTabCompleter implements TabCompleter {
|
||||
@NotNull String[] args) {
|
||||
if (args.length < 2) {
|
||||
List<String> networkNames = new ArrayList<>();
|
||||
registryAPI.getNetworkMap().values().forEach(item -> networkNames.add(item.getName()));
|
||||
registryAPI.getNetworkMap().values().forEach(item -> networkNames.add(item.getName().replace(' ',
|
||||
StargateCommand.getSpaceReplacementCharacter())));
|
||||
return filterMatching(networkNames, args[0]);
|
||||
} else {
|
||||
return new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user