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;