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 loreNMS = nbt.getLoreCopy(); + if (loreNMS == null) { - NItem nbt = session.nbt(); - List loreNMS = nbt.getLoreCopy(); - if (loreNMS == null) - { - loreNMS = new ArrayList<>(); - for (String line : lines) - loreNMS.add(Utils.jsonToNMS(IChange.replacePlaceholders(session, line))); - } - else - { - // If the index is correctly inside the already existing lore range I can put the new lines there. - if (index < loreNMS.size()) - { - int i = index; - for (String line : lines) - { - 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(Utils.jsonToNMS(IChange.replacePlaceholders(session, line))); - } - } - - nbt.setLore(loreNMS); - nbt.save(); - return; - } - - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); - - if (!display.hasTag("Lore")) - { - NBTList lore = display.getStringList("Lore"); + loreNMS = new ArrayList<>(); for (String line : lines) - lore.add(Comp.legacyToJson(IChange.replacePlaceholders(session, line))); + loreNMS.add(Utils.jsonToNMS(IChange.replacePlaceholders(session, line))); } else { - NBTList lore = display.getStringList("Lore"); // If the index is correctly inside the already existing lore range I can put the new lines there. - if (index < lore.size()) + if (index < loreNMS.size()) { int i = index; for (String line : lines) { - lore.add(i, Comp.legacyToJson(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) - lore.add(Comp.legacyToJson(IChange.replacePlaceholders(session, line))); + loreNMS.add(Utils.jsonToNMS(IChange.replacePlaceholders(session, line))); } } - session.saveNbt(); + + nbt.setLore(loreNMS); + nbt.save(); } public static void putLine(ChangeSession session, int index, String line) { - if(NMS.is_v1_1_20_5_or_greater) + NItem nbt = session.nbt(); + List loreNMS = nbt.getLoreCopy(); + if (loreNMS == null) { - NItem nbt = session.nbt(); - List loreNMS = nbt.getLoreCopy(); - if (loreNMS == null) - { - loreNMS = new ArrayList<>(); - loreNMS.add(Utils.jsonToNMS(line)); - } - else - { - loreNMS.add(index, Utils.jsonToNMS(line)); - } - - nbt.setLore(loreNMS); - nbt.save(); - return; + loreNMS = new ArrayList<>(); + loreNMS.add(Utils.jsonToNMS(line)); + } + else + { + loreNMS.add(index, Utils.jsonToNMS(line)); } - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); - - NBTList lore = display.getStringList("Lore"); - lore.add(index, Comp.legacyToJson(line)); - - session.saveNbt(); + nbt.setLore(loreNMS); + nbt.save(); } } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsertJson.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsertJson.java index 467d64c..4d53738 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsertJson.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreInsertJson.java @@ -1,13 +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 dev.lone.fastnbt_benchmark.libs.org.jetbrains.annotations.Nullable; +import beer.devs.fastnbt.nms.nbt.NItem; import dev.lone.vanillacustomizer.ChangeSession; -import dev.lone.vanillacustomizer.nms.NMS; import dev.lone.vanillacustomizer.utils.Utils; -import lonelibs.dev.lone.fastnbt.nms.nbt.NItem; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; @@ -26,53 +22,26 @@ public LoreInsertJson(List linesJson, int index) @Override public void apply(ChangeSession session) { - if(NMS.is_v1_1_20_5_or_greater) - { - NItem nbt = session.nbt(); - - List newLinesNMS = new ArrayList<>(); - for (String lineJson : linesJson) - newLinesNMS.add(Utils.jsonToNMS(IChange.replacePlaceholders(session, lineJson))); - - @Nullable List loreNMS = nbt.getLoreCopy(); - if(loreNMS == null) - { - loreNMS = new ArrayList<>(newLinesNMS); - } - else - { - if (index < loreNMS.size()) - loreNMS.addAll(index, newLinesNMS); - else - loreNMS.addAll(newLinesNMS); - } - - nbt.setLore(loreNMS); - nbt.save(); - return; - } - - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); + NItem nbt = session.nbt(); - List newLinesJson = new ArrayList<>(); + List newLinesNMS = new ArrayList<>(); for (String lineJson : linesJson) - newLinesJson.add(IChange.replacePlaceholders(session, lineJson)); + newLinesNMS.add(Utils.jsonToNMS(IChange.replacePlaceholders(session, lineJson))); - if (!display.hasTag("Lore")) + @Nullable List loreNMS = nbt.getLoreCopy(); + if(loreNMS == null) { - NBTList lore = display.getStringList("Lore"); - lore.addAll(newLinesJson); + loreNMS = new ArrayList<>(newLinesNMS); } else { - NBTList lore = display.getStringList("Lore"); - if (index < lore.size()) - lore.addAll(index, newLinesJson); + if (index < loreNMS.size()) + loreNMS.addAll(index, newLinesNMS); else - lore.addAll(newLinesJson); + loreNMS.addAll(newLinesNMS); } - session.saveNbt(); + nbt.setLore(loreNMS); + nbt.save(); } } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreSet.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreSet.java index 622cbc4..a5ed3a5 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreSet.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreSet.java @@ -1,15 +1,11 @@ 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.Comp; import dev.lone.vanillacustomizer.utils.ConfigFile; import dev.lone.vanillacustomizer.utils.Utils; -import lonelibs.dev.lone.fastnbt.nms.nbt.NItem; -import lonelibs.net.kyori.adventure.text.Component; +import net.kyori.adventure.text.Component; import java.util.ArrayList; import java.util.List; @@ -26,30 +22,16 @@ public LoreSet(List lines) @Override public void apply(ChangeSession session) { - if(NMS.is_v1_1_20_5_or_greater) + NItem nbt = session.nbt(); + List loreNMS = new ArrayList<>(); + for (String line : lines) { - NItem nbt = session.nbt(); - List loreNMS = new ArrayList<>(); - for (String line : lines) - { - String json = Comp.legacyToJson(IChange.replacePlaceholders(session, line)); - Component component = Utils.jsonToComponent(json); - Object nms = Comp.componentToNms(component); - loreNMS.add(nms); - } - nbt.setLore(loreNMS); - nbt.save(); - return; + String json = Comp.legacyToJson(IChange.replacePlaceholders(session, line)); + Component component = Utils.jsonToComponent(json); + Object nms = Comp.componentToNms(component); + loreNMS.add(nms); } - - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); - - display.removeKey("Lore"); - NBTList lore = display.getStringList("Lore"); - for (String line : lines) - lore.add(Comp.legacyToJson(IChange.replacePlaceholders(session, line))); - - session.saveNbt(); + nbt.setLore(loreNMS); + nbt.save(); } } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreSetJson.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreSetJson.java index 9fe87df..331bdff 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreSetJson.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/LoreSetJson.java @@ -1,12 +1,8 @@ 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.vanillacustomizer.nms.NMS; import dev.lone.vanillacustomizer.utils.Utils; -import lonelibs.dev.lone.fastnbt.nms.nbt.NItem; import java.util.ArrayList; import java.util.List; @@ -23,29 +19,11 @@ public LoreSetJson(List linesJson) @Override public void apply(ChangeSession session) { - if(NMS.is_v1_1_20_5_or_greater) - { - NItem nbt = session.nbt(); - List loreNMS = new ArrayList<>(); - for (String line : linesJson) - loreNMS.add(Utils.jsonToNMS(IChange.replacePlaceholders(session, line))); - nbt.setLore(loreNMS); - nbt.save(); - return; - } - - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); - - display.removeKey("Lore"); - NBTList lore = display.getStringList("Lore"); - - List newLinesJson = new ArrayList<>(); - for (String lineJson : linesJson) - newLinesJson.add(IChange.replacePlaceholders(session, lineJson)); - - lore.addAll(newLinesJson); - - session.saveNbt(); + NItem nbt = session.nbt(); + List loreNMS = new ArrayList<>(); + for (String line : linesJson) + loreNMS.add(Utils.jsonToNMS(IChange.replacePlaceholders(session, line))); + nbt.setLore(loreNMS); + nbt.save(); } } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ProtectNbtData.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ProtectNbtData.java index 3c682f3..5fbffcb 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ProtectNbtData.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ProtectNbtData.java @@ -1,6 +1,6 @@ package dev.lone.vanillacustomizer.customization.changes; -import dev.lone.LoneLibs.nbt.nbtapi.NBTItem; +import beer.devs.fastnbt.nms.nbt.NItem; import dev.lone.vanillacustomizer.ChangeSession; public class ProtectNbtData implements IChange @@ -8,9 +8,9 @@ public class ProtectNbtData implements IChange @Override public void apply(ChangeSession session) { - NBTItem nbt = session.nbtLegacy(); - nbt.removeKey("PublicBukkitValues"); - nbt.removeKey("itemsadder"); + NItem nbt = session.nbt(); + nbt.remove("PublicBukkitValues"); + nbt.remove("itemsadder"); session.saveNbt(); } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/Renamer.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/Renamer.java index 6d80f41..0f4bb10 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/Renamer.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/Renamer.java @@ -1,12 +1,9 @@ package dev.lone.vanillacustomizer.customization.changes; -import dev.lone.LoneLibs.nbt.nbtapi.NBTCompound; -import dev.lone.LoneLibs.nbt.nbtapi.NBTItem; +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.Comp; import dev.lone.vanillacustomizer.utils.ConfigFile; -import lonelibs.dev.lone.fastnbt.nms.nbt.NItem; import org.bukkit.ChatColor; public class Renamer implements IChange @@ -22,18 +19,8 @@ public Renamer(String name) @Override public void apply(ChangeSession session) { - if(NMS.is_v1_1_20_5_or_greater) - { - NItem nbt = session.nbt(); - nbt.setCustomName(Comp.legacyToJson(IChange.replacePlaceholders(session, name))); - nbt.save(); - return; - } - - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); - display.setString("Name", Comp.legacyToJson(IChange.replacePlaceholders(session, name))); - - session.saveNbt(); + NItem nbt = session.nbt(); + nbt.setCustomName(Comp.legacyToJson(IChange.replacePlaceholders(session, name))); + nbt.save(); } } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/RenamerJson.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/RenamerJson.java index c720cdc..e208979 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/RenamerJson.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/RenamerJson.java @@ -1,12 +1,8 @@ package dev.lone.vanillacustomizer.customization.changes; -import dev.lone.LoneLibs.nbt.nbtapi.NBTCompound; -import dev.lone.LoneLibs.nbt.nbtapi.NBTItem; +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.Utils; -import lonelibs.dev.lone.fastnbt.nms.nbt.NItem; public class RenamerJson implements IChange { @@ -24,19 +20,9 @@ public RenamerJson(String json) @Override public void apply(ChangeSession session) { - if(NMS.is_v1_1_20_5_or_greater) - { - NItem nbt = session.nbt(); - String json = IChange.replacePlaceholders(session, this.json); - nbt.setCustomName(json); - nbt.save(); - return; - } - - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); - display.setString("Name", IChange.replacePlaceholders(session, json)); - - session.saveNbt(); + NItem nbt = session.nbt(); + String json = IChange.replacePlaceholders(session, this.json); + nbt.setCustomName(json); + nbt.save(); } } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceCustomModelData.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceCustomModelData.java index fced268..606ba1b 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceCustomModelData.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceCustomModelData.java @@ -1,6 +1,6 @@ package dev.lone.vanillacustomizer.customization.changes; -import dev.lone.LoneLibs.nbt.nbtapi.NBTItem; +import beer.devs.fastnbt.nms.nbt.NItem; import dev.lone.vanillacustomizer.ChangeSession; public class ReplaceCustomModelData implements IChange @@ -15,8 +15,8 @@ public ReplaceCustomModelData(int id) @Override public void apply(ChangeSession session) { - NBTItem nbt = session.nbtLegacy(); - nbt.setInteger("CustomModelData", id); + NItem nbt = session.nbt(); + nbt.setInt("CustomModelData", id); session.saveNbt(); } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceWordDisplayName.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceWordDisplayName.java index 033d49c..c60be56 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceWordDisplayName.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceWordDisplayName.java @@ -1,12 +1,9 @@ package dev.lone.vanillacustomizer.customization.changes; -import dev.lone.LoneLibs.nbt.nbtapi.NBTCompound; -import dev.lone.LoneLibs.nbt.nbtapi.NBTItem; +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.Comp; import dev.lone.vanillacustomizer.utils.ConfigFile; -import lonelibs.dev.lone.fastnbt.nms.nbt.NItem; public class ReplaceWordDisplayName implements IChange { @@ -29,18 +26,8 @@ public void apply(ChangeSession session) String name = session.refreshMeta().getDisplayName().replace(from, to); - if(NMS.is_v1_1_20_5_or_greater) - { - NItem nbt = session.nbt(); - nbt.setCustomName(Comp.legacyToJson(name)); - nbt.save(); - return; - } - - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); - display.setString("Name", Comp.legacyToJson(name)); - - session.saveNbt(); + NItem nbt = session.nbt(); + nbt.setCustomName(Comp.legacyToJson(name)); + nbt.save(); } } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceWordLore.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceWordLore.java index 15d5118..702f277 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceWordLore.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/changes/ReplaceWordLore.java @@ -1,16 +1,11 @@ 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.Comp; import dev.lone.vanillacustomizer.utils.ConfigFile; -import dev.lone.vanillacustomizer.utils.Utils; -import lonelibs.dev.lone.fastnbt.nms.nbt.NItem; -import lonelibs.net.kyori.adventure.text.Component; -import lonelibs.net.kyori.adventure.text.TextReplacementConfig; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextReplacementConfig; import java.util.List; @@ -32,39 +27,19 @@ public ReplaceWordLore(String from, String to) @Override public void apply(ChangeSession session) { - if(NMS.is_v1_1_20_5_or_greater) - { - NItem nbt = session.nbt(); - List loreNMS = nbt.getLoreCopy(); - if(loreNMS == null) - return; - - for (int i = 0; i < loreNMS.size(); i++) - { - Object lineNMS = loreNMS.get(i); - Component component = Comp.nmsToComponent(lineNMS); - component = component.replaceText(textReplacement); - loreNMS.set(i, Comp.componentToNms(component)); - } - nbt.setLore(loreNMS); - nbt.save(); - return; - } - - NBTItem nbt = session.nbtLegacy(); - NBTCompound display = nbt.getOrCreateCompound("display"); - if(!display.hasTag("Lore")) + NItem nbt = session.nbt(); + List loreNMS = nbt.getLoreCopy(); + if(loreNMS == null) return; - NBTList lore = display.getStringList("Lore"); - for (int i = 0; i < lore.size(); i++) + for (int i = 0; i < loreNMS.size(); i++) { - String lineJson = lore.get(i); - Component component = Utils.jsonToComponent(lineJson); + Object lineNMS = loreNMS.get(i); + Component component = Comp.nmsToComponent(lineNMS); component = component.replaceText(textReplacement); - lore.set(i, Comp.componentToJson(component)); + loreNMS.set(i, Comp.componentToNms(component)); } - - session.saveNbt(); + nbt.setLore(loreNMS); + nbt.save(); } } diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/matchers/RuleNbtMatcher.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/matchers/RuleNbtMatcher.java index b9aca9b..424f2b3 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/matchers/RuleNbtMatcher.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/customization/matchers/RuleNbtMatcher.java @@ -1,8 +1,8 @@ package dev.lone.vanillacustomizer.customization.matchers; -import dev.lone.LoneLibs.nbt.nbtapi.NBTCompound; -import dev.lone.LoneLibs.nbt.nbtapi.NBTItem; -import dev.lone.LoneLibs.nbt.nbtapi.NBTType; +import de.tr7zw.changeme.nbtapi.NBTCompound; +import de.tr7zw.changeme.nbtapi.NBTItem; +import de.tr7zw.changeme.nbtapi.NBTType; import dev.lone.vanillacustomizer.customization.rules.IRule; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; 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 index f1e0a67..1605805 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,9 +1,10 @@ package dev.lone.vanillacustomizer.nms; -import org.jetbrains.annotations.Nullable; +import beer.devs.fastnbt.nms.Version; import dev.lone.vanillacustomizer.Main; -import lonelibs.dev.lone.fastnbt.nms.Version; +import dev.lone.vanillacustomizer.utils.Msg; import org.bukkit.Bukkit; +import org.jetbrains.annotations.Nullable; import java.lang.reflect.InvocationTargetException; @@ -12,13 +13,6 @@ */ public class NMS { - public static boolean is_v1_1_20_5_or_greater; - - static - { - is_v1_1_20_5_or_greater = Version.isAtLeast(Version.v1_20_5); - } - /** * Gets a suitable implementaion for the current Minecraft server version. * @@ -52,7 +46,7 @@ public static T findImplementation(@SuppressWarnings("unused") Class impl if (ignoreError) return null; - Main.msg.error("Error getting implementation for " + nmsHolder.getClass() + " - NMS " + nmsVersion); + Msg.error("Error getting implementation for " + nmsHolder.getClass() + " - NMS " + nmsVersion); e.printStackTrace(); Bukkit.getPluginManager().disablePlugin(Main.inst()); diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/ColorLog.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/ColorLog.java new file mode 100644 index 0000000..8521227 --- /dev/null +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/ColorLog.java @@ -0,0 +1,178 @@ +package dev.lone.vanillacustomizer.utils; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.fusesource.jansi.Ansi; + +import java.util.EnumMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Extends the normal Bukkit Logger to write Colors + * Based on Timeout's implementation: https://www.spigotmc.org/threads/87576/ + * + * @author LoneDev + */ +public class ColorLog +{ + + private static final Map BUKKIT_COLORS_TO_ANSI = new EnumMap<>(ChatColor.class); + static + { + BUKKIT_COLORS_TO_ANSI.put(ChatColor.BLACK, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.BLACK).boldOff().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.DARK_BLUE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.BLUE).boldOff().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.DARK_GREEN, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.GREEN).boldOff().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.DARK_AQUA, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.CYAN).boldOff().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.DARK_RED, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.RED).boldOff().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.DARK_PURPLE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.MAGENTA).boldOff().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.GOLD, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.YELLOW).boldOff().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.GRAY, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.WHITE).boldOff().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.DARK_GRAY, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.BLACK).bold().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.BLUE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.BLUE).bold().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.GREEN, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.GREEN).bold().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.AQUA, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.CYAN).bold().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.RED, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.RED).bold().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.LIGHT_PURPLE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.MAGENTA).bold().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.YELLOW, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.YELLOW).bold().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.WHITE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.WHITE).bold().toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.MAGIC, Ansi.ansi().a(Ansi.Attribute.BLINK_SLOW).toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.BOLD, Ansi.ansi().a(Ansi.Attribute.UNDERLINE_DOUBLE).toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.STRIKETHROUGH, Ansi.ansi().a(Ansi.Attribute.STRIKETHROUGH_ON).toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.UNDERLINE, Ansi.ansi().a(Ansi.Attribute.UNDERLINE).toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.ITALIC, Ansi.ansi().a(Ansi.Attribute.ITALIC).toString()); + BUKKIT_COLORS_TO_ANSI.put(ChatColor.RESET, Ansi.ansi().a(Ansi.Attribute.RESET).toString()); + } + private static final ChatColor[] BUKKIT_CHAT_COLORS = ChatColor.values(); + private static final String PATTERN_HEX_STRING = '\u001b' + "[38;2;%d;%d;%dm"; + private static final Pattern PATTERN_HEX_TRANSLATE = Pattern.compile("§x(§[A-F0-9]){6}", Pattern.CASE_INSENSITIVE); + + private Logger logger; + private String prefix; + + /** + * Creates a logger with no prefix. + */ + public ColorLog() + { + this(""); + } + + /** + * Creates a new ColorLog with prefix. + * + * @param prefix the prefix of the plugin + */ + @SuppressWarnings("ConstantConditions") + public ColorLog(String prefix) + { + this.prefix = applyColors(prefix); + if(Bukkit.getServer() == null) + logger = Logger.getGlobal(); + else + logger = Bukkit.getLogger(); + } + + /** + * Creates a new ColorLog with prefix and a specific logger hooked. + * + * @param prefix the prefix of the plugin + * @param logger the logger + */ + public ColorLog(String prefix, Logger logger) + { + this.prefix = applyColors(prefix); + this.logger = logger; + } + + /** + * Sets a new prefix for this ColorLog. + * + * @param prefix the new prefix of the plugin + */ + public void setPrefix(String prefix) + { + this.prefix = applyColors(prefix); + } + + /** + * Changes the current logger. + * + * @param logger the logger + */ + public void setLogger(Logger logger) + { + this.logger = logger; + } + + /** + * Logs a message in the console. See {@link Logger#log(Level, String)}. + * + * @param level The level of the log + * @param message the message you want to show + */ + public void log(Level level, String message) + { + logger.log(level, prefix + applyColors(message)); + } + + /** + * Logs a message in the console. See {@link Logger#log(Level, String, Throwable)}. + * + * @param level the Level of the log + * @param message the message + * @param e the exception + */ + public void log(Level level, String message, Throwable e) + { + logger.log(level, prefix + applyColors(message), e); + } + + /** + * Converts a String with Minecraft-ColorCodes into Ansi-Colors. + * Returns null if the string is null. + * + * @param string the string. + * @return the converted string or null if the string is null + */ + private static String applyColors(String string) + { + if (!string.isEmpty()) + { + string = ChatColor.translateAlternateColorCodes('&', string); + String result = convertHexColors(string); + for (ChatColor color : BUKKIT_CHAT_COLORS) + { + result = result.replaceAll("(?i)" + color.toString(), BUKKIT_COLORS_TO_ANSI.getOrDefault(color, "")); + } + + return result + Ansi.ansi().reset().toString(); + } + + return string; + } + + private static String convertHexColors(String input) + { + Matcher matcher = PATTERN_HEX_TRANSLATE.matcher(input); + StringBuffer buffer = new StringBuffer(); + + while (matcher.find()) + { + String s = matcher.group().replace("§", "").replace('x', '#'); + java.awt.Color color = java.awt.Color.decode(s); + int red = color.getRed(); + int blue = color.getBlue(); + int green = color.getGreen(); + String replacement = String.format(PATTERN_HEX_STRING, red, green, blue); + matcher.appendReplacement(buffer, replacement); + } + + matcher.appendTail(buffer); + return buffer.toString(); + } +} + diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Comp.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Comp.java new file mode 100644 index 0000000..22b4f6e --- /dev/null +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Comp.java @@ -0,0 +1,277 @@ +package dev.lone.vanillacustomizer.utils; + +import com.google.gson.JsonElement; +import com.google.gson.JsonSyntaxException; +import dev.lone.vanillacustomizer.annotations.Expensive; +import net.kyori.adventure.platform.bukkit.BukkitComponentSerializer; +import net.kyori.adventure.platform.bukkit.MinecraftComponentSerializer; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.TranslatableComponent; +import net.kyori.adventure.text.format.Style; +import net.kyori.adventure.text.format.TextColor; +import net.kyori.adventure.text.format.TextDecoration; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.minimessage.ParsingException; +import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.kyori.adventure.text.serializer.json.JSONOptions; +import net.kyori.adventure.text.serializer.json.legacyimpl.NBTLegacyHoverEventSerializer; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import net.kyori.option.OptionState; +import net.md_5.bungee.api.chat.BaseComponent; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.Locale; + +/** + * Utility wrapper to call useful Adventure API methods. + * NOTE: This is using the builtin LoneLibs Adventure API, not Paper builtin one. + */ +@SuppressWarnings({"deprecation", "UnnecessaryUnicodeEscape"}) +public class Comp +{ + public static GsonComponentSerializer GSON_SERIALIZER; + public static final MiniMessage MINIMESSAGE = MiniMessage.miniMessage(); + + public static TextColor WHITE = TextColor.color(255, 255, 255); + private static final Style ITALIC_STYLE_FALSE = Style.style(builder -> { + builder.decoration(TextDecoration.ITALIC, false); + }); + public static Style WHITE_NORMAL_TEXT_STYLE = Style.style(builder -> { + builder.color(WHITE); + builder.decoration(TextDecoration.ITALIC, false); + }); + + public static final String EMPTY_JSON_COMPONENT = "{\"text\":\"\"}"; + + public static final DecimalFormat DECIMAL_FORMAT_MINIMAL; + public static final DecimalFormat DECIMAL_FORMAT_ENDING_ZEROES; + static + { + DECIMAL_FORMAT_MINIMAL = new DecimalFormat("#.##"); + DECIMAL_FORMAT_MINIMAL.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ROOT)); + + DECIMAL_FORMAT_ENDING_ZEROES = new DecimalFormat("0.0#"); + DECIMAL_FORMAT_ENDING_ZEROES.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ROOT)); + + GSON_SERIALIZER = GsonComponentSerializer.builder() + + .legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get()) + .options( + OptionState.optionState() + // after 1.16 + .value(JSONOptions.EMIT_RGB, Boolean.TRUE) + .value(JSONOptions.EMIT_HOVER_EVENT_TYPE, JSONOptions.HoverEventValueMode.MODERN_ONLY) + // after 1.20.3 + .value(JSONOptions.EMIT_COMPACT_TEXT_COMPONENT, Boolean.TRUE) + .value(JSONOptions.EMIT_HOVER_SHOW_ENTITY_ID_AS_INT_ARRAY, Boolean.TRUE) + .value(JSONOptions.VALIDATE_STRICT_EVENTS, Boolean.TRUE) + .build() + ) + .build(); + } + + /** + * Converts legacy text to json. Supports also Spigot hex color notation. + * + * @param legacy a legacy text like: §cHello World! + * @return json. + */ + public static String legacyToJson(@NotNull String legacy) + { + return GSON_SERIALIZER.serialize(Comp.text(legacy)); + } + + /** + * Converts json to legacy text. + * + * @param json a json like: {"text":"Hello world!"} + * @return legacy text. + */ + public static String jsonToLegacy(String json) throws JsonSyntaxException + { + return LegacyComponentSerializer.legacy('\u00A7').serialize(jsonToComponent(json)); + } + + /** + * Converts adventure component object to json. + * + * @param component adventure component object. + * @return json. + */ + public static String componentToJson(@NotNull Component component) + { + return GSON_SERIALIZER.serialize(component); + } + + /** + * Converts adventure component object to json. + * + * @param component adventure component object. + * @return json. + */ + public static @NotNull JsonElement componentToJsonTree(@NotNull Component component) + { + return GSON_SERIALIZER.serializeToTree(component); + } + + /** + * Converts json to adventure component object. + * + * @param json json. + * @return adventure component object. + */ + @SuppressWarnings("RedundantThrows") + @NotNull + public static Component jsonToComponent(String json) throws JsonSyntaxException + { + // If it's not json + if(!json.startsWith("{")) + return Component.text(json).style(WHITE_NORMAL_TEXT_STYLE); + return GSON_SERIALIZER.deserialize(json); + } + + @Expensive + public static Object componentToNms(Component component) + { + return MinecraftComponentSerializer.get().serialize(component); + } + + @Nullable + public static Component nmsToComponent(Object nms) + { + if (nms == null) + return null; + return MinecraftComponentSerializer.get().deserialize(nms); + } + + @Expensive + public static BaseComponent[] componentToBukkit(Component component) + { + return BungeeComponentSerializer.legacy().serialize(component); + } + + /** + * Equivalent of {@link Component#text(String)}} but supports also Spigot hex color notation. + * It surely is slower than {@link Component#text(String)}}. + * + * @param text a legacy text + * @return text component + */ + public static Component text(String text) + { + TextComponent component = BukkitComponentSerializer.legacy().deserialize(text); + return component.decorationIfAbsent(TextDecoration.ITALIC, TextDecoration.State.FALSE); + } + + /** + * Equivalent of {@link Component#text(String)}} but supports also Spigot hex color notation. + * It surely is slower than {@link Component#text(String)}}. + * + * @param text a legacy text + * @param noItalic forces no italic, useful for lores + * @return text component + */ + public static Component text(String text, boolean noItalic) + { + if (!noItalic) + return BukkitComponentSerializer.legacy().deserialize(text); + return BukkitComponentSerializer.legacy().deserialize(text).style(ITALIC_STYLE_FALSE); + } + + public static boolean mightBeJson(String str) + { + return str.trim().startsWith("{"); + } + + public static String convertColor(String message) + { + return message.replace("&", "\u00A7"); + } + + public static TranslatableComponent translatable(String key) + { + TranslatableComponent component = Component.translatable(key); + return (TranslatableComponent) component.decorationIfAbsent(TextDecoration.ITALIC, TextDecoration.State.FALSE); + } + + public static Style.@org.jetbrains.annotations.NotNull Builder removePropertyIfDefault(Style style, Style.Builder builder, TextDecoration textDecoration, TextDecoration.State def) + { + if (style.decoration(textDecoration) == def) + return builder.decoration(textDecoration, TextDecoration.State.NOT_SET); + return builder.decoration(textDecoration, style.decoration(textDecoration)); + } + + public static Component optimize(Component component) + { + // Important! Compact it before editing the text decorations! compact() method seems to add useless text decorations=false for some reason. + component = component.compact(); + + // Remove default properties if their value is the default one + Style style = component.style(); + Style.Builder builder = style.toBuilder(); + + builder = Comp.removePropertyIfDefault(style, builder, TextDecoration.BOLD, TextDecoration.State.FALSE); + builder = Comp.removePropertyIfDefault(style, builder, TextDecoration.UNDERLINED, TextDecoration.State.FALSE); + builder = Comp.removePropertyIfDefault(style, builder, TextDecoration.STRIKETHROUGH, TextDecoration.State.FALSE); + builder = Comp.removePropertyIfDefault(style, builder, TextDecoration.OBFUSCATED, TextDecoration.State.FALSE); + // I do not remove ITALIC since lore lines and display name are ITALIC=true by default and I want to explicitely set + // ITALIC=false in this case. + + return component.style(builder); + } + + public static String legacy(Component component) + { + return LegacyComponentSerializer.legacy('\u00A7').serialize(component); + } + + public static boolean isColored(Component component) + { + return component.color() != null; + } + + public static String mergeLegacyToJson(String... strs) + { + Component comp = Component.text(""); + for (String str : strs) + { + comp = comp.append(Component.text(str)); + } + return componentToJson(comp); + } + + public static Component minimessage(String str) + { + // Has legacy HEX notation + // https://github.com/PluginBugs/Issues-ItemsAdder/issues/3057 + Component text; + if(str.contains("&#") || str.contains("\u00A7#")) + str = Comp.convertColor(str); + + try + { + str = Comp.convertColor(str); + text = MINIMESSAGE.deserialize(str); + } + catch (ParsingException ignored) + { + // Do not use both Minimessage and legacy formatting code in the same text + text = Comp.text(str); + } + + // To avoid italic when not wanted. Example: lore. + return text.colorIfAbsent(Comp.WHITE).decorationIfAbsent(TextDecoration.ITALIC, TextDecoration.State.FALSE); + } + + public static String round(double value, boolean trailingZeros) + { + if(trailingZeros) + return DECIMAL_FORMAT_ENDING_ZEROES.format(value); + return DECIMAL_FORMAT_MINIMAL.format(value); + } +} \ No newline at end of file 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 bde9aed..354228a 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 @@ -1,7 +1,5 @@ package dev.lone.vanillacustomizer.utils; -import org.jetbrains.annotations.NotNull; -import dev.lone.vanillacustomizer.Main; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; @@ -14,6 +12,7 @@ import org.bukkit.entity.EntityType; import org.bukkit.plugin.Plugin; import org.bukkit.potion.PotionEffectType; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.*; @@ -197,7 +196,7 @@ public void initFile() //e.printStackTrace(); //Main.msg.sendConsoleError("ERROR LOADING file '" + filePath + "'"); if (announceCustomLanguage) - Main.msg.log(ChatColor.YELLOW + "Using custom language file '" + filePath + "'"); + Msg.log(ChatColor.YELLOW + "Using custom language file '" + filePath + "'"); e.printStackTrace(); } } @@ -239,7 +238,7 @@ private static String convertColor0(String message) protected void notifyMissingProperty(String path) { - Main.msg.error("MISSING FILE PROPERTY! '" + path + "' in file '" + filePath + "'"); + Msg.error("MISSING FILE PROPERTY! '" + path + "' in file '" + filePath + "'"); } public void set(String path, Object value) @@ -508,7 +507,7 @@ public List getMaterialList(String path) if (Material.valueOf(material.toUpperCase()) != null)//does this even work? coloredList.add(Material.valueOf(material.toUpperCase())); else - Main.msg.error("No material found with name " + material + ". Please check config '" + filePath + "'"); + Msg.error("No material found with name " + material + ". Please check config '" + filePath + "'"); } return coloredList; diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Msg.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Msg.java new file mode 100644 index 0000000..14acf61 --- /dev/null +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Msg.java @@ -0,0 +1,125 @@ +package dev.lone.vanillacustomizer.utils; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.Nullable; + +import java.util.logging.Level; + +public class Msg +{ + public static String PREFIX = "[VanillaCustomizer] "; + public static String PREFIX_CONSOLE = "[VanillaCustomizer] "; + private static final ColorLog LOG = new ColorLog(PREFIX); + + public static void setPrefix(String prefix) + { + PREFIX = prefix; + LOG.setPrefix(prefix); + } + + public static void setPrefixConsole(String prefix) + { + PREFIX_CONSOLE = prefix; + } + + public static void toConsoleAndSender(CommandSender commandSender, String message) + { + toConsoleAndSender(commandSender, message, null); + } + + public static void toConsoleAndSender(CommandSender commandSender, String message, @Nullable Throwable e) + { + log(message); + if (commandSender != null && commandSender != Bukkit.getConsoleSender()) + commandSender.sendMessage(PREFIX + message); + + if (e != null) + e.printStackTrace(); + } + + public static void log(String message) + { + LOG.log(Level.INFO, message); + } + + public static void log(String error, Level level) + { + LOG.log(level, error); + } + + public static void error(String error) + { + if (ChatColor.stripColor(error).equals(error)) + LOG.log(Level.SEVERE, ChatColor.RED + error); + else + LOG.log(Level.SEVERE, error); + } + + public static void error(String error, @Nullable Throwable e) + { + if (ChatColor.stripColor(error).equals(error)) + LOG.log(Level.SEVERE, ChatColor.RED + error); + else + LOG.log(Level.SEVERE, error); + + if (e != null) + e.printStackTrace(); + } + + public static void error(CommandSender commandSender, String error) + { + error(commandSender, error, null); + } + + public static void error(CommandSender commandSender, String error, @Nullable Throwable e) + { + if (commandSender instanceof Player) + { + message(commandSender, error); + } + else + { + if (ChatColor.stripColor(error).equals(error)) + LOG.log(Level.SEVERE, ChatColor.RED + error); + else + LOG.log(Level.SEVERE, error); + } + + if (e != null) + e.printStackTrace(); + } + + public static void warn(String error) + { + if (ChatColor.stripColor(error).equals(error)) + LOG.log(Level.WARNING, ChatColor.YELLOW + error); + else + LOG.log(Level.WARNING, error); + } + + public static void warn(String error, @Nullable Throwable e) + { + warn(error); + + if (e != null) + e.printStackTrace(); + } + + public static void messageNoPrefix(CommandSender commandSender, String message) + { + commandSender.sendMessage(message); + } + + public static void message(Player player, String message) + { + player.sendMessage(PREFIX + message); + } + public static void message(CommandSender sender, String message) + { + sender.sendMessage(PREFIX + message); + } +} + diff --git a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Utils.java b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Utils.java index a5ae623..a40baca 100644 --- a/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Utils.java +++ b/VanillaCustomizer-core/src/main/java/dev/lone/vanillacustomizer/utils/Utils.java @@ -1,17 +1,15 @@ package dev.lone.vanillacustomizer.utils; import com.google.gson.JsonSyntaxException; -import dev.lone.LoneLibs.chat.Comp; -import dev.lone.vanillacustomizer.nms.NMS; -import lonelibs.net.kyori.adventure.text.Component; -import lonelibs.net.kyori.adventure.text.format.TextColor; -import lonelibs.net.kyori.adventure.text.format.TextDecoration; -import lonelibs.org.jetbrains.annotations.NotNull; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.TextColor; +import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.attribute.Attribute; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.InventoryView; +import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.List; import java.util.regex.Pattern; public class Utils @@ -64,12 +62,8 @@ public static Attribute strToAttributeType(String attributeModifier) case "generic.armor_toughness" -> Attribute.GENERIC_ARMOR_TOUGHNESS; case "generic.luck" -> Attribute.GENERIC_LUCK; case "zombie.spawn_reinforcements" -> Attribute.ZOMBIE_SPAWN_REINFORCEMENTS; - case "horse.jump_strength" -> - { - if (NMS.is_v1_1_20_5_or_greater) - yield Attribute.valueOf("HORSE_JUMP_STRENGTH"); - yield Attribute.GENERIC_JUMP_STRENGTH; - } + case "horse.jump_strength" -> // 1.20.5+ + Attribute.valueOf("HORSE_JUMP_STRENGTH"); default -> null; }; } diff --git a/VanillaCustomizer-jar/pom.xml b/VanillaCustomizer-jar/pom.xml index b9bc687..26b2ae2 100644 --- a/VanillaCustomizer-jar/pom.xml +++ b/VanillaCustomizer-jar/pom.xml @@ -52,13 +52,6 @@ package - - - - - - - run @@ -87,52 +80,52 @@ dev.lone - VanillaCustomizer-nms-v1_21_4 + VanillaCustomizer-nms-v1_20_6 1.0 dev.lone - VanillaCustomizer-nms-v1_21_3 + VanillaCustomizer-nms-v1_21_1 1.0 dev.lone - VanillaCustomizer-nms-v1_21_1 + VanillaCustomizer-nms-v1_21_3 1.0 dev.lone - VanillaCustomizer-nms-v1_20_6 + VanillaCustomizer-nms-v1_21_4 1.0 dev.lone - VanillaCustomizer-nms-v1_20_R3 + VanillaCustomizer-nms-v1_21_5 1.0 dev.lone - VanillaCustomizer-nms-v1_20_R2 + VanillaCustomizer-nms-v1_21_6 1.0 dev.lone - VanillaCustomizer-nms-v1_20_R1 + VanillaCustomizer-nms-v1_21_7 1.0 dev.lone - VanillaCustomizer-nms-v1_19_R3 + VanillaCustomizer-nms-v1_21_8 1.0 dev.lone - VanillaCustomizer-nms-v1_18_R2 + VanillaCustomizer-nms-v1_21_10 1.0 dev.lone - VanillaCustomizer-nms-v1_17_R1 + VanillaCustomizer-nms-v1_21_11 1.0 diff --git a/VanillaCustomizer-nms-v1_17_R1/.gitignore b/VanillaCustomizer-nms-v1_17_R1/.gitignore deleted file mode 100644 index 4788b4b..0000000 --- a/VanillaCustomizer-nms-v1_17_R1/.gitignore +++ /dev/null @@ -1,113 +0,0 @@ -# User-specific stuff -.idea/ - -*.iml -*.ipr -*.iws - -# IntelliJ -out/ - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -target/ - -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next - -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.flattened-pom.xml - -# Common working directory -run/ diff --git a/VanillaCustomizer-nms-v1_18_R2/.gitignore b/VanillaCustomizer-nms-v1_18_R2/.gitignore deleted file mode 100644 index 4788b4b..0000000 --- a/VanillaCustomizer-nms-v1_18_R2/.gitignore +++ /dev/null @@ -1,113 +0,0 @@ -# User-specific stuff -.idea/ - -*.iml -*.ipr -*.iws - -# IntelliJ -out/ - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -target/ - -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next - -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.flattened-pom.xml - -# Common working directory -run/ diff --git a/VanillaCustomizer-nms-v1_19_R3/.gitignore b/VanillaCustomizer-nms-v1_19_R3/.gitignore deleted file mode 100644 index 4788b4b..0000000 --- a/VanillaCustomizer-nms-v1_19_R3/.gitignore +++ /dev/null @@ -1,113 +0,0 @@ -# User-specific stuff -.idea/ - -*.iml -*.ipr -*.iws - -# IntelliJ -out/ - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -target/ - -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next - -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.flattened-pom.xml - -# Common working directory -run/ diff --git a/VanillaCustomizer-nms-v1_20_6/pom.xml b/VanillaCustomizer-nms-v1_20_6/pom.xml index d09d01c..6af1685 100644 --- a/VanillaCustomizer-nms-v1_20_6/pom.xml +++ b/VanillaCustomizer-nms-v1_20_6/pom.xml @@ -22,7 +22,7 @@ ca.bkaw paper-nms-maven-plugin - 1.4.4 + 1.4.10 process-classes diff --git a/VanillaCustomizer-nms-v1_20_R1/.gitignore b/VanillaCustomizer-nms-v1_20_R1/.gitignore deleted file mode 100644 index 4788b4b..0000000 --- a/VanillaCustomizer-nms-v1_20_R1/.gitignore +++ /dev/null @@ -1,113 +0,0 @@ -# User-specific stuff -.idea/ - -*.iml -*.ipr -*.iws - -# IntelliJ -out/ - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -target/ - -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next - -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.flattened-pom.xml - -# Common working directory -run/ diff --git a/VanillaCustomizer-nms-v1_20_R2/.gitignore b/VanillaCustomizer-nms-v1_20_R2/.gitignore deleted file mode 100644 index 4788b4b..0000000 --- a/VanillaCustomizer-nms-v1_20_R2/.gitignore +++ /dev/null @@ -1,113 +0,0 @@ -# User-specific stuff -.idea/ - -*.iml -*.ipr -*.iws - -# IntelliJ -out/ - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -target/ - -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next - -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.flattened-pom.xml - -# Common working directory -run/ diff --git a/VanillaCustomizer-nms-v1_20_R2/pom.xml b/VanillaCustomizer-nms-v1_20_R2/pom.xml deleted file mode 100644 index 00fcdf1..0000000 --- a/VanillaCustomizer-nms-v1_20_R2/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - VanillaCustomizer - dev.lone - 1.0 - - 4.0.0 - - VanillaCustomizer-nms-v1_20_R2 - - - 17 - 17 - - - - - - - ca.bkaw - paper-nms-maven-plugin - 1.3.2 - - - process-classes - - remap - - - - - - - - - - - ca.bkaw - paper-nms - 1.20.2-SNAPSHOT - provided - - - - dev.lone - VanillaCustomizer-core - 1.0 - provided - - - - \ No newline at end of file diff --git a/VanillaCustomizer-nms-v1_20_R2/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R2.java b/VanillaCustomizer-nms-v1_20_R2/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R2.java deleted file mode 100644 index cb38bfd..0000000 --- a/VanillaCustomizer-nms-v1_20_R2/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R2.java +++ /dev/null @@ -1,48 +0,0 @@ -package dev.lone.vanillacustomizer.nms.items.impl; - -import dev.lone.vanillacustomizer.nms.items.IItemsNms; -import dev.lone.vanillacustomizer.nms.items.Rarity; -import net.minecraft.world.food.FoodProperties; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack; -import org.bukkit.craftbukkit.v1_20_R2.util.CraftMagicNumbers; -import org.bukkit.inventory.ItemStack; - -@SuppressWarnings("unused") -public class v1_20_R2 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) - { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getNutrition(); - } - - @Override - public float getSaturation(ItemStack bukkitItem) - { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getSaturationModifier(); - } -} diff --git a/VanillaCustomizer-nms-v1_20_R3/pom.xml b/VanillaCustomizer-nms-v1_20_R3/pom.xml deleted file mode 100644 index 6294285..0000000 --- a/VanillaCustomizer-nms-v1_20_R3/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - VanillaCustomizer - dev.lone - 1.0 - - 4.0.0 - - VanillaCustomizer-nms-v1_20_R3 - - - 17 - 17 - - - - - - - ca.bkaw - paper-nms-maven-plugin - 1.4.5 - - - process-classes - - remap - - - - - - - - - - - ca.bkaw - paper-nms - 1.20.4-SNAPSHOT - provided - - - - dev.lone - VanillaCustomizer-core - 1.0 - provided - - - - \ No newline at end of file diff --git a/VanillaCustomizer-nms-v1_20_R3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R3.java b/VanillaCustomizer-nms-v1_20_R3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R3.java deleted file mode 100644 index acdc221..0000000 --- a/VanillaCustomizer-nms-v1_20_R3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R3.java +++ /dev/null @@ -1,48 +0,0 @@ -package dev.lone.vanillacustomizer.nms.items.impl; - -import dev.lone.vanillacustomizer.nms.items.IItemsNms; -import dev.lone.vanillacustomizer.nms.items.Rarity; -import net.minecraft.world.food.FoodProperties; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import org.bukkit.craftbukkit.v1_20_R3.inventory.CraftItemStack; -import org.bukkit.craftbukkit.v1_20_R3.util.CraftMagicNumbers; -import org.bukkit.inventory.ItemStack; - -@SuppressWarnings("unused") -public class v1_20_R3 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) - { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getNutrition(); - } - - @Override - public float getSaturation(ItemStack bukkitItem) - { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getSaturationModifier(); - } -} diff --git a/VanillaCustomizer-nms-v1_21_1/pom.xml b/VanillaCustomizer-nms-v1_21_1/pom.xml index 22cad87..5f1cbdc 100644 --- a/VanillaCustomizer-nms-v1_21_1/pom.xml +++ b/VanillaCustomizer-nms-v1_21_1/pom.xml @@ -21,7 +21,7 @@ ca.bkaw paper-nms-maven-plugin - 1.4.5 + 1.4.10 process-classes diff --git a/VanillaCustomizer-nms-v1_21_10/pom.xml b/VanillaCustomizer-nms-v1_21_10/pom.xml new file mode 100644 index 0000000..2a05eb0 --- /dev/null +++ b/VanillaCustomizer-nms-v1_21_10/pom.xml @@ -0,0 +1,54 @@ + + + + VanillaCustomizer + dev.lone + 1.0 + + 4.0.0 + + VanillaCustomizer-nms-v1_21_10 + + + 21 + 21 + + + + + + ca.bkaw + paper-nms-maven-plugin + 1.4.10 + + + process-classes + + remap + + + + + + + + + + + ca.bkaw + paper-nms + 1.21.10-SNAPSHOT + provided + + + + dev.lone + VanillaCustomizer-core + 1.0 + provided + + + + \ No newline at end of file diff --git a/VanillaCustomizer-nms-v1_21_10/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_10.java b/VanillaCustomizer-nms-v1_21_10/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_10.java new file mode 100644 index 0000000..51a8ed6 --- /dev/null +++ b/VanillaCustomizer-nms-v1_21_10/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_10.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_10 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/VanillaCustomizer-nms-v1_21_11/pom.xml b/VanillaCustomizer-nms-v1_21_11/pom.xml new file mode 100644 index 0000000..bc8c2bd --- /dev/null +++ b/VanillaCustomizer-nms-v1_21_11/pom.xml @@ -0,0 +1,54 @@ + + + + VanillaCustomizer + dev.lone + 1.0 + + 4.0.0 + + VanillaCustomizer-nms-v1_21_11 + + + 21 + 21 + + + + + + ca.bkaw + paper-nms-maven-plugin + 1.4.10 + + + process-classes + + remap + + + + + + + + + + + ca.bkaw + paper-nms + 1.21.11-SNAPSHOT + provided + + + + dev.lone + VanillaCustomizer-core + 1.0 + provided + + + + \ No newline at end of file diff --git a/VanillaCustomizer-nms-v1_21_11/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_11.java b/VanillaCustomizer-nms-v1_21_11/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_11.java new file mode 100644 index 0000000..015007a --- /dev/null +++ b/VanillaCustomizer-nms-v1_21_11/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_11.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_11 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/VanillaCustomizer-nms-v1_21_3/pom.xml b/VanillaCustomizer-nms-v1_21_3/pom.xml index 6fc900e..0ad8308 100644 --- a/VanillaCustomizer-nms-v1_21_3/pom.xml +++ b/VanillaCustomizer-nms-v1_21_3/pom.xml @@ -21,7 +21,7 @@ ca.bkaw paper-nms-maven-plugin - 1.4.5 + 1.4.10 process-classes diff --git a/VanillaCustomizer-nms-v1_21_4/pom.xml b/VanillaCustomizer-nms-v1_21_4/pom.xml index 2cc8705..55ada6f 100644 --- a/VanillaCustomizer-nms-v1_21_4/pom.xml +++ b/VanillaCustomizer-nms-v1_21_4/pom.xml @@ -21,7 +21,7 @@ ca.bkaw paper-nms-maven-plugin - 1.4.5 + 1.4.10 process-classes diff --git a/VanillaCustomizer-nms-v1_18_R2/pom.xml b/VanillaCustomizer-nms-v1_21_5/pom.xml similarity index 84% rename from VanillaCustomizer-nms-v1_18_R2/pom.xml rename to VanillaCustomizer-nms-v1_21_5/pom.xml index 066b3e3..acbd370 100644 --- a/VanillaCustomizer-nms-v1_18_R2/pom.xml +++ b/VanillaCustomizer-nms-v1_21_5/pom.xml @@ -9,20 +9,19 @@ 4.0.0 - VanillaCustomizer-nms-v1_18_R2 + VanillaCustomizer-nms-v1_21_5 - 17 - 17 + 21 + 21 - ca.bkaw paper-nms-maven-plugin - 1.3.2 + 1.4.10 process-classes @@ -40,7 +39,7 @@ ca.bkaw paper-nms - 1.18.2-SNAPSHOT + 1.21.5-SNAPSHOT provided diff --git a/VanillaCustomizer-nms-v1_19_R3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_19_R3.java b/VanillaCustomizer-nms-v1_21_5/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_5.java similarity index 55% rename from VanillaCustomizer-nms-v1_19_R3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_19_R3.java rename to VanillaCustomizer-nms-v1_21_5/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_5.java index 7d04132..1c1612b 100644 --- a/VanillaCustomizer-nms-v1_19_R3/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_19_R3.java +++ b/VanillaCustomizer-nms-v1_21_5/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_5.java @@ -2,15 +2,15 @@ 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.item.Item; import net.minecraft.world.level.block.Block; -import org.bukkit.craftbukkit.v1_19_R3.inventory.CraftItemStack; -import org.bukkit.craftbukkit.v1_19_R3.util.CraftMagicNumbers; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; @SuppressWarnings("unused") -public class v1_19_R3 implements IItemsNms +public class v1_21_5 implements IItemsNms { @Override public Rarity getRarity(ItemStack bukkitItem) @@ -29,20 +29,20 @@ public float getDestroySpeed(ItemStack bukkitItem) @Override public int getNutrition(ItemStack bukkitItem) { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getNutrition(); + 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) { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getSaturationModifier(); + 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/VanillaCustomizer-nms-v1_17_R1/pom.xml b/VanillaCustomizer-nms-v1_21_6/pom.xml similarity index 84% rename from VanillaCustomizer-nms-v1_17_R1/pom.xml rename to VanillaCustomizer-nms-v1_21_6/pom.xml index a718335..c99c613 100644 --- a/VanillaCustomizer-nms-v1_17_R1/pom.xml +++ b/VanillaCustomizer-nms-v1_21_6/pom.xml @@ -9,20 +9,19 @@ 4.0.0 - VanillaCustomizer-nms-v1_17_R1 + VanillaCustomizer-nms-v1_21_6 - 17 - 17 + 21 + 21 - ca.bkaw paper-nms-maven-plugin - 1.3.2 + 1.4.10 process-classes @@ -40,7 +39,7 @@ ca.bkaw paper-nms - 1.17.1-SNAPSHOT + 1.21.6-SNAPSHOT provided diff --git a/VanillaCustomizer-nms-v1_18_R2/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_18_R2.java b/VanillaCustomizer-nms-v1_21_6/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_6.java similarity index 55% rename from VanillaCustomizer-nms-v1_18_R2/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_18_R2.java rename to VanillaCustomizer-nms-v1_21_6/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_6.java index af73f2e..ca57362 100644 --- a/VanillaCustomizer-nms-v1_18_R2/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_18_R2.java +++ b/VanillaCustomizer-nms-v1_21_6/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_6.java @@ -2,15 +2,15 @@ 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.item.Item; import net.minecraft.world.level.block.Block; -import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack; -import org.bukkit.craftbukkit.v1_18_R2.util.CraftMagicNumbers; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; @SuppressWarnings("unused") -public class v1_18_R2 implements IItemsNms +public class v1_21_6 implements IItemsNms { @Override public Rarity getRarity(ItemStack bukkitItem) @@ -29,20 +29,20 @@ public float getDestroySpeed(ItemStack bukkitItem) @Override public int getNutrition(ItemStack bukkitItem) { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getNutrition(); + 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) { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getSaturationModifier(); + 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/VanillaCustomizer-nms-v1_19_R3/pom.xml b/VanillaCustomizer-nms-v1_21_7/pom.xml similarity index 84% rename from VanillaCustomizer-nms-v1_19_R3/pom.xml rename to VanillaCustomizer-nms-v1_21_7/pom.xml index afbbb67..680c086 100644 --- a/VanillaCustomizer-nms-v1_19_R3/pom.xml +++ b/VanillaCustomizer-nms-v1_21_7/pom.xml @@ -9,20 +9,19 @@ 4.0.0 - VanillaCustomizer-nms-v1_19_R3 + VanillaCustomizer-nms-v1_21_7 - 17 - 17 + 21 + 21 - ca.bkaw paper-nms-maven-plugin - 1.3.2 + 1.4.10 process-classes @@ -40,7 +39,7 @@ ca.bkaw paper-nms - 1.19.4-SNAPSHOT + 1.21.7-SNAPSHOT provided diff --git a/VanillaCustomizer-nms-v1_17_R1/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_17_R1.java b/VanillaCustomizer-nms-v1_21_7/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_7.java similarity index 55% rename from VanillaCustomizer-nms-v1_17_R1/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_17_R1.java rename to VanillaCustomizer-nms-v1_21_7/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_7.java index 6dade9b..97b6c0b 100644 --- a/VanillaCustomizer-nms-v1_17_R1/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_17_R1.java +++ b/VanillaCustomizer-nms-v1_21_7/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_7.java @@ -2,15 +2,15 @@ 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.item.Item; import net.minecraft.world.level.block.Block; -import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; -import org.bukkit.craftbukkit.v1_17_R1.util.CraftMagicNumbers; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; @SuppressWarnings("unused") -public class v1_17_R1 implements IItemsNms +public class v1_21_7 implements IItemsNms { @Override public Rarity getRarity(ItemStack bukkitItem) @@ -29,20 +29,20 @@ public float getDestroySpeed(ItemStack bukkitItem) @Override public int getNutrition(ItemStack bukkitItem) { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getNutrition(); + 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) { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getSaturationModifier(); + 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/VanillaCustomizer-nms-v1_20_R1/pom.xml b/VanillaCustomizer-nms-v1_21_8/pom.xml similarity index 84% rename from VanillaCustomizer-nms-v1_20_R1/pom.xml rename to VanillaCustomizer-nms-v1_21_8/pom.xml index 5bd9c5c..942752a 100644 --- a/VanillaCustomizer-nms-v1_20_R1/pom.xml +++ b/VanillaCustomizer-nms-v1_21_8/pom.xml @@ -9,20 +9,19 @@ 4.0.0 - VanillaCustomizer-nms-v1_20_R1 + VanillaCustomizer-nms-v1_21_8 - 17 - 17 + 21 + 21 - ca.bkaw paper-nms-maven-plugin - 1.3.2 + 1.4.10 process-classes @@ -40,7 +39,7 @@ ca.bkaw paper-nms - 1.20.1-SNAPSHOT + 1.21.8-SNAPSHOT provided diff --git a/VanillaCustomizer-nms-v1_20_R1/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R1.java b/VanillaCustomizer-nms-v1_21_8/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_8.java similarity index 55% rename from VanillaCustomizer-nms-v1_20_R1/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R1.java rename to VanillaCustomizer-nms-v1_21_8/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_8.java index 9711e7d..ce07fda 100644 --- a/VanillaCustomizer-nms-v1_20_R1/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_20_R1.java +++ b/VanillaCustomizer-nms-v1_21_8/src/main/java/dev/lone/vanillacustomizer/nms/items/impl/v1_21_8.java @@ -2,15 +2,15 @@ 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.item.Item; import net.minecraft.world.level.block.Block; -import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftItemStack; -import org.bukkit.craftbukkit.v1_20_R1.util.CraftMagicNumbers; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; @SuppressWarnings("unused") -public class v1_20_R1 implements IItemsNms +public class v1_21_8 implements IItemsNms { @Override public Rarity getRarity(ItemStack bukkitItem) @@ -29,20 +29,20 @@ public float getDestroySpeed(ItemStack bukkitItem) @Override public int getNutrition(ItemStack bukkitItem) { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getNutrition(); + 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) { - Item item = CraftItemStack.asNMSCopy(bukkitItem).getItem(); - FoodProperties foodProperties = item.getFoodProperties(); - if(foodProperties == null) - return 0; - return foodProperties.getSaturationModifier(); + 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 5ed1e41..a0a8ade 100644 --- a/pom.xml +++ b/pom.xml @@ -16,22 +16,22 @@ UTF-8 16 16 - E:/GitHub/Libs + /home/puppy/Documents/Development/Git/VanillaCustomizer/libs VanillaCustomizer-core VanillaCustomizer-jar - VanillaCustomizer-nms-v1_21_4 - VanillaCustomizer-nms-v1_21_3 - VanillaCustomizer-nms-v1_21_1 VanillaCustomizer-nms-v1_20_6 - VanillaCustomizer-nms-v1_20_R3 - VanillaCustomizer-nms-v1_20_R2 - VanillaCustomizer-nms-v1_20_R1 - VanillaCustomizer-nms-v1_19_R3 - VanillaCustomizer-nms-v1_18_R2 - VanillaCustomizer-nms-v1_17_R1 + VanillaCustomizer-nms-v1_21_1 + VanillaCustomizer-nms-v1_21_3 + VanillaCustomizer-nms-v1_21_4 + VanillaCustomizer-nms-v1_21_5 + VanillaCustomizer-nms-v1_21_6 + VanillaCustomizer-nms-v1_21_7 + VanillaCustomizer-nms-v1_21_8 + VanillaCustomizer-nms-v1_21_10 + VanillaCustomizer-nms-v1_21_11 @@ -60,7 +60,13 @@ maven-compiler-plugin - 3.1 + 3.8.1 + + false + 1.8 + 1.8 + 16 + org.apache.maven.plugins From b86b36926d81b1da8bfc40a3a4921988cf75b958 Mon Sep 17 00:00:00 2001 From: PuppyTransGirl <74014559+PuppyTransGirl@users.noreply.github.com> Date: Mon, 5 Jan 2026 22:24:07 +0100 Subject: [PATCH 7/7] Patches --- VanillaCustomizer-core/pom.xml | 8 ++++---- VanillaCustomizer-nms-v1_21_10/pom.xml | 13 +++++++++++++ VanillaCustomizer-nms-v1_21_11/pom.xml | 23 +++++++++++++++++++++++ VanillaCustomizer-nms-v1_21_8/pom.xml | 23 +++++++++++++++++++++++ 4 files changed, 63 insertions(+), 4 deletions(-) diff --git a/VanillaCustomizer-core/pom.xml b/VanillaCustomizer-core/pom.xml index 18eb6ed..da254e2 100644 --- a/VanillaCustomizer-core/pom.xml +++ b/VanillaCustomizer-core/pom.xml @@ -160,22 +160,22 @@ net.kyori adventure-text-serializer-gson - 4.15.0 + 4.26.1 net.kyori adventure-text-serializer-gson-legacy-impl - 4.15.0 + 4.26.1 net.kyori adventure-platform-bukkit - 4.3.2 + 4.4.1 net.kyori adventure-text-minimessage - 4.15.0 + 4.26.1 diff --git a/VanillaCustomizer-nms-v1_21_10/pom.xml b/VanillaCustomizer-nms-v1_21_10/pom.xml index 2a05eb0..d746a98 100644 --- a/VanillaCustomizer-nms-v1_21_10/pom.xml +++ b/VanillaCustomizer-nms-v1_21_10/pom.xml @@ -35,6 +35,13 @@ + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + ca.bkaw @@ -42,6 +49,12 @@ 1.21.10-SNAPSHOT provided + + org.spigotmc + spigot-api + 1.21.10-R0.1-SNAPSHOT + provided + dev.lone diff --git a/VanillaCustomizer-nms-v1_21_11/pom.xml b/VanillaCustomizer-nms-v1_21_11/pom.xml index bc8c2bd..68ee73b 100644 --- a/VanillaCustomizer-nms-v1_21_11/pom.xml +++ b/VanillaCustomizer-nms-v1_21_11/pom.xml @@ -35,6 +35,17 @@ + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + carm-repo + https://repo.carm.cc/repository/maven-public/ + + + ca.bkaw @@ -42,6 +53,18 @@ 1.21.11-SNAPSHOT provided + + org.spigotmc + spigot-api + 1.21.11-R0.1-SNAPSHOT + provided + + + com.mojang + datafixerupper + 8.0.16 + provided + dev.lone diff --git a/VanillaCustomizer-nms-v1_21_8/pom.xml b/VanillaCustomizer-nms-v1_21_8/pom.xml index 942752a..6322b20 100644 --- a/VanillaCustomizer-nms-v1_21_8/pom.xml +++ b/VanillaCustomizer-nms-v1_21_8/pom.xml @@ -35,6 +35,17 @@ + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + carm-repo + https://repo.carm.cc/repository/maven-public/ + + + ca.bkaw @@ -42,6 +53,18 @@ 1.21.8-SNAPSHOT provided + + org.spigotmc + spigot-api + 1.21.8-R0.1-SNAPSHOT + provided + + + com.mojang + datafixerupper + 8.0.16 + provided + dev.lone