mirror of
https://github.com/Auxilor/EcoEnchants.git
synced 2025-02-03 02:21:21 +01:00
Refactored prerequisites
Signed-off-by: BuildTools <unconfigured@null.spigotmc.org>
This commit is contained in:
parent
54d7f3d4df
commit
897f2638f1
@ -4,7 +4,6 @@ import com.willfp.ecoenchants.config.ConfigManager;
|
||||
import com.willfp.ecoenchants.config.configs.EnchantmentConfig;
|
||||
import com.willfp.ecoenchants.enchantments.meta.EnchantmentRarity;
|
||||
import com.willfp.ecoenchants.enchantments.util.Watcher;
|
||||
import com.willfp.ecoenchants.util.Logger;
|
||||
import com.willfp.ecoenchants.util.interfaces.Registerable;
|
||||
import com.willfp.ecoenchants.util.optional.Prerequisite;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
@ -44,7 +43,6 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist
|
||||
private final Set<Material> target = new HashSet<>();
|
||||
|
||||
private boolean enabled;
|
||||
private boolean registered = false;
|
||||
|
||||
/**
|
||||
* Create new EcoEnchant matching builder and prerequisites
|
||||
@ -59,14 +57,8 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist
|
||||
this.configVersion = builder.configVersion;
|
||||
this.config = builder.config;
|
||||
|
||||
if(!Arrays.stream(prerequisites).allMatch(Prerequisite::isMet)) {
|
||||
Arrays.stream(prerequisites).forEach(prerequisite -> {
|
||||
if(!prerequisite.isMet()) {
|
||||
Logger.warn("Enchantment " + builder.key + " does not match prerequisite \"" + prerequisite.getDescription() + "\". It will not be available.");
|
||||
}
|
||||
});
|
||||
if(!Prerequisite.areMet(prerequisites))
|
||||
return;
|
||||
}
|
||||
|
||||
this.update();
|
||||
this.add();
|
||||
@ -131,8 +123,6 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist
|
||||
f.setAccessible(false);
|
||||
|
||||
Enchantment.registerEnchantment(this);
|
||||
|
||||
this.registered = true;
|
||||
} catch (NoSuchFieldException | IllegalAccessException ignored) {}
|
||||
}
|
||||
|
||||
@ -174,14 +164,6 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist
|
||||
return this.enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if enchantment is registered
|
||||
* @return If registered
|
||||
*/
|
||||
public boolean isRegistered() {
|
||||
return this.registered;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get permission name of enchantment
|
||||
* @return The permission name
|
||||
|
@ -17,6 +17,7 @@ import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Trident;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
@ -39,7 +40,11 @@ public abstract class Artifact extends EcoEnchant {
|
||||
|
||||
protected Artifact(String key, double version, Prerequisite[] prerequisites) {
|
||||
super(new EcoEnchantBuilder(key, EnchantmentType.ARTIFACT, version), prerequisites);
|
||||
if(!this.isRegistered()) return;
|
||||
|
||||
if(!Prerequisite.areMet(prerequisites)) {
|
||||
HandlerList.unregisterAll(this); // Prevent events firing
|
||||
return;
|
||||
}
|
||||
|
||||
this.particle = this.getParticle();
|
||||
this.extra = this.getDustOptions();
|
||||
|
@ -3,6 +3,8 @@ package com.willfp.ecoenchants.util.optional;
|
||||
import com.willfp.ecoenchants.util.ClassUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public enum Prerequisite {
|
||||
MinVer1_16(
|
||||
false,
|
||||
@ -37,4 +39,8 @@ public enum Prerequisite {
|
||||
MinVer1_16.setMet(!Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3].contains("15"));
|
||||
HasPaper.setMet(ClassUtils.exists("com.destroystokyo.paper.event.player.PlayerElytraBoostEvent"));
|
||||
}
|
||||
|
||||
public static boolean areMet(Prerequisite[] prerequisites) {
|
||||
return Arrays.stream(prerequisites).allMatch(Prerequisite::isMet);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user