From b6890fa9bfc8125980c226f3d1d104bc0716dd61 Mon Sep 17 00:00:00 2001
From: PSYCHEER <42911029+PSYCHEER@users.noreply.github.com>
Date: Sat, 1 Feb 2025 18:49:50 +0100
Subject: [PATCH 1/7] 1.21.4 update + error resolve
---
VanillaCustomizer-core/pom.xml | 2 +-
.../nms/{Nms.java => NMS.java} | 1 -
VanillaCustomizer-jar/pom.xml | 5 ++
VanillaCustomizer-nms-v1_20_R3/pom.xml | 4 +-
VanillaCustomizer-nms-v1_21_1/pom.xml | 3 +-
VanillaCustomizer-nms-v1_21_3/pom.xml | 54 +++++++++++++++++++
.../nms/items/impl/v1_21_3.java | 48 +++++++++++++++++
pom.xml | 5 +-
8 files changed, 114 insertions(+), 8 deletions(-)
rename VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/nms/{Nms.java => NMS.java} (97%)
create mode 100644 VanillaCustomizer-nms-v1_21_3/pom.xml
create mode 100644 VanillaCustomizer-nms-v1_21_3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_3.java
diff --git a/VanillaCustomizer-core/pom.xml b/VanillaCustomizer-core/pom.xml
index 6a7ccf4..90404a9 100644
--- a/VanillaCustomizer-core/pom.xml
+++ b/VanillaCustomizer-core/pom.xml
@@ -64,7 +64,7 @@
org.spigotmc
- spigot
+ spigot-api
1.21.1-R0.1-SNAPSHOT
provided
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/nms/Nms.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/nms/NMS.java
similarity index 97%
rename from VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/nms/Nms.java
rename to VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/nms/NMS.java
index 006943d..f1e0a67 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/nms/Nms.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/nms/NMS.java
@@ -1,7 +1,6 @@
package dev.lone.vanillacustomizer.nms;
import org.jetbrains.annotations.Nullable;
-import dev.lone.LoneLibs.nbt.nbtapi.utils.MinecraftVersion;
import dev.lone.vanillacustomizer.Main;
import lonelibs.dev.lone.fastnbt.nms.Version;
import org.bukkit.Bukkit;
diff --git a/VanillaCustomizer-jar/pom.xml b/VanillaCustomizer-jar/pom.xml
index e128c84..2242ca9 100644
--- a/VanillaCustomizer-jar/pom.xml
+++ b/VanillaCustomizer-jar/pom.xml
@@ -85,6 +85,11 @@
1.0
+
+ dev.lone
+ VanillaCustomizer-nms-v1_21_3
+ 1.0
+
dev.lone
VanillaCustomizer-nms-v1_21_1
diff --git a/VanillaCustomizer-nms-v1_20_R3/pom.xml b/VanillaCustomizer-nms-v1_20_R3/pom.xml
index 2d9b9e7..6294285 100644
--- a/VanillaCustomizer-nms-v1_20_R3/pom.xml
+++ b/VanillaCustomizer-nms-v1_20_R3/pom.xml
@@ -22,7 +22,7 @@
ca.bkaw
paper-nms-maven-plugin
- 1.3.2
+ 1.4.5
process-classes
@@ -40,7 +40,7 @@
ca.bkaw
paper-nms
- 1.20.3-SNAPSHOT
+ 1.20.4-SNAPSHOT
provided
diff --git a/VanillaCustomizer-nms-v1_21_1/pom.xml b/VanillaCustomizer-nms-v1_21_1/pom.xml
index 023be91..22cad87 100644
--- a/VanillaCustomizer-nms-v1_21_1/pom.xml
+++ b/VanillaCustomizer-nms-v1_21_1/pom.xml
@@ -16,13 +16,12 @@
21
-
ca.bkaw
paper-nms-maven-plugin
- 1.4.4
+ 1.4.5
process-classes
diff --git a/VanillaCustomizer-nms-v1_21_3/pom.xml b/VanillaCustomizer-nms-v1_21_3/pom.xml
new file mode 100644
index 0000000..6fc900e
--- /dev/null
+++ b/VanillaCustomizer-nms-v1_21_3/pom.xml
@@ -0,0 +1,54 @@
+
+
+
+ VanillaCustomizer
+ dev.lone
+ 1.0
+
+ 4.0.0
+
+ VanillaCustomizer-nms-v1_21_3
+
+
+ 21
+ 21
+
+
+
+
+
+ ca.bkaw
+ paper-nms-maven-plugin
+ 1.4.5
+
+
+ process-classes
+
+ remap
+
+
+
+
+
+
+
+
+
+
+ ca.bkaw
+ paper-nms
+ 1.21.3-SNAPSHOT
+ provided
+
+
+
+ dev.lone
+ VanillaCustomizer-core
+ 1.0
+ provided
+
+
+
+
\ No newline at end of file
diff --git a/VanillaCustomizer-nms-v1_21_3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_3.java b/VanillaCustomizer-nms-v1_21_3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_3.java
new file mode 100644
index 0000000..877a976
--- /dev/null
+++ b/VanillaCustomizer-nms-v1_21_3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_3.java
@@ -0,0 +1,48 @@
+package dev.lone.vanillacustomizer.nms.items.impl;
+
+import dev.lone.vanillacustomizer.nms.items.IItemsNms;
+import dev.lone.vanillacustomizer.nms.items.Rarity;
+import net.minecraft.core.component.DataComponents;
+import net.minecraft.world.food.FoodProperties;
+import net.minecraft.world.level.block.Block;
+import org.bukkit.craftbukkit.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.util.CraftMagicNumbers;
+import org.bukkit.inventory.ItemStack;
+
+@SuppressWarnings("unused")
+public class v1_21_3 implements IItemsNms
+{
+ @Override
+ public Rarity getRarity(ItemStack bukkitItem)
+ {
+ net.minecraft.world.item.ItemStack item = CraftItemStack.asNMSCopy(bukkitItem);
+ return Rarity.values()[item.getRarity().ordinal()];
+ }
+
+ @Override
+ public float getDestroySpeed(ItemStack bukkitItem)
+ {
+ Block block = CraftMagicNumbers.getBlock(bukkitItem.getType());
+ return block.defaultBlockState().destroySpeed;
+ }
+
+ @Override
+ public int getNutrition(ItemStack bukkitItem)
+ {
+ net.minecraft.world.item.ItemStack itemStack = CraftItemStack.asNMSCopy(bukkitItem);
+ FoodProperties foodProperties = itemStack.get(DataComponents.FOOD);
+ if(foodProperties != null)
+ return foodProperties.nutrition();
+ return 0;
+ }
+
+ @Override
+ public float getSaturation(ItemStack bukkitItem)
+ {
+ net.minecraft.world.item.ItemStack itemStack = CraftItemStack.asNMSCopy(bukkitItem);
+ FoodProperties foodProperties = itemStack.get(DataComponents.FOOD);
+ if(foodProperties != null)
+ return foodProperties.saturation();
+ return 0;
+ }
+}
diff --git a/pom.xml b/pom.xml
index 524f376..ebdb2af 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,12 +16,13 @@
UTF-8
16
16
- C:/Progetti/Minecraft/Spigot/_jars
+ E:/GitHub/Libs
VanillaCustomizer-core
VanillaCustomizer-jar
+ VanillaCustomizer-nms-v1_21_3
VanillaCustomizer-nms-v1_21_1
VanillaCustomizer-nms-v1_20_6
VanillaCustomizer-nms-v1_20_R3
@@ -46,7 +47,7 @@
org.apache.maven.extensions
maven-build-cache-extension
- 1.0.1-SNAPSHOT-unofficial-1.0.0
+ 1.2.0
co.leantechniques
From ab6c534050c7c04494b4f8a289dfb31ccc01d8a1 Mon Sep 17 00:00:00 2001
From: PSYCHEER <42911029+PSYCHEER@users.noreply.github.com>
Date: Sun, 16 Feb 2025 12:49:55 +0100
Subject: [PATCH 2/7] 1.21.4 NMS
Properly tested 1.21.4 NMS for VanillaCustomizer, working on production.
---
VanillaCustomizer-jar/pom.xml | 5 ++
VanillaCustomizer-nms-v1_21_4/pom.xml | 54 +++++++++++++++++++
.../nms/items/impl/v1_21_4.java | 48 +++++++++++++++++
pom.xml | 1 +
4 files changed, 108 insertions(+)
create mode 100644 VanillaCustomizer-nms-v1_21_4/pom.xml
create mode 100644 VanillaCustomizer-nms-v1_21_4/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_4.java
diff --git a/VanillaCustomizer-jar/pom.xml b/VanillaCustomizer-jar/pom.xml
index 2242ca9..b9bc687 100644
--- a/VanillaCustomizer-jar/pom.xml
+++ b/VanillaCustomizer-jar/pom.xml
@@ -85,6 +85,11 @@
1.0
+
+ dev.lone
+ VanillaCustomizer-nms-v1_21_4
+ 1.0
+
dev.lone
VanillaCustomizer-nms-v1_21_3
diff --git a/VanillaCustomizer-nms-v1_21_4/pom.xml b/VanillaCustomizer-nms-v1_21_4/pom.xml
new file mode 100644
index 0000000..2cc8705
--- /dev/null
+++ b/VanillaCustomizer-nms-v1_21_4/pom.xml
@@ -0,0 +1,54 @@
+
+
+
+ VanillaCustomizer
+ dev.lone
+ 1.0
+
+ 4.0.0
+
+ VanillaCustomizer-nms-v1_21_4
+
+
+ 21
+ 21
+
+
+
+
+
+ ca.bkaw
+ paper-nms-maven-plugin
+ 1.4.5
+
+
+ process-classes
+
+ remap
+
+
+
+
+
+
+
+
+
+
+ ca.bkaw
+ paper-nms
+ 1.21.4-SNAPSHOT
+ provided
+
+
+
+ dev.lone
+ VanillaCustomizer-core
+ 1.0
+ provided
+
+
+
+
\ No newline at end of file
diff --git a/VanillaCustomizer-nms-v1_21_4/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_4.java b/VanillaCustomizer-nms-v1_21_4/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_4.java
new file mode 100644
index 0000000..894bf66
--- /dev/null
+++ b/VanillaCustomizer-nms-v1_21_4/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_4.java
@@ -0,0 +1,48 @@
+package dev.lone.vanillacustomizer.nms.items.impl;
+
+import dev.lone.vanillacustomizer.nms.items.IItemsNms;
+import dev.lone.vanillacustomizer.nms.items.Rarity;
+import net.minecraft.core.component.DataComponents;
+import net.minecraft.world.food.FoodProperties;
+import net.minecraft.world.level.block.Block;
+import org.bukkit.craftbukkit.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.util.CraftMagicNumbers;
+import org.bukkit.inventory.ItemStack;
+
+@SuppressWarnings("unused")
+public class v1_21_4 implements IItemsNms
+{
+ @Override
+ public Rarity getRarity(ItemStack bukkitItem)
+ {
+ net.minecraft.world.item.ItemStack item = CraftItemStack.asNMSCopy(bukkitItem);
+ return Rarity.values()[item.getRarity().ordinal()];
+ }
+
+ @Override
+ public float getDestroySpeed(ItemStack bukkitItem)
+ {
+ Block block = CraftMagicNumbers.getBlock(bukkitItem.getType());
+ return block.defaultBlockState().destroySpeed;
+ }
+
+ @Override
+ public int getNutrition(ItemStack bukkitItem)
+ {
+ net.minecraft.world.item.ItemStack itemStack = CraftItemStack.asNMSCopy(bukkitItem);
+ FoodProperties foodProperties = itemStack.get(DataComponents.FOOD);
+ if(foodProperties != null)
+ return foodProperties.nutrition();
+ return 0;
+ }
+
+ @Override
+ public float getSaturation(ItemStack bukkitItem)
+ {
+ net.minecraft.world.item.ItemStack itemStack = CraftItemStack.asNMSCopy(bukkitItem);
+ FoodProperties foodProperties = itemStack.get(DataComponents.FOOD);
+ if(foodProperties != null)
+ return foodProperties.saturation();
+ return 0;
+ }
+}
diff --git a/pom.xml b/pom.xml
index ebdb2af..5ed1e41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,7 @@
VanillaCustomizer-core
VanillaCustomizer-jar
+ VanillaCustomizer-nms-v1_21_4
VanillaCustomizer-nms-v1_21_3
VanillaCustomizer-nms-v1_21_1
VanillaCustomizer-nms-v1_20_6
From c05f331e732546d52aa72582047a6913b4412caf Mon Sep 17 00:00:00 2001
From: PSYCHEER <42911029+PSYCHEER@users.noreply.github.com>
Date: Sun, 16 Feb 2025 13:55:48 +0100
Subject: [PATCH 3/7] Deprecation fix and aliases
New aliases for main command
vcustomizer
vc
as vanillacustomizer for reload is a bit too long imho
---
.../dev/lone/vanillacustomizer/customization/Customization.java | 2 +-
VanillaCustomizer-core/src/main/resources/plugin.yml | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/Customization.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/Customization.java
index 127a550..efc9af3 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/Customization.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/Customization.java
@@ -54,7 +54,7 @@ boolean matchesAll(ChangeSession session)
for (String wildcard : ignoreInventoriesByTitle)
{
- if (FilenameUtils.wildcardMatch(openInventory.getTitle(), wildcard))
+ if (FilenameUtils.wildcardMatch(openInventory.getTopInventory().getType().name(), wildcard))
return false;
}
}
diff --git a/VanillaCustomizer-core/src/main/resources/plugin.yml b/VanillaCustomizer-core/src/main/resources/plugin.yml
index fdf2e17..236cfd6 100644
--- a/VanillaCustomizer-core/src/main/resources/plugin.yml
+++ b/VanillaCustomizer-core/src/main/resources/plugin.yml
@@ -4,6 +4,7 @@ main: dev.lone.vanillacustomizer.Main
api-version: 1.13
commands:
vanillacustomizer:
+ aliases: [vcustomizer, vc]
description: Main admin plugin command
usage: /
permission: "vanillacustomizer.admin"
From cf708a3b1b3c4ed4446e70da15206d8481c7dbb3 Mon Sep 17 00:00:00 2001
From: PSYCHEER <42911029+PSYCHEER@users.noreply.github.com>
Date: Sun, 16 Feb 2025 15:22:38 +0100
Subject: [PATCH 4/7] Modern color serialization
---
.../dev/lone/vanillacustomizer/Customizations.java | 11 +++++++----
.../customization/changes/AttributesRemove.java | 5 -----
2 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Customizations.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Customizations.java
index 9e8f28e..6c6f66d 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Customizations.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Customizations.java
@@ -3,6 +3,7 @@
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import dev.lone.vanillacustomizer.exception.InvalidCustomizationPropertyException;
+import org.bukkit.GameMode;
import org.jetbrains.annotations.Nullable;
import dev.lone.vanillacustomizer.api.VanillaCustomizerApi;
import dev.lone.vanillacustomizer.commands.registered.MainCommand;
@@ -13,7 +14,6 @@
import dev.lone.vanillacustomizer.nms.items.Rarity;
import dev.lone.vanillacustomizer.utils.*;
import org.apache.commons.io.FileUtils;
-import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.attribute.Attribute;
@@ -24,6 +24,9 @@
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
+import net.kyori.adventure.text.format.TextColor;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import java.io.File;
import java.util.*;
@@ -480,7 +483,7 @@ private void throwInvalidPropertyValue(String name, String value)
public void handle(ItemStack itemStack, Player player)
{
- if (itemStack == null || itemStack.getType() == Material.AIR)
+ if (itemStack == null || itemStack.getType() == Material.AIR || player.getGameMode() == GameMode.CREATIVE)
return;
boolean trackChanges = MainCommand.hasDebugTag(player);
@@ -501,9 +504,9 @@ public void handle(ItemStack itemStack, Player player)
if(trackChanges && session.hasChanged())
{
// TODO make it configurable
- LoreInsert.putLine(session, 0, ChatColor.GOLD + SmallCaps.apply("VANILLACUSTOMIZER"));
+ LoreInsert.putLine(session, 0, LegacyComponentSerializer.legacySection().serialize(Component.text(SmallCaps.apply("VANILLACUSTOMIZER")).color(TextColor.color(0xFFAA00))));
//noinspection DataFlowIssue
- if(session.refreshMeta().getLore().size() > 1)
+ if(session.refreshMeta().getPersistentDataContainer().getKeys().size() > 1)
LoreInsert.putLine(session, 1, " ");
}
}
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/AttributesRemove.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/AttributesRemove.java
index 5517c7e..9624f8c 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/AttributesRemove.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/AttributesRemove.java
@@ -5,11 +5,6 @@
import dev.lone.vanillacustomizer.ChangeSession;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeModifier;
-import org.bukkit.inventory.EquipmentSlot;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.UUID;
@Deprecated //TODO implement this shit
public class AttributesRemove implements IChange
From de9a5d2ea2e0884ee0a5b9596309d60eb23cb7df Mon Sep 17 00:00:00 2001
From: PSYCHEER <42911029+PSYCHEER@users.noreply.github.com>
Date: Sun, 16 Feb 2025 16:52:45 +0100
Subject: [PATCH 5/7] Fixed conflict
[eco] Exception in packet listener com.willfp.eco.internal.spigot.proxy.v1_21_4.common.packet.display.PacketWindowItems for packet net.minecraft.network.protocol.game.ClientboundContainerSetContentPacket! [15:52:44 WARN]: java.lang.ClassCastException: class java.lang.String cannot be cast to class net.minecraft.network.chat.Component (java.lang.String is in module java.base of loader 'bootstrap'; net.minecraft.network.chat.Component is in unnamed module of loader java.net.URLClassLoader @5e91993f)
...
---
VanillaCustomizer-core/pom.xml | 6 ++++++
.../customization/changes/LoreInsert.java | 8 ++++----
.../java/dev/lone/vanillacustomizer/utils/ConfigFile.java | 6 +++++-
3 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/VanillaCustomizer-core/pom.xml b/VanillaCustomizer-core/pom.xml
index 90404a9..c266b4a 100644
--- a/VanillaCustomizer-core/pom.xml
+++ b/VanillaCustomizer-core/pom.xml
@@ -90,6 +90,12 @@
24.0.0
compile
+
+ ca.bkaw
+ paper-nms
+ 1.21.4-SNAPSHOT
+ compile
+
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsert.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsert.java
index 47835d9..d8becb6 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsert.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsert.java
@@ -45,14 +45,14 @@ public void apply(ChangeSession session)
int i = index;
for (String line : lines)
{
- loreNMS.add(i, Utils.legacyToNMS(IChange.replacePlaceholders(session, line)));
+ loreNMS.add(i, Utils.jsonToNMS(IChange.replacePlaceholders(session, line)));
i++;
}
}
else // If it's out of bounds I just append at the end.
{
for (String line : lines)
- loreNMS.add(Comp.legacyToJson(IChange.replacePlaceholders(session, line)));
+ loreNMS.add(Utils.jsonToNMS(IChange.replacePlaceholders(session, line)));
}
}
@@ -101,11 +101,11 @@ public static void putLine(ChangeSession session, int index, String line)
if (loreNMS == null)
{
loreNMS = new ArrayList<>();
- loreNMS.add(Utils.legacyToNMS(line));
+ loreNMS.add(Utils.jsonToNMS(line));
}
else
{
- loreNMS.add(index, Utils.legacyToNMS(line));
+ loreNMS.add(index, Utils.jsonToNMS(line));
}
nbt.setLore(loreNMS);
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/ConfigFile.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/ConfigFile.java
index 339314a..bde9aed 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/ConfigFile.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/ConfigFile.java
@@ -2,7 +2,6 @@
import org.jetbrains.annotations.NotNull;
import dev.lone.vanillacustomizer.Main;
-import dev.lone.vanillacustomizer.nms.NMS;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
@@ -30,6 +29,11 @@
/**
* 2020-01-08 LoneDev
*/
+
+/**
+ * 2025-02-16 PSYCHEER
+ */
+
@SuppressWarnings("unused")
public class ConfigFile
{
From 5c7b1d310d9c1750558a7279031e9566fdc6e22b Mon Sep 17 00:00:00 2001
From: PuppyTransGirl <74014559+PuppyTransGirl@users.noreply.github.com>
Date: Mon, 5 Jan 2026 22:03:26 +0100
Subject: [PATCH 6/7] Change pretty much everything
---
VanillaCustomizer-core/pom.xml | 107 ++++++-
.../lone/vanillacustomizer/ChangeSession.java | 19 +-
.../vanillacustomizer/Customizations.java | 36 +--
.../java/dev/lone/vanillacustomizer/Main.java | 11 +-
.../annotations/Expensive.java | 14 +
.../commands/registered/MainCommand.java | 15 +-
.../customization/changes/LoreInsert.java | 97 ++----
.../customization/changes/LoreInsertJson.java | 57 +---
.../customization/changes/LoreSet.java | 42 +--
.../customization/changes/LoreSetJson.java | 36 +--
.../customization/changes/ProtectNbtData.java | 8 +-
.../customization/changes/Renamer.java | 23 +-
.../customization/changes/RenamerJson.java | 24 +-
.../changes/ReplaceCustomModelData.java | 6 +-
.../changes/ReplaceWordDisplayName.java | 23 +-
.../changes/ReplaceWordLore.java | 51 +---
.../matchers/RuleNbtMatcher.java | 6 +-
.../dev/lone/vanillacustomizer/nms/NMS.java | 14 +-
.../vanillacustomizer/utils/ColorLog.java | 178 +++++++++++
.../lone/vanillacustomizer/utils/Comp.java | 277 ++++++++++++++++++
.../vanillacustomizer/utils/ConfigFile.java | 9 +-
.../dev/lone/vanillacustomizer/utils/Msg.java | 125 ++++++++
.../lone/vanillacustomizer/utils/Utils.java | 20 +-
VanillaCustomizer-jar/pom.xml | 27 +-
VanillaCustomizer-nms-v1_17_R1/.gitignore | 113 -------
VanillaCustomizer-nms-v1_18_R2/.gitignore | 113 -------
VanillaCustomizer-nms-v1_19_R3/.gitignore | 113 -------
VanillaCustomizer-nms-v1_20_6/pom.xml | 2 +-
VanillaCustomizer-nms-v1_20_R1/.gitignore | 113 -------
VanillaCustomizer-nms-v1_20_R2/.gitignore | 113 -------
VanillaCustomizer-nms-v1_20_R2/pom.xml | 55 ----
.../nms/items/impl/v1_20_R2.java | 48 ---
VanillaCustomizer-nms-v1_20_R3/pom.xml | 55 ----
.../nms/items/impl/v1_20_R3.java | 48 ---
VanillaCustomizer-nms-v1_21_1/pom.xml | 2 +-
VanillaCustomizer-nms-v1_21_10/pom.xml | 54 ++++
.../nms/items/impl/v1_21_10.java | 48 +++
VanillaCustomizer-nms-v1_21_11/pom.xml | 54 ++++
.../nms/items/impl/v1_21_11.java | 48 +++
VanillaCustomizer-nms-v1_21_3/pom.xml | 2 +-
VanillaCustomizer-nms-v1_21_4/pom.xml | 2 +-
.../pom.xml | 11 +-
.../nms/items/impl/v1_21_5.java | 28 +-
.../pom.xml | 11 +-
.../nms/items/impl/v1_21_6.java | 28 +-
.../pom.xml | 11 +-
.../nms/items/impl/v1_21_7.java | 28 +-
.../pom.xml | 11 +-
.../nms/items/impl/v1_21_8.java | 28 +-
pom.xml | 28 +-
50 files changed, 1144 insertions(+), 1248 deletions(-)
create mode 100644 VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/annotations/Expensive.java
create mode 100644 VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/ColorLog.java
create mode 100644 VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Comp.java
create mode 100644 VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Msg.java
delete mode 100644 VanillaCustomizer-nms-v1_17_R1/.gitignore
delete mode 100644 VanillaCustomizer-nms-v1_18_R2/.gitignore
delete mode 100644 VanillaCustomizer-nms-v1_19_R3/.gitignore
delete mode 100644 VanillaCustomizer-nms-v1_20_R1/.gitignore
delete mode 100644 VanillaCustomizer-nms-v1_20_R2/.gitignore
delete mode 100644 VanillaCustomizer-nms-v1_20_R2/pom.xml
delete mode 100644 VanillaCustomizer-nms-v1_20_R2/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R2.java
delete mode 100644 VanillaCustomizer-nms-v1_20_R3/pom.xml
delete mode 100644 VanillaCustomizer-nms-v1_20_R3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R3.java
create mode 100644 VanillaCustomizer-nms-v1_21_10/pom.xml
create mode 100644 VanillaCustomizer-nms-v1_21_10/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_10.java
create mode 100644 VanillaCustomizer-nms-v1_21_11/pom.xml
create mode 100644 VanillaCustomizer-nms-v1_21_11/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_11.java
rename {VanillaCustomizer-nms-v1_18_R2 => VanillaCustomizer-nms-v1_21_5}/pom.xml (84%)
rename VanillaCustomizer-nms-v1_19_R3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_19_R3.java => VanillaCustomizer-nms-v1_21_5/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_5.java (55%)
rename {VanillaCustomizer-nms-v1_17_R1 => VanillaCustomizer-nms-v1_21_6}/pom.xml (84%)
rename VanillaCustomizer-nms-v1_18_R2/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_18_R2.java => VanillaCustomizer-nms-v1_21_6/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_6.java (55%)
rename {VanillaCustomizer-nms-v1_19_R3 => VanillaCustomizer-nms-v1_21_7}/pom.xml (84%)
rename VanillaCustomizer-nms-v1_17_R1/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_17_R1.java => VanillaCustomizer-nms-v1_21_7/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_7.java (55%)
rename {VanillaCustomizer-nms-v1_20_R1 => VanillaCustomizer-nms-v1_21_8}/pom.xml (84%)
rename VanillaCustomizer-nms-v1_20_R1/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R1.java => VanillaCustomizer-nms-v1_21_8/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_8.java (55%)
diff --git a/VanillaCustomizer-core/pom.xml b/VanillaCustomizer-core/pom.xml
index c266b4a..18eb6ed 100644
--- a/VanillaCustomizer-core/pom.xml
+++ b/VanillaCustomizer-core/pom.xml
@@ -11,6 +11,50 @@
VanillaCustomizer-core
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.6.1
+
+
+ package
+
+ shade
+
+
+
+
+ *:*
+
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+
+
+
+
+
+ beer.devs.fastnbt.
+ dev.lone.vanillacustomizer.libs.beer.devs.fastnbt.
+
+
+ fr.mrmicky.fastinv
+ dev.lone.vanillacustomizer.libs.fr.mrmicky.fastinv
+
+
+ de.tr7zw.changeme.nbtapi
+ dev.lone.vanillacustomizer.libs.de.tr7zw.changeme.nbtapi
+
+
+
+
+
+
+
+
+
@@ -49,6 +93,12 @@
+
+ org.fusesource.jansi
+ jansi
+ 2.4.2
+ provided
+
net.md-5
@@ -56,12 +106,6 @@
1.20-R0.2
provided
-
- io.papermc.paper
- paper-api
- 1.21.1-R0.1-SNAPSHOT
- provided
-
org.spigotmc
spigot-api
@@ -70,13 +114,11 @@
- dev.lone.LoneLibs
- LoneLibs
- 1.0
- system
- ${jars_libs_folder}/LoneLibs.jar
+ beer.devs
+ FastNbt-jar
+ 1.4.15
+ compile
-
libs
ProtocolLib
@@ -94,7 +136,46 @@
ca.bkaw
paper-nms
1.21.4-SNAPSHOT
- compile
+ provided
+
+
+
+ fr.mrmicky
+ fastinv
+ 3.1.2
+
+
+
+ de.tr7zw
+ item-nbt-api
+ 2.15.5
+
+
+
+ net.kyori
+ adventure-api
+ 4.26.1
+ provided
+
+
+ net.kyori
+ adventure-text-serializer-gson
+ 4.15.0
+
+
+ net.kyori
+ adventure-text-serializer-gson-legacy-impl
+ 4.15.0
+
+
+ net.kyori
+ adventure-platform-bukkit
+ 4.3.2
+
+
+ net.kyori
+ adventure-text-minimessage
+ 4.15.0
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/ChangeSession.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/ChangeSession.java
index 279f1fa..62be778 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/ChangeSession.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/ChangeSession.java
@@ -1,13 +1,11 @@
package dev.lone.vanillacustomizer;
-import dev.lone.LoneLibs.nbt.nbtapi.NBTItem;
-import org.jetbrains.annotations.Nullable;
+import beer.devs.fastnbt.nms.nbt.NItem;
import dev.lone.vanillacustomizer.customization.rules.RuleVanillaItemMatcher;
-import dev.lone.vanillacustomizer.nms.NMS;
-import lonelibs.dev.lone.fastnbt.nms.nbt.NItem;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
+import org.jetbrains.annotations.Nullable;
// TODO: find a better name for this
public class ChangeSession
@@ -18,7 +16,6 @@ public class ChangeSession
public ItemMeta meta;
- public NBTItem nbtLegacy;
public NItem nbt;
public final boolean isVanilla;
@@ -52,17 +49,7 @@ public ItemMeta refreshMeta()
private void refreshNBT()
{
- nbtLegacy = new NBTItem(item);
- if(NMS.is_v1_1_20_5_or_greater)
- nbt = new NItem(item);
- }
-
- public NBTItem nbtLegacy()
- {
- if(nbtLegacy != null)
- return nbtLegacy;
- refreshNBT();
- return nbtLegacy;
+ nbt = new NItem(item);
}
public NItem nbt()
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Customizations.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Customizations.java
index 6c6f66d..9181d6d 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Customizations.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Customizations.java
@@ -2,18 +2,20 @@
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
-import dev.lone.vanillacustomizer.exception.InvalidCustomizationPropertyException;
-import org.bukkit.GameMode;
-import org.jetbrains.annotations.Nullable;
import dev.lone.vanillacustomizer.api.VanillaCustomizerApi;
import dev.lone.vanillacustomizer.commands.registered.MainCommand;
-import dev.lone.vanillacustomizer.customization.changes.*;
import dev.lone.vanillacustomizer.customization.Customization;
+import dev.lone.vanillacustomizer.customization.changes.*;
import dev.lone.vanillacustomizer.customization.matchers.RuleNbtMatcher;
import dev.lone.vanillacustomizer.customization.rules.*;
+import dev.lone.vanillacustomizer.exception.InvalidCustomizationPropertyException;
import dev.lone.vanillacustomizer.nms.items.Rarity;
import dev.lone.vanillacustomizer.utils.*;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.TextColor;
+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.apache.commons.io.FileUtils;
+import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.attribute.Attribute;
@@ -24,9 +26,7 @@
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
-import net.kyori.adventure.text.format.TextColor;
-import net.kyori.adventure.text.Component;
-import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
+import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.util.*;
@@ -68,7 +68,7 @@ public void load()
ConfigurationSection rulesSection = section.getConfigurationSection("rules");
if (rulesSection == null)
{
- Main.msg.error("Error: Customization '" + key + "' missing 'rules'. File: " + config.getPartialFilePath());
+ Msg.error("Error: Customization '" + key + "' missing 'rules'. File: " + config.getPartialFilePath());
continue;
}
@@ -84,7 +84,7 @@ public void load()
RuleMaterialWildcards rule = new RuleMaterialWildcards();
for (String noMatch : rule.init(materialWildcards))
{
- Main.msg.warn("Warning: 'material_wildcards' -> '" + noMatch + "' of '" + key + "' has matched 0 items. File: " + config.getPartialFilePath());
+ Msg.warn("Warning: 'material_wildcards' -> '" + noMatch + "' of '" + key + "' has matched 0 items. File: " + config.getPartialFilePath());
}
customization.addRule(rule);
}
@@ -95,7 +95,7 @@ public void load()
if (material == null)
{
throwInvalidPropertyValue("material", matStr);
-// Main.msg.error("Error: Customization '" + key + "' has invalid 'material'. File: " + config.getPartialFilePath());
+// Msg.error("Error: Customization '" + key + "' has invalid 'material'. File: " + config.getPartialFilePath());
break;
}
@@ -111,7 +111,7 @@ public void load()
if (material == null)
{
throwInvalidPropertyValue("material", matStr);
-// Main.msg.error("Error: Customization '" + key + "' has invalid 'material'. File: " + config.getPartialFilePath());
+// Msg.error("Error: Customization '" + key + "' has invalid 'material'. File: " + config.getPartialFilePath());
}
else
{
@@ -183,18 +183,18 @@ public void load()
{
if(ex instanceof InvalidCustomizationPropertyException)
{
- Main.msg.error("Error loading customization '" + key + "'. File: " + config.getPartialFilePath());
- Main.msg.error(ex.getMessage());
+ Msg.error("Error loading customization '" + key + "'. File: " + config.getPartialFilePath());
+ Msg.error(ex.getMessage());
}
else
- Main.msg.error("Error loading customization '" + key + "'. File: " + config.getPartialFilePath(), ex);
+ Msg.error("Error loading customization '" + key + "'. File: " + config.getPartialFilePath(), ex);
}
}
ConfigurationSection changesSection = section.getConfigurationSection("changes");
if (changesSection == null)
{
- Main.msg.error("Error: Customization '" + key + "' missing 'changes'. File: " + config.getPartialFilePath());
+ Msg.error("Error: Customization '" + key + "' missing 'changes'. File: " + config.getPartialFilePath());
continue;
}
@@ -436,11 +436,11 @@ else if (tmp.length == 3)
{
if(ex instanceof InvalidCustomizationPropertyException)
{
- Main.msg.error("Error loading customization '" + key + "'. File: " + config.getPartialFilePath());
- Main.msg.error(ex.getMessage());
+ Msg.error("Error loading customization '" + key + "'. File: " + config.getPartialFilePath());
+ Msg.error(ex.getMessage());
}
else
- Main.msg.error("Error loading customization '" + key + "'. File: " + config.getPartialFilePath(), ex);
+ Msg.error("Error loading customization '" + key + "'. File: " + config.getPartialFilePath(), ex);
}
}
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Main.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Main.java
index e779062..319215b 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Main.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/Main.java
@@ -4,7 +4,7 @@
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.wrappers.EnumWrappers;
import com.comphenix.protocol.wrappers.Pair;
-import dev.lone.LoneLibs.chat.Msg;
+import de.tr7zw.changeme.nbtapi.NBT;
import dev.lone.vanillacustomizer.commands.Commands;
import dev.lone.vanillacustomizer.nms.items.ItemsNms;
import dev.lone.vanillacustomizer.utils.Packets;
@@ -18,6 +18,7 @@
import org.bukkit.inventory.MerchantRecipe;
import org.bukkit.plugin.java.JavaPlugin;
+import javax.sound.midi.Receiver;
import java.util.List;
public final class Main extends JavaPlugin implements Listener
@@ -29,7 +30,7 @@ public final class Main extends JavaPlugin implements Listener
//DO NOT SET AS "final" OR SPIGOT.MC won't replace it.
@SuppressWarnings("unused")
public static String b = "%%__USER__%%";
- public static Msg msg;
+ public static Receiver msg;
private static Main inst;
@@ -45,7 +46,11 @@ public void onEnable()
{
inst = this;
- msg = new Msg("[VanillaCustomizer] ");
+ if (!NBT.preloadApi()) {
+ getLogger().warning("NBT-API wasn't initialized properly, disabling the plugin");
+ getPluginLoader().disablePlugin(this);
+ return;
+ }
Bukkit.getPluginManager().registerEvents(this, this);
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/annotations/Expensive.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/annotations/Expensive.java
new file mode 100644
index 0000000..f88595c
--- /dev/null
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/annotations/Expensive.java
@@ -0,0 +1,14 @@
+package dev.lone.vanillacustomizer.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.SOURCE)
+public @interface Expensive
+{
+ boolean singleCall() default true;
+
+ boolean calledInLoop() default true;
+
+ boolean calledInLambda() default true;
+}
\ No newline at end of file
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/commands/registered/MainCommand.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/commands/registered/MainCommand.java
index 68df565..4ad6d65 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/commands/registered/MainCommand.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/commands/registered/MainCommand.java
@@ -2,9 +2,9 @@
import dev.lone.vanillacustomizer.Main;
import dev.lone.vanillacustomizer.commands.CommandRun;
+import dev.lone.vanillacustomizer.utils.Msg;
import dev.lone.vanillacustomizer.utils.SmallCaps;
import fr.mrmicky.fastinv.FastInv;
-import org.jetbrains.annotations.NotNull;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
@@ -14,6 +14,7 @@
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.java.JavaPlugin;
+import org.jetbrains.annotations.NotNull;
import java.util.HashMap;
import java.util.List;
@@ -43,10 +44,10 @@ public void run(Player player, Command command, String label, String[] args)
case "showdebugtag":
boolean showdebugtag = hasDebugTag(player);
if (showdebugtag)
- Main.msg.send(player, "Disabled debug tag");
+ Msg.message(player, "Disabled debug tag");
else
- Main.msg.send(player, "Enabled debug tag");
+ Msg.message(player, "Enabled debug tag");
if (!showdebugtag)
player.setMetadata("showdebugtag", new FixedMetadataValue(Main.inst(), 0));
@@ -60,11 +61,11 @@ public void run(Player player, Command command, String label, String[] args)
case "small":
if(args.length < 2)
{
- Main.msg.send(player, "Usage: /vanillacustomizer small ");
+ Msg.message(player, "Usage: /vanillacustomizer small ");
return;
}
String text = args[1];
- Main.msg.send(player, SmallCaps.apply(text));
+ Msg.message(player, SmallCaps.apply(text));
break;
case "debugmenu":
@@ -91,7 +92,7 @@ public void run(Player player, Command command, String label, String[] args)
case "reload":
Main.inst().reload();
Bukkit.getOnlinePlayers().forEach(Player::updateInventory);
- Main.msg.send(player, "Reloaded configs.");
+ Msg.message(player, "Reloaded configs.");
break;
}
}
@@ -107,7 +108,7 @@ public void run(ConsoleCommandSender sender, Command command, String label, Stri
case "reload":
Main.inst().reload();
Bukkit.getOnlinePlayers().forEach(Player::updateInventory);
- Main.msg.send(sender, "Reloaded configs.");
+ Msg.message(sender, "Reloaded configs.");
return;
}
}
diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsert.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsert.java
index d8becb6..98d3435 100644
--- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsert.java
+++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsert.java
@@ -1,14 +1,9 @@
package dev.lone.vanillacustomizer.customization.changes;
-import dev.lone.LoneLibs.nbt.nbtapi.NBTCompound;
-import dev.lone.LoneLibs.nbt.nbtapi.NBTItem;
-import dev.lone.LoneLibs.nbt.nbtapi.NBTList;
+import beer.devs.fastnbt.nms.nbt.NItem;
import dev.lone.vanillacustomizer.ChangeSession;
-import dev.lone.LoneLibs.chat.Comp;
-import dev.lone.vanillacustomizer.nms.NMS;
import dev.lone.vanillacustomizer.utils.ConfigFile;
import dev.lone.vanillacustomizer.utils.Utils;
-import lonelibs.dev.lone.fastnbt.nms.nbt.NItem;
import java.util.ArrayList;
import java.util.List;
@@ -27,98 +22,52 @@ public LoreInsert(List lines, int index)
@Override
public void apply(ChangeSession session)
{
- if(NMS.is_v1_1_20_5_or_greater)
+ NItem nbt = session.nbt();
+ List