From 9abf6db27a2eacd4a6970edab2ac9cd5538af7d7 Mon Sep 17 00:00:00 2001
From: EpicKnarvik97
Date: Tue, 20 Feb 2024 19:29:27 +0100
Subject: [PATCH] Alters the RegEx for replacing the plugin folder path
---
.../stargate/config/StargateConfig.java | 2 +-
.../container/RelativeBlockVector.java | 30 -------------------
.../listener/PlayerEventListener.java | 5 ++--
.../listener/VehicleEventListener.java | 30 ++++++++++++++-----
.../net/knarcraft/stargate/portal/Portal.java | 17 +++++------
.../stargate/portal/PortalActivator.java | 4 +--
.../stargate/portal/PortalCreator.java | 5 ++--
.../portal/property/PortalStrings.java | 13 ++++++++
.../stargate/utility/PortalFileHelper.java | 4 ++-
9 files changed, 55 insertions(+), 55 deletions(-)
create mode 100644 src/main/java/net/knarcraft/stargate/portal/property/PortalStrings.java
diff --git a/src/main/java/net/knarcraft/stargate/config/StargateConfig.java b/src/main/java/net/knarcraft/stargate/config/StargateConfig.java
index 189b2c7..23cb4b7 100644
--- a/src/main/java/net/knarcraft/stargate/config/StargateConfig.java
+++ b/src/main/java/net/knarcraft/stargate/config/StargateConfig.java
@@ -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("");
diff --git a/src/main/java/net/knarcraft/stargate/container/RelativeBlockVector.java b/src/main/java/net/knarcraft/stargate/container/RelativeBlockVector.java
index e06d08e..5f904a5 100644
--- a/src/main/java/net/knarcraft/stargate/container/RelativeBlockVector.java
+++ b/src/main/java/net/knarcraft/stargate/container/RelativeBlockVector.java
@@ -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 The distance to the right relative to the origin
- */
- @Override
- public int right() {
- return right;
- }
-
- /**
- * Gets the distance downward relative to the origin
- *
- * @return The distance downward relative to the origin
- */
- @Override
- public int down() {
- return down;
- }
-
- /**
- * Gets the distance outward relative to the origin
- *
- * @return The distance outward relative to the origin
- */
- @Override
- public int out() {
- return out;
- }
-
@Override
@NotNull
public String toString() {
diff --git a/src/main/java/net/knarcraft/stargate/listener/PlayerEventListener.java b/src/main/java/net/knarcraft/stargate/listener/PlayerEventListener.java
index 7f8b418..04323e3 100644
--- a/src/main/java/net/knarcraft/stargate/listener/PlayerEventListener.java
+++ b/src/main/java/net/knarcraft/stargate/listener/PlayerEventListener.java
@@ -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.
*
* @param player The player performing the right-click
- * @param block The block to check
* @return True if the click is a bug and should be cancelled
*/
- 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);
diff --git a/src/main/java/net/knarcraft/stargate/listener/VehicleEventListener.java b/src/main/java/net/knarcraft/stargate/listener/VehicleEventListener.java
index b35b978..5de125a 100644
--- a/src/main/java/net/knarcraft/stargate/listener/VehicleEventListener.java
+++ b/src/main/java/net/knarcraft/stargate/listener/VehicleEventListener.java
@@ -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 The players to be teleported
+ * @param vehicle The vehicle that triggered the teleportation
+ * @param entrancePortal The portal the player(s) and vehicle entered from
+ * @param destinationPortal The portal the player(s) and vehicle are teleporting to
+ */
+ private static void teleportPlayerAndVehicle(@NotNull List 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);
}
/**
diff --git a/src/main/java/net/knarcraft/stargate/portal/Portal.java b/src/main/java/net/knarcraft/stargate/portal/Portal.java
index 304136e..660106a 100644
--- a/src/main/java/net/knarcraft/stargate/portal/Portal.java
+++ b/src/main/java/net/knarcraft/stargate/portal/Portal.java
@@ -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 Object containing locations of all relevant blocks
* @param button The location of the portal's open button
- * @param destination The destination defined on the sign's destination line. "" for non-fixed gates
- * @param name The name of the portal defined on the sign's first line
- * @param network The network the portal belongs to, defined on the sign's third
+ * @param portalStrings The portal's string values, such as name, network and destination
* @param gate The gate type to use for this portal
* @param portalOwner The portal's owner
* @param options A map containing all possible portal options, with true for the ones enabled
*/
- 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 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);
diff --git a/src/main/java/net/knarcraft/stargate/portal/PortalActivator.java b/src/main/java/net/knarcraft/stargate/portal/PortalActivator.java
index 0833f87..4c3e253 100644
--- a/src/main/java/net/knarcraft/stargate/portal/PortalActivator.java
+++ b/src/main/java/net/knarcraft/stargate/portal/PortalActivator.java
@@ -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);
diff --git a/src/main/java/net/knarcraft/stargate/portal/PortalCreator.java b/src/main/java/net/knarcraft/stargate/portal/PortalCreator.java
index c09d17c..942931f 100644
--- a/src/main/java/net/knarcraft/stargate/portal/PortalCreator.java
+++ b/src/main/java/net/knarcraft/stargate/portal/PortalCreator.java
@@ -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);
}
diff --git a/src/main/java/net/knarcraft/stargate/portal/property/PortalStrings.java b/src/main/java/net/knarcraft/stargate/portal/property/PortalStrings.java
new file mode 100644
index 0000000..839a6e9
--- /dev/null
+++ b/src/main/java/net/knarcraft/stargate/portal/property/PortalStrings.java
@@ -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 The name of the portal
+ * @param network The name of the network the portal belongs to
+ * @param destination The name of the portal's destination
+ */
+public record PortalStrings(@NotNull String name, @NotNull String network, @NotNull String destination) {
+}
diff --git a/src/main/java/net/knarcraft/stargate/utility/PortalFileHelper.java b/src/main/java/net/knarcraft/stargate/utility/PortalFileHelper.java
index 98ff915..bfc8d8f 100644
--- a/src/main/java/net/knarcraft/stargate/utility/PortalFileHelper.java
+++ b/src/main/java/net/knarcraft/stargate/utility/PortalFileHelper.java
@@ -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