mirror of
https://github.com/Auxilor/EcoArmor.git
synced 2025-12-27 10:59:22 +00:00
Fixed crafting bug
This commit is contained in:
@@ -2,6 +2,7 @@ package com.willfp.ecoarmor.effects.util;
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.eco.core.PluginDependent;
|
||||
import com.willfp.eco.core.events.ArmorChangeEvent;
|
||||
import com.willfp.eco.core.events.ArmorEquipEvent;
|
||||
import com.willfp.ecoarmor.effects.Effect;
|
||||
import com.willfp.ecoarmor.effects.Effects;
|
||||
@@ -29,63 +30,60 @@ public class EffectWatcher extends PluginDependent<EcoPlugin> implements Listene
|
||||
* @param event The event to listen for.
|
||||
*/
|
||||
@EventHandler
|
||||
public void armorEquipListener(@NotNull final ArmorEquipEvent event) {
|
||||
public void armorEquipListener(@NotNull final ArmorChangeEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
ArmorSet set = ArmorUtils.getSetOnPlayer(player);
|
||||
|
||||
this.getPlugin().getScheduler().runLater(() -> {
|
||||
ArmorSet set = ArmorUtils.getSetOnPlayer(player);
|
||||
boolean conditionsMet = ArmorUtils.areConditionsMet(player);
|
||||
|
||||
boolean conditionsMet = ArmorUtils.areConditionsMet(player);
|
||||
for (Effect<?> effect : Effects.values()) {
|
||||
boolean enabled = true;
|
||||
|
||||
for (Effect<?> effect : Effects.values()) {
|
||||
boolean enabled = true;
|
||||
if (set == null) {
|
||||
effect.disable(player);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (set == null) {
|
||||
effect.disable(player);
|
||||
continue;
|
||||
}
|
||||
Object strength = set.getEffectStrength(effect);
|
||||
|
||||
Object strength = set.getEffectStrength(effect);
|
||||
|
||||
if (ArmorUtils.isWearingAdvanced(player)) {
|
||||
Object advancedStrength = set.getAdvancedEffectStrength(effect);
|
||||
if (advancedStrength != null) {
|
||||
strength = advancedStrength;
|
||||
}
|
||||
}
|
||||
|
||||
if (strength == null) {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
if (!conditionsMet) {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
if (enabled) {
|
||||
effect.enable(player, strength);
|
||||
} else {
|
||||
effect.disable(player);
|
||||
if (ArmorUtils.isWearingAdvanced(player)) {
|
||||
Object advancedStrength = set.getAdvancedEffectStrength(effect);
|
||||
if (advancedStrength != null) {
|
||||
strength = advancedStrength;
|
||||
}
|
||||
}
|
||||
|
||||
if (set == null || !conditionsMet) {
|
||||
for (PotionEffect effect : player.getActivePotionEffects()) {
|
||||
if (effect.getDuration() >= 0x5ffffff && effect.getDuration() <= 0x6ffffff) {
|
||||
player.removePotionEffect(effect.getType());
|
||||
}
|
||||
}
|
||||
if (strength == null) {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
if (!conditionsMet) {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
if (enabled) {
|
||||
effect.enable(player, strength);
|
||||
} else {
|
||||
set.getPotionEffects().forEach((potionEffectType, integer) -> {
|
||||
effect.disable(player);
|
||||
}
|
||||
}
|
||||
|
||||
if (set == null || !conditionsMet) {
|
||||
for (PotionEffect effect : player.getActivePotionEffects()) {
|
||||
if (effect.getDuration() >= 0x5ffffff && effect.getDuration() <= 0x6ffffff) {
|
||||
player.removePotionEffect(effect.getType());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
set.getPotionEffects().forEach((potionEffectType, integer) -> {
|
||||
player.addPotionEffect(new PotionEffect(potionEffectType, 0x6ffffff, integer - 1, false, false, true));
|
||||
});
|
||||
|
||||
if (ArmorUtils.isWearingAdvanced(player)) {
|
||||
set.getAdvancedPotionEffects().forEach((potionEffectType, integer) -> {
|
||||
player.addPotionEffect(new PotionEffect(potionEffectType, 0x6ffffff, integer - 1, false, false, true));
|
||||
});
|
||||
|
||||
if (ArmorUtils.isWearingAdvanced(player)) {
|
||||
set.getAdvancedPotionEffects().forEach((potionEffectType, integer) -> {
|
||||
player.addPotionEffect(new PotionEffect(potionEffectType, 0x6ffffff, integer - 1, false, false, true));
|
||||
});
|
||||
}
|
||||
}
|
||||
}, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,7 +278,11 @@ public class ArmorSet {
|
||||
if (!ArmorUtils.isAdvanced(itemStack)) {
|
||||
return false;
|
||||
}
|
||||
return Objects.equals(this.getName(), ArmorUtils.getSetOnItem(test).getName());
|
||||
if (ArmorUtils.getSetOnItem(test) == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return Objects.equals(this, ArmorUtils.getSetOnItem(test));
|
||||
}, itemStack).register();
|
||||
} else {
|
||||
new CustomItem(this.getPlugin().getNamespacedKeyFactory().create("set_" + name.toLowerCase() + "_" + slot.name().toLowerCase()), test -> {
|
||||
@@ -288,7 +292,11 @@ public class ArmorSet {
|
||||
if (ArmorUtils.isAdvanced(itemStack)) {
|
||||
return false;
|
||||
}
|
||||
return Objects.equals(this.getName(), ArmorUtils.getSetOnItem(test).getName());
|
||||
if (ArmorUtils.getSetOnItem(test) == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return Objects.equals(this, ArmorUtils.getSetOnItem(test));
|
||||
}, itemStack).register();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user