diff --git a/VanillaCustomizer-core/pom.xml b/VanillaCustomizer-core/pom.xml
index 6a7ccf4..da254e2 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,27 +106,19 @@
1.20-R0.2
provided
-
- io.papermc.paper
- paper-api
- 1.21.1-R0.1-SNAPSHOT
- provided
-
org.spigotmc
- spigot
+ spigot-api
1.21.1-R0.1-SNAPSHOT
provided
- dev.lone.LoneLibs
- LoneLibs
- 1.0
- system
- ${jars_libs_folder}/LoneLibs.jar
+ beer.devs
+ FastNbt-jar
+ 1.4.15
+ compile
-
libs
ProtocolLib
@@ -90,6 +132,51 @@
24.0.0
compile
+
+ ca.bkaw
+ paper-nms
+ 1.21.4-SNAPSHOT
+ 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.26.1
+
+
+ net.kyori
+ adventure-text-serializer-gson-legacy-impl
+ 4.26.1
+
+
+ net.kyori
+ adventure-platform-bukkit
+ 4.4.1
+
+
+ net.kyori
+ adventure-text-minimessage
+ 4.26.1
+
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 9e8f28e..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.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.ChatColor;
+import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.attribute.Attribute;
@@ -24,6 +26,7 @@
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
+import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.util.*;
@@ -65,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;
}
@@ -81,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);
}
@@ -92,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;
}
@@ -108,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
{
@@ -180,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;
}
@@ -433,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);
}
}
@@ -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/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/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/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
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..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