Alters the RegEx for replacing the plugin folder path
This commit is contained in:
@@ -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("");
|
||||
|
@@ -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() {
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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) {
|
||||
}
|
@@ -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
|
||||
|
Reference in New Issue
Block a user