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
|
//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
|
* 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.Network;
|
||||||
import net.TheDgtl.Stargate.network.RegistryAPI;
|
import net.TheDgtl.Stargate.network.RegistryAPI;
|
||||||
import net.TheDgtl.Stargate.network.portal.RealPortal;
|
import net.TheDgtl.Stargate.network.portal.RealPortal;
|
||||||
|
import net.knarcraft.stargatecommand.StargateCommand;
|
||||||
import net.knarcraft.stargatecommand.manager.OverrideManager;
|
import net.knarcraft.stargatecommand.manager.OverrideManager;
|
||||||
import net.knarcraft.stargatecommand.util.PortalFinderHelper;
|
import net.knarcraft.stargatecommand.util.PortalFinderHelper;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -18,6 +19,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
*/
|
*/
|
||||||
public class CommandDial implements CommandExecutor {
|
public class CommandDial implements CommandExecutor {
|
||||||
|
|
||||||
|
private final char spaceReplacement = StargateCommand.getSpaceReplacementCharacter();
|
||||||
private final StargateAPI stargateAPI;
|
private final StargateAPI stargateAPI;
|
||||||
private final RegistryAPI registryAPI;
|
private final RegistryAPI registryAPI;
|
||||||
|
|
||||||
@@ -49,8 +51,8 @@ public class CommandDial implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PermissionManager permissionManager = stargateAPI.getPermissionManager(player);
|
PermissionManager permissionManager = stargateAPI.getPermissionManager(player);
|
||||||
String networkName = args[0];
|
String networkName = args[0].replace(spaceReplacement, ' ');
|
||||||
String portalName = args[1];
|
String portalName = args[1].replace(spaceReplacement, ' ');
|
||||||
Network network = registryAPI.getNetwork(networkName, false);
|
Network network = registryAPI.getNetwork(networkName, false);
|
||||||
if (network == null) {
|
if (network == null) {
|
||||||
commandSender.sendMessage("Invalid network selected");
|
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.FixedPortal;
|
||||||
import net.TheDgtl.Stargate.network.portal.Portal;
|
import net.TheDgtl.Stargate.network.portal.Portal;
|
||||||
import net.TheDgtl.Stargate.network.portal.PortalFlag;
|
import net.TheDgtl.Stargate.network.portal.PortalFlag;
|
||||||
|
import net.knarcraft.stargatecommand.StargateCommand;
|
||||||
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;
|
||||||
@@ -15,6 +16,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
*/
|
*/
|
||||||
public class CommandVisualizer implements CommandExecutor {
|
public class CommandVisualizer implements CommandExecutor {
|
||||||
|
|
||||||
|
private final char spaceReplacement = StargateCommand.getSpaceReplacementCharacter();
|
||||||
private final RegistryAPI registryAPI;
|
private final RegistryAPI registryAPI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,7 +41,7 @@ public class CommandVisualizer implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Network network = registryAPI.getNetwork(args[0], false);
|
Network network = registryAPI.getNetwork(args[0].replace(spaceReplacement, ' '), false);
|
||||||
if (network == null) {
|
if (network == null) {
|
||||||
commandSender.sendMessage("You must provide a valid network to visualize");
|
commandSender.sendMessage("You must provide a valid network to visualize");
|
||||||
return true;
|
return true;
|
||||||
@@ -49,29 +51,23 @@ public class CommandVisualizer implements CommandExecutor {
|
|||||||
|
|
||||||
stringBuilder.append("All portals in network: ").append(network.getName()).append("\n");
|
stringBuilder.append("All portals in network: ").append(network.getName()).append("\n");
|
||||||
stringBuilder.append("Symbol explanation: ").append("\n");
|
stringBuilder.append("Symbol explanation: ").append("\n");
|
||||||
stringBuilder.append("# = hidden, ¤ = not hidden").append("\n");
|
stringBuilder.append("⇒ = hidden, ⇄ = not hidden").append("\n");
|
||||||
stringBuilder.append("O = always on, - = not always on").append("\n");
|
stringBuilder.append("⬛ = always on, ⬜ = not always on").append("\n");
|
||||||
stringBuilder.append("| = fixed, > = destination choose-able");
|
|
||||||
|
|
||||||
//Print info about all portals in the network
|
//Print info about all portals in the network
|
||||||
for (Portal portal : network.getAllPortals()) {
|
for (Portal portal : network.getAllPortals()) {
|
||||||
stringBuilder.append("\n");
|
stringBuilder.append("\n");
|
||||||
if (portal.hasFlag(PortalFlag.HIDDEN)) {
|
if (portal.hasFlag(PortalFlag.HIDDEN)) {
|
||||||
stringBuilder.append('#');
|
stringBuilder.append('⇒');
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append('¤');
|
stringBuilder.append('⇄');
|
||||||
}
|
}
|
||||||
if (portal.hasFlag(PortalFlag.ALWAYS_ON)) {
|
if (portal.hasFlag(PortalFlag.ALWAYS_ON)) {
|
||||||
stringBuilder.append('O');
|
stringBuilder.append('⬛');
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append('-');
|
stringBuilder.append('⬜');
|
||||||
}
|
}
|
||||||
//TODO: Look for the fixed flag instead of FixedPortal once it's fixed
|
//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());
|
stringBuilder.append(" ").append(portal.getName());
|
||||||
if (portal instanceof FixedPortal) {
|
if (portal instanceof FixedPortal) {
|
||||||
stringBuilder.append(" -> ");
|
stringBuilder.append(" -> ");
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import net.TheDgtl.Stargate.network.Network;
|
|||||||
import net.TheDgtl.Stargate.network.RegistryAPI;
|
import net.TheDgtl.Stargate.network.RegistryAPI;
|
||||||
import net.TheDgtl.Stargate.network.portal.Portal;
|
import net.TheDgtl.Stargate.network.portal.Portal;
|
||||||
import net.TheDgtl.Stargate.network.portal.RealPortal;
|
import net.TheDgtl.Stargate.network.portal.RealPortal;
|
||||||
|
import net.knarcraft.stargatecommand.StargateCommand;
|
||||||
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;
|
||||||
@@ -27,6 +28,7 @@ import static net.knarcraft.stargatecommand.util.TabCompleterHelper.filterMatchi
|
|||||||
*/
|
*/
|
||||||
public class DialTabCompleter implements TabCompleter {
|
public class DialTabCompleter implements TabCompleter {
|
||||||
|
|
||||||
|
private final char spaceReplacement = StargateCommand.getSpaceReplacementCharacter();
|
||||||
private final StargateAPI stargateAPI;
|
private final StargateAPI stargateAPI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,14 +58,14 @@ public class DialTabCompleter implements TabCompleter {
|
|||||||
populateNetworksAndPortals(permissionManager, availableNetworks, availablePortals);
|
populateNetworksAndPortals(permissionManager, availableNetworks, availablePortals);
|
||||||
|
|
||||||
if (args.length > 1) {
|
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)) {
|
if (network != null && availablePortals.containsKey(network)) {
|
||||||
return filterMatching(availablePortals.get(network), args[1]);
|
return filterMatching(availablePortals.get(network), args[1].replace(spaceReplacement, ' '));
|
||||||
} else {
|
} else {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
} else {
|
} 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)) {
|
if (!availablePortals.containsKey(network)) {
|
||||||
availablePortals.put(network, new LinkedList<>());
|
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
|
//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;
|
package net.knarcraft.stargatecommand.command;
|
||||||
|
|
||||||
import net.TheDgtl.Stargate.network.RegistryAPI;
|
import net.TheDgtl.Stargate.network.RegistryAPI;
|
||||||
|
import net.knarcraft.stargatecommand.StargateCommand;
|
||||||
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;
|
||||||
@@ -34,7 +35,8 @@ public class VisualizerTabCompleter implements TabCompleter {
|
|||||||
@NotNull String[] args) {
|
@NotNull String[] args) {
|
||||||
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()));
|
registryAPI.getNetworkMap().values().forEach(item -> networkNames.add(item.getName().replace(' ',
|
||||||
|
StargateCommand.getSpaceReplacementCharacter())));
|
||||||
return filterMatching(networkNames, args[0]);
|
return filterMatching(networkNames, args[0]);
|
||||||
} else {
|
} else {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
|
|||||||
Reference in New Issue
Block a user