diff --git a/pom.xml b/pom.xml
index 9e90d88c..314bf8de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
Custom items, combat, and more!
- 1.0.1-R0.15-SNAPSHOT
+ 1.1.0-R0.1-SNAPSHOT
1.0.4-R0.8-SNAPSHOT
@@ -38,6 +38,18 @@
+
+ org.mockbukkit.mockbukkit
+ mockbukkit-v1.21
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.20.6-R0.1-SNAPSHOT
+ provided
+
+
com.mojang
authlib
@@ -61,6 +73,19 @@
${fabled.version}
+
+ com.mysql
+ mysql-connector-j
+ ${mysql.version}
+ provided
+
+
+ com.google.protobuf
+ protobuf-java
+
+
+
+
io.lumine
Mythic-Dist
diff --git a/src/main/java/studio/magemonkey/divinity/Divinity.java b/src/main/java/studio/magemonkey/divinity/Divinity.java
index cfe8ce34..9ee2636c 100644
--- a/src/main/java/studio/magemonkey/divinity/Divinity.java
+++ b/src/main/java/studio/magemonkey/divinity/Divinity.java
@@ -33,7 +33,6 @@
import studio.magemonkey.divinity.manager.profile.ProfileManager;
import studio.magemonkey.divinity.manager.worth.WorthManager;
import studio.magemonkey.divinity.modules.ModuleCache;
-import studio.magemonkey.divinity.nms.engine.PMS;
import studio.magemonkey.divinity.nms.engine.PMSManager;
import studio.magemonkey.divinity.stats.EntityStats;
import studio.magemonkey.divinity.stats.items.ItemStats;
@@ -53,7 +52,8 @@
import java.util.List;
/**
- * Divinity
+ * Divinity
+ *
* @author ©2024 MageMonkeyStudio
*/
public class Divinity extends CodexDataPlugin {
@@ -118,11 +118,9 @@ public void enable() {
}
- if (this.pms.get() == null || !minCoreVersionMet) {
- if (!minCoreVersionMet) {
- warn("Missing required Codex version. " + coreVersion + " installed. "
- + DependencyRequirement.MIN_CORE_VERSION + " required. Disabling.");
- }
+ if (!minCoreVersionMet) {
+ warn("Missing required Codex version. " + coreVersion + " installed. "
+ + DependencyRequirement.MIN_CORE_VERSION + " required. Disabling.");
this.getPluginManager().disablePlugin(this);
return;
}
@@ -303,11 +301,6 @@ private void addCustomActions() {
this.getActionsManager().registerExecutor(new ActionTakeMana(this));
}
- @NotNull
- public PMS getPMS() {
- return this.pms.get();
- }
-
@NotNull
public InteractionManager getInteractionManager() {
return interactionManager;
diff --git a/src/main/java/studio/magemonkey/divinity/api/event/DivinityDamageEvent.java b/src/main/java/studio/magemonkey/divinity/api/event/DivinityDamageEvent.java
index 54f1583d..82eadc71 100644
--- a/src/main/java/studio/magemonkey/divinity/api/event/DivinityDamageEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/api/event/DivinityDamageEvent.java
@@ -10,7 +10,7 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import studio.magemonkey.codex.manager.api.event.ICancellableEvent;
+import studio.magemonkey.codex.api.events.ICancellableEvent;
import studio.magemonkey.divinity.manager.damage.DamageMeta;
import studio.magemonkey.divinity.modules.list.arrows.ArrowManager.QArrow;
import studio.magemonkey.divinity.stats.EntityStats;
diff --git a/src/main/java/studio/magemonkey/divinity/api/event/DivinityItemDamageEvent.java b/src/main/java/studio/magemonkey/divinity/api/event/DivinityItemDamageEvent.java
index 8cdc7f97..cc11f049 100644
--- a/src/main/java/studio/magemonkey/divinity/api/event/DivinityItemDamageEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/api/event/DivinityItemDamageEvent.java
@@ -4,7 +4,7 @@
import lombok.RequiredArgsConstructor;
import org.bukkit.entity.LivingEntity;
import org.bukkit.inventory.ItemStack;
-import studio.magemonkey.codex.manager.api.event.ICancellableEvent;
+import studio.magemonkey.codex.api.events.ICancellableEvent;
@Getter
@RequiredArgsConstructor
diff --git a/src/main/java/studio/magemonkey/divinity/config/Config.java b/src/main/java/studio/magemonkey/divinity/config/Config.java
index 8bb441f2..d3604504 100644
--- a/src/main/java/studio/magemonkey/divinity/config/Config.java
+++ b/src/main/java/studio/magemonkey/divinity/config/Config.java
@@ -7,7 +7,7 @@
import org.jetbrains.annotations.Nullable;
import studio.magemonkey.codex.config.api.IConfigTemplate;
import studio.magemonkey.codex.config.api.JYML;
-import studio.magemonkey.codex.items.ItemType;
+import studio.magemonkey.codex.api.items.ItemType;
import studio.magemonkey.codex.util.StringUT;
import studio.magemonkey.codex.util.actions.ActionManipulator;
import studio.magemonkey.codex.util.constants.JStrings;
diff --git a/src/main/java/studio/magemonkey/divinity/config/Lang.java b/src/main/java/studio/magemonkey/divinity/config/Lang.java
index c029b9f0..11b70fc6 100644
--- a/src/main/java/studio/magemonkey/divinity/config/Lang.java
+++ b/src/main/java/studio/magemonkey/divinity/config/Lang.java
@@ -3,7 +3,7 @@
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.config.api.ILangMsg;
import studio.magemonkey.codex.core.config.CoreLang;
-import studio.magemonkey.codex.manager.types.ClickType;
+import studio.magemonkey.codex.manager.api.ClickType;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.data.api.UserEntityNamesMode;
import studio.magemonkey.divinity.modules.list.classes.object.ClassAttributeType;
diff --git a/src/main/java/studio/magemonkey/divinity/manager/damage/DamageManager.java b/src/main/java/studio/magemonkey/divinity/manager/damage/DamageManager.java
index 6f8e8740..fb5fd523 100644
--- a/src/main/java/studio/magemonkey/divinity/manager/damage/DamageManager.java
+++ b/src/main/java/studio/magemonkey/divinity/manager/damage/DamageManager.java
@@ -22,8 +22,8 @@
import org.bukkit.util.Vector;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import studio.magemonkey.codex.api.items.PrefixHelper;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.items.CodexItemManager;
import studio.magemonkey.codex.manager.IListener;
import studio.magemonkey.codex.registry.damage.DamageTypeProvider;
import studio.magemonkey.codex.util.LocUT;
@@ -521,7 +521,7 @@ public boolean dealDamage(@NotNull LivingEntity entity,
String damageType,
@Nullable LivingEntity damager) {
DamageAttribute damageAttribute =
- ItemStats.getDamageById(CodexItemManager.stripPrefix(getNamespace(), damageType));
+ ItemStats.getDamageById(PrefixHelper.stripPrefix(getNamespace(), damageType));
if (damageAttribute == null) return false;
final boolean[] success = {false};
Listener listener = new Listener() {
diff --git a/src/main/java/studio/magemonkey/divinity/manager/listener/object/VanillaWrapperListener.java b/src/main/java/studio/magemonkey/divinity/manager/listener/object/VanillaWrapperListener.java
index ecbf32e4..821198d8 100644
--- a/src/main/java/studio/magemonkey/divinity/manager/listener/object/VanillaWrapperListener.java
+++ b/src/main/java/studio/magemonkey/divinity/manager/listener/object/VanillaWrapperListener.java
@@ -17,10 +17,10 @@
import org.bukkit.projectiles.ProjectileSource;
import org.bukkit.util.Vector;
import org.jetbrains.annotations.NotNull;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
import studio.magemonkey.codex.manager.IListener;
import studio.magemonkey.codex.registry.attribute.AttributeRegistry;
-import studio.magemonkey.codex.util.AttributeUT;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.DivinityDamageEvent;
@@ -290,7 +290,7 @@ public void onVanillaDamage(EntityDamageEvent e) {
if (Divinity.getInstance().getModuleCache().getTierManager().isItemOfThisModule(weapon)) {
AttributeInstance attackDamageAttribute =
- damager.getAttribute(AttributeUT.resolve("ATTACK_DAMAGE"));
+ damager.getAttribute(VersionManager.getNms().getAttribute("ATTACK_DAMAGE"));
damagerAttackDamage =
attackDamageAttribute != null ? attackDamageAttribute.getBaseValue() : 1;
}
diff --git a/src/main/java/studio/magemonkey/divinity/modules/ModuleItem.java b/src/main/java/studio/magemonkey/divinity/modules/ModuleItem.java
index d4dca35d..ea1f3856 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/ModuleItem.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/ModuleItem.java
@@ -14,11 +14,11 @@
import org.bukkit.inventory.meta.PotionMeta;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.exception.MissingItemException;
+import studio.magemonkey.codex.api.items.exception.MissingProviderException;
+import studio.magemonkey.codex.api.items.providers.VanillaProvider;
import studio.magemonkey.codex.config.api.JYML;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.exception.MissingItemException;
-import studio.magemonkey.codex.items.exception.MissingProviderException;
-import studio.magemonkey.codex.items.providers.VanillaProvider;
import studio.magemonkey.codex.manager.LoadableItem;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.NamespaceResolver;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/command/MDropCmd.java b/src/main/java/studio/magemonkey/divinity/modules/command/MDropCmd.java
index 64b8737c..e0b5ab02 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/command/MDropCmd.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/command/MDropCmd.java
@@ -7,9 +7,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.exception.MissingItemException;
-import studio.magemonkey.codex.items.exception.MissingProviderException;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.exception.MissingItemException;
+import studio.magemonkey.codex.api.items.exception.MissingProviderException;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.LocUT;
import studio.magemonkey.codex.util.random.Rnd;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/command/MGetCmd.java b/src/main/java/studio/magemonkey/divinity/modules/command/MGetCmd.java
index 47ad60b0..11226a6a 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/command/MGetCmd.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/command/MGetCmd.java
@@ -5,9 +5,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.exception.MissingItemException;
-import studio.magemonkey.codex.items.exception.MissingProviderException;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.exception.MissingItemException;
+import studio.magemonkey.codex.api.items.exception.MissingProviderException;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.random.Rnd;
import studio.magemonkey.divinity.Perms;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/command/MGiveCmd.java b/src/main/java/studio/magemonkey/divinity/modules/command/MGiveCmd.java
index 7aef0496..35f2bf6e 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/command/MGiveCmd.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/command/MGiveCmd.java
@@ -5,9 +5,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.exception.MissingItemException;
-import studio.magemonkey.codex.items.exception.MissingProviderException;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.exception.MissingItemException;
+import studio.magemonkey.codex.api.items.exception.MissingProviderException;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.PlayerUT;
import studio.magemonkey.codex.util.random.Rnd;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/classes/ComboManager.java b/src/main/java/studio/magemonkey/divinity/modules/list/classes/ComboManager.java
index 9b4f31ba..c7223228 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/classes/ComboManager.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/classes/ComboManager.java
@@ -17,6 +17,7 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.config.api.JYML;
import studio.magemonkey.codex.manager.IListener;
import studio.magemonkey.codex.manager.api.Loadable;
@@ -284,7 +285,7 @@ public void onClassCombo3(EntityDamageByEntityEvent e) {
public void playAttackAnim(@NotNull Player player, boolean main) {
int animId = main ? 0 : 3;
this.stopCombo(player);
- this.plugin.getNMS().sendAttackPacket(player, animId);
+ VersionManager.getNms().sendAttackPacket(player, animId);
}
public void stopCombo(@NotNull Player p) {
@@ -582,7 +583,7 @@ public void click(@NotNull Player p, @Nullable Enum> type, @NotNull InventoryC
}
@Override
- protected void onCreate(Player player, Inventory inv, int page) {
+ protected void onCreate(@NotNull Player player, @NotNull Inventory inv, int page) {
// Show current skill combo
int count = 0;
for (ComboKey key : this.data.getCombo()) {
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/classes/event/PlayerClassEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/classes/event/PlayerClassEvent.java
index 43c75e9b..71b3da9f 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/classes/event/PlayerClassEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/classes/event/PlayerClassEvent.java
@@ -2,7 +2,7 @@
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.manager.api.event.IEvent;
+import studio.magemonkey.codex.api.events.IEvent;
import studio.magemonkey.divinity.modules.list.classes.api.UserClassData;
public abstract class PlayerClassEvent extends IEvent {
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/classes/gui/ClassSelectionGUI.java b/src/main/java/studio/magemonkey/divinity/modules/list/classes/gui/ClassSelectionGUI.java
index 02b6c4ac..42136b47 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/classes/gui/ClassSelectionGUI.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/classes/gui/ClassSelectionGUI.java
@@ -19,10 +19,10 @@
public class ClassSelectionGUI extends NGUI {
- private ClassManager classManager;
- private boolean allowClose;
- private int[] objSlots;
- private boolean isMainSelector;
+ private final ClassManager classManager;
+ private final boolean allowClose;
+ private final int[] objSlots;
+ private final boolean isMainSelector;
public ClassSelectionGUI(@NotNull ClassManager classManager,
@NotNull JYML cfg,
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/classes/object/ClassAttributeType.java b/src/main/java/studio/magemonkey/divinity/modules/list/classes/object/ClassAttributeType.java
index 6d432c7f..7702e876 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/classes/object/ClassAttributeType.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/classes/object/ClassAttributeType.java
@@ -2,11 +2,10 @@
import org.bukkit.attribute.Attribute;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.util.AttributeUT;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.util.StringUT;
public enum ClassAttributeType {
-
ARMOR(0D),
ARMOR_TOUGHNESS(0D),
ATTACK_DAMAGE(1D),
@@ -22,8 +21,8 @@ public enum ClassAttributeType {
private String name;
private double defValue;
- private ClassAttributeType(double def) {
- this.att = AttributeUT.resolve(this.name());
+ ClassAttributeType(double def) {
+ this.att = VersionManager.getNms().getAttribute(this.name());
this.name = this.name();
this.defValue = def;
}
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/dismantle/event/PlayerDismantleItemEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/dismantle/event/PlayerDismantleItemEvent.java
index f77d81b9..0fc6b2de 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/dismantle/event/PlayerDismantleItemEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/dismantle/event/PlayerDismantleItemEvent.java
@@ -3,7 +3,7 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.manager.api.event.IEvent;
+import studio.magemonkey.codex.api.events.IEvent;
import studio.magemonkey.divinity.modules.list.dismantle.DismantleManager.OutputContainer;
import java.util.HashMap;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/dismantle/event/PlayerPreDismantleItemEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/dismantle/event/PlayerPreDismantleItemEvent.java
index 5768aac0..86560ad8 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/dismantle/event/PlayerPreDismantleItemEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/dismantle/event/PlayerPreDismantleItemEvent.java
@@ -3,7 +3,7 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.manager.api.event.ICancellableEvent;
+import studio.magemonkey.codex.api.events.ICancellableEvent;
import studio.magemonkey.divinity.modules.list.dismantle.DismantleManager.OutputContainer;
import java.util.Map;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/drops/DropManager.java b/src/main/java/studio/magemonkey/divinity/modules/list/drops/DropManager.java
index 338b448d..38d5faa2 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/drops/DropManager.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/drops/DropManager.java
@@ -20,7 +20,7 @@
import org.jetbrains.annotations.Nullable;
import studio.magemonkey.codex.config.api.JYML;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.manager.types.MobGroup;
+import studio.magemonkey.codex.manager.api.MobGroup;
import studio.magemonkey.codex.util.actions.ActionManipulator;
import studio.magemonkey.codex.util.constants.JStrings;
import studio.magemonkey.divinity.Divinity;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/extractor/event/PlayerExtractSocketEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/extractor/event/PlayerExtractSocketEvent.java
index 87948d63..92c19e71 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/extractor/event/PlayerExtractSocketEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/extractor/event/PlayerExtractSocketEvent.java
@@ -5,7 +5,7 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.manager.api.event.ICancellableEvent;
+import studio.magemonkey.codex.api.events.ICancellableEvent;
import studio.magemonkey.divinity.stats.items.attributes.SocketAttribute;
import java.util.List;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/identify/IdentifyManager.java b/src/main/java/studio/magemonkey/divinity/modules/list/identify/IdentifyManager.java
index 8820ba34..14db5082 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/identify/IdentifyManager.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/identify/IdentifyManager.java
@@ -9,10 +9,10 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.providers.ICodexItemProvider;
+import studio.magemonkey.codex.api.items.providers.VanillaProvider;
import studio.magemonkey.codex.config.api.JYML;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.providers.ICodexItemProvider;
-import studio.magemonkey.codex.items.providers.VanillaProvider;
import studio.magemonkey.codex.modules.IModule;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.actions.ActionManipulator;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/identify/event/PlayerIdentifyItemEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/identify/event/PlayerIdentifyItemEvent.java
index 627a0444..4f51f6c1 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/identify/event/PlayerIdentifyItemEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/identify/event/PlayerIdentifyItemEvent.java
@@ -3,7 +3,7 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.manager.api.event.ICancellableEvent;
+import studio.magemonkey.codex.api.events.ICancellableEvent;
import studio.magemonkey.divinity.modules.list.identify.IdentifyManager.IdentifyTome;
import studio.magemonkey.divinity.modules.list.identify.IdentifyManager.UnidentifiedItem;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/ItemGeneratorManager.java b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/ItemGeneratorManager.java
index 678835db..7a80c5fc 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/ItemGeneratorManager.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/ItemGeneratorManager.java
@@ -4,7 +4,6 @@
import org.bukkit.DyeColor;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
-import org.bukkit.Registry;
import org.bukkit.block.Banner;
import org.bukkit.block.banner.Pattern;
import org.bukkit.block.banner.PatternType;
@@ -12,22 +11,19 @@
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ArmorMeta;
import org.bukkit.inventory.meta.BlockStateMeta;
import org.bukkit.inventory.meta.ItemMeta;
-import org.bukkit.inventory.meta.trim.ArmorTrim;
-import org.bukkit.inventory.meta.trim.TrimMaterial;
-import org.bukkit.inventory.meta.trim.TrimPattern;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.exception.MissingItemException;
+import studio.magemonkey.codex.api.items.exception.MissingProviderException;
+import studio.magemonkey.codex.api.items.providers.ICodexItemProvider;
+import studio.magemonkey.codex.api.items.providers.VanillaProvider;
import studio.magemonkey.codex.config.api.JYML;
import studio.magemonkey.codex.core.Version;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.exception.MissingItemException;
-import studio.magemonkey.codex.items.exception.MissingProviderException;
-import studio.magemonkey.codex.items.providers.ICodexItemProvider;
-import studio.magemonkey.codex.items.providers.VanillaProvider;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.codex.util.StringUT;
@@ -501,10 +497,11 @@ public GeneratorItem(@NotNull Divinity plugin, @NotNull JYML cfg) {
continue;
}
if (!split[0].equals("*")
- && Registry.TRIM_MATERIAL.get(NamespacedKey.minecraft(split[0])) == null) {
+ && VersionManager.getArmorUtil().getTrimMaterial(NamespacedKey.minecraft(split[0])) == null) {
continue;
}
- if (!split[1].equals("*") && Registry.TRIM_PATTERN.get(NamespacedKey.minecraft(split[1])) == null) {
+ if (!split[1].equals("*") &&
+ VersionManager.getArmorUtil().getTrimPattern(NamespacedKey.minecraft(split[1])) == null) {
continue;
}
totalWeight += weight;
@@ -819,55 +816,9 @@ protected ItemStack build(int itemLvl, int uses, @Nullable ItemType mat) {
bmeta.setBlockState(banner);
}
- if (!armorTrims.isEmpty() && meta instanceof ArmorMeta) {
- String trimString = armorTrims.ceilingEntry(Rnd.nextDouble() * armorTrims.lastKey()).getValue();
- ArmorTrim armorTrim;
- if (trimString == null) {
- armorTrim = null;
- } else {
- String[] split = trimString.split(":");
- TrimMaterial trimMaterial = null;
- if (split[0].equals("*")) {
- int size = 0;
- for (TrimMaterial ignored : Registry.TRIM_MATERIAL) {
- size++;
- }
- int index = Rnd.get(size);
- int i = 0;
- for (Iterator iterator = Registry.TRIM_MATERIAL.iterator();
- iterator.hasNext(); ) {
- TrimMaterial next = iterator.next();
- if (index == i) {
- trimMaterial = next;
- break;
- }
- i++;
- }
- } else {
- trimMaterial = Registry.TRIM_MATERIAL.get(NamespacedKey.minecraft(split[0]));
- }
- TrimPattern trimPattern = null;
- if (split[1].equals("*")) {
- int size = 0;
- for (TrimPattern ignored : Registry.TRIM_PATTERN) {
- size++;
- }
- int index = Rnd.get(size);
- int i = 0;
- for (TrimPattern next : Registry.TRIM_PATTERN) {
- if (index == i) {
- trimPattern = next;
- break;
- }
- i++;
- }
- } else {
- trimPattern = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft(split[1]));
- }
- armorTrim =
- new ArmorTrim(Objects.requireNonNull(trimMaterial), Objects.requireNonNull(trimPattern));
- }
- ((ArmorMeta) meta).setTrim(armorTrim);
+ if (!armorTrims.isEmpty()) {
+ String trimString = armorTrims.ceilingEntry(Rnd.nextDouble() * armorTrims.lastKey()).getValue();
+ VersionManager.getArmorUtil().addTrim(meta, trimString.split(":")[0], trimString.split(":")[1]);
}
item.setItemMeta(meta);
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/ResourceManager.java b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/ResourceManager.java
index d64210d1..a1e7af53 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/ResourceManager.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/ResourceManager.java
@@ -1,7 +1,7 @@
package studio.magemonkey.divinity.modules.list.itemgenerator;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.items.ItemType;
+import studio.magemonkey.codex.api.items.ItemType;
import studio.magemonkey.codex.manager.api.Loadable;
import studio.magemonkey.codex.util.FileUT;
import studio.magemonkey.divinity.config.Config;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/editor/materials/MainMaterialsGUI.java b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/editor/materials/MainMaterialsGUI.java
index 7ee067b4..96d6d4b6 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/editor/materials/MainMaterialsGUI.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/editor/materials/MainMaterialsGUI.java
@@ -4,10 +4,10 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import studio.magemonkey.codex.CodexEngine;
-import studio.magemonkey.codex.items.exception.CodexItemException;
-import studio.magemonkey.codex.items.exception.MissingItemException;
-import studio.magemonkey.codex.items.exception.MissingProviderException;
-import studio.magemonkey.codex.items.providers.VanillaProvider;
+import studio.magemonkey.codex.api.items.exception.CodexItemException;
+import studio.magemonkey.codex.api.items.exception.MissingItemException;
+import studio.magemonkey.codex.api.items.exception.MissingProviderException;
+import studio.magemonkey.codex.api.items.providers.VanillaProvider;
import studio.magemonkey.codex.manager.api.menu.Slot;
import studio.magemonkey.codex.util.StringUT;
import studio.magemonkey.codex.util.constants.JStrings;
@@ -98,7 +98,7 @@ public static ItemStack getMaterial(String string) {
}
// If not found, find first thing that matches
- for (studio.magemonkey.codex.items.ItemType material : Config.getAllRegisteredMaterials()) {
+ for (studio.magemonkey.codex.api.items.ItemType material : Config.getAllRegisteredMaterials()) {
String materialName = material.getNamespacedID().toUpperCase();
if (split[0].isEmpty() && materialName.endsWith(split[1])
|| split[1].isEmpty() && materialName.startsWith(split[0])) return material.create();
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/editor/trimmings/TrimmingListGUI.java b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/editor/trimmings/TrimmingListGUI.java
index 86243a8b..c80ab138 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/editor/trimmings/TrimmingListGUI.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/editor/trimmings/TrimmingListGUI.java
@@ -1,5 +1,7 @@
package studio.magemonkey.divinity.modules.list.itemgenerator.editor.trimmings;
+import lombok.Getter;
+import lombok.Setter;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
@@ -18,7 +20,6 @@
import java.util.*;
public class TrimmingListGUI extends AbstractEditorGUI {
-
public TrimmingListGUI(Player player, ItemGeneratorReference itemGenerator) {
super(player,
6,
@@ -94,6 +95,7 @@ public void setContents() {
}
}
}
+
if (next == null) {
ArmorTrim armorTrim = new ArmorTrim(null, null);
if (!map.containsKey(armorTrim)) {
@@ -254,6 +256,8 @@ public int hashCode() {
}
}
+ @Getter
+ @Setter
public static class TrimmingEntry {
private ArmorTrim armorTrim;
private double weight;
@@ -262,21 +266,5 @@ public TrimmingEntry(ArmorTrim armorTrim, double weight) {
this.armorTrim = armorTrim;
this.weight = weight;
}
-
- public ArmorTrim getArmorTrim() {
- return armorTrim;
- }
-
- public void setArmorTrim(ArmorTrim armorTrim) {
- this.armorTrim = armorTrim;
- }
-
- public double getWeight() {
- return weight;
- }
-
- public void setWeight(double weight) {
- this.weight = weight;
- }
}
}
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/generators/AbilityGenerator.java b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/generators/AbilityGenerator.java
index 8b694327..582b7c2d 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/generators/AbilityGenerator.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/itemgenerator/generators/AbilityGenerator.java
@@ -5,7 +5,7 @@
import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.config.api.JYML;
-import studio.magemonkey.codex.manager.types.ClickType;
+import studio.magemonkey.codex.manager.api.ClickType;
import studio.magemonkey.codex.util.DataUT;
import studio.magemonkey.codex.util.StringUT;
import studio.magemonkey.codex.util.random.Rnd;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/loot/LootManager.java b/src/main/java/studio/magemonkey/divinity/modules/list/loot/LootManager.java
index b3cb944b..d20179c1 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/loot/LootManager.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/loot/LootManager.java
@@ -23,6 +23,7 @@
import org.bukkit.metadata.FixedMetadataValue;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
import studio.magemonkey.codex.hooks.external.WorldGuardHK;
import studio.magemonkey.codex.manager.api.task.ITask;
@@ -171,7 +172,7 @@ public boolean spawnLoot(@Nullable LivingEntity killer, @NotNull LivingEntity de
directional.setRotation(face != null ? face : BlockFace.EAST);
block.setBlockData(directional);
}
- plugin.getPMS().changeSkull(block, this.boxSkullHash);
+ VersionManager.getNms().changeSkull(block, this.boxSkullHash);
LootHolder lootHolder = new LootHolder(this, boxLoc, killer, dead, loot);
this.loots.putIfAbsent(boxLoc, lootHolder);
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/magicdust/event/PlayerImproveItemSocketRateEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/magicdust/event/PlayerImproveItemSocketRateEvent.java
index afcb23d9..5c89afe2 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/magicdust/event/PlayerImproveItemSocketRateEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/magicdust/event/PlayerImproveItemSocketRateEvent.java
@@ -3,7 +3,7 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.manager.api.event.ICancellableEvent;
+import studio.magemonkey.codex.api.events.ICancellableEvent;
public class PlayerImproveItemSocketRateEvent extends ICancellableEvent {
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/party/event/PlayerLeavePartyEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/party/event/PlayerLeavePartyEvent.java
index 4ffeaa17..8da57114 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/party/event/PlayerLeavePartyEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/party/event/PlayerLeavePartyEvent.java
@@ -3,7 +3,7 @@
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import studio.magemonkey.codex.manager.api.event.IEvent;
+import studio.magemonkey.codex.api.events.IEvent;
import studio.magemonkey.divinity.modules.list.party.PartyManager.PartyMember;
public class PlayerLeavePartyEvent extends IEvent {
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/repair/RepairManager.java b/src/main/java/studio/magemonkey/divinity/modules/list/repair/RepairManager.java
index 2fb507a2..fb6a1214 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/repair/RepairManager.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/repair/RepairManager.java
@@ -18,7 +18,7 @@
import studio.magemonkey.codex.config.api.JYML;
import studio.magemonkey.codex.hooks.external.VaultHK;
import studio.magemonkey.codex.hooks.external.citizens.CitizensHK;
-import studio.magemonkey.codex.manager.types.ClickType;
+import studio.magemonkey.codex.manager.api.ClickType;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.PlayerUT;
import studio.magemonkey.codex.util.StringUT;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/sell/event/PlayerPreSellItemEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/sell/event/PlayerPreSellItemEvent.java
index c7a0e6c7..64f4dc81 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/sell/event/PlayerPreSellItemEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/sell/event/PlayerPreSellItemEvent.java
@@ -3,7 +3,7 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.manager.api.event.ICancellableEvent;
+import studio.magemonkey.codex.api.events.ICancellableEvent;
import java.util.Map;
diff --git a/src/main/java/studio/magemonkey/divinity/modules/list/sell/event/PlayerSellItemEvent.java b/src/main/java/studio/magemonkey/divinity/modules/list/sell/event/PlayerSellItemEvent.java
index f417ab5c..7687fc40 100644
--- a/src/main/java/studio/magemonkey/divinity/modules/list/sell/event/PlayerSellItemEvent.java
+++ b/src/main/java/studio/magemonkey/divinity/modules/list/sell/event/PlayerSellItemEvent.java
@@ -3,7 +3,7 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.manager.api.event.IEvent;
+import studio.magemonkey.codex.api.events.IEvent;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/studio/magemonkey/divinity/nms/engine/PMS.java b/src/main/java/studio/magemonkey/divinity/nms/engine/PMS.java
deleted file mode 100644
index 1cd2c7db..00000000
--- a/src/main/java/studio/magemonkey/divinity/nms/engine/PMS.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package studio.magemonkey.divinity.nms.engine;
-
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.util.reflection.ReflectionManager;
-import studio.magemonkey.codex.util.reflection.ReflectionUtil;
-
-public class PMS {
-
- protected ReflectionUtil reflectionUtil;
-
- public PMS() {
- reflectionUtil = ReflectionManager.getReflectionUtil();
- }
-
- public float getAttackCooldown(@NotNull Player p) {
- return p.getAttackCooldown();
- }
-
- public void changeSkull(Block b, String hash) {
- reflectionUtil.changeSkull(b, hash);
- }
-
- public double getDefaultDamage(@NotNull ItemStack itemStack) {
- return reflectionUtil.getDefaultDamage(itemStack);
- }
-
- public double getDefaultSpeed(@NotNull ItemStack itemStack) {
- return reflectionUtil.getDefaultSpeed(itemStack);
- }
-
- public double getDefaultArmor(@NotNull ItemStack itemStack) {
- return reflectionUtil.getDefaultArmor(itemStack);
- }
-
- public double getDefaultToughness(@NotNull ItemStack itemStack) {
- return reflectionUtil.getDefaultToughness(itemStack);
- }
-}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/engine/PMSManager.java b/src/main/java/studio/magemonkey/divinity/nms/engine/PMSManager.java
index 504f3f80..06aaa733 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/engine/PMSManager.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/engine/PMSManager.java
@@ -7,9 +7,7 @@
import studio.magemonkey.divinity.nms.packets.PacketManager;
public class PMSManager {
-
private final Divinity plugin;
- private PMS nmsEngine;
private PacketManager packetManager;
public PMSManager(@NotNull Divinity plugin) {
@@ -17,8 +15,6 @@ public PMSManager(@NotNull Divinity plugin) {
}
public void setup() {
- nmsEngine = new PMS();
-
if (EngineCfg.PACKETS_ENABLED) {
this.plugin.info("Packets are enabled. Setup packet manager...");
this.packetManager = new PacketManager(this.plugin);
@@ -27,17 +23,12 @@ public void setup() {
}
public void shutdown() {
- this.nmsEngine = null;
if (this.packetManager != null) {
this.packetManager.shutdown();
this.packetManager = null;
}
}
- public PMS get() {
- return this.nmsEngine;
- }
-
@Nullable
public PacketManager getPacketManager() {
return this.packetManager;
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/UniversalPacketHandler.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/UniversalPacketHandler.java
index 53eaa39d..e6364077 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/UniversalPacketHandler.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/UniversalPacketHandler.java
@@ -8,11 +8,9 @@
import studio.magemonkey.codex.CodexEngine;
import studio.magemonkey.codex.hooks.Hooks;
import studio.magemonkey.codex.nms.packets.IPacketHandler;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
-import studio.magemonkey.codex.nms.packets.events.EngineServerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EngineServerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
-import studio.magemonkey.codex.util.reflection.ReflectionManager;
-import studio.magemonkey.codex.util.reflection.ReflectionUtil;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
import studio.magemonkey.divinity.config.EngineCfg;
@@ -28,11 +26,9 @@
public class UniversalPacketHandler implements IPacketHandler {
protected Divinity plugin;
- protected ReflectionUtil reflectionUtil;
public UniversalPacketHandler(@NotNull Divinity plugin) {
this.plugin = plugin;
- reflectionUtil = ReflectionManager.getReflectionUtil();
}
@Override
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_17_R1.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_17_R1.java
index d385c9e9..24bc68e7 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_17_R1.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_17_R1.java
@@ -9,8 +9,8 @@
import studio.magemonkey.codex.CodexEngine;
import studio.magemonkey.codex.hooks.Hooks;
import studio.magemonkey.codex.nms.packets.IPacketHandler;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
-import studio.magemonkey.codex.nms.packets.events.EngineServerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EngineServerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_18_R1.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_18_R1.java
index 649d7733..3fb8b3da 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_18_R1.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_18_R1.java
@@ -9,10 +9,11 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
import studio.magemonkey.codex.nms.packets.IPacketHandler;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
-import studio.magemonkey.codex.nms.packets.events.EngineServerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EngineServerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -229,7 +230,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R1.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R1.java
index 674c9f7b..9ef015e3 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R1.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R1.java
@@ -9,8 +9,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -159,7 +160,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R2.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R2.java
index 6a44f723..9c724a02 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R2.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R2.java
@@ -9,8 +9,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -160,7 +161,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R3.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R3.java
index 49929c44..89c717b3 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R3.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_19_R3.java
@@ -9,8 +9,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -153,7 +154,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R1.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R1.java
index fdfa8677..02fca96f 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R1.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R1.java
@@ -9,8 +9,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -139,7 +140,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R2.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R2.java
index 35d4a1c5..5d06d8a9 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R2.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R2.java
@@ -9,8 +9,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -141,7 +142,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R3.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R3.java
index b25676c6..6eb7ff90 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R3.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R3.java
@@ -9,8 +9,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -141,7 +142,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R4.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R4.java
index 94750fdb..ec530a0e 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R4.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_20_R4.java
@@ -9,8 +9,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -141,7 +142,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_21_R1.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_21_R1.java
index 639ba727..0ec5c956 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_21_R1.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_21_R1.java
@@ -1,7 +1,7 @@
package studio.magemonkey.divinity.nms.packets.versions;
import org.jetbrains.annotations.NotNull;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
diff --git a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_21_R2.java b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_21_R2.java
index 47965180..7c855a0e 100644
--- a/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_21_R2.java
+++ b/src/main/java/studio/magemonkey/divinity/nms/packets/versions/V1_21_R2.java
@@ -9,9 +9,10 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.core.Version;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.nms.packets.events.EnginePlayerPacketEvent;
+import studio.magemonkey.codex.api.events.EnginePlayerPacketEvent;
import studio.magemonkey.codex.util.Reflex;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.api.event.EntityEquipmentChangeEvent;
@@ -141,7 +142,7 @@ protected void managePlayerHelmet(@NotNull EnginePlayerPacketEvent e, @NotNull O
if (profile.isHideHelmet()) {
ItemStack air = new ItemStack(Material.AIR);
slots.remove(helmet);
- slots.add(new Pair<>(helmet.getFirst(), reflectionUtil.getNMSCopy(air)));
+ slots.add(new Pair<>(helmet.getFirst(), VersionManager.getNms().getNMSCopy(air)));
}
});
}
diff --git a/src/main/java/studio/magemonkey/divinity/stats/EntityStats.java b/src/main/java/studio/magemonkey/divinity/stats/EntityStats.java
index 6cfb7efd..0681b977 100644
--- a/src/main/java/studio/magemonkey/divinity/stats/EntityStats.java
+++ b/src/main/java/studio/magemonkey/divinity/stats/EntityStats.java
@@ -17,9 +17,10 @@
import org.bukkit.projectiles.ProjectileSource;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import studio.magemonkey.codex.compat.Compat;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.api.meta.NBTAttribute;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.util.AttributeUT;
import studio.magemonkey.codex.util.EntityUT;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.NamespaceResolver;
@@ -61,9 +62,7 @@
import static org.bukkit.attribute.AttributeModifier.Operation;
public class EntityStats {
-
private static final Map STATS;
- private static final UUID ATTRIBUTE_BONUS_UUID;
private static final SimpleStat.Type[] ATTRIBUTE_BONUS_STATS;
private static final NBTAttribute[] ATTRIBUTE_BONUS_NBT;
private static final double DEFAULT_ATTACK_POWER = 1D;
@@ -71,7 +70,6 @@ public class EntityStats {
static {
STATS = Collections.synchronizedMap(new HashMap<>());
- ATTRIBUTE_BONUS_UUID = UUID.fromString("11f1173c-6666-4444-8888-02cb0285f9c1");
ATTRIBUTE_BONUS_STATS = new SimpleStat.Type[]{
TypedStat.Type.MAX_HEALTH,
TypedStat.Type.ATTACK_SPEED,
@@ -175,7 +173,7 @@ public static String getEntityName(@NotNull Entity entity) {
}
public static double getEntityMaxHealth(@NotNull LivingEntity entity) {
- AttributeInstance ai = entity.getAttribute(AttributeUT.resolve("MAX_HEALTH"));
+ AttributeInstance ai = entity.getAttribute(VersionManager.getNms().getAttribute("MAX_HEALTH"));
if (ai == null) return 0;
return ai.getValue();
@@ -246,7 +244,7 @@ public double getAttackPowerModifier() {
public void updateAttackPower() {
if (this.isPlayer() && !this.isNPC()) {
- this.setAttackPower(plugin.getPMS().getAttackCooldown(this.player));
+ this.setAttackPower(this.player.getAttackCooldown());
}
}
@@ -519,12 +517,7 @@ private void purgeAttributeBonuses() {
try {
uuid = mod.getUniqueId();
} catch (Exception e) {
- String attKey;
- try {
- attKey = mod.getKey().toString();
- } catch (NoSuchMethodError ignored) {
- attKey = mod.getName();
- }
+ String attKey = VersionManager.getCompat().getAttributeKey(mod);
try {
uuid = UUID.fromString(attKey.replace("minecraft:", ""));
} catch (Exception ignored) {
@@ -532,7 +525,7 @@ private void purgeAttributeBonuses() {
}
}
- return uuid.equals(ATTRIBUTE_BONUS_UUID);
+ return uuid.equals(Compat.ATTRIBUTE_BONUS_UUID);
})
.collect(Collectors.toList())
.forEach(attr::removeModifier);
@@ -598,12 +591,7 @@ private void applyBonusAttribute(@NotNull NBTAttribute att, double value) {
try {
uuid = attMod.getUniqueId();
} catch (Exception e) {
- String attKey;
- try {
- attKey = attMod.getKey().toString();
- } catch (NoSuchMethodError ignored) {
- attKey = attMod.getName();
- }
+ String attKey = VersionManager.getCompat().getAttributeKey(attMod);
try {
uuid = UUID.fromString(attKey.replace("minecraft:", ""));
@@ -612,7 +600,7 @@ private void applyBonusAttribute(@NotNull NBTAttribute att, double value) {
}
}
- if (uuid.equals(ATTRIBUTE_BONUS_UUID)) {
+ if (uuid.equals(Compat.ATTRIBUTE_BONUS_UUID)) {
if (attMod.getAmount() == value) {
return;
}
@@ -623,12 +611,7 @@ private void applyBonusAttribute(@NotNull NBTAttribute att, double value) {
if (value == 0D) return;
- AttributeModifier am;
- try {
- am = new AttributeModifier(att.getAttribute().getKey(), value, Operation.ADD_NUMBER, null);
- } catch (Exception | Error ignored) {
- am = new AttributeModifier(ATTRIBUTE_BONUS_UUID, att.getNmsName(), value, Operation.ADD_NUMBER);
- }
+ AttributeModifier am = VersionManager.getCompat().createAttributeModifier(att, value, Operation.ADD_NUMBER);
attInst.addModifier(am);
}
@@ -727,7 +710,7 @@ public Map getDefenseTypes(boolean safe) {
}
bonuses.addAll(this.getBonuses(dt));
if (dt.isDefault()) {
- AttributeInstance attribute = entity.getAttribute(AttributeUT.resolve("ARMOR"));
+ AttributeInstance attribute = entity.getAttribute(VersionManager.getNms().getAttribute("ARMOR"));
if (attribute != null) {
bonuses.add((isPercent, input) -> isPercent ? input : input + attribute.getBaseValue());
}
@@ -780,7 +763,7 @@ public double getItemStat(@NotNull SimpleStat.Type type, boolean safe) {
bonuses.addAll(this.getBonuses(stat));
if (type == TypedStat.Type.ARMOR_TOUGHNESS) {
- AttributeInstance attribute = entity.getAttribute(AttributeUT.resolve("ARMOR_TOUGHNESS"));
+ AttributeInstance attribute = entity.getAttribute(VersionManager.getNms().getAttribute("ARMOR_TOUGHNESS"));
if (attribute != null) {
bonuses.add((isPercent, input) -> isPercent ? input : input + attribute.getValue());
}
diff --git a/src/main/java/studio/magemonkey/divinity/stats/items/ItemStats.java b/src/main/java/studio/magemonkey/divinity/stats/items/ItemStats.java
index 4a58362d..0223c17d 100644
--- a/src/main/java/studio/magemonkey/divinity/stats/items/ItemStats.java
+++ b/src/main/java/studio/magemonkey/divinity/stats/items/ItemStats.java
@@ -11,10 +11,10 @@
import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.api.meta.NBTAttribute;
import studio.magemonkey.codex.core.Version;
import studio.magemonkey.codex.modules.IModule;
-import studio.magemonkey.codex.util.AttributeUT;
import studio.magemonkey.codex.util.DataUT;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.modules.api.QModuleDrop;
@@ -320,8 +320,8 @@ public static void updateVanillaAttributes(@NotNull ItemStack item, @Nullable Pl
// For 1.20.4+, the HIDE_ATTRIBUTES flag doesn't work unless an attribute has been added that's not the default.
// Note: This only applies to Paper and its forks.
if (Version.CURRENT.isAtLeast(Version.V1_20_R4)) {
- im.addAttributeModifier(AttributeUT.resolve("ATTACK_SPEED"),
- new AttributeModifier(AttributeUT.resolve("ATTACK_SPEED").getKey().getKey(),
+ im.addAttributeModifier(VersionManager.getNms().getAttribute("ATTACK_SPEED"),
+ new AttributeModifier(VersionManager.getNms().getAttribute("ATTACK_SPEED").getKey().getKey(),
0,
Operation.ADD_NUMBER));
}
diff --git a/src/main/java/studio/magemonkey/divinity/stats/items/attributes/DamageAttribute.java b/src/main/java/studio/magemonkey/divinity/stats/items/attributes/DamageAttribute.java
index deecc058..703b9d21 100644
--- a/src/main/java/studio/magemonkey/divinity/stats/items/attributes/DamageAttribute.java
+++ b/src/main/java/studio/magemonkey/divinity/stats/items/attributes/DamageAttribute.java
@@ -12,6 +12,7 @@
import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.util.*;
import studio.magemonkey.codex.util.actions.ActionManipulator;
import studio.magemonkey.codex.util.constants.JStrings;
@@ -102,7 +103,7 @@ public DefenseAttribute getAttachedDefense() {
}
public static double getVanillaDamage(@NotNull ItemStack item) {
- return Divinity.getInstance().getPMS().getDefaultDamage(item);
+ return VersionManager.getNms().getDefaultDamage(item);
}
public double[] getTotal(@NotNull ItemStack item, @Nullable Player player) {
diff --git a/src/main/java/studio/magemonkey/divinity/stats/items/attributes/DefenseAttribute.java b/src/main/java/studio/magemonkey/divinity/stats/items/attributes/DefenseAttribute.java
index 7396a315..0c6a3c3a 100644
--- a/src/main/java/studio/magemonkey/divinity/stats/items/attributes/DefenseAttribute.java
+++ b/src/main/java/studio/magemonkey/divinity/stats/items/attributes/DefenseAttribute.java
@@ -9,6 +9,7 @@
import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.NumberUT;
import studio.magemonkey.codex.util.StringUT;
@@ -153,11 +154,11 @@ public List> get(@NotNull ItemStack item, @N
}
public static double getVanillaArmor(@NotNull ItemStack item) {
- return Divinity.getInstance().getPMS().getDefaultArmor(item);
+ return VersionManager.getNms().getDefaultArmor(item);
}
public static double getVanillaToughness(@NotNull ItemStack item) {
- return Divinity.getInstance().getPMS().getDefaultToughness(item);
+ return VersionManager.getNms().getDefaultToughness(item);
}
public boolean isDefault() {
diff --git a/src/main/java/studio/magemonkey/divinity/stats/items/attributes/api/SimpleStat.java b/src/main/java/studio/magemonkey/divinity/stats/items/attributes/api/SimpleStat.java
index 1a5349c0..5f4f1a68 100644
--- a/src/main/java/studio/magemonkey/divinity/stats/items/attributes/api/SimpleStat.java
+++ b/src/main/java/studio/magemonkey/divinity/stats/items/attributes/api/SimpleStat.java
@@ -8,6 +8,7 @@
import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.NumberUT;
import studio.magemonkey.codex.util.StringUT;
@@ -153,7 +154,7 @@ public static double getDefaultAttackSpeed(@NotNull ItemStack item, double def)
}
public static double getDefaultAttackSpeed(@NotNull ItemStack item) {
- return Divinity.getInstance().getPMS().getDefaultSpeed(item);
+ return VersionManager.getNms().getDefaultSpeed(item);
}
@Override
diff --git a/src/main/java/studio/magemonkey/divinity/types/ItemGroup.java b/src/main/java/studio/magemonkey/divinity/types/ItemGroup.java
index ee4fc65f..fea517bf 100644
--- a/src/main/java/studio/magemonkey/divinity/types/ItemGroup.java
+++ b/src/main/java/studio/magemonkey/divinity/types/ItemGroup.java
@@ -5,9 +5,9 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import studio.magemonkey.codex.CodexEngine;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.exception.CodexItemException;
-import studio.magemonkey.codex.items.providers.VanillaProvider;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.exception.CodexItemException;
+import studio.magemonkey.codex.api.items.providers.VanillaProvider;
import studio.magemonkey.codex.util.StringUT;
import studio.magemonkey.divinity.Divinity;
diff --git a/src/main/java/studio/magemonkey/divinity/types/ItemSubType.java b/src/main/java/studio/magemonkey/divinity/types/ItemSubType.java
index 0c01916a..2d230883 100644
--- a/src/main/java/studio/magemonkey/divinity/types/ItemSubType.java
+++ b/src/main/java/studio/magemonkey/divinity/types/ItemSubType.java
@@ -4,9 +4,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import studio.magemonkey.codex.CodexEngine;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.exception.CodexItemException;
-import studio.magemonkey.codex.items.providers.VanillaProvider;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.exception.CodexItemException;
+import studio.magemonkey.codex.api.items.providers.VanillaProvider;
import studio.magemonkey.codex.util.StringUT;
import studio.magemonkey.divinity.Divinity;
diff --git a/src/main/java/studio/magemonkey/divinity/utils/DivinityProvider.java b/src/main/java/studio/magemonkey/divinity/utils/DivinityProvider.java
index 70a8d750..1e8b51eb 100644
--- a/src/main/java/studio/magemonkey/divinity/utils/DivinityProvider.java
+++ b/src/main/java/studio/magemonkey/divinity/utils/DivinityProvider.java
@@ -2,9 +2,9 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.Nullable;
-import studio.magemonkey.codex.items.CodexItemManager;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.providers.ICodexItemProvider;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.PrefixHelper;
+import studio.magemonkey.codex.api.items.providers.ICodexItemProvider;
import studio.magemonkey.codex.modules.IModule;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.divinity.modules.ModuleItem;
@@ -35,7 +35,7 @@ public Category getCategory() {
public DivinityItemType getItem(String id) {
if (id == null || id.isBlank()) return null;
- id = CodexItemManager.stripPrefix(NAMESPACE, id);
+ id = PrefixHelper.stripPrefix(NAMESPACE, id);
String[] split = id.split(":", 2);
if (split.length == 2) { // Module name
@@ -72,7 +72,7 @@ public boolean isCustomItem(ItemStack item) {
@Override
public boolean isCustomItemOfId(ItemStack item, String id) {
- id = CodexItemManager.stripPrefix(NAMESPACE, id);
+ id = PrefixHelper.stripPrefix(NAMESPACE, id);
String itemId = ItemStats.getId(item);
return itemId != null && itemId.equals(id);
diff --git a/src/main/java/studio/magemonkey/divinity/utils/ItemUtils.java b/src/main/java/studio/magemonkey/divinity/utils/ItemUtils.java
index e631d214..6be05dbf 100644
--- a/src/main/java/studio/magemonkey/divinity/utils/ItemUtils.java
+++ b/src/main/java/studio/magemonkey/divinity/utils/ItemUtils.java
@@ -18,11 +18,11 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.api.items.ItemType;
+import studio.magemonkey.codex.api.items.exception.CodexItemException;
+import studio.magemonkey.codex.api.items.providers.ICodexItemProvider;
+import studio.magemonkey.codex.api.items.providers.VanillaProvider;
import studio.magemonkey.codex.hooks.Hooks;
-import studio.magemonkey.codex.items.ItemType;
-import studio.magemonkey.codex.items.exception.CodexItemException;
-import studio.magemonkey.codex.items.providers.ICodexItemProvider;
-import studio.magemonkey.codex.items.providers.VanillaProvider;
import studio.magemonkey.codex.util.CollectionsUT;
import studio.magemonkey.codex.util.ItemUT;
import studio.magemonkey.codex.util.StringUT;
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 76f18289..54147ce9 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -3,7 +3,7 @@ version: ${project.version}
name: ${project.name}
authors: [ Travja, Sentropic, goflish ]
description: The most advanced, customizable and configurable RPG-Core plugin!
-libraries: [ org.apache.commons:commons-lang3:${apache.version} ]
+libraries: [ com.mysql:mysql-connector-j:${mysql.version}, org.apache.commons:commons-lang3:${apache.version} ]
depend: [ CodexCore ]
loadafter: [ Magic, Fabled ]
provides: [ ProRPGItems, QuantumRPG ]
diff --git a/src/test/java/studio/magemonkey/divinity/testutil/MockedTest.java b/src/test/java/studio/magemonkey/divinity/testutil/MockedTest.java
index 9c8ec251..2892ae2b 100644
--- a/src/test/java/studio/magemonkey/divinity/testutil/MockedTest.java
+++ b/src/test/java/studio/magemonkey/divinity/testutil/MockedTest.java
@@ -3,8 +3,7 @@
import org.apache.commons.io.FileUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
-import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.NotNull;
+import org.bukkit.inventory.Inventory;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
@@ -14,10 +13,11 @@
import org.mockbukkit.mockbukkit.entity.PlayerMock;
import org.mockito.MockedStatic;
import studio.magemonkey.codex.CodexEngine;
+import studio.magemonkey.codex.compat.NMS;
+import studio.magemonkey.codex.compat.VersionManager;
import studio.magemonkey.codex.mccore.commands.CommandManager;
+import studio.magemonkey.codex.util.InventoryUtil;
import studio.magemonkey.codex.util.ItemUT;
-import studio.magemonkey.codex.util.reflection.ReflectionManager;
-import studio.magemonkey.codex.util.reflection.ReflectionUtil;
import studio.magemonkey.divinity.Divinity;
import studio.magemonkey.fabled.api.player.PlayerData;
@@ -33,14 +33,13 @@
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public abstract class MockedTest {
- protected ServerMock server;
- protected CodexEngine engine;
- protected Divinity plugin;
- protected List players = new ArrayList<>();
- protected Map activePlayerData = new HashMap<>();
- protected MockedStatic reflectionManager;
- protected ReflectionUtil reflectionUtil;
- protected MockedStatic codexEngine;
+ protected ServerMock server;
+ protected CodexEngine engine;
+ protected Divinity plugin;
+ protected List players = new ArrayList<>();
+ protected Map activePlayerData = new HashMap<>();
+ protected MockedStatic codexEngine;
+ protected MockedStatic inventoryUtil;
@BeforeAll
public void setupServer() {
@@ -61,28 +60,24 @@ public void setupServer() {
throw new RuntimeException(e);
}
- reflectionUtil = mock(ReflectionUtil.class);
- reflectionManager = mockStatic(ReflectionManager.class);
- reflectionManager.when(ReflectionManager::getReflectionUtil)
- .thenReturn(reflectionUtil);
- when(reflectionUtil.fixColors(anyString()))
- .thenAnswer(args -> args.getArgument(0));
- when(reflectionUtil.getDefaultDamage(any(ItemStack.class)))
- .thenAnswer(args -> {
- switch (((ItemStack) args.getArgument(0)).getType()) {
- case DIAMOND_SWORD:
- return 7.0;
- case IRON_SWORD:
- return 6.0;
- case WOODEN_SWORD:
- return 4.0;
- case TRIDENT:
- return 9.0;
- default:
- return 1.0;
- }
+ inventoryUtil = mockStatic(InventoryUtil.class);
+ inventoryUtil.when(() -> InventoryUtil.getTopInventory(any(Player.class)))
+ .thenAnswer(ans -> {
+ Player player = ((Player) ans.getArgument(0));
+ Inventory inv = player.getOpenInventory().getTopInventory();
+ //noinspection ConstantValue
+ if (inv != null) return inv;
+
+ // It shouldn't be possible to have a null topInventory, but is for MockBukkit
+ return player.getInventory();
});
+ NMS nms = mock(NMS.class);
+ when(nms.getVersion()).thenReturn("test");
+ when(nms.fixColors(anyString())).thenAnswer(ans -> ans.getArgument(0));
+
+ VersionManager.setNms(nms);
+
engine = MockBukkit.load(CodexEngine.class);
codexEngine = mockStatic(CodexEngine.class);
codexEngine.when(CodexEngine::get).thenReturn(engine);
@@ -99,8 +94,8 @@ public void destroy() {
plugin.disable();
CommandManager.unregisterAll();
MockBukkit.unmock();
- reflectionManager.close();
if (codexEngine != null) codexEngine.close();
+ if (inventoryUtil != null) inventoryUtil.close();
}
@AfterEach
@@ -169,7 +164,6 @@ private void addFolder(String srcFolder, String baseFolder, ZipOutputStream out)
}
}
- @NotNull
private void addFile(FileInputStream f, String sd, ZipOutputStream out) throws IOException {
byte data[] = new byte[BUFFER];
FileInputStream fi = f;