From ae3ffd2954359d8af8b3baaecdac76b66bfd94a9 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 12 Dec 2020 11:43:14 +0000 Subject: [PATCH] Updated extensions to use new constructor --- .../willfp/ecoenchants/alchemy/Alchemy.java | 2 +- .../Alchemy/src/main/resources/extension.yml | 2 +- .../ecoenchants/biomes/BiomesEnchantment.java | 2 +- .../Biomes/src/main/resources/extension.yml | 2 +- .../effects/EffectsEnchantment.java | 2 +- .../Effects/src/main/resources/extension.yml | 2 +- .../ecoenchants/endershot/Endershot.java | 2 +- .../src/main/resources/extension.yml | 2 +- .../willfp/ecoenchants/firewand/Firewand.java | 2 +- .../Firewand/src/main/resources/extension.yml | 2 +- .../mmo/structure/MMOEnchantment.java | 3 +- .../ecoenchants/mmo/structure/MMOSpell.java | 6 +-- .../MMO/src/main/resources/extension.yml | 2 +- .../ecoenchants/precision/Precision.java | 2 +- .../src/main/resources/extension.yml | 2 +- .../src/main/resources/extension.yml | 2 +- .../summoning/SummoningEnchantment.java | 2 +- .../src/main/resources/extension.yml | 2 +- .../ecoenchants/enchantments/EcoEnchant.java | 53 ++++++++++--------- .../enchantments/itemtypes/Artifact.java | 12 +++-- .../enchantments/itemtypes/Spell.java | 6 ++- settings.gradle | 4 +- 22 files changed, 60 insertions(+), 56 deletions(-) diff --git a/Extensions/Alchemy/src/main/java/com/willfp/ecoenchants/alchemy/Alchemy.java b/Extensions/Alchemy/src/main/java/com/willfp/ecoenchants/alchemy/Alchemy.java index ee46b8e6..d2ff983f 100644 --- a/Extensions/Alchemy/src/main/java/com/willfp/ecoenchants/alchemy/Alchemy.java +++ b/Extensions/Alchemy/src/main/java/com/willfp/ecoenchants/alchemy/Alchemy.java @@ -13,7 +13,7 @@ import org.bukkit.potion.PotionEffect; public class Alchemy extends EcoEnchant { public Alchemy() { - super("alchemy", EnchantmentType.NORMAL, AlchemyMain.class); + super("alchemy", EnchantmentType.NORMAL); } private static final FixedMetadataValue TRUE = new FixedMetadataValue(EcoEnchantsPlugin.getInstance(), true); diff --git a/Extensions/Alchemy/src/main/resources/extension.yml b/Extensions/Alchemy/src/main/resources/extension.yml index d297b24c..ef95ecf4 100644 --- a/Extensions/Alchemy/src/main/resources/extension.yml +++ b/Extensions/Alchemy/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: Alchemy main: com.willfp.ecoenchants.alchemy.AlchemyMain -version: 1.1.0 \ No newline at end of file +version: 2.0.0 \ No newline at end of file diff --git a/Extensions/Biomes/src/main/java/com/willfp/ecoenchants/biomes/BiomesEnchantment.java b/Extensions/Biomes/src/main/java/com/willfp/ecoenchants/biomes/BiomesEnchantment.java index cad118cf..35536a0b 100644 --- a/Extensions/Biomes/src/main/java/com/willfp/ecoenchants/biomes/BiomesEnchantment.java +++ b/Extensions/Biomes/src/main/java/com/willfp/ecoenchants/biomes/BiomesEnchantment.java @@ -12,7 +12,7 @@ import org.bukkit.event.entity.EntityDamageEvent; public abstract class BiomesEnchantment extends EcoEnchant { protected BiomesEnchantment(String key, EnchantmentType type, Prerequisite... prerequisites) { - super(key, type, BiomesMain.class, prerequisites); + super(key, type, prerequisites); } public abstract boolean isValid(Biome biome); diff --git a/Extensions/Biomes/src/main/resources/extension.yml b/Extensions/Biomes/src/main/resources/extension.yml index ba310aab..aedb8a74 100644 --- a/Extensions/Biomes/src/main/resources/extension.yml +++ b/Extensions/Biomes/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: Biomes main: com.willfp.ecoenchants.biomes.BiomesMain -version: 1.1.0 \ No newline at end of file +version: 2.0.0 \ No newline at end of file diff --git a/Extensions/Effects/src/main/java/com/willfp/ecoenchants/effects/EffectsEnchantment.java b/Extensions/Effects/src/main/java/com/willfp/ecoenchants/effects/EffectsEnchantment.java index 6c418c85..567107c9 100644 --- a/Extensions/Effects/src/main/java/com/willfp/ecoenchants/effects/EffectsEnchantment.java +++ b/Extensions/Effects/src/main/java/com/willfp/ecoenchants/effects/EffectsEnchantment.java @@ -13,7 +13,7 @@ import org.bukkit.potion.PotionEffectType; public abstract class EffectsEnchantment extends EcoEnchant { protected EffectsEnchantment(String key, EnchantmentType type, Prerequisite... prerequisites) { - super(key, type, EffectsMain.class, prerequisites); + super(key, type, prerequisites); } public abstract PotionEffectType getPotionEffect(); diff --git a/Extensions/Effects/src/main/resources/extension.yml b/Extensions/Effects/src/main/resources/extension.yml index 5705fbaf..525fe49f 100644 --- a/Extensions/Effects/src/main/resources/extension.yml +++ b/Extensions/Effects/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: Effects main: com.willfp.ecoenchants.effects.EffectsMain -version: 1.1.0 \ No newline at end of file +version: 2.0.0 \ No newline at end of file diff --git a/Extensions/Endershot/src/main/java/com/willfp/ecoenchants/endershot/Endershot.java b/Extensions/Endershot/src/main/java/com/willfp/ecoenchants/endershot/Endershot.java index 109fea5c..09588ff9 100644 --- a/Extensions/Endershot/src/main/java/com/willfp/ecoenchants/endershot/Endershot.java +++ b/Extensions/Endershot/src/main/java/com/willfp/ecoenchants/endershot/Endershot.java @@ -18,7 +18,7 @@ import org.bukkit.inventory.ItemStack; public class Endershot extends EcoEnchant { public Endershot() { - super("endershot", EnchantmentType.NORMAL, EndershotMain.class); + super("endershot", EnchantmentType.NORMAL); } @EventHandler(priority = EventPriority.LOW) diff --git a/Extensions/Endershot/src/main/resources/extension.yml b/Extensions/Endershot/src/main/resources/extension.yml index 12f67061..47fdc6f2 100644 --- a/Extensions/Endershot/src/main/resources/extension.yml +++ b/Extensions/Endershot/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: Endershot main: com.willfp.ecoenchants.endershot.EndershotMain -version: 1.1.0 +version: 2.0.0 diff --git a/Extensions/Firewand/src/main/java/com/willfp/ecoenchants/firewand/Firewand.java b/Extensions/Firewand/src/main/java/com/willfp/ecoenchants/firewand/Firewand.java index 518dca1b..9dbb6ee9 100644 --- a/Extensions/Firewand/src/main/java/com/willfp/ecoenchants/firewand/Firewand.java +++ b/Extensions/Firewand/src/main/java/com/willfp/ecoenchants/firewand/Firewand.java @@ -14,7 +14,7 @@ import org.bukkit.metadata.FixedMetadataValue; public class Firewand extends Spell { public Firewand() { - super("firewand", FirewandMain.class); + super("firewand"); } @Override diff --git a/Extensions/Firewand/src/main/resources/extension.yml b/Extensions/Firewand/src/main/resources/extension.yml index 9905e4bf..93b566fb 100644 --- a/Extensions/Firewand/src/main/resources/extension.yml +++ b/Extensions/Firewand/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: Firewand main: com.willfp.ecoenchants.firewand.FirewandMain -version: 1.1.0 \ No newline at end of file +version: 2.0.0 \ No newline at end of file diff --git a/Extensions/MMO/src/main/java/com/willfp/ecoenchants/mmo/structure/MMOEnchantment.java b/Extensions/MMO/src/main/java/com/willfp/ecoenchants/mmo/structure/MMOEnchantment.java index 9deabdf2..95881174 100644 --- a/Extensions/MMO/src/main/java/com/willfp/ecoenchants/mmo/structure/MMOEnchantment.java +++ b/Extensions/MMO/src/main/java/com/willfp/ecoenchants/mmo/structure/MMOEnchantment.java @@ -1,13 +1,12 @@ package com.willfp.ecoenchants.mmo.structure; import com.willfp.ecoenchants.enchantments.EcoEnchant; -import com.willfp.ecoenchants.mmo.MMOMain; import com.willfp.ecoenchants.mmo.MMOPrerequisites; import com.willfp.ecoenchants.util.optional.Prerequisite; public abstract class MMOEnchantment extends EcoEnchant implements MMOEnchant { protected MMOEnchantment(String key, EnchantmentType type, Prerequisite... prerequisites) { - super(key, type, MMOMain.getInstance(), MMOPrerequisites.append(prerequisites, MMOPrerequisites.HAS_MMOCORE)); + super(key, type, MMOPrerequisites.append(prerequisites, MMOPrerequisites.HAS_MMOCORE)); MMOEnchant.REGISTRY.add(this); } diff --git a/Extensions/MMO/src/main/java/com/willfp/ecoenchants/mmo/structure/MMOSpell.java b/Extensions/MMO/src/main/java/com/willfp/ecoenchants/mmo/structure/MMOSpell.java index d33ca7f0..ed1f8cb9 100644 --- a/Extensions/MMO/src/main/java/com/willfp/ecoenchants/mmo/structure/MMOSpell.java +++ b/Extensions/MMO/src/main/java/com/willfp/ecoenchants/mmo/structure/MMOSpell.java @@ -1,14 +1,12 @@ -package com.willfp.ecoenchants.mmo.structure - ; +package com.willfp.ecoenchants.mmo.structure; import com.willfp.ecoenchants.enchantments.itemtypes.Spell; -import com.willfp.ecoenchants.mmo.MMOMain; import com.willfp.ecoenchants.mmo.MMOPrerequisites; import com.willfp.ecoenchants.util.optional.Prerequisite; public abstract class MMOSpell extends Spell implements MMOEnchant { protected MMOSpell(String key, Prerequisite... prerequisites) { - super(key, MMOMain.getInstance(), MMOPrerequisites.append(prerequisites, MMOPrerequisites.HAS_MMOCORE)); + super(key, MMOPrerequisites.append(prerequisites, MMOPrerequisites.HAS_MMOCORE)); MMOEnchant.REGISTRY.add(this); } diff --git a/Extensions/MMO/src/main/resources/extension.yml b/Extensions/MMO/src/main/resources/extension.yml index 01586fd0..fd93d191 100644 --- a/Extensions/MMO/src/main/resources/extension.yml +++ b/Extensions/MMO/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: MMO main: com.willfp.ecoenchants.mmo.MMOMain -version: 1.1.0 \ No newline at end of file +version: 2.0.0 \ No newline at end of file diff --git a/Extensions/Precision/src/main/java/com/willfp/ecoenchants/precision/Precision.java b/Extensions/Precision/src/main/java/com/willfp/ecoenchants/precision/Precision.java index 661b3373..a668dc9e 100644 --- a/Extensions/Precision/src/main/java/com/willfp/ecoenchants/precision/Precision.java +++ b/Extensions/Precision/src/main/java/com/willfp/ecoenchants/precision/Precision.java @@ -25,7 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger; public class Precision extends EcoEnchant { public Precision() { super( - "precision", EnchantmentType.SPECIAL, PrecisionMain.class + "precision", EnchantmentType.SPECIAL ); } diff --git a/Extensions/Precision/src/main/resources/extension.yml b/Extensions/Precision/src/main/resources/extension.yml index 82976efa..be36e555 100644 --- a/Extensions/Precision/src/main/resources/extension.yml +++ b/Extensions/Precision/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: Precision main: com.willfp.ecoenchants.precision.PrecisionMain -version: 1.1.0 \ No newline at end of file +version: 2.0.0 \ No newline at end of file diff --git a/Extensions/SprintArtifacts/src/main/resources/extension.yml b/Extensions/SprintArtifacts/src/main/resources/extension.yml index eb8f8c16..5debf8bf 100644 --- a/Extensions/SprintArtifacts/src/main/resources/extension.yml +++ b/Extensions/SprintArtifacts/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: Sprint Artifacts main: com.willfp.ecoenchants.sprintartifacts.SprintArtifactsMain -version: 1.1.0 \ No newline at end of file +version: 2.0.0 \ No newline at end of file diff --git a/Extensions/Summoning/src/main/java/com/willfp/ecoenchants/summoning/SummoningEnchantment.java b/Extensions/Summoning/src/main/java/com/willfp/ecoenchants/summoning/SummoningEnchantment.java index 4438fb01..726570a1 100644 --- a/Extensions/Summoning/src/main/java/com/willfp/ecoenchants/summoning/SummoningEnchantment.java +++ b/Extensions/Summoning/src/main/java/com/willfp/ecoenchants/summoning/SummoningEnchantment.java @@ -28,7 +28,7 @@ public abstract class SummoningEnchantment extends EcoEnchant { private final SummoningType summoningType; protected SummoningEnchantment(String key, EnchantmentType type, SummoningType summoningType, Prerequisite... prerequisites) { - super(key, type, SummoningMain.class, prerequisites); + super(key, type, prerequisites); this.summoningType = summoningType; } diff --git a/Extensions/Summoning/src/main/resources/extension.yml b/Extensions/Summoning/src/main/resources/extension.yml index 4a809e83..06e8c88f 100644 --- a/Extensions/Summoning/src/main/resources/extension.yml +++ b/Extensions/Summoning/src/main/resources/extension.yml @@ -1,3 +1,3 @@ name: Summoning main: com.willfp.ecoenchants.summoning.SummoningMain -version: 1.1.0 \ No newline at end of file +version: 2.0.0 \ No newline at end of file diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java index 70f9577d..ea20dd3f 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java @@ -1,6 +1,5 @@ package com.willfp.ecoenchants.enchantments; -import com.willfp.ecoenchants.EcoEnchantsPlugin; import com.willfp.ecoenchants.config.ConfigManager; import com.willfp.ecoenchants.config.configs.EnchantmentConfig; import com.willfp.ecoenchants.enchantments.meta.EnchantmentRarity; @@ -9,6 +8,7 @@ import com.willfp.ecoenchants.enchantments.util.Watcher; import com.willfp.ecoenchants.util.StringUtils; import com.willfp.ecoenchants.util.interfaces.ObjectCallable; import com.willfp.ecoenchants.util.interfaces.Registerable; +import com.willfp.ecoenchants.util.internal.Logger; import com.willfp.ecoenchants.util.optional.Prerequisite; import org.apache.commons.lang.WordUtils; import org.bukkit.Bukkit; @@ -25,14 +25,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @SuppressWarnings({"unchecked", "deprecation"}) @@ -59,31 +52,18 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist /** - * Create a new EcoEnchant that exists within the base plugin + * Create a new EcoEnchant * * @param key The key name of the enchantment * @param type The type of the enchantment * @param prerequisites Optional {@link Prerequisite}s that must be met */ - @ApiStatus.Internal protected EcoEnchant(String key, EcoEnchant.EnchantmentType type, Prerequisite... prerequisites) { - this(key, type, EcoEnchantsPlugin.class, prerequisites); - } - - /** - * Create a new EcoEnchant that exists within an extension or external plugin - * - * @param key The key name of the enchantment - * @param type The type of the enchantment - * @param plugin The Main class of the {@link org.bukkit.plugin.Plugin} or {@link com.willfp.ecoenchants.extensions.Extension} that the enchantment was created by - * @param prerequisites Optional {@link Prerequisite}s that must be met - */ - protected EcoEnchant(String key, EcoEnchant.EnchantmentType type, Class plugin, Prerequisite... prerequisites) { super(NamespacedKey.minecraft(key)); this.type = type; this.permissionName = key.replaceAll("_", ""); - ConfigManager.addEnchantmentConfig(new EnchantmentConfig(this.permissionName, plugin, this.type)); + ConfigManager.addEnchantmentConfig(new EnchantmentConfig(this.permissionName, this.getClass(), this.type)); this.config = ConfigManager.getEnchantmentConfig(this.permissionName); if (Bukkit.getPluginManager().getPermission("ecoenchants.fromtable." + permissionName) == null) { @@ -103,6 +83,25 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist EcoEnchants.addNewEcoEnchant(this); } + /** + * Create a new EcoEnchant that exists within an extension or external plugin + * + * @param key The key name of the enchantment + * @param type The type of the enchantment + * @param plugin Unused value + * @param prerequisites Optional {@link Prerequisite}s that must be met + * + * @deprecated Specifying the source class is no longer needed + */ + @Deprecated + @ApiStatus.ScheduledForRemoval(inVersion = "5.8.0") + protected EcoEnchant(String key, EcoEnchant.EnchantmentType type, Class plugin, Prerequisite... prerequisites) { + this(key, type, prerequisites); + + Logger.warn("Enchantment " + key + " (Generated by " + plugin.getName() + ") is using a legacy constructor!"); + Logger.warn("Update your extensions - support for legacy enchantments will be removed in subsequent versions."); + } + /** * Update the enchantment based off config values * This can be overriden but may lead to unexpected behavior @@ -257,6 +256,7 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist * If enchantment conflicts with any enchantment in set * * @param enchantments The set to test against + * * @return If there are any conflicts */ public boolean conflictsWithAny(Set enchantments) { @@ -344,6 +344,7 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist * Only here for compatibility with {@link Enchantment} * * @return Returns {@link EnchantmentTarget#ALL}. Do not use. + * * @deprecated {@link EnchantmentTarget} is not supported due to its lack of flexibility. Use {@link EcoEnchant#getTarget()} instead. */ @Override @@ -354,6 +355,7 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist /** * @return false + * * @deprecated Treasure enchantments do not exist. Use {@link EcoEnchant#getType()} instead. */ @Override @@ -364,6 +366,7 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist /** * @return Returns if enchantment is cursed. + * * @deprecated Use {@link EcoEnchant#getType()} instead. */ @Override @@ -376,6 +379,7 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist * Get if enchantment conflicts with specified enchantment * * @param enchantment The enchantment to test against + * * @return If conflicts */ @Override @@ -387,6 +391,7 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist * If enchantment can be applied to item * * @param itemStack The {@link ItemStack} to test against + * * @return If can be applied */ @Override diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Artifact.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Artifact.java index 657b529e..8d295a37 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Artifact.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Artifact.java @@ -35,11 +35,7 @@ public abstract class Artifact extends EcoEnchant { private Particle.DustOptions extra; protected Artifact(String key, Prerequisite... prerequisites) { - this(key, EcoEnchantsPlugin.class, prerequisites); - } - - protected Artifact(String key, Class plugin, Prerequisite... prerequisites) { - super(key, EnchantmentType.ARTIFACT, plugin, prerequisites); + super(key, EnchantmentType.ARTIFACT, prerequisites); if(!Prerequisite.areMet(prerequisites)) { HandlerList.unregisterAll(this); // Prevent events firing @@ -50,6 +46,12 @@ public abstract class Artifact extends EcoEnchant { this.extra = this.getDustOptions(); } + @Deprecated + @ApiStatus.ScheduledForRemoval(inVersion = "5.8.0") + protected Artifact(String key, Class plugin, Prerequisite... prerequisites) { + this(key, prerequisites); + } + public abstract Particle getParticle(); public Particle.DustOptions getDustOptions() { diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Spell.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Spell.java index 82aea03e..cccf8b01 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Spell.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Spell.java @@ -37,11 +37,13 @@ public abstract class Spell extends EcoEnchant { ); protected Spell(String key, Prerequisite... prerequisites) { - this(key, EcoEnchantsPlugin.class, prerequisites); + super(key, EnchantmentType.SPELL, prerequisites); } + @Deprecated + @ApiStatus.ScheduledForRemoval(inVersion = "5.8.0") protected Spell(String key, Class plugin, Prerequisite... prerequisites) { - super(key, EnchantmentType.SPELL, plugin, prerequisites); + this(key, prerequisites); } public int getCooldownTime() { diff --git a/settings.gradle b/settings.gradle index ea679092..ea76b967 100644 --- a/settings.gradle +++ b/settings.gradle @@ -38,7 +38,5 @@ findProject(':SprintArtifacts').projectDir = file('Extensions/SprintArtifacts') include('Alchemy') findProject(':Alchemy').projectDir = file('Extensions/Alchemy') -/* include('MMO') -findProject(':MMO').projectDir = file('Extensions/MMO') - */ \ No newline at end of file +findProject(':MMO').projectDir = file('Extensions/MMO') \ No newline at end of file