From e4c2adc8225a87e30681961f157d6d8c043ceb36 Mon Sep 17 00:00:00 2001
From: TheLonelyWolf <42873246+TheLonelyWolf1@users.noreply.github.com>
Date: Fri, 30 Jun 2023 17:31:54 +0200
Subject: [PATCH 1/2] Added ArmorTrim Option and other changes - Update Code to
newer VotingPlugin API - Update Spigot API to 1.20-R0.1-SNAPSHOT - Add
ArmorTrim Option for Item Settings
---
pom.xml | 2 +-
.../classresources/ItemCreation.java | 50 +++++++++++++++++--
.../placeholders/Placeholders.java | 4 +-
3 files changed, 49 insertions(+), 7 deletions(-)
diff --git a/pom.xml b/pom.xml
index 9509933..9a9eb72 100644
--- a/pom.xml
+++ b/pom.xml
@@ -117,7 +117,7 @@
org.spigotmc
spigot-api
- 1.19.3-R0.1-SNAPSHOT
+ 1.20-R0.1-SNAPSHOT
provided
diff --git a/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java b/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java
index ee54fa1..910d602 100644
--- a/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java
+++ b/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java
@@ -14,12 +14,16 @@ import org.bukkit.block.banner.PatternType;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.enchantments.Enchantment;
+import org.bukkit.enchantments.EnchantmentTarget;
import org.bukkit.enchantments.EnchantmentWrapper;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.*;
+import org.bukkit.inventory.meta.trim.ArmorTrim;
+import org.bukkit.inventory.meta.trim.TrimMaterial;
+import org.bukkit.inventory.meta.trim.TrimPattern;
import org.bukkit.map.MapCanvas;
import org.bukkit.map.MapRenderer;
import org.bukkit.map.MapView;
@@ -28,10 +32,7 @@ import org.bukkit.potion.PotionType;
import javax.swing.*;
import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.UUID;
+import java.util.*;
import java.util.stream.Collectors;
public class ItemCreation {
@@ -343,6 +344,31 @@ public class ItemCreation {
s = plugin.nbt.setNBT(s,key,itemSection.getString("nbt." + key));
}
}
+ // 1.20 Trim Feature for Player Armor
+ if(plugin.legacy.LOCAL_VERSION.greaterThanOrEqualTo(MinecraftVersions.v1_20)){
+ // trim:
+ if(itemSection.contains("trim")){
+ String trim = itemSection.getString("trim");
+ String[] trimList = trim.split("\\s");
+ if(trimList.length == 2){
+ String trimMaterialString = trimList[0].toLowerCase();
+ String trimPatternString = trimList[1].toLowerCase();
+
+ // Check if Material and Pattern are valid and the itemstack is an armor piece
+ if(isTrimMaterial(trimMaterialString) && isTrimPattern(trimPatternString) && isArmor(s)){
+
+ // Getting the correct Pattern and Material - Seems to be experimental this way
+ // Material and Pattern don't have a valueOf-function to get them the easier way.
+ TrimMaterial trimMaterial = Registry.TRIM_MATERIAL.get(Objects.requireNonNull(NamespacedKey.fromString("minecraft:" + trimMaterialString)));
+ TrimPattern trimPattern = Registry.TRIM_PATTERN.get(Objects.requireNonNull(NamespacedKey.fromString("minecraft:" + trimPatternString)));
+
+ ArmorMeta armorMeta = (ArmorMeta) s.getItemMeta();
+ armorMeta.setTrim(new ArmorTrim(trimMaterial, trimPattern));
+ s.setItemMeta(armorMeta);
+ }
+ }
+ }
+ }
if (itemSection.contains("stack")) {
//change the stack amount (placeholders accepted)
s.setAmount((int)Double.parseDouble(Objects.requireNonNull(plugin.tex.placeholders(panel,position,p,itemSection.getString("stack")))));
@@ -513,4 +539,20 @@ public class ItemCreation {
}
return true;
}
+
+ private boolean isTrimMaterial(String material){
+ List availableMaterial = Arrays.asList("AMETHYST",
+ "COPPER", "DIAMOND", "EMERALD", "GOLD", "IRON","LAPIS", "NETHERITE", "QUARTZ", "REDSTONE");
+ return availableMaterial.contains(material.toUpperCase());
+ }
+
+ private boolean isTrimPattern(String pattern){
+ List availablePattern = Arrays.asList("COAST",
+ "DUNE", "EYE", "HOST", "RAISER", "RIB","SENTRY", "SHAPER", "SILENCE", "SNOUT", "SPIRE", "TIDE","VEX", "WARD", "WAYFINDER", "WILD");
+ return availablePattern.contains(pattern.toUpperCase());
+ }
+
+ private boolean isArmor(ItemStack stack){
+ return EnchantmentTarget.ARMOR.includes(stack);
+ }
}
diff --git a/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java b/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java
index 629671c..df69be8 100644
--- a/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java
+++ b/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java
@@ -1,6 +1,6 @@
package me.rockyhawk.commandpanels.classresources.placeholders;
-import com.bencodez.votingplugin.user.UserManager;
+import com.bencodez.votingplugin.VotingPluginHooks;
import com.earth2me.essentials.Essentials;
import me.realized.tokenmanager.api.TokenManager;
import me.rockyhawk.commandpanels.CommandPanels;
@@ -378,7 +378,7 @@ public class Placeholders {
}
if (plugin.getServer().getPluginManager().isPluginEnabled("VotingPlugin")) {
if(identifier.equals("votingplugin-points")) {
- return String.valueOf(UserManager.getInstance().getVotingPluginUser(p).getPoints());
+ return String.valueOf(VotingPluginHooks.getInstance().getUserManager().getVotingPluginUser(p).getPoints());
}
}
//end nodes with PlaceHolders
From 8a176ed18b47c1fb58158ea13b691d6d285ff74f Mon Sep 17 00:00:00 2001
From: TheLonelyWolf <42873246+TheLonelyWolf1@users.noreply.github.com>
Date: Tue, 11 Jul 2023 18:13:48 +0200
Subject: [PATCH 2/2] Combine two if-statements to hopefully pass code checks
---
.../classresources/ItemCreation.java | 32 +++++++++----------
1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java b/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java
index 910d602..86da351 100644
--- a/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java
+++ b/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java
@@ -345,27 +345,25 @@ public class ItemCreation {
}
}
// 1.20 Trim Feature for Player Armor
- if(plugin.legacy.LOCAL_VERSION.greaterThanOrEqualTo(MinecraftVersions.v1_20)){
+ if(plugin.legacy.LOCAL_VERSION.greaterThanOrEqualTo(MinecraftVersions.v1_20) && itemSection.contains("trim")){
// trim:
- if(itemSection.contains("trim")){
- String trim = itemSection.getString("trim");
- String[] trimList = trim.split("\\s");
- if(trimList.length == 2){
- String trimMaterialString = trimList[0].toLowerCase();
- String trimPatternString = trimList[1].toLowerCase();
+ String trim = itemSection.getString("trim");
+ String[] trimList = trim.split("\\s");
+ if(trimList.length == 2){
+ String trimMaterialString = trimList[0].toLowerCase();
+ String trimPatternString = trimList[1].toLowerCase();
- // Check if Material and Pattern are valid and the itemstack is an armor piece
- if(isTrimMaterial(trimMaterialString) && isTrimPattern(trimPatternString) && isArmor(s)){
+ // Check if Material and Pattern are valid and the itemstack is an armor piece
+ if(isTrimMaterial(trimMaterialString) && isTrimPattern(trimPatternString) && isArmor(s)){
- // Getting the correct Pattern and Material - Seems to be experimental this way
- // Material and Pattern don't have a valueOf-function to get them the easier way.
- TrimMaterial trimMaterial = Registry.TRIM_MATERIAL.get(Objects.requireNonNull(NamespacedKey.fromString("minecraft:" + trimMaterialString)));
- TrimPattern trimPattern = Registry.TRIM_PATTERN.get(Objects.requireNonNull(NamespacedKey.fromString("minecraft:" + trimPatternString)));
+ // Getting the correct Pattern and Material - Seems to be experimental this way
+ // Material and Pattern don't have a valueOf-function to get them the easier way.
+ TrimMaterial trimMaterial = Registry.TRIM_MATERIAL.get(Objects.requireNonNull(NamespacedKey.fromString("minecraft:" + trimMaterialString)));
+ TrimPattern trimPattern = Registry.TRIM_PATTERN.get(Objects.requireNonNull(NamespacedKey.fromString("minecraft:" + trimPatternString)));
- ArmorMeta armorMeta = (ArmorMeta) s.getItemMeta();
- armorMeta.setTrim(new ArmorTrim(trimMaterial, trimPattern));
- s.setItemMeta(armorMeta);
- }
+ ArmorMeta armorMeta = (ArmorMeta) s.getItemMeta();
+ armorMeta.setTrim(new ArmorTrim(trimMaterial, trimPattern));
+ s.setItemMeta(armorMeta);
}
}
}