Uses matcher.find instead of matcher.matches
Also removes some code smells
This commit is contained in:
		@@ -434,12 +434,15 @@ public final class StargateConfig {
 | 
			
		||||
        } else {
 | 
			
		||||
            portalFolder = replacePluginFolderPath(portalFolder);
 | 
			
		||||
        }
 | 
			
		||||
        Stargate.debug("StargateConfig::loadConfig", "Portal folder is " + portalFolder);
 | 
			
		||||
 | 
			
		||||
        gateFolder = (String) configOptions.get(ConfigOption.GATE_FOLDER);
 | 
			
		||||
        if (gateFolder.isEmpty()) {
 | 
			
		||||
            gateFolder = dataFolderPath + "/gates/";
 | 
			
		||||
        } else {
 | 
			
		||||
            gateFolder = replacePluginFolderPath(gateFolder);
 | 
			
		||||
        }
 | 
			
		||||
        Stargate.debug("StargateConfig::loadConfig", "Gate folder is " + gateFolder);
 | 
			
		||||
 | 
			
		||||
        //If users have an outdated config, assume they also need to update their default gates
 | 
			
		||||
        if (isMigrating) {
 | 
			
		||||
@@ -466,7 +469,7 @@ public final class StargateConfig {
 | 
			
		||||
    private String replacePluginFolderPath(@NotNull String input) {
 | 
			
		||||
        Pattern pattern = Pattern.compile("(?i)^plugins[\\\\\\/]Stargate");
 | 
			
		||||
        Matcher matcher = pattern.matcher(input);
 | 
			
		||||
        if (matcher.matches()) {
 | 
			
		||||
        if (matcher.find()) {
 | 
			
		||||
            return dataFolderPath + matcher.replaceAll("");
 | 
			
		||||
        } else {
 | 
			
		||||
            return input;
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ import net.knarcraft.stargate.Stargate;
 | 
			
		||||
import net.knarcraft.stargate.config.material.BukkitMaterialSpecifier;
 | 
			
		||||
import net.knarcraft.stargate.config.material.MaterialSpecifier;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.configuration.InvalidConfigurationException;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
@@ -108,11 +109,11 @@ public final class GateReader {
 | 
			
		||||
     * @param line                 <p>The line to read</p>
 | 
			
		||||
     * @param characterMaterialMap <p>The character to material map to store to</p>
 | 
			
		||||
     * @param config               <p>The config value map to store to</p>
 | 
			
		||||
     * @throws Exception <p>If an invalid material is encountered</p>
 | 
			
		||||
     * @throws InvalidConfigurationException <p>If an invalid material is encountered</p>
 | 
			
		||||
     */
 | 
			
		||||
    private static void readGateConfigValue(@NotNull String line,
 | 
			
		||||
                                            @NotNull Map<Character, List<MaterialSpecifier>> characterMaterialMap,
 | 
			
		||||
                                            @NotNull Map<String, String> config) throws Exception {
 | 
			
		||||
                                            @NotNull Map<String, String> config) throws InvalidConfigurationException {
 | 
			
		||||
        String[] split = line.split("=");
 | 
			
		||||
        String key = split[0].trim();
 | 
			
		||||
        String value = split[1].trim();
 | 
			
		||||
@@ -125,7 +126,7 @@ public final class GateReader {
 | 
			
		||||
            if (!materials.isEmpty()) {
 | 
			
		||||
                characterMaterialMap.put(symbol, materials);
 | 
			
		||||
            } else {
 | 
			
		||||
                throw new Exception("Invalid material in line: " + line);
 | 
			
		||||
                throw new InvalidConfigurationException("Invalid material in line: " + line);
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            //Read a normal config value
 | 
			
		||||
 
 | 
			
		||||
@@ -53,13 +53,31 @@ public final class PermissionHelper {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Check if the player is able to open the portal
 | 
			
		||||
        if (canNotOpen(player, portal, destination)) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Open the portal
 | 
			
		||||
        portal.getPortalOpener().openPortal(player, false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Checks whether something prevents the player from opening the given portal to the given destination
 | 
			
		||||
     *
 | 
			
		||||
     * @param player      <p>The player trying to open the portal</p>
 | 
			
		||||
     * @param portal      <p>The portal to open</p>
 | 
			
		||||
     * @param destination <p>The destination the player is attempting to open</p>
 | 
			
		||||
     * @return <p>True if the player cannot open the portal</p>
 | 
			
		||||
     */
 | 
			
		||||
    private static boolean canNotOpen(Player player, Portal portal, Portal destination) {
 | 
			
		||||
        //Deny access if another player has activated the portal, and it's still in use
 | 
			
		||||
        if (!portal.getOptions().isFixed() && portal.getPortalActivator().isActive() &&
 | 
			
		||||
                portal.getActivePlayer() != player) {
 | 
			
		||||
            if (!portal.getOptions().isSilent()) {
 | 
			
		||||
                Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString(Message.ACCESS_DENIED));
 | 
			
		||||
            }
 | 
			
		||||
            return;
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Check if the player can use the private gate
 | 
			
		||||
@@ -67,7 +85,7 @@ public final class PermissionHelper {
 | 
			
		||||
            if (!portal.getOptions().isSilent()) {
 | 
			
		||||
                Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString(Message.ACCESS_DENIED));
 | 
			
		||||
            }
 | 
			
		||||
            return;
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Destination is currently in use by another player, blocking teleportation
 | 
			
		||||
@@ -75,11 +93,10 @@ public final class PermissionHelper {
 | 
			
		||||
            if (!portal.getOptions().isSilent()) {
 | 
			
		||||
                Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString(Message.DESTINATION_BLOCKED));
 | 
			
		||||
            }
 | 
			
		||||
            return;
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Open the portal
 | 
			
		||||
        portal.getPortalOpener().openPortal(player, false);
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -109,26 +126,27 @@ public final class PermissionHelper {
 | 
			
		||||
    public static boolean cannotAccessPortal(@NotNull Player player, @NotNull Portal entrancePortal,
 | 
			
		||||
                                             @Nullable Portal destination) {
 | 
			
		||||
        boolean deny = false;
 | 
			
		||||
        String route = "PermissionHelper::cannotAccessPortal";
 | 
			
		||||
 | 
			
		||||
        if (entrancePortal.getOptions().isBungee()) {
 | 
			
		||||
            if (!PermissionHelper.canAccessServer(player, entrancePortal.getCleanNetwork())) {
 | 
			
		||||
                //If the portal is a bungee portal, and the player cannot access the server, deny
 | 
			
		||||
                Stargate.debug("cannotAccessPortal", "Cannot access server");
 | 
			
		||||
                Stargate.debug(route, "Cannot access server");
 | 
			
		||||
                deny = true;
 | 
			
		||||
            }
 | 
			
		||||
        } else if (PermissionHelper.cannotAccessNetwork(player, entrancePortal.getCleanNetwork())) {
 | 
			
		||||
            //If the player does not have access to the network, deny
 | 
			
		||||
            Stargate.debug("cannotAccessPortal", "Cannot access network");
 | 
			
		||||
            Stargate.debug(route, "Cannot access network");
 | 
			
		||||
            deny = true;
 | 
			
		||||
        } else {
 | 
			
		||||
            if (destination == null) {
 | 
			
		||||
                //If there is no destination, deny
 | 
			
		||||
                Stargate.debug("cannotAccessPortal", "Portal has no destination");
 | 
			
		||||
                Stargate.debug(route, "Portal has no destination");
 | 
			
		||||
                deny = true;
 | 
			
		||||
            } else if (destination.getWorld() != null &&
 | 
			
		||||
                    PermissionHelper.cannotAccessWorld(player, destination.getWorld().getName())) {
 | 
			
		||||
                //If the player does not have access to the portal's world, deny
 | 
			
		||||
                Stargate.debug("cannotAccessPortal", "Cannot access world");
 | 
			
		||||
                Stargate.debug(route, "Cannot access world");
 | 
			
		||||
                deny = true;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -59,14 +59,14 @@ public final class PortalFileHelper {
 | 
			
		||||
                if (portal.getWorld() == null) {
 | 
			
		||||
                    Stargate.logSevere(String.format("Could not save portal %s because its world is null",
 | 
			
		||||
                            portal.getName()));
 | 
			
		||||
                    continue;
 | 
			
		||||
                } else {
 | 
			
		||||
                    String worldName = portal.getWorld().getName();
 | 
			
		||||
                    if (!worldName.equalsIgnoreCase(world.getName())) {
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
                    //Save the portal
 | 
			
		||||
                    savePortal(bufferedWriter, portal);
 | 
			
		||||
                }
 | 
			
		||||
                String worldName = portal.getWorld().getName();
 | 
			
		||||
                if (!worldName.equalsIgnoreCase(world.getName())) {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                //Save the portal
 | 
			
		||||
                savePortal(bufferedWriter, portal);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            bufferedWriter.close();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user