mirror of
https://github.com/Auxilor/EcoEnchants.git
synced 2024-11-26 15:45:12 +01:00
Added support for multiple specials/artifacts on items
This commit is contained in:
parent
63c258984a
commit
6f3cee994f
@ -339,9 +339,28 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist
|
|||||||
* The types of {@link EcoEnchant}
|
* The types of {@link EcoEnchant}
|
||||||
*/
|
*/
|
||||||
public enum EnchantmentType {
|
public enum EnchantmentType {
|
||||||
NORMAL,
|
NORMAL(false),
|
||||||
CURSE,
|
CURSE(false),
|
||||||
SPECIAL,
|
SPECIAL(true),
|
||||||
ARTIFACT
|
ARTIFACT(true);
|
||||||
|
|
||||||
|
static {
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean singular;
|
||||||
|
|
||||||
|
EnchantmentType(boolean singular) {
|
||||||
|
this.singular = singular;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSingular() {
|
||||||
|
return singular;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void update() {
|
||||||
|
SPECIAL.singular = !ConfigManager.getConfig().getBool("types.special.allow-multiple");
|
||||||
|
ARTIFACT.singular = !ConfigManager.getConfig().getBool("types.artifact.allow-multiple");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,12 +18,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
public class EnchantingListeners implements Listener {
|
public class EnchantingListeners implements Listener {
|
||||||
@ -102,8 +97,8 @@ public class EnchantingListeners implements Listener {
|
|||||||
|
|
||||||
if(EcoEnchants.getFromEnchantment(enchant) != null) {
|
if(EcoEnchants.getFromEnchantment(enchant) != null) {
|
||||||
EcoEnchant ecoEnchant = EcoEnchants.getFromEnchantment(enchant);
|
EcoEnchant ecoEnchant = EcoEnchants.getFromEnchantment(enchant);
|
||||||
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.SPECIAL)) anyConflicts.set(true);
|
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && EcoEnchant.EnchantmentType.SPECIAL.isSingular()) anyConflicts.set(true);
|
||||||
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT)) anyConflicts.set(true);
|
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && EcoEnchant.EnchantmentType.ARTIFACT.isSingular()) anyConflicts.set(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (anyConflicts.get()) continue;
|
if (anyConflicts.get()) continue;
|
||||||
|
@ -74,8 +74,8 @@ public class LootPopulator extends BlockPopulator {
|
|||||||
if (enchant.conflictsWith(enchantment)) anyConflicts.set(true);
|
if (enchant.conflictsWith(enchantment)) anyConflicts.set(true);
|
||||||
|
|
||||||
EcoEnchant ecoEnchant = EcoEnchants.getFromEnchantment(enchant);
|
EcoEnchant ecoEnchant = EcoEnchants.getFromEnchantment(enchant);
|
||||||
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.SPECIAL)) anyConflicts.set(true);
|
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && EcoEnchant.EnchantmentType.SPECIAL.isSingular()) anyConflicts.set(true);
|
||||||
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT)) anyConflicts.set(true);
|
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && EcoEnchant.EnchantmentType.ARTIFACT.isSingular()) anyConflicts.set(true);
|
||||||
});
|
});
|
||||||
if (anyConflicts.get()) continue;
|
if (anyConflicts.get()) continue;
|
||||||
|
|
||||||
|
@ -14,11 +14,7 @@ import org.bukkit.inventory.MerchantRecipe;
|
|||||||
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
public class VillagerListeners implements Listener {
|
public class VillagerListeners implements Listener {
|
||||||
@ -134,8 +130,8 @@ public class VillagerListeners implements Listener {
|
|||||||
if (enchant.conflictsWith(enchantment)) anyConflicts.set(true);
|
if (enchant.conflictsWith(enchantment)) anyConflicts.set(true);
|
||||||
|
|
||||||
EcoEnchant ecoEnchant = EcoEnchants.getFromEnchantment(enchant);
|
EcoEnchant ecoEnchant = EcoEnchants.getFromEnchantment(enchant);
|
||||||
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.SPECIAL)) anyConflicts.set(true);
|
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.SPECIAL) && EcoEnchant.EnchantmentType.SPECIAL.isSingular()) anyConflicts.set(true);
|
||||||
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT)) anyConflicts.set(true);
|
if (enchantment.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT) && EcoEnchant.EnchantmentType.ARTIFACT.isSingular()) anyConflicts.set(true);
|
||||||
});
|
});
|
||||||
if (anyConflicts.get()) continue;
|
if (anyConflicts.get()) continue;
|
||||||
|
|
||||||
|
@ -463,6 +463,7 @@ public class Loader {
|
|||||||
EcoEnchants.update();
|
EcoEnchants.update();
|
||||||
EnchantDisplay.update();
|
EnchantDisplay.update();
|
||||||
TabCompleterEnchantinfo.reload();
|
TabCompleterEnchantinfo.reload();
|
||||||
|
EcoEnchant.EnchantmentType.update();
|
||||||
|
|
||||||
EcoEnchants.getAll().forEach((ecoEnchant -> {
|
EcoEnchants.getAll().forEach((ecoEnchant -> {
|
||||||
HandlerList.unregisterAll(ecoEnchant);
|
HandlerList.unregisterAll(ecoEnchant);
|
||||||
|
@ -68,6 +68,12 @@ loot:
|
|||||||
enabled: true # Enable reduction
|
enabled: true # Enable reduction
|
||||||
factor: 7.5 # Factor to reduce probability by. Done as compound, so second pass is (factor) times less likely than first, third less likely than second, etc
|
factor: 7.5 # Factor to reduce probability by. Done as compound, so second pass is (factor) times less likely than first, third less likely than second, etc
|
||||||
|
|
||||||
|
types:
|
||||||
|
special:
|
||||||
|
allow-multiple: false # Allow multiple special enchantments on a single item
|
||||||
|
artifact:
|
||||||
|
allow-multiple: false # Allow multiple artifacts on a single item (can cause lag!)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Enchantment-specific config has now been moved to their own files.
|
# Enchantment-specific config has now been moved to their own files.
|
||||||
# Check the /enchants directory.
|
# Check the /enchants directory.
|
||||||
|
Loading…
Reference in New Issue
Block a user