From 7f1c14f9c789b6ded38907494e8da1749fd61f87 Mon Sep 17 00:00:00 2001 From: TazmanianTad Date: Wed, 28 May 2025 03:31:30 -0600 Subject: [PATCH] [1.21.5] -> Increased delay in chest deposit to prevent server freezing up. Fixed all deprecated warnings. Added message before beginning `depostall` command because it can be slow sometimes, at least the user knows something is happening. Fixed null ref when you use `autosort` without args. --- .github/workflows/ci.yaml | 77 +++++++++++++++---- .vscode/settings.json | 3 +- build.gradle.kts | 4 +- .../commands/AutoSortCommand.java | 2 +- .../commands/DepositAllCommand.java | 2 + .../configuration/PlayerConfig.java | 25 +++--- .../listeners/RefillStacksListener.java | 1 - .../listeners/SortChestsListener.java | 2 +- .../messaging/LocalizedMessages.java | 3 +- .../messaging/Messages.java | 3 +- .../tasks/AsyncChestDepositTask.java | 8 +- .../tasks/AutoRefillHotBarTask.java | 1 - .../tasks/InventorySorter.java | 17 +--- .../utilities/BlockUtilities.java | 1 - .../automaticinventory/utilities/Chat.java | 44 ++++++----- .../utilities/InventoryUtilities.java | 3 +- .../utilities/ItemUtilities.java | 8 +- .../automaticinventory/utilities/Level.java | 12 +-- .../automaticinventory/utilities/Metrics.java | 6 +- 19 files changed, 137 insertions(+), 85 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e924b4d..f1784c2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,15 +16,15 @@ jobs: steps: - name: Checkout Git repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Restore Gradle cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- @@ -35,24 +35,73 @@ jobs: java-version: 21 - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@v1 + uses: gradle/actions/wrapper-validation@v3 - name: Build with Gradle run: | chmod +x gradlew ./gradlew build --stacktrace - - name: Install rename - run: sudo apt-get install -y rename - -# This is only needed when using shadow jar -# - name: Rename file -# run: | -# cd ./build/libs/ -# rename -f 's/-all//;' '' * - - name: Archive plugin jars on GitHub - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: AutomaticInventory path: build/libs + overwrite: 'true' + + release: + name: Release + needs: build + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + + permissions: + contents: write # Required to create/delete tags and releases + + steps: + - name: Checkout Git repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Git user + run: | + git config user.name "github-actions" + git config user.email "github-actions@github.com" + + - name: Get short commit SHA + id: vars + run: echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT" + + - name: Delete previous release (if exists) + continue-on-error: true + run: | + gh release delete latest --yes + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Delete previous tag (if exists) + continue-on-error: true + run: | + git tag -d latest || true + git push origin :refs/tags/latest || true + + - name: Create new tag + run: | + git tag latest + git push origin latest + + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: AutomaticInventory + path: artifacts + + - name: Create GitHub Release + run: | + ls artifacts # optional: see what's there + gh release create latest artifacts/* \ + --title "Latest Build (${{ steps.vars.outputs.sha_short }})" \ + --notes "Automated build from commit ${{ steps.vars.outputs.sha_short }}" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.vscode/settings.json b/.vscode/settings.json index e0f15db..0be1c0c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "java.configuration.updateBuildConfiguration": "automatic" + "java.configuration.updateBuildConfiguration": "automatic", + "java.compile.nullAnalysis.mode": "automatic" } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 5a63115..00d92e7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,7 +15,7 @@ plugins { } group = "dev.chaws.automaticinventory" -version = "4.0.0" +version = "4.1.0" description = "Automatic Inventory PaperMC Plugin" repositories { @@ -74,7 +74,7 @@ bukkitPluginYaml { main = "dev.chaws.automaticinventory.AutomaticInventory" // TODO: Try POSTWORLD load = BukkitPluginYaml.PluginLoadOrder.STARTUP - authors = listOf("Chaws", "Pugabyte", "AllTheCode", "RoboMWM", "Big_Scary") + authors = listOf("Bittiez", "Chaws", "Pugabyte", "AllTheCode", "RoboMWM", "Big_Scary") apiVersion = "1.21" commands.register("autosort") { description = "Toggles auto-sorting options." diff --git a/src/main/java/dev/chaws/automaticinventory/commands/AutoSortCommand.java b/src/main/java/dev/chaws/automaticinventory/commands/AutoSortCommand.java index 17747e1..e49e761 100644 --- a/src/main/java/dev/chaws/automaticinventory/commands/AutoSortCommand.java +++ b/src/main/java/dev/chaws/automaticinventory/commands/AutoSortCommand.java @@ -19,7 +19,7 @@ public class AutoSortCommand extends AutomaticInventoryCommand { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { - if (!(sender instanceof Player player)) { + if (!(sender instanceof Player player) || args.length == 0) { return true; } diff --git a/src/main/java/dev/chaws/automaticinventory/commands/DepositAllCommand.java b/src/main/java/dev/chaws/automaticinventory/commands/DepositAllCommand.java index 65636d8..7449b0d 100644 --- a/src/main/java/dev/chaws/automaticinventory/commands/DepositAllCommand.java +++ b/src/main/java/dev/chaws/automaticinventory/commands/DepositAllCommand.java @@ -28,6 +28,8 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command return true; } + Chat.sendMessage(player, Level.Info, Messages.StartingDepositAll); + //gather snapshots of adjacent chunks var location = player.getLocation(); var centerChunk = location.getChunk(); diff --git a/src/main/java/dev/chaws/automaticinventory/configuration/PlayerConfig.java b/src/main/java/dev/chaws/automaticinventory/configuration/PlayerConfig.java index 3325677..654ce36 100644 --- a/src/main/java/dev/chaws/automaticinventory/configuration/PlayerConfig.java +++ b/src/main/java/dev/chaws/automaticinventory/configuration/PlayerConfig.java @@ -54,7 +54,7 @@ public static PlayerConfig fromPlayer(Player player) { if (data.isEmpty()) { return new PlayerConfig(player); } else { - return (PlayerConfig)data.get(0).value(); + return (PlayerConfig) data.get(0).value(); } } @@ -176,9 +176,9 @@ public void setGotQuickDepositInfo(boolean newValue) { } public void saveChanges() { - if (!this.isDirty) { - return; - } + if (!this.isDirty) { + return; + } this.waitForLoadComplete(); this.savingThread = new Thread(new DataSaver()); @@ -242,9 +242,12 @@ private void readDataFromFile() { needRetry = false; FileConfiguration config = YamlConfiguration.loadConfiguration(this.playerConfigFile); this.sortChests = config.getBoolean("Sort Chests", GlobalConfig.autosortEnabledByDefault); - this.sortInventory = config.getBoolean("Sort Personal Inventory", GlobalConfig.autosortEnabledByDefault); - this.quickDepositEnabled = config.getBoolean("Quick Deposit Enabled", GlobalConfig.quickDepositEnabledByDefault); - this.autoRefillEnabled = config.getBoolean("Auto Refill Enabled", GlobalConfig.autoRefillEnabledByDefault); + this.sortInventory = config.getBoolean("Sort Personal Inventory", + GlobalConfig.autosortEnabledByDefault); + this.quickDepositEnabled = config.getBoolean("Quick Deposit Enabled", + GlobalConfig.quickDepositEnabledByDefault); + this.autoRefillEnabled = config.getBoolean("Auto Refill Enabled", + GlobalConfig.autoRefillEnabledByDefault); this.usedQuickDeposit = config.getBoolean("Used Quick Deposit", false); this.receivedChestSortInfo = config.getBoolean("Received Messages.Chest Inventory", false); this.receivedInventorySortInfo = config.getBoolean("Received Messages.Personal Inventory", false); @@ -252,7 +255,8 @@ private void readDataFromFile() { this.receivedDepositAllInfo = config.getBoolean("Received Messages.Deposit All", false); } - //if there's any problem with the file's content, retry up to 5 times with 5 milliseconds between + // if there's any problem with the file's content, retry up to 5 times with 5 + // milliseconds between catch (Exception e) { latestException = e; needRetry = true; @@ -268,10 +272,11 @@ private void readDataFromFile() { } while (needRetry && retriesRemaining >= 0); - //if last attempt failed, log information about the problem + // if last attempt failed, log information about the problem if (needRetry) { var errors = new StringWriter(); - latestException.printStackTrace(new PrintWriter(errors)); + if (latestException != null) + latestException.printStackTrace(new PrintWriter(errors)); AutomaticInventory.log.info("Failed to load data for " + playerID + " " + errors); } } diff --git a/src/main/java/dev/chaws/automaticinventory/listeners/RefillStacksListener.java b/src/main/java/dev/chaws/automaticinventory/listeners/RefillStacksListener.java index f25e7e9..90671a0 100644 --- a/src/main/java/dev/chaws/automaticinventory/listeners/RefillStacksListener.java +++ b/src/main/java/dev/chaws/automaticinventory/listeners/RefillStacksListener.java @@ -5,7 +5,6 @@ import dev.chaws.automaticinventory.configuration.GlobalConfig; import dev.chaws.automaticinventory.configuration.PlayerConfig; import dev.chaws.automaticinventory.tasks.AutoRefillHotBarTask; -import dev.chaws.automaticinventory.utilities.ItemUtilities; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/dev/chaws/automaticinventory/listeners/SortChestsListener.java b/src/main/java/dev/chaws/automaticinventory/listeners/SortChestsListener.java index 44fb1f3..47f6b25 100644 --- a/src/main/java/dev/chaws/automaticinventory/listeners/SortChestsListener.java +++ b/src/main/java/dev/chaws/automaticinventory/listeners/SortChestsListener.java @@ -31,7 +31,7 @@ public void onInventoryOpen(InventoryOpenEvent event) { if (!player.isSneaking() && PlayerConfig.featureEnabled(Features.SortChests, player)) { var topInventory = event.getView().getTopInventory(); - if (!InventoryUtilities.isSortableChestInventory(topInventory, event.getView().getTitle())) { + if (!InventoryUtilities.isSortableChestInventory(topInventory, event.getView().title().examinableName())) { return; } diff --git a/src/main/java/dev/chaws/automaticinventory/messaging/LocalizedMessages.java b/src/main/java/dev/chaws/automaticinventory/messaging/LocalizedMessages.java index fa251a2..185e6c0 100644 --- a/src/main/java/dev/chaws/automaticinventory/messaging/LocalizedMessages.java +++ b/src/main/java/dev/chaws/automaticinventory/messaging/LocalizedMessages.java @@ -47,6 +47,7 @@ public static void initialize(File dataFolder) { instance.addDefault(defaults, Messages.AutoRefillHelp, "Options are /autorefill toggle, /autorefill enable, and /autorefill disable."); instance.addDefault(defaults, Messages.AutoRefillEnabled, "Auto refill enabled."); instance.addDefault(defaults, Messages.AutoRefillDisabled, "Auto refill disabled."); + instance.addDefault(defaults, Messages.StartingDepositAll, "Checking for items to deposit.. This may take a moment."); //load the configuration file FileConfiguration config = YamlConfiguration.loadConfiguration(localizationFile); @@ -108,12 +109,10 @@ synchronized public String getMessage(Messages messageID, String... args) { } private static class LocalizedMessage { - public Messages id; public String text; public String notes; public LocalizedMessage(Messages id, String text, String notes) { - this.id = id; this.text = text; this.notes = notes; } diff --git a/src/main/java/dev/chaws/automaticinventory/messaging/Messages.java b/src/main/java/dev/chaws/automaticinventory/messaging/Messages.java index ace3e35..ef90f91 100644 --- a/src/main/java/dev/chaws/automaticinventory/messaging/Messages.java +++ b/src/main/java/dev/chaws/automaticinventory/messaging/Messages.java @@ -22,5 +22,6 @@ public enum Messages { QuickDepositDisabled, AutoRefillHelp, AutoRefillEnabled, - AutoRefillDisabled + AutoRefillDisabled, + StartingDepositAll, } diff --git a/src/main/java/dev/chaws/automaticinventory/tasks/AsyncChestDepositTask.java b/src/main/java/dev/chaws/automaticinventory/tasks/AsyncChestDepositTask.java index a61ae66..379b6c4 100644 --- a/src/main/java/dev/chaws/automaticinventory/tasks/AsyncChestDepositTask.java +++ b/src/main/java/dev/chaws/automaticinventory/tasks/AsyncChestDepositTask.java @@ -184,7 +184,11 @@ public void run() { var state = block.getState(); if (state instanceof InventoryHolder chest) { var chestInventory = chest.getInventory(); - if (!this.respectExclusions || InventoryUtilities.isSortableChestInventory(chestInventory, state instanceof Nameable nameable ? nameable.getCustomName() : null)) { + String name = chest.getClass().getSimpleName(); + if (state instanceof Nameable nameable && nameable.customName() != null) { + name = nameable.customName().toString(); + } + if (!this.respectExclusions || InventoryUtilities.isSortableChestInventory(chestInventory, name)) { var playerInventory = player.getInventory(); var deposits = InventoryUtilities.depositMatching(playerInventory, chestInventory, false); @@ -195,7 +199,7 @@ public void run() { } var chain = new QuickDepositChain(this.remainingChestLocations, this.runningDepositRecord, this.player, this.respectExclusions); - Bukkit.getScheduler().runTaskLater(AutomaticInventory.instance, chain, 1L); + Bukkit.getScheduler().runTaskLater(AutomaticInventory.instance, chain, 5L); } } } diff --git a/src/main/java/dev/chaws/automaticinventory/tasks/AutoRefillHotBarTask.java b/src/main/java/dev/chaws/automaticinventory/tasks/AutoRefillHotBarTask.java index 2513644..0b86adf 100644 --- a/src/main/java/dev/chaws/automaticinventory/tasks/AutoRefillHotBarTask.java +++ b/src/main/java/dev/chaws/automaticinventory/tasks/AutoRefillHotBarTask.java @@ -3,7 +3,6 @@ import dev.chaws.automaticinventory.configuration.PlayerConfig; import dev.chaws.automaticinventory.messaging.Messages; import dev.chaws.automaticinventory.utilities.Chat; -import dev.chaws.automaticinventory.utilities.ItemUtilities; import dev.chaws.automaticinventory.utilities.Level; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/dev/chaws/automaticinventory/tasks/InventorySorter.java b/src/main/java/dev/chaws/automaticinventory/tasks/InventorySorter.java index ae3a31f..8441094 100644 --- a/src/main/java/dev/chaws/automaticinventory/tasks/InventorySorter.java +++ b/src/main/java/dev/chaws/automaticinventory/tasks/InventorySorter.java @@ -1,12 +1,10 @@ package dev.chaws.automaticinventory.tasks; -import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; public class InventorySorter implements Runnable { @@ -73,18 +71,11 @@ public int compare(ItemStack a, ItemStack b) { return result; } - //noinspection removal - var aData = a.getData(); - //noinspection removal - var bData = b.getData(); + var aMeta = a.getItemMeta(); + var bMeta = b.getItemMeta(); - //noinspection deprecation - var aDataData = aData == null ? null : aData.getData(); - //noinspection deprecation - var bDataData = bData == null ? null : bData.getData(); - - if (aDataData != null && bDataData != null) { - result = Byte.compare(bDataData, aDataData); + if (aMeta != null && bMeta != null) { + result = bMeta.toString().compareTo(aMeta.toString()); if (result != 0) { return result; } diff --git a/src/main/java/dev/chaws/automaticinventory/utilities/BlockUtilities.java b/src/main/java/dev/chaws/automaticinventory/utilities/BlockUtilities.java index d68e74d..599b3d3 100644 --- a/src/main/java/dev/chaws/automaticinventory/utilities/BlockUtilities.java +++ b/src/main/java/dev/chaws/automaticinventory/utilities/BlockUtilities.java @@ -1,6 +1,5 @@ package dev.chaws.automaticinventory.utilities; -import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Barrel; import org.bukkit.block.Block; diff --git a/src/main/java/dev/chaws/automaticinventory/utilities/Chat.java b/src/main/java/dev/chaws/automaticinventory/utilities/Chat.java index ac03491..e441021 100644 --- a/src/main/java/dev/chaws/automaticinventory/utilities/Chat.java +++ b/src/main/java/dev/chaws/automaticinventory/utilities/Chat.java @@ -3,20 +3,22 @@ import dev.chaws.automaticinventory.AutomaticInventory; import dev.chaws.automaticinventory.messaging.LocalizedMessages; import dev.chaws.automaticinventory.messaging.Messages; -import org.bukkit.ChatColor; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; + import org.bukkit.entity.Player; public class Chat { - public static void broadcastMessage(ChatColor color, Messages messageID, String... args) { + public static void broadcastMessage(NamedTextColor color, Messages messageID, String... args) { broadcastMessage(color, messageID, 0, args); } - public static void broadcastMessage(ChatColor color, Messages messageID, long delayInTicks, String... args) { + public static void broadcastMessage(NamedTextColor color, Messages messageID, long delayInTicks, String... args) { var message = LocalizedMessages.instance.getMessage(messageID, args); broadcastMessage(color, message, delayInTicks); } - public static void broadcastMessage(ChatColor color, String message) { + public static void broadcastMessage(NamedTextColor color, String message) { if (message == null || message.length() == 0) { return; } @@ -24,25 +26,27 @@ public static void broadcastMessage(ChatColor color, String message) { broadcastMessage(color, message, 0); } - public static void broadcastMessage(ChatColor color, String message, long delayInTicks) { + public static void broadcastMessage(NamedTextColor color, String message, long delayInTicks) { var task = new BroadcastMessageTask(color, message); if (delayInTicks > 0) { - AutomaticInventory.instance.getServer().getScheduler().runTaskLater(AutomaticInventory.instance, task, delayInTicks); + AutomaticInventory.instance.getServer().getScheduler().runTaskLater(AutomaticInventory.instance, task, + delayInTicks); } else { task.run(); } } - public static void sendMessage(Player player, ChatColor color, Messages messageID, String... args) { + public static void sendMessage(Player player, NamedTextColor color, Messages messageID, String... args) { sendMessage(player, color, messageID, 0, args); } - public static void sendMessage(Player player, ChatColor color, Messages messageID, long delayInTicks, String... args) { + public static void sendMessage(Player player, NamedTextColor color, Messages messageID, long delayInTicks, + String... args) { var message = LocalizedMessages.instance.getMessage(messageID, args); sendMessage(player, color, message, delayInTicks); } - public static void sendMessage(Player player, ChatColor color, String message) { + public static void sendMessage(Player player, NamedTextColor color, String message) { if (message == null || message.length() == 0) { return; } @@ -50,24 +54,26 @@ public static void sendMessage(Player player, ChatColor color, String message) { sendMessage(player, color, message, 0); } - public static void sendMessage(Player player, ChatColor color, String message, long delayInTicks) { + public static void sendMessage(Player player, NamedTextColor color, String message, long delayInTicks) { var task = new SendPlayerMessageTask(player, color, message); if (delayInTicks > 0) { - AutomaticInventory.instance.getServer().getScheduler().runTaskLater(AutomaticInventory.instance, task, delayInTicks); + AutomaticInventory.instance.getServer().getScheduler().runTaskLater(AutomaticInventory.instance, task, + delayInTicks); } else { task.run(); } } } -//sends a message to a player -//used to send delayed messages, for example help text triggered by a player's chat +// sends a message to a player +// used to send delayed messages, for example help text triggered by a player's +// chat class SendPlayerMessageTask implements Runnable { private final Player player; - private final ChatColor color; + private final NamedTextColor color; private final String message; - public SendPlayerMessageTask(Player player, ChatColor color, String message) { + public SendPlayerMessageTask(Player player, NamedTextColor color, String message) { this.player = player; this.color = color; this.message = message; @@ -78,22 +84,22 @@ public void run() { if (player == null) { AutomaticInventory.log.info(color + message); } else { - player.sendMessage(color + message); + player.sendMessage(Component.text(message).color(color)); } } } class BroadcastMessageTask implements Runnable { - private final ChatColor color; + private final NamedTextColor color; private final String message; - public BroadcastMessageTask(ChatColor color, String message) { + public BroadcastMessageTask(NamedTextColor color, String message) { this.color = color; this.message = message; } @Override public void run() { - AutomaticInventory.instance.getServer().broadcastMessage(color + message); + AutomaticInventory.instance.getServer().sendMessage(Component.text(message).color(color)); } } diff --git a/src/main/java/dev/chaws/automaticinventory/utilities/InventoryUtilities.java b/src/main/java/dev/chaws/automaticinventory/utilities/InventoryUtilities.java index 8fc1640..19f1038 100644 --- a/src/main/java/dev/chaws/automaticinventory/utilities/InventoryUtilities.java +++ b/src/main/java/dev/chaws/automaticinventory/utilities/InventoryUtilities.java @@ -70,7 +70,8 @@ public static boolean isSortableChestInventory( } public static DepositRecord depositMatching(PlayerInventory source, Inventory destination, boolean depositHotbar) { - var eligibleSignatures = new HashSet(); + + var eligibleSignatures = new HashSet(destination.getSize()); var deposits = new DepositRecord(); for (var i = 0; i < destination.getSize(); i++) { var destinationStack = destination.getItem(i); diff --git a/src/main/java/dev/chaws/automaticinventory/utilities/ItemUtilities.java b/src/main/java/dev/chaws/automaticinventory/utilities/ItemUtilities.java index d98b468..ab292a3 100644 --- a/src/main/java/dev/chaws/automaticinventory/utilities/ItemUtilities.java +++ b/src/main/java/dev/chaws/automaticinventory/utilities/ItemUtilities.java @@ -7,13 +7,9 @@ public class ItemUtilities { public static String getSignature(ItemStack stack) { var signature = stack.getType().name(); if (stack.getMaxStackSize() > 1) { - // getData will not actually be removed according to the spigot forums - //noinspection removal - var data = stack.getData(); + var data = stack.getItemMeta(); if (data != null) { - // getData will not actually be removed according to the spigot forums - //noinspection deprecation - signature += "." + String.valueOf(data.getData()); + signature += "." + String.valueOf(data); } } diff --git a/src/main/java/dev/chaws/automaticinventory/utilities/Level.java b/src/main/java/dev/chaws/automaticinventory/utilities/Level.java index 827d170..5bb7e11 100644 --- a/src/main/java/dev/chaws/automaticinventory/utilities/Level.java +++ b/src/main/java/dev/chaws/automaticinventory/utilities/Level.java @@ -1,11 +1,11 @@ package dev.chaws.automaticinventory.utilities; -import org.bukkit.ChatColor; +import net.kyori.adventure.text.format.NamedTextColor; public class Level { - public final static ChatColor Info = ChatColor.AQUA; - public final static ChatColor Instr = ChatColor.YELLOW; - public final static ChatColor Warn = ChatColor.GOLD; - public final static ChatColor Error = ChatColor.RED; - public final static ChatColor Success = ChatColor.GREEN; + public final static NamedTextColor Info = NamedTextColor.AQUA; + public final static NamedTextColor Instr = NamedTextColor.YELLOW; + public final static NamedTextColor Warn = NamedTextColor.GOLD; + public final static NamedTextColor Error = NamedTextColor.RED; + public final static NamedTextColor Success = NamedTextColor.GREEN; } diff --git a/src/main/java/dev/chaws/automaticinventory/utilities/Metrics.java b/src/main/java/dev/chaws/automaticinventory/utilities/Metrics.java index 02debac..6f47c7d 100644 --- a/src/main/java/dev/chaws/automaticinventory/utilities/Metrics.java +++ b/src/main/java/dev/chaws/automaticinventory/utilities/Metrics.java @@ -21,7 +21,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.lang.reflect.Method; -import java.net.URL; +import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.Callable; @@ -136,7 +136,7 @@ private void appendPlatformData(JsonObjectBuilder builder) { } private void appendServiceData(JsonObjectBuilder builder) { - builder.appendField("pluginVersion", plugin.getDescription().getVersion()); + builder.appendField("pluginVersion", plugin.getPluginMeta().getVersion()); } private int getPlayerAmount() { @@ -327,7 +327,7 @@ private void sendData(JsonObjectBuilder.JsonObject data) throws Exception { infoLogger.accept("Sent bStats metrics data: " + data.toString()); } String url = String.format(REPORT_URL, platform); - HttpsURLConnection connection = (HttpsURLConnection) new URL(url).openConnection(); + HttpsURLConnection connection = (HttpsURLConnection) URI.create(url).toURL().openConnection(); // Compress the data to save bandwidth byte[] compressedData = compress(data.toString()); connection.setRequestMethod("POST");