From 51c2da291a8400491fbd8e292fd9cced9981cf8e Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Tue, 22 Sep 2026 23:34:00 +0000 Subject: [PATCH] fix: resolve build warnings --- .github/scripts/install-local-dependencies.sh | 27 ++++++++++++++ .github/scripts/prepare-release.sh | 2 +- pom.xml | 35 ++++++++---------- .../advancedresearch/InventoryManager.java | 11 +++--- .../advancedresearch/ResearchEvents.java | 3 +- .../util/LegacyModelData.java | 36 +++++++++++++++++++ 6 files changed, 85 insertions(+), 29 deletions(-) create mode 100644 .github/scripts/install-local-dependencies.sh create mode 100644 src/main/java/net/tfminecraft/advancedresearch/util/LegacyModelData.java diff --git a/.github/scripts/install-local-dependencies.sh b/.github/scripts/install-local-dependencies.sh new file mode 100644 index 0000000..e4ddbdd --- /dev/null +++ b/.github/scripts/install-local-dependencies.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +set -euo pipefail +# Run from the repository root after downloading the pinned JARs. +# Hash-qualified versions prevent different private JARs sharing a Maven cache key. +sha256sum --check .github/dependencies.sha256 + +mvn -B --no-transfer-progress org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file \ + -Dfile="libs/ItemsAdder_3.5.0-r2.jar" -DgroupId="local" -DartifactId="LoneLibs" \ + -Dversion="3.5.0-tfmc-0116d714822b" -Dpackaging=jar -DgeneratePom=true "$@" +mvn -B --no-transfer-progress org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file \ + -Dfile="libs/json-simple-1.1.jar" -DgroupId="local" -DartifactId="json-simple" \ + -Dversion="1.1-tfmc-2d9484f4c649" -Dpackaging=jar -DgeneratePom=true "$@" +mvn -B --no-transfer-progress org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file \ + -Dfile="libs/gson-2.10.1.jar" -DgroupId="local" -DartifactId="gson" \ + -Dversion="2.10.1-tfmc-4241c14a7727" -Dpackaging=jar -DgeneratePom=true "$@" +mvn -B --no-transfer-progress org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file \ + -Dfile="libs/MMOCore-1.11.3.jar" -DgroupId="local" -DartifactId="MMOCore" \ + -Dversion="1.11.3-tfmc-d52cc0c734a9" -Dpackaging=jar -DgeneratePom=true "$@" +mvn -B --no-transfer-progress org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file \ + -Dfile="libs/MMOItems-6.10.jar" -DgroupId="local" -DartifactId="MMOItems" \ + -Dversion="6.10-tfmc-c84700df5942" -Dpackaging=jar -DgeneratePom=true "$@" +mvn -B --no-transfer-progress org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file \ + -Dfile="libs/MythicLib-1.7.jar" -DgroupId="local" -DartifactId="MythicLib" \ + -Dversion="1.6.1-tfmc-660ff2a6ec86" -Dpackaging=jar -DgeneratePom=true "$@" +mvn -B --no-transfer-progress org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file \ + -Dfile="libs/MythicMobs-5.8.0-SNAPSHOT.jar" -DgroupId="local" -DartifactId="MythicMobs" \ + -Dversion="5.8.0-tfmc-575aa30aee8e" -Dpackaging=jar -DgeneratePom=true "$@" diff --git a/.github/scripts/prepare-release.sh b/.github/scripts/prepare-release.sh index 95503b5..d34b764 100644 --- a/.github/scripts/prepare-release.sh +++ b/.github/scripts/prepare-release.sh @@ -10,4 +10,4 @@ curl --fail --location --silent --show-error --retry 3 -H "Authorization: Bearer curl --fail --location --silent --show-error --retry 3 -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github.raw+json" "https://api.github.com/repos/TF-Minecraft/ServerAssets/contents/jars/c84700df5942/MMOItems-6.10.jar?ref=$ref" > "libs/MMOItems-6.10.jar" curl --fail --location --silent --show-error --retry 3 -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github.raw+json" "https://api.github.com/repos/TF-Minecraft/ServerAssets/contents/jars/660ff2a6ec86/MythicLib-1.7.jar?ref=$ref" > "libs/MythicLib-1.7.jar" curl --fail --location --silent --show-error --retry 3 -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github.raw+json" "https://api.github.com/repos/TF-Minecraft/ServerAssets/contents/jars/575aa30aee8e/MythicMobs-5.8.0-SNAPSHOT.jar?ref=$ref" > "libs/MythicMobs-5.8.0-SNAPSHOT.jar" -sha256sum --check .github/dependencies.sha256 +bash .github/scripts/install-local-dependencies.sh "$@" diff --git a/pom.xml b/pom.xml index f991443..c7c7cb2 100644 --- a/pom.xml +++ b/pom.xml @@ -17,44 +17,38 @@ local LoneLibs - 3.5.0 - system - ${project.basedir}/libs/ItemsAdder_3.5.0-r2.jar + 3.5.0-tfmc-0116d714822b + provided local json-simple - 1.1 - system - ${project.basedir}/libs/json-simple-1.1.jar + 1.1-tfmc-2d9484f4c649 + provided local gson - 2.10.1 - system - ${project.basedir}/libs/gson-2.10.1.jar + 2.10.1-tfmc-4241c14a7727 + provided local MMOCore - 1.11.3 - system - ${project.basedir}/libs/MMOCore-1.11.3.jar + 1.11.3-tfmc-d52cc0c734a9 + provided local MMOItems - 6.10 - system - ${project.basedir}/libs/MMOItems-6.10.jar + 6.10-tfmc-c84700df5942 + provided local MythicLib - 1.6.1 - system - ${project.basedir}/libs/MythicLib-1.7.jar + 1.6.1-tfmc-660ff2a6ec86 + provided org.spigotmc @@ -65,9 +59,8 @@ local MythicMobs - 5.8.0 - system - ${project.basedir}/libs/MythicMobs-5.8.0-SNAPSHOT.jar + 5.8.0-tfmc-575aa30aee8e + provided diff --git a/src/main/java/net/tfminecraft/advancedresearch/InventoryManager.java b/src/main/java/net/tfminecraft/advancedresearch/InventoryManager.java index e46b689..e83aa6b 100644 --- a/src/main/java/net/tfminecraft/advancedresearch/InventoryManager.java +++ b/src/main/java/net/tfminecraft/advancedresearch/InventoryManager.java @@ -1,5 +1,7 @@ package net.tfminecraft.advancedresearch; +import net.tfminecraft.advancedresearch.util.LegacyModelData; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -28,7 +30,7 @@ public void MenuInventory(Player player, RStation rs) { if(re.getId().equalsIgnoreCase(e.split("\\.")[0])) { ItemStack eItem = new ItemStack(re.getMaterial(), 1); ItemMeta m = eItem.getItemMeta(); - m.setCustomModelData(re.getModelData()); + LegacyModelData.set(m, re.getModelData()); m.setDisplayName(re.getName()); List lore = new ArrayList(); for(String ce : rs.getCurrentElements()) { @@ -148,7 +150,7 @@ public void UpdateInventory(Inventory i, Player p, RStation rs) { if(re.getId().equalsIgnoreCase(e.split("\\.")[0])) { ItemStack eItem = new ItemStack(re.getMaterial(), 1); ItemMeta m = eItem.getItemMeta(); - m.setCustomModelData(re.getModelData()); + LegacyModelData.set(m, re.getModelData()); m.setDisplayName(re.getName()); List lore = new ArrayList(); for(String ce : rs.getCurrentElements()) { @@ -201,8 +203,7 @@ public ItemStack getItemsAdderItem(String path) { } @SuppressWarnings("deprecation") public ItemStack getMMOItem(String path) { - ItemManager itemManager = MMOItems.plugin.getItems(); - ItemStack item = itemManager.getMMOItem(MMOItems.plugin.getTypes().get(path.split("\\.")[1].toUpperCase()), path.split("\\.")[2].toUpperCase()).newBuilder().build(); //m.material.salt + ItemStack item = MMOItems.plugin.getMMOItem(MMOItems.plugin.getTypes().get(path.split("\\.")[1].toUpperCase()), path.split("\\.")[2].toUpperCase()).newBuilder().build(); //m.material.salt return item; } @@ -230,7 +231,7 @@ public void completeResearch(Inventory i, Player p, RStation rs, Boolean open) { if(re.getId().equalsIgnoreCase(e.split("\\.")[0])) { ItemStack eItem = new ItemStack(re.getMaterial(), 1); ItemMeta m = eItem.getItemMeta(); - m.setCustomModelData(re.getModelData()); + LegacyModelData.set(m, re.getModelData()); m.setDisplayName(re.getName()); List lore = new ArrayList(); for(String ce : rs.getCurrentElements()) { diff --git a/src/main/java/net/tfminecraft/advancedresearch/ResearchEvents.java b/src/main/java/net/tfminecraft/advancedresearch/ResearchEvents.java index f08567b..69133b5 100644 --- a/src/main/java/net/tfminecraft/advancedresearch/ResearchEvents.java +++ b/src/main/java/net/tfminecraft/advancedresearch/ResearchEvents.java @@ -188,8 +188,7 @@ private void giveResult(Player p, RStation rs) { } String type = rs.getResult().split("\\.")[0]; //v.emerald if(type.equalsIgnoreCase("m")) { - ItemManager itemManager = MMOItems.plugin.getItems(); - ItemStack item = itemManager.getMMOItem(MMOItems.plugin.getTypes().get(rs.getResult().split("\\.")[1].toUpperCase()), rs.getResult().split("\\.")[2].toUpperCase()).newBuilder().build(); //m.material.salt + ItemStack item = MMOItems.plugin.getMMOItem(MMOItems.plugin.getTypes().get(rs.getResult().split("\\.")[1].toUpperCase()), rs.getResult().split("\\.")[2].toUpperCase()).newBuilder().build(); //m.material.salt p.getInventory().addItem(item); } else { CustomStack stack = CustomStack.getInstance(rs.getResult().split("\\.")[1]); diff --git a/src/main/java/net/tfminecraft/advancedresearch/util/LegacyModelData.java b/src/main/java/net/tfminecraft/advancedresearch/util/LegacyModelData.java new file mode 100644 index 0000000..58de0eb --- /dev/null +++ b/src/main/java/net/tfminecraft/advancedresearch/util/LegacyModelData.java @@ -0,0 +1,36 @@ +package net.tfminecraft.advancedresearch.util; + +import java.util.List; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.components.CustomModelDataComponent; + +/** Preserves the integer model IDs used by existing configuration and resource packs. */ +public final class LegacyModelData { + private LegacyModelData() {} + + public static boolean has(ItemMeta meta) { + return !meta.getCustomModelDataComponent().getFloats().isEmpty(); + } + + public static int get(ItemMeta meta) { + List floats = meta.getCustomModelDataComponent().getFloats(); + if (floats.isEmpty()) { + throw new IllegalStateException("We don't have CustomModelData! Check hasCustomModelData first!"); + } + return floats.get(0).intValue(); + } + + public static void set(ItemMeta meta, Integer value) { + if (value == null) { + meta.setCustomModelDataComponent(null); + return; + } + CustomModelDataComponent component = meta.getCustomModelDataComponent(); + // The former integer setter replaced the entire component, not just its first float. + component.setFloats(List.of(value.floatValue())); + component.setFlags(List.of()); + component.setStrings(List.of()); + component.setColors(List.of()); + meta.setCustomModelDataComponent(component); + } +}