From b5e256562640f7b37be054f7fcf6146409699e83 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Sun, 9 Oct 2022 10:44:30 +0200 Subject: [PATCH 1/9] Fixes use of depreciated setWoodType and getWoodType --- .../knarcraft/stargate/portal/teleporter/VehicleTeleporter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/knarcraft/stargate/portal/teleporter/VehicleTeleporter.java b/src/main/java/net/knarcraft/stargate/portal/teleporter/VehicleTeleporter.java index 20d4353..4f3e42c 100644 --- a/src/main/java/net/knarcraft/stargate/portal/teleporter/VehicleTeleporter.java +++ b/src/main/java/net/knarcraft/stargate/portal/teleporter/VehicleTeleporter.java @@ -169,7 +169,7 @@ public class VehicleTeleporter extends EntityTeleporter { //Spawn a new vehicle Vehicle newVehicle = vehicleWorld.spawn(exit, teleportingVehicle.getClass()); if (teleportingVehicle instanceof Boat boat) { - ((Boat) newVehicle).setWoodType(boat.getWoodType()); + ((Boat) newVehicle).setBoatType(boat.getBoatType()); } //Remove the old vehicle if (teleportingVehicle.eject()) { From c09063c49e26374533fab8656f2ef33861c1e523 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Sun, 9 Oct 2022 10:46:49 +0200 Subject: [PATCH 2/9] Updates README and version to 0.9.4.2 --- README.md | 17 +++++++++++++++++ pom.xml | 4 ++-- src/main/resources/plugin.yml | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 05785ef..5d4f412 100644 --- a/README.md +++ b/README.md @@ -405,6 +405,23 @@ portalInfoServer=Server: %server% # Changes +#### \[Version 0.9.4.2] EpicKnarvik97 fork + +- Avoids a NullPointerException if Dynmap is present, but isn't properly loaded. +- Avoids some potential NullPointerExceptions related to Dynmap integration +- Fixes end portals hijacking BungeeCord teleportation +- Fixes a problem where a player might not be properly teleported from an end portal Stargate in the end to the + over-world. + +#### \[Version 0.9.4.1] EpicKnarvik97 fork + +- Reverts to Spigot API 1.18 +- Adds Dynmap integration + +#### \[Version 0.9.4.0] EpicKnarvik97 fork + +- Updates Stargate to 1.19 + #### \[Version 0.9.3.7] EpicKnarvik97 fork - Adds the Japanese language file provided by spigot user furplag diff --git a/pom.xml b/pom.xml index 313190c..fdb33cf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ net.knarcraft Stargate - 0.9.4.1 + 0.9.4.2 @@ -38,7 +38,7 @@ org.spigotmc spigot-api - 1.19-R0.1-SNAPSHOT + 1.19.2-R0.1-SNAPSHOT net.milkbowl.vault diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c717434..ebd6bf9 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Stargate main: net.knarcraft.stargate.Stargate -version: 0.9.4.1 +version: 0.9.4.2 description: Stargate mod for Bukkit Revived author: EpicKnarvik97 authors: [ Drakia, PseudoKnight, EpicKnarvik97 ] From 2b23e6fc567520d648bfb66e61c70b19fcb02975 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Mon, 7 Nov 2022 09:57:32 +0100 Subject: [PATCH 3/9] Uses KnarLib where possible --- pom.xml | 48 ++++++- .../java/net/knarcraft/stargate/Stargate.java | 5 +- .../stargate/command/ConfigTabCompleter.java | 33 ++--- .../stargate/config/LanguageLoader.java | 8 +- .../stargate/config/StargateConfig.java | 6 +- .../stargate/config/StargateGateConfig.java | 2 +- .../stargate/container/SignData.java | 2 +- .../listener/PlayerEventListener.java | 2 +- .../stargate/portal/PortalSignDrawer.java | 14 +- .../stargate/utility/ColorHelper.java | 54 -------- .../stargate/utility/FileHelper.java | 127 ------------------ .../stargate/utility/UpdateChecker.java | 87 ------------ 12 files changed, 79 insertions(+), 309 deletions(-) delete mode 100644 src/main/java/net/knarcraft/stargate/utility/ColorHelper.java delete mode 100644 src/main/java/net/knarcraft/stargate/utility/FileHelper.java delete mode 100644 src/main/java/net/knarcraft/stargate/utility/UpdateChecker.java diff --git a/pom.xml b/pom.xml index fdb33cf..3f187d2 100644 --- a/pom.xml +++ b/pom.xml @@ -15,8 +15,7 @@ UTF-8 - 17 - 17 + 16 @@ -39,11 +38,13 @@ org.spigotmc spigot-api 1.19.2-R0.1-SNAPSHOT + provided net.milkbowl.vault VaultAPI 1.7 + provided org.junit.jupiter @@ -61,7 +62,7 @@ org.jetbrains annotations 22.0.0 - compile + provided junit @@ -73,6 +74,13 @@ us.dynmap dynmap-api 3.1-beta-2 + provided + + + net.knarcraft + knarlib + 1.0-SNAPSHOT + compile @@ -84,10 +92,40 @@ maven-compiler-plugin 3.6.1 - 17 - 17 + ${java.version} + ${java.version} + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + false + + + net.knarcraft:knarlib + + net/knarcraft/knarlib/** + + + + + *.MF + *.yml + + + + + + + \ No newline at end of file diff --git a/src/main/java/net/knarcraft/stargate/Stargate.java b/src/main/java/net/knarcraft/stargate/Stargate.java index b9ed27d..2daf831 100644 --- a/src/main/java/net/knarcraft/stargate/Stargate.java +++ b/src/main/java/net/knarcraft/stargate/Stargate.java @@ -1,5 +1,6 @@ package net.knarcraft.stargate; +import net.knarcraft.knarlib.util.UpdateChecker; import net.knarcraft.stargate.command.CommandStarGate; import net.knarcraft.stargate.command.StarGateTabCompleter; import net.knarcraft.stargate.config.EconomyConfig; @@ -22,7 +23,6 @@ import net.knarcraft.stargate.portal.PortalRegistry; import net.knarcraft.stargate.thread.BlockChangeThread; import net.knarcraft.stargate.thread.ChunkUnloadThread; import net.knarcraft.stargate.thread.StarGateThread; -import net.knarcraft.stargate.utility.UpdateChecker; import org.bukkit.Server; import org.bukkit.command.PluginCommand; import org.bukkit.configuration.file.FileConfiguration; @@ -383,7 +383,8 @@ public class Stargate extends JavaPlugin { this.registerCommands(); //Check for any available updates - UpdateChecker.checkForUpdate(); + UpdateChecker.checkForUpdate(this, "https://api.spigotmc.org/legacy/update.php?resource=97784", + Stargate::getPluginVersion, Stargate::setUpdateAvailable); } /** diff --git a/src/main/java/net/knarcraft/stargate/command/ConfigTabCompleter.java b/src/main/java/net/knarcraft/stargate/command/ConfigTabCompleter.java index cb5447d..ff09aa9 100644 --- a/src/main/java/net/knarcraft/stargate/command/ConfigTabCompleter.java +++ b/src/main/java/net/knarcraft/stargate/command/ConfigTabCompleter.java @@ -14,6 +14,8 @@ import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; +import static net.knarcraft.knarlib.util.TabCompletionHelper.filterMatchingStartsWith; + /** * This is the completer for stargates config sub-command (/sg config) */ @@ -48,27 +50,10 @@ public class ConfigTabCompleter implements TabCompleter { for (ConfigOption option : ConfigOption.values()) { configOptionNames.add(option.getName()); } - return filterMatching(configOptionNames, args[0]); + return filterMatchingStartsWith(configOptionNames, args[0]); } } - /** - * Find completable strings which match the text typed by the command's sender - * - * @param values

The values to filter

- * @param typedText

The text the player has started typing

- * @return

The given string values which start with the player's typed text

- */ - private List filterMatching(List values, String typedText) { - List configValues = new ArrayList<>(); - for (String value : values) { - if (value.toLowerCase().startsWith(typedText.toLowerCase())) { - configValues.add(value); - } - } - return configValues; - } - /** * Get possible values for the selected option * @@ -80,7 +65,7 @@ public class ConfigTabCompleter implements TabCompleter { switch (selectedOption) { case LANGUAGE: //Return available languages - return filterMatching(languages, typedText); + return filterMatchingStartsWith(languages, typedText); case GATE_FOLDER: case PORTAL_FOLDER: case DEFAULT_GATE_NETWORK: @@ -94,12 +79,12 @@ public class ConfigTabCompleter implements TabCompleter { case HIGHLIGHT_SIGN_COLOR: case FREE_GATES_COLOR: //Return all colors - return filterMatching(chatColors, typedText); + return filterMatchingStartsWith(chatColors, typedText); } //If the config value is a boolean, show the two boolean values if (selectedOption.getDataType() == OptionDataType.BOOLEAN) { - return filterMatching(booleans, typedText); + return filterMatchingStartsWith(booleans, typedText); } //If the config value is an integer, display some valid numbers @@ -145,11 +130,11 @@ public class ConfigTabCompleter implements TabCompleter { */ private List getPerSignColorCompletion(String[] args) { if (args.length < 3) { - return filterMatching(signTypes, args[1]); + return filterMatchingStartsWith(signTypes, args[1]); } else if (args.length < 4) { - return filterMatching(extendedColors, args[2]); + return filterMatchingStartsWith(extendedColors, args[2]); } else if (args.length < 5) { - return filterMatching(extendedColors, args[3]); + return filterMatchingStartsWith(extendedColors, args[3]); } return new ArrayList<>(); } diff --git a/src/main/java/net/knarcraft/stargate/config/LanguageLoader.java b/src/main/java/net/knarcraft/stargate/config/LanguageLoader.java index f5ca821..0383794 100644 --- a/src/main/java/net/knarcraft/stargate/config/LanguageLoader.java +++ b/src/main/java/net/knarcraft/stargate/config/LanguageLoader.java @@ -1,7 +1,8 @@ package net.knarcraft.stargate.config; +import net.knarcraft.knarlib.property.ColorConversion; +import net.knarcraft.knarlib.util.FileHelper; import net.knarcraft.stargate.Stargate; -import net.knarcraft.stargate.utility.FileHelper; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -136,7 +137,8 @@ public final class LanguageLoader { String> currentLanguageValues) throws IOException { //Get language values BufferedReader bufferedReader = FileHelper.getBufferedReaderFromInputStream(inputStream); - Map internalLanguageValues = FileHelper.readKeyValuePairs(bufferedReader); + Map internalLanguageValues = FileHelper.readKeyValuePairs(bufferedReader, "=", + ColorConversion.NORMAL); //If currentLanguageValues is null; the chosen language has not been used before if (currentLanguageValues == null) { @@ -221,7 +223,7 @@ public final class LanguageLoader { } else { bufferedReader = FileHelper.getBufferedReaderFromInputStream(inputStream); } - strings = FileHelper.readKeyValuePairs(bufferedReader); + strings = FileHelper.readKeyValuePairs(bufferedReader, "=", ColorConversion.NORMAL); } catch (Exception e) { if (Stargate.getStargateConfig().isDebuggingEnabled()) { Stargate.getConsoleLogger().info("[Stargate] Unable to load language " + lang); diff --git a/src/main/java/net/knarcraft/stargate/config/StargateConfig.java b/src/main/java/net/knarcraft/stargate/config/StargateConfig.java index b718d8b..f03b852 100644 --- a/src/main/java/net/knarcraft/stargate/config/StargateConfig.java +++ b/src/main/java/net/knarcraft/stargate/config/StargateConfig.java @@ -1,5 +1,7 @@ package net.knarcraft.stargate.config; +import net.knarcraft.knarlib.property.ColorConversion; +import net.knarcraft.knarlib.util.FileHelper; import net.knarcraft.stargate.Stargate; import net.knarcraft.stargate.container.BlockChangeRequest; import net.knarcraft.stargate.listener.BungeeCordListener; @@ -8,7 +10,6 @@ import net.knarcraft.stargate.portal.PortalHandler; import net.knarcraft.stargate.portal.PortalRegistry; import net.knarcraft.stargate.portal.property.gate.GateHandler; import net.knarcraft.stargate.thread.BlockChangeThread; -import net.knarcraft.stargate.utility.FileHelper; import net.knarcraft.stargate.utility.PortalFileHelper; import org.bukkit.Bukkit; import org.bukkit.World; @@ -448,7 +449,8 @@ public final class StargateConfig { Map migrationFields; try { migrationFields = FileHelper.readKeyValuePairs(FileHelper.getBufferedReaderFromInputStream( - FileHelper.getInputStreamForInternalFile("/config-migrations.txt"))); + FileHelper.getInputStreamForInternalFile("/config-migrations.txt")), "=", + ColorConversion.NORMAL); } catch (IOException e) { Stargate.debug("Stargate::migrateConfig", "Unable to load config migration file"); e.printStackTrace(); diff --git a/src/main/java/net/knarcraft/stargate/config/StargateGateConfig.java b/src/main/java/net/knarcraft/stargate/config/StargateGateConfig.java index 053d4b6..f1dc7ca 100644 --- a/src/main/java/net/knarcraft/stargate/config/StargateGateConfig.java +++ b/src/main/java/net/knarcraft/stargate/config/StargateGateConfig.java @@ -1,8 +1,8 @@ package net.knarcraft.stargate.config; +import net.knarcraft.knarlib.util.ColorHelper; import net.knarcraft.stargate.Stargate; import net.knarcraft.stargate.portal.PortalSignDrawer; -import net.knarcraft.stargate.utility.ColorHelper; import net.md_5.bungee.api.ChatColor; import org.bukkit.Color; import org.bukkit.Material; diff --git a/src/main/java/net/knarcraft/stargate/container/SignData.java b/src/main/java/net/knarcraft/stargate/container/SignData.java index 38b3076..1b4bd31 100644 --- a/src/main/java/net/knarcraft/stargate/container/SignData.java +++ b/src/main/java/net/knarcraft/stargate/container/SignData.java @@ -1,6 +1,6 @@ package net.knarcraft.stargate.container; -import net.knarcraft.stargate.utility.ColorHelper; +import net.knarcraft.knarlib.util.ColorHelper; import net.md_5.bungee.api.ChatColor; import org.bukkit.DyeColor; import org.bukkit.block.Sign; diff --git a/src/main/java/net/knarcraft/stargate/listener/PlayerEventListener.java b/src/main/java/net/knarcraft/stargate/listener/PlayerEventListener.java index 82438a8..6fd69b0 100644 --- a/src/main/java/net/knarcraft/stargate/listener/PlayerEventListener.java +++ b/src/main/java/net/knarcraft/stargate/listener/PlayerEventListener.java @@ -1,5 +1,6 @@ package net.knarcraft.stargate.listener; +import net.knarcraft.knarlib.util.UpdateChecker; import net.knarcraft.stargate.Stargate; import net.knarcraft.stargate.config.MessageSender; import net.knarcraft.stargate.container.BlockLocation; @@ -13,7 +14,6 @@ import net.knarcraft.stargate.utility.MaterialHelper; import net.knarcraft.stargate.utility.PermissionHelper; import net.knarcraft.stargate.utility.TeleportHelper; import net.knarcraft.stargate.utility.UUIDMigrationHelper; -import net.knarcraft.stargate.utility.UpdateChecker; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.GameMode; diff --git a/src/main/java/net/knarcraft/stargate/portal/PortalSignDrawer.java b/src/main/java/net/knarcraft/stargate/portal/PortalSignDrawer.java index 2bad4c4..3dabc9e 100644 --- a/src/main/java/net/knarcraft/stargate/portal/PortalSignDrawer.java +++ b/src/main/java/net/knarcraft/stargate/portal/PortalSignDrawer.java @@ -1,5 +1,7 @@ package net.knarcraft.stargate.portal; +import net.knarcraft.knarlib.property.ColorConversion; +import net.knarcraft.knarlib.util.ColorHelper; import net.knarcraft.stargate.Stargate; import net.knarcraft.stargate.container.SignData; import net.knarcraft.stargate.portal.property.PortalLocation; @@ -12,8 +14,6 @@ import org.bukkit.block.Sign; import java.util.Map; -import static net.knarcraft.stargate.utility.ColorHelper.translateAllColorCodes; - /** * The portal sign drawer draws the sing of a given portal */ @@ -393,4 +393,14 @@ public class PortalSignDrawer { } } + /** + * Translates all normal and RGB color codes in the given input + * + * @param input

The input to translate color codes for

+ * @return

The input with color codes converted translated from & to ยง

+ */ + private String translateAllColorCodes(String input) { + return ColorHelper.translateColorCodes(input, ColorConversion.RGB); + } + } diff --git a/src/main/java/net/knarcraft/stargate/utility/ColorHelper.java b/src/main/java/net/knarcraft/stargate/utility/ColorHelper.java deleted file mode 100644 index 0886b94..0000000 --- a/src/main/java/net/knarcraft/stargate/utility/ColorHelper.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.knarcraft.stargate.utility; - -import net.md_5.bungee.api.ChatColor; -import org.bukkit.Color; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * A helper class for dealing with colors - */ -public final class ColorHelper { - - private ColorHelper() { - - } - - /** - * Inverts the given color - * - * @param color

The color to invert

- * @return

The inverted color

- */ - public static Color invert(Color color) { - return color.setRed(255 - color.getRed()).setGreen(255 - color.getGreen()).setBlue(255 - color.getBlue()); - } - - /** - * Gets the chat color corresponding to the given color - * - * @param color

The color to convert into a chat color

- * @return

The resulting chat color

- */ - public static ChatColor fromColor(Color color) { - return ChatColor.of(String.format("#%02X%02X%02X", color.getRed(), color.getGreen(), color.getBlue())); - } - - /** - * Translates all found color codes to formatting in a string - * - * @param message

The string to search for color codes

- * @return

The message with color codes translated

- */ - public static String translateAllColorCodes(String message) { - message = ChatColor.translateAlternateColorCodes('&', message); - Pattern pattern = Pattern.compile("(#[a-fA-F0-9]{6})"); - Matcher matcher = pattern.matcher(message); - while (matcher.find()) { - message = message.replace(matcher.group(), "" + ChatColor.of(matcher.group())); - } - return message; - } - -} diff --git a/src/main/java/net/knarcraft/stargate/utility/FileHelper.java b/src/main/java/net/knarcraft/stargate/utility/FileHelper.java deleted file mode 100644 index b4cdac5..0000000 --- a/src/main/java/net/knarcraft/stargate/utility/FileHelper.java +++ /dev/null @@ -1,127 +0,0 @@ -package net.knarcraft.stargate.utility; - -import net.md_5.bungee.api.ChatColor; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; - -/** - * Helper class for reading files - */ -public final class FileHelper { - - private FileHelper() { - - } - - /** - * Gets an input stream from a string pointing to an internal file - * - *

This is used for getting an input stream for reading a file contained within the compiled .jar file. The file - * should be in the resources directory, and the file path should start with a forward slash ("/") character.

- * - * @param file

The file to read

- * @return

An input stream for the file

- */ - public static InputStream getInputStreamForInternalFile(String file) { - return FileHelper.class.getResourceAsStream(file); - } - - /** - * Gets a buffered reader from a string pointing to a file - * - * @param file

The file to read

- * @return

A buffered reader reading the file

- * @throws FileNotFoundException

If the given file does not exist

- */ - public static BufferedReader getBufferedReaderFromString(String file) throws FileNotFoundException { - FileInputStream fileInputStream = new FileInputStream(file); - return getBufferedReaderFromInputStream(fileInputStream); - } - - /** - * Gets a buffered reader given an input stream - * - * @param inputStream

The input stream to read

- * @return

A buffered reader reading the input stream

- */ - public static BufferedReader getBufferedReaderFromInputStream(InputStream inputStream) { - InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); - return new BufferedReader(inputStreamReader); - } - - /** - * Gets a buffered writer from a string pointing to a file - * - * @param file

The file to write to

- * @return

A buffered writer writing to the file

- * @throws FileNotFoundException

If the file does not exist

- */ - public static BufferedWriter getBufferedWriterFromString(String file) throws FileNotFoundException { - FileOutputStream fileOutputStream = new FileOutputStream(file); - OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8); - return new BufferedWriter(outputStreamWriter); - } - - /** - * Reads key/value pairs from an input stream - * - * @param bufferedReader

The buffered reader to read

- * @return

A map containing the read pairs

- * @throws IOException

If unable to read from the stream

- */ - public static Map readKeyValuePairs(BufferedReader bufferedReader) throws IOException { - Map readPairs = new HashMap<>(); - - String line = bufferedReader.readLine(); - boolean firstLine = true; - while (line != null) { - //Strip UTF BOM from the first line - if (firstLine) { - line = removeUTF8BOM(line); - firstLine = false; - } - //Split at first "=" - int equalSignIndex = line.indexOf('='); - if (equalSignIndex == -1) { - line = bufferedReader.readLine(); - continue; - } - - //Read the line - String key = line.substring(0, equalSignIndex); - String value = ChatColor.translateAlternateColorCodes('&', line.substring(equalSignIndex + 1)); - readPairs.put(key, value); - - line = bufferedReader.readLine(); - } - bufferedReader.close(); - - return readPairs; - } - - /** - * Removes the UTF-8 Byte Order Mark if present - * - * @param string

The string to remove the BOM from

- * @return

A string guaranteed without a BOM

- */ - private static String removeUTF8BOM(String string) { - String UTF8_BOM = "\uFEFF"; - if (string.startsWith(UTF8_BOM)) { - string = string.substring(1); - } - return string; - } - -} diff --git a/src/main/java/net/knarcraft/stargate/utility/UpdateChecker.java b/src/main/java/net/knarcraft/stargate/utility/UpdateChecker.java deleted file mode 100644 index 2df40f4..0000000 --- a/src/main/java/net/knarcraft/stargate/utility/UpdateChecker.java +++ /dev/null @@ -1,87 +0,0 @@ -package net.knarcraft.stargate.utility; - -import net.knarcraft.stargate.Stargate; -import org.bukkit.scheduler.BukkitScheduler; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.logging.Level; - -/** - * The update checker is responsible for looking for new updates - */ -public final class UpdateChecker { - - private final static String APIResourceURL = "https://api.spigotmc.org/legacy/update.php?resource=97784"; - private final static String updateNotice = "A new update is available: %s (You are still on %s)"; - - private UpdateChecker() { - - } - - /** - * Checks if there's a new update available, and alerts the user if necessary - */ - public static void checkForUpdate() { - BukkitScheduler scheduler = Stargate.getInstance().getServer().getScheduler(); - scheduler.runTaskAsynchronously(Stargate.getInstance(), UpdateChecker::queryAPI); - } - - /** - * Queries the spigot API to check for a newer version, and informs the user - */ - private static void queryAPI() { - try { - InputStream inputStream = new URL(APIResourceURL).openStream(); - BufferedReader reader = FileHelper.getBufferedReaderFromInputStream(inputStream); - //There should only be one line of output - String newVersion = reader.readLine(); - reader.close(); - - String oldVersion = Stargate.getPluginVersion(); - //If there is a newer version, notify the user - if (isVersionHigher(oldVersion, newVersion)) { - Stargate.getConsoleLogger().log(Level.INFO, Stargate.getBackupString("prefix") + - getUpdateAvailableString(newVersion, oldVersion)); - Stargate.setUpdateAvailable(newVersion); - } - } catch (IOException e) { - Stargate.debug("UpdateChecker", "Unable to get newest version."); - } - } - - /** - * Gets the string to display to a user to alert about a new update - * - * @param newVersion

The new available plugin version

- * @param oldVersion

The old (current) plugin version

- * @return

The string to display

- */ - public static String getUpdateAvailableString(String newVersion, String oldVersion) { - return String.format(updateNotice, newVersion, oldVersion); - } - - /** - * Decides whether one version number is higher than another - * - * @param oldVersion

The old version to check

- * @param newVersion

The new version to check

- * @return

True if the new version is higher than the old one

- */ - public static boolean isVersionHigher(String oldVersion, String newVersion) { - String[] oldVersionParts = oldVersion.split("\\."); - String[] newVersionParts = newVersion.split("\\."); - int versionLength = Math.max(oldVersionParts.length, newVersionParts.length); - for (int i = 0; i < versionLength; i++) { - int oldVersionNumber = oldVersionParts.length > i ? Integer.parseInt(oldVersionParts[i]) : 0; - int newVersionNumber = newVersionParts.length > i ? Integer.parseInt(newVersionParts[i]) : 0; - if (newVersionNumber != oldVersionNumber) { - return newVersionNumber > oldVersionNumber; - } - } - return false; - } - -} From 4fda4c39056433a170d27fff2672d9fa1d803463 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Mon, 7 Nov 2022 10:01:34 +0100 Subject: [PATCH 4/9] Makes sure to initialize KnarLib properly --- .../java/net/knarcraft/stargate/Stargate.java | 21 +++---------------- .../stargate/utility/EconomyHelper.java | 13 ++++++------ 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/src/main/java/net/knarcraft/stargate/Stargate.java b/src/main/java/net/knarcraft/stargate/Stargate.java index 2daf831..e4ce24d 100644 --- a/src/main/java/net/knarcraft/stargate/Stargate.java +++ b/src/main/java/net/knarcraft/stargate/Stargate.java @@ -1,5 +1,6 @@ package net.knarcraft.stargate; +import net.knarcraft.knarlib.KnarLib; import net.knarcraft.knarlib.util.UpdateChecker; import net.knarcraft.stargate.command.CommandStarGate; import net.knarcraft.stargate.command.StarGateTabCompleter; @@ -299,24 +300,6 @@ public class Stargate extends JavaPlugin { return stargateConfig.getLanguageLoader().getBackupString(name); } - /** - * Replaces a list of variables in a string in the order they are given - * - * @param input

The input containing the variables

- * @param search

The variables to replace

- * @param values

The replacement values

- * @return

The input string with the search values replaced with the given values

- */ - public static String replaceVars(String input, String[] search, String[] values) { - if (search.length != values.length) { - throw new IllegalArgumentException("The number of search values and replace values do not match."); - } - for (int i = 0; i < search.length; i++) { - input = replaceVars(input, search[i], values[i]); - } - return input; - } - /** * Replaces a variable in a string * @@ -357,6 +340,8 @@ public class Stargate extends JavaPlugin { @Override public void onEnable() { + KnarLib.setPlugin(this); + PluginDescriptionFile pluginDescriptionFile = this.getDescription(); pluginManager = getServer().getPluginManager(); FileConfiguration newConfig = this.getConfig(); diff --git a/src/main/java/net/knarcraft/stargate/utility/EconomyHelper.java b/src/main/java/net/knarcraft/stargate/utility/EconomyHelper.java index e3ab32c..6c58e52 100644 --- a/src/main/java/net/knarcraft/stargate/utility/EconomyHelper.java +++ b/src/main/java/net/knarcraft/stargate/utility/EconomyHelper.java @@ -1,5 +1,6 @@ package net.knarcraft.stargate.utility; +import net.knarcraft.knarlib.formatting.StringFormatter; import net.knarcraft.stargate.Stargate; import net.knarcraft.stargate.config.EconomyConfig; import net.knarcraft.stargate.portal.Portal; @@ -78,7 +79,7 @@ public final class EconomyHelper { */ public static void sendObtainMessage(String portalName, Player portalOwner, int earnings) { String obtainedMsg = Stargate.getString("ecoObtain"); - obtainedMsg = replaceVars(obtainedMsg, portalName, earnings); + obtainedMsg = replacePlaceholders(obtainedMsg, portalName, earnings); Stargate.getMessageSender().sendSuccessMessage(portalOwner, obtainedMsg); } @@ -91,7 +92,7 @@ public final class EconomyHelper { */ public static void sendDeductMessage(String portalName, Player player, int cost) { String deductMsg = Stargate.getString("ecoDeduct"); - deductMsg = replaceVars(deductMsg, portalName, cost); + deductMsg = replacePlaceholders(deductMsg, portalName, cost); Stargate.getMessageSender().sendSuccessMessage(player, deductMsg); } @@ -104,7 +105,7 @@ public final class EconomyHelper { */ public static void sendInsufficientFundsMessage(String portalName, Player player, int cost) { String inFundMsg = Stargate.getString("ecoInFunds"); - inFundMsg = replaceVars(inFundMsg, portalName, cost); + inFundMsg = replacePlaceholders(inFundMsg, portalName, cost); Stargate.getMessageSender().sendErrorMessage(player, inFundMsg); } @@ -117,7 +118,7 @@ public final class EconomyHelper { */ public static void sendRefundMessage(String portalName, Player player, int cost) { String refundMsg = Stargate.getString("ecoRefund"); - refundMsg = replaceVars(refundMsg, portalName, -cost); + refundMsg = replacePlaceholders(refundMsg, portalName, -cost); Stargate.getMessageSender().sendSuccessMessage(player, refundMsg); } @@ -239,8 +240,8 @@ public final class EconomyHelper { * @param cost

The cost for a given interaction

* @return

The same string with cost and portal variables replaced

*/ - private static String replaceVars(String message, String portalName, int cost) { - return Stargate.replaceVars(message, new String[]{"%cost%", "%portal%"}, + private static String replacePlaceholders(String message, String portalName, int cost) { + return StringFormatter.replacePlaceholders(message, new String[]{"%cost%", "%portal%"}, new String[]{Stargate.getEconomyConfig().format(cost), portalName}); } From a26cc3009231c1687d3a44e28e454df9f2281acf Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Mon, 7 Nov 2022 10:07:16 +0100 Subject: [PATCH 5/9] Uses placeholder for plugin version --- src/main/resources/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index ebd6bf9..283fe85 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Stargate main: net.knarcraft.stargate.Stargate -version: 0.9.4.2 +version: '${project.version}' description: Stargate mod for Bukkit Revived author: EpicKnarvik97 authors: [ Drakia, PseudoKnight, EpicKnarvik97 ] From ef97da9177daaa0f9138f0047caa95c72b889c06 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Mon, 7 Nov 2022 22:27:53 +0100 Subject: [PATCH 6/9] Removes KnarLib.setPlugin call --- src/main/java/net/knarcraft/stargate/Stargate.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/net/knarcraft/stargate/Stargate.java b/src/main/java/net/knarcraft/stargate/Stargate.java index e4ce24d..2cb40b1 100644 --- a/src/main/java/net/knarcraft/stargate/Stargate.java +++ b/src/main/java/net/knarcraft/stargate/Stargate.java @@ -1,6 +1,5 @@ package net.knarcraft.stargate; -import net.knarcraft.knarlib.KnarLib; import net.knarcraft.knarlib.util.UpdateChecker; import net.knarcraft.stargate.command.CommandStarGate; import net.knarcraft.stargate.command.StarGateTabCompleter; @@ -340,8 +339,6 @@ public class Stargate extends JavaPlugin { @Override public void onEnable() { - KnarLib.setPlugin(this); - PluginDescriptionFile pluginDescriptionFile = this.getDescription(); pluginManager = getServer().getPluginManager(); FileConfiguration newConfig = this.getConfig(); From 5aed252181765f9af32dcfe71d60e339964ed60d Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Mon, 14 Nov 2022 00:45:31 +0000 Subject: [PATCH 7/9] Updates dependencies --- pom.xml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 3f187d2..40bdfcb 100644 --- a/pom.xml +++ b/pom.xml @@ -25,12 +25,16 @@ vault-repo - http://nexus.hc.to/content/repositories/pub_releases + https://nexus.hc.to/content/repositories/pub_releases dynmap https://repo.mikeprimm.com/ + + papermc + https://repo.papermc.io/repository/maven-public/ + @@ -49,19 +53,19 @@ org.junit.jupiter junit-jupiter-api - 5.8.2 + 5.9.0 test com.github.seeseemelk MockBukkit-v1.18 - 1.15.5 + 2.85.2 test org.jetbrains annotations - 22.0.0 + 23.0.0 provided @@ -85,12 +89,11 @@ - src/main/java org.apache.maven.plugins maven-compiler-plugin - 3.6.1 + 3.8.1 ${java.version} ${java.version} @@ -127,5 +130,11 @@ + + + src/main/resources + true + + \ No newline at end of file From a35c07dc9c8c89781d5c4fe5d75e900c18fc17bb Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 22 Nov 2022 16:41:55 +0100 Subject: [PATCH 8/9] Updates the JDK used for Jenkins --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b17f9a7..5a47c8f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,7 @@ pipeline { agent any tools { - jdk 'JDK16' + jdk 'JDK17' } stages { stage('Build') { From 31b342324666bd980c47fe714cfbacf61595930c Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Sat, 26 Nov 2022 04:05:03 +0100 Subject: [PATCH 9/9] Adds the knarcraft git repository --- pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pom.xml b/pom.xml index 40bdfcb..7c4e29b 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,10 @@ + + gitea + https://git.knarcraft.net/api/packages/EpicKnarvik97/maven + spigot-repo https://hub.spigotmc.org/nexus/content/groups/public/