Alters the RegEx for replacing the plugin folder path

This commit is contained in:
2024-02-20 19:29:27 +01:00
parent ee9bc21099
commit 9abf6db27a
9 changed files with 55 additions and 55 deletions

View File

@@ -464,7 +464,7 @@ public final class StargateConfig {
*/
@NotNull
private String replacePluginFolderPath(@NotNull String input) {
Pattern pattern = Pattern.compile("(?i)^plugins/Stargate");
Pattern pattern = Pattern.compile("(?i)^plugins[\\\\\\/]Stargate");
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
return dataFolderPath + matcher.replaceAll("");

View File

@@ -64,36 +64,6 @@ public record RelativeBlockVector(int right, int down, int out) {
return new RelativeBlockVector(-this.right, -this.down, -this.out);
}
/**
* Gets the distance to the right relative to the origin
*
* @return <p>The distance to the right relative to the origin</p>
*/
@Override
public int right() {
return right;
}
/**
* Gets the distance downward relative to the origin
*
* @return <p>The distance downward relative to the origin</p>
*/
@Override
public int down() {
return down;
}
/**
* Gets the distance outward relative to the origin
*
* @return <p>The distance outward relative to the origin</p>
*/
@Override
public int out() {
return out;
}
@Override
@NotNull
public String toString() {

View File

@@ -353,7 +353,7 @@ public class PlayerEventListener implements Listener {
}
//Prevent a double click caused by a Spigot bug
if (clickIsBug(event.getPlayer(), block)) {
if (clickIsBug(event.getPlayer())) {
return;
}
@@ -425,10 +425,9 @@ public class PlayerEventListener implements Listener {
* clicking once the bug is fixed.</p>
*
* @param player <p>The player performing the right-click</p>
* @param block <p>The block to check</p>
* @return <p>True if the click is a bug and should be cancelled</p>
*/
private boolean clickIsBug(@NotNull Player player, @NotNull Block block) {
private boolean clickIsBug(@NotNull Player player) {
Long previousEventTime = previousEventTimes.get(player);
if (previousEventTime != null && previousEventTime + 50 > System.currentTimeMillis()) {
previousEventTimes.put(player, null);

View File

@@ -116,16 +116,32 @@ public class VehicleEventListener implements Listener {
return;
}
// Perform the teleportation
teleportPlayerAndVehicle(players, vehicle, entrancePortal, destinationPortal);
}
/**
* Performs the teleportation of one or more players in a vehicle
*
* @param players <p>The players to be teleported</p>
* @param vehicle <p>The vehicle that triggered the teleportation</p>
* @param entrancePortal <p>The portal the player(s) and vehicle entered from</p>
* @param destinationPortal <p>The portal the player(s) and vehicle are teleporting to</p>
*/
private static void teleportPlayerAndVehicle(@NotNull List<Player> players, @NotNull Vehicle vehicle,
@NotNull Portal entrancePortal, @NotNull Portal destinationPortal) {
//Teleport the vehicle and inform the user if the vehicle was teleported
boolean teleported = new VehicleTeleporter(destinationPortal, vehicle).teleportEntity(entrancePortal);
if (teleported) {
if (!entrancePortal.getOptions().isSilent()) {
for (Player player : players) {
Stargate.getMessageSender().sendSuccessMessage(player, Stargate.getString(Message.TELEPORTED));
}
}
entrancePortal.getPortalOpener().closePortal(false);
if (!teleported) {
return;
}
if (!entrancePortal.getOptions().isSilent()) {
for (Player player : players) {
Stargate.getMessageSender().sendSuccessMessage(player, Stargate.getString(Message.TELEPORTED));
}
}
entrancePortal.getPortalOpener().closePortal(false);
}
/**

View File

@@ -6,6 +6,7 @@ import net.knarcraft.stargate.portal.property.PortalLocation;
import net.knarcraft.stargate.portal.property.PortalOption;
import net.knarcraft.stargate.portal.property.PortalOptions;
import net.knarcraft.stargate.portal.property.PortalOwner;
import net.knarcraft.stargate.portal.property.PortalStrings;
import net.knarcraft.stargate.portal.property.PortalStructure;
import net.knarcraft.stargate.portal.property.gate.Gate;
import net.md_5.bungee.api.ChatColor;
@@ -41,23 +42,21 @@ public class Portal {
*
* @param portalLocation <p>Object containing locations of all relevant blocks</p>
* @param button <p>The location of the portal's open button</p>
* @param destination <p>The destination defined on the sign's destination line. "" for non-fixed gates</p>
* @param name <p>The name of the portal defined on the sign's first line</p>
* @param network <p>The network the portal belongs to, defined on the sign's third</p>
* @param portalStrings <p>The portal's string values, such as name, network and destination</p>
* @param gate <p>The gate type to use for this portal</p>
* @param portalOwner <p>The portal's owner</p>
* @param options <p>A map containing all possible portal options, with true for the ones enabled</p>
*/
public Portal(@NotNull PortalLocation portalLocation, @Nullable BlockLocation button, @NotNull String destination,
@NotNull String name, @NotNull String network, @NotNull Gate gate, @NotNull PortalOwner portalOwner,
public Portal(@NotNull PortalLocation portalLocation, @Nullable BlockLocation button,
@NotNull PortalStrings portalStrings, @NotNull Gate gate, @NotNull PortalOwner portalOwner,
@NotNull Map<PortalOption, Boolean> options) {
this.location = portalLocation;
this.network = network;
this.name = name;
this.network = portalStrings.network();
this.name = portalStrings.name();
this.portalOwner = portalOwner;
this.options = new PortalOptions(options, destination.length() > 0);
this.options = new PortalOptions(options, portalStrings.destination().length() > 0);
this.signDrawer = new PortalSignDrawer(this);
this.portalOpener = new PortalOpener(this, destination);
this.portalOpener = new PortalOpener(this, portalStrings.destination());
this.structure = new PortalStructure(this, gate, button);
this.portalActivator = portalOpener.getPortalActivator();
this.cleanName = cleanString(name);

View File

@@ -78,8 +78,8 @@ public class PortalActivator {
return null;
}
//Get one random destination
String destination = ListHelper.getRandom(destinations);
return PortalHandler.getByName(Portal.cleanString(destination), portalNetwork);
String randomDestination = ListHelper.getRandom(destinations);
return PortalHandler.getByName(Portal.cleanString(randomDestination), portalNetwork);
} else {
//Just return the normal fixed destination
return PortalHandler.getByName(Portal.cleanString(destination), portalNetwork);

View File

@@ -9,6 +9,7 @@ import net.knarcraft.stargate.portal.property.PortalLocation;
import net.knarcraft.stargate.portal.property.PortalOption;
import net.knarcraft.stargate.portal.property.PortalOptions;
import net.knarcraft.stargate.portal.property.PortalOwner;
import net.knarcraft.stargate.portal.property.PortalStrings;
import net.knarcraft.stargate.portal.property.gate.Gate;
import net.knarcraft.stargate.portal.property.gate.GateHandler;
import net.knarcraft.stargate.utility.DirectionHelper;
@@ -167,8 +168,8 @@ public class PortalCreator {
}
PortalOwner owner = new PortalOwner(player);
this.portal = new Portal(portalLocation, null, destinationName, portalName, network, gate, owner,
portalOptions);
PortalStrings portalStrings = new PortalStrings(portalName, network, destinationName);
this.portal = new Portal(portalLocation, null, portalStrings, gate, owner, portalOptions);
return validatePortal(denyMessage, event.getLines(), deny);
}

View File

@@ -0,0 +1,13 @@
package net.knarcraft.stargate.portal.property;
import org.jetbrains.annotations.NotNull;
/**
* A record of a portal's string values
*
* @param name <p>The name of the portal</p>
* @param network <p>The name of the network the portal belongs to</p>
* @param destination <p>The name of the portal's destination</p>
*/
public record PortalStrings(@NotNull String name, @NotNull String network, @NotNull String destination) {
}

View File

@@ -10,6 +10,7 @@ import net.knarcraft.stargate.portal.PortalRegistry;
import net.knarcraft.stargate.portal.property.PortalLocation;
import net.knarcraft.stargate.portal.property.PortalOptions;
import net.knarcraft.stargate.portal.property.PortalOwner;
import net.knarcraft.stargate.portal.property.PortalStrings;
import net.knarcraft.stargate.portal.property.gate.Gate;
import net.knarcraft.stargate.portal.property.gate.GateHandler;
import org.bukkit.Bukkit;
@@ -286,7 +287,8 @@ public final class PortalFileHelper {
PortalOwner owner = new PortalOwner(ownerString);
//Create the new portal
Portal portal = new Portal(portalLocation, button, destination, name, network, gate, owner,
PortalStrings portalStrings = new PortalStrings(name, network, destination);
Portal portal = new Portal(portalLocation, button, portalStrings, gate, owner,
PortalHandler.getPortalOptions(portalData));
//Register the portal, and close it in case it wasn't properly closed when the server stopped