From 1404dd7e0f662f451b73b535c5fbbdbf0c742a5d Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Mon, 1 May 2023 23:37:32 -0400 Subject: [PATCH] Add PAPI dependency & utility modifications - If a PlaceholderAPI expansion is set, PlaceholderAPI will be added as a dependency - Moved `AnnoyingUtility` into the `utility` folder - Added `MapUtility` to more easily create maps (in Java 8, Java 9+ can just use static `Map` methods) --- .../srnyx/annoyingapi/AnnoyingCooldown.java | 2 + .../xyz/srnyx/annoyingapi/AnnoyingJSON.java | 2 + .../srnyx/annoyingapi/AnnoyingMessage.java | 1 + .../xyz/srnyx/annoyingapi/AnnoyingPlugin.java | 9 +- .../xyz/srnyx/annoyingapi/AnnoyingUpdate.java | 2 + .../annoyingapi/command/AnnoyingCommand.java | 2 +- .../dependency/AnnoyingDownload.java | 2 +- .../{ => utility}/AnnoyingUtility.java | 36 ++--- .../srnyx/annoyingapi/utility/MapUtility.java | 132 ++++++++++++++++++ 9 files changed, 165 insertions(+), 23 deletions(-) rename api/src/main/java/xyz/srnyx/annoyingapi/{ => utility}/AnnoyingUtility.java (96%) create mode 100644 api/src/main/java/xyz/srnyx/annoyingapi/utility/MapUtility.java diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingCooldown.java b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingCooldown.java index 4363573..51ac6f5 100644 --- a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingCooldown.java +++ b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingCooldown.java @@ -2,6 +2,8 @@ import org.jetbrains.annotations.NotNull; +import xyz.srnyx.annoyingapi.utility.AnnoyingUtility; + import java.util.HashMap; import java.util.Map; import java.util.UUID; diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingJSON.java b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingJSON.java index 9841342..b3c7409 100644 --- a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingJSON.java +++ b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingJSON.java @@ -6,6 +6,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import xyz.srnyx.annoyingapi.utility.AnnoyingUtility; + /** * Class to manage and build JSON messages ({@link BaseComponent}[]) diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingMessage.java b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingMessage.java index 1c3fbbc..74eb82b 100644 --- a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingMessage.java +++ b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingMessage.java @@ -14,6 +14,7 @@ import xyz.srnyx.annoyingapi.command.AnnoyingSender; import xyz.srnyx.annoyingapi.file.AnnoyingResource; +import xyz.srnyx.annoyingapi.utility.AnnoyingUtility; import java.util.HashSet; import java.util.Set; diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingPlugin.java b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingPlugin.java index 646c60b..5996996 100644 --- a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingPlugin.java +++ b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingPlugin.java @@ -23,6 +23,8 @@ import xyz.srnyx.annoyingapi.dependency.AnnoyingDownload; import xyz.srnyx.annoyingapi.events.EventHandlers; import xyz.srnyx.annoyingapi.file.AnnoyingResource; +import xyz.srnyx.annoyingapi.utility.AnnoyingUtility; +import xyz.srnyx.annoyingapi.utility.MapUtility; import java.util.*; import java.util.logging.Level; @@ -89,6 +91,7 @@ public AnnoyingPlugin() { */ @Override public final void onLoad() { + if (options.papiExpansionToRegister != null) options.dependencies.add(new AnnoyingDependency("PlaceholderAPI", MapUtility.mapOf(AnnoyingDownload.Platform.SPIGOT, "6245"), false, false)); loadMessages(); load(); } @@ -103,9 +106,7 @@ public final void onLoad() { public final void onEnable() { // Get missing dependencies final List missingDependencies = new ArrayList<>(); - for (final AnnoyingDependency dependency : options.dependencies) { - if (dependency.isNotInstalled() && missingDependencies.stream().noneMatch(dep -> dep.name.equals(dependency.name))) missingDependencies.add(dependency); - } + for (final AnnoyingDependency dependency : options.dependencies) if (dependency.isNotInstalled() && missingDependencies.stream().noneMatch(dep -> dep.name.equals(dependency.name))) missingDependencies.add(dependency); // Download missing dependencies then enable the plugin if (!missingDependencies.isEmpty()) { @@ -218,7 +219,7 @@ private void enablePlugin() { * * @see #reload() */ - public final void reloadPlugin() { + public void reloadPlugin() { loadMessages(); reload(); } diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingUpdate.java b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingUpdate.java index ee590d6..b817f9a 100644 --- a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingUpdate.java +++ b/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingUpdate.java @@ -7,6 +7,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import xyz.srnyx.annoyingapi.utility.AnnoyingUtility; + import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/command/AnnoyingCommand.java b/api/src/main/java/xyz/srnyx/annoyingapi/command/AnnoyingCommand.java index b8a24d1..0340684 100644 --- a/api/src/main/java/xyz/srnyx/annoyingapi/command/AnnoyingCommand.java +++ b/api/src/main/java/xyz/srnyx/annoyingapi/command/AnnoyingCommand.java @@ -10,7 +10,7 @@ import xyz.srnyx.annoyingapi.AnnoyingMessage; import xyz.srnyx.annoyingapi.AnnoyingPlugin; -import xyz.srnyx.annoyingapi.AnnoyingUtility; +import xyz.srnyx.annoyingapi.utility.AnnoyingUtility; import java.util.Collection; import java.util.Collections; diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/dependency/AnnoyingDownload.java b/api/src/main/java/xyz/srnyx/annoyingapi/dependency/AnnoyingDownload.java index c377f4a..313223a 100644 --- a/api/src/main/java/xyz/srnyx/annoyingapi/dependency/AnnoyingDownload.java +++ b/api/src/main/java/xyz/srnyx/annoyingapi/dependency/AnnoyingDownload.java @@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; import xyz.srnyx.annoyingapi.AnnoyingPlugin; -import xyz.srnyx.annoyingapi.AnnoyingUtility; +import xyz.srnyx.annoyingapi.utility.AnnoyingUtility; import java.io.BufferedInputStream; import java.io.FileOutputStream; diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingUtility.java b/api/src/main/java/xyz/srnyx/annoyingapi/utility/AnnoyingUtility.java similarity index 96% rename from api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingUtility.java rename to api/src/main/java/xyz/srnyx/annoyingapi/utility/AnnoyingUtility.java index 281a9be..ffe049f 100644 --- a/api/src/main/java/xyz/srnyx/annoyingapi/AnnoyingUtility.java +++ b/api/src/main/java/xyz/srnyx/annoyingapi/utility/AnnoyingUtility.java @@ -1,4 +1,4 @@ -package xyz.srnyx.annoyingapi; +package xyz.srnyx.annoyingapi.utility; import com.google.gson.JsonElement; import com.google.gson.JsonParser; @@ -13,6 +13,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import xyz.srnyx.annoyingapi.AnnoyingPlugin; + import java.io.File; import java.io.IOException; import java.io.InputStreamReader; @@ -50,22 +52,6 @@ public static String color(@Nullable String message) { return ChatColor.translateAlternateColorCodes('&', message); } - /** - * Gets an {@link OfflinePlayer} from the specified name - * - * @param name the name of the player - * - * @return the {@link OfflinePlayer}, or null if not found - */ - @Nullable - public static OfflinePlayer getOfflinePlayer(@NotNull String name) { - for (final OfflinePlayer offline : Bukkit.getOfflinePlayers()) { - final String opName = offline.getName(); - if (opName != null && opName.equalsIgnoreCase(name)) return offline; - } - return null; - } - /** * Formats a millisecond long using the given pattern * @@ -95,6 +81,22 @@ public static String formatNumber(@NotNull Number value, @Nullable String patter return new DecimalFormat(pattern).format(value); } + /** + * Gets an {@link OfflinePlayer} from the specified name + * + * @param name the name of the player + * + * @return the {@link OfflinePlayer}, or null if not found + */ + @Nullable + public static OfflinePlayer getOfflinePlayer(@NotNull String name) { + for (final OfflinePlayer offline : Bukkit.getOfflinePlayers()) { + final String offlineName = offline.getName(); + if (offlineName != null && offlineName.equalsIgnoreCase(name)) return offline; + } + return null; + } + /** * Gets a {@link Set} of all online player names * diff --git a/api/src/main/java/xyz/srnyx/annoyingapi/utility/MapUtility.java b/api/src/main/java/xyz/srnyx/annoyingapi/utility/MapUtility.java new file mode 100644 index 0000000..65e518c --- /dev/null +++ b/api/src/main/java/xyz/srnyx/annoyingapi/utility/MapUtility.java @@ -0,0 +1,132 @@ +package xyz.srnyx.annoyingapi.utility; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +public class MapUtility { + @NotNull + public static Map mapOf(@NotNull List keys, @NotNull List values) { + final Map map = new HashMap<>(); + for (int i = 0; i < keys.size(); i++) map.put(keys.get(i), values.get(i)); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value) { + final Map map = new HashMap<>(); + map.put(key, value); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2, @NotNull T key3, @NotNull G value3) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + map.put(key3, value3); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2, @NotNull T key3, @NotNull G value3, @NotNull T key4, @NotNull G value4) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + map.put(key3, value3); + map.put(key4, value4); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2, @NotNull T key3, @NotNull G value3, @NotNull T key4, @NotNull G value4, @NotNull T key5, @NotNull G value5) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + map.put(key3, value3); + map.put(key4, value4); + map.put(key5, value5); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2, @NotNull T key3, @NotNull G value3, @NotNull T key4, @NotNull G value4, @NotNull T key5, @NotNull G value5, @NotNull T key6, @NotNull G value6) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + map.put(key3, value3); + map.put(key4, value4); + map.put(key5, value5); + map.put(key6, value6); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2, @NotNull T key3, @NotNull G value3, @NotNull T key4, @NotNull G value4, @NotNull T key5, @NotNull G value5, @NotNull T key6, @NotNull G value6, @NotNull T key7, @NotNull G value7) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + map.put(key3, value3); + map.put(key4, value4); + map.put(key5, value5); + map.put(key6, value6); + map.put(key7, value7); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2, @NotNull T key3, @NotNull G value3, @NotNull T key4, @NotNull G value4, @NotNull T key5, @NotNull G value5, @NotNull T key6, @NotNull G value6, @NotNull T key7, @NotNull G value7, @NotNull T key8, @NotNull G value8) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + map.put(key3, value3); + map.put(key4, value4); + map.put(key5, value5); + map.put(key6, value6); + map.put(key7, value7); + map.put(key8, value8); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2, @NotNull T key3, @NotNull G value3, @NotNull T key4, @NotNull G value4, @NotNull T key5, @NotNull G value5, @NotNull T key6, @NotNull G value6, @NotNull T key7, @NotNull G value7, @NotNull T key8, @NotNull G value8, @NotNull T key9, @NotNull G value9) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + map.put(key3, value3); + map.put(key4, value4); + map.put(key5, value5); + map.put(key6, value6); + map.put(key7, value7); + map.put(key8, value8); + map.put(key9, value9); + return map; + } + + @NotNull + public static Map mapOf(@NotNull T key, @NotNull G value, @NotNull T key2, @NotNull G value2, @NotNull T key3, @NotNull G value3, @NotNull T key4, @NotNull G value4, @NotNull T key5, @NotNull G value5, @NotNull T key6, @NotNull G value6, @NotNull T key7, @NotNull G value7, @NotNull T key8, @NotNull G value8, @NotNull T key9, @NotNull G value9, @NotNull T key10, @NotNull G value10) { + final Map map = new HashMap<>(); + map.put(key, value); + map.put(key2, value2); + map.put(key3, value3); + map.put(key4, value4); + map.put(key5, value5); + map.put(key6, value6); + map.put(key7, value7); + map.put(key8, value8); + map.put(key9, value9); + map.put(key10, value10); + return map; + } +}