diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/commands/TabcompleterTalgive.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/commands/TabcompleterTalgive.java index 748c0b1..005caa9 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/commands/TabcompleterTalgive.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/commands/TabcompleterTalgive.java @@ -23,7 +23,7 @@ public class TabcompleterTalgive extends AbstractTabCompleter { /** * The cached enchantment names. */ - private static final List TALISMAN_NAMES = Talismans.values().stream().filter(Talisman::isEnabled).map(talisman -> talisman.getKey().getKey()).collect(Collectors.toList()); + private static final List TALISMAN_NAMES = new ArrayList<>(); /** * The cached numbers. diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java index b6cfb58..c1c8c3b 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java @@ -42,12 +42,6 @@ public abstract class Talisman implements Listener, Watcher { @Getter private final NamespacedKey key; - /** - * The config name of the talisman. - */ - @Getter - private final String configName; - /** * The talisman's config. */ @@ -86,18 +80,7 @@ public abstract class Talisman implements Listener, Watcher { protected Talisman(@NotNull final String key, @NotNull final Prerequisite... prerequisites) { this.key = this.getPlugin().getNamespacedKeyFactory().create(key); - this.configName = this.key.getKey().replace("_", ""); - this.config = new TalismanConfig(this.configName, this.getClass(), this.plugin); - - if (Bukkit.getPluginManager().getPermission("talismans.fromtable." + configName) == null) { - Permission permission = new Permission( - "talismans.fromtable." + configName, - "Allows getting " + configName + " from a Crafting Table", - PermissionDefault.TRUE - ); - permission.addParent(Objects.requireNonNull(Bukkit.getPluginManager().getPermission("talismans.fromtable.*")), true); - Bukkit.getPluginManager().addPermission(permission); - } + this.config = new TalismanConfig(this.getKey().getKey(), this.getClass(), this.plugin); if (!Prerequisite.areMet(prerequisites)) { return; @@ -113,9 +96,6 @@ public abstract class Talisman implements Listener, Watcher { */ public void update() { config.update(); - Material material = Material.getMaterial(config.getString(Talismans.GENERAL_LOCATION + "material").toUpperCase()); - Validate.notNull(material, "Material specified for " + this.getConfigName() + " is invalid!"); - TalismanUtils.registerTalismanMaterial(material); disabledWorldNames.clear(); disabledWorldNames.addAll(config.getStrings(Talismans.GENERAL_LOCATION + "disabled-in-worlds")); disabledWorlds.clear(); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/TalismanLevel.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/TalismanLevel.java index ceb11ef..324705b 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/TalismanLevel.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/TalismanLevel.java @@ -127,10 +127,10 @@ public class TalismanLevel { this.key = this.getPlugin().getNamespacedKeyFactory().create(talisman.getKey().getKey() + "_" + level); this.uuid = UUID.nameUUIDFromBytes(this.getKey().getKey().getBytes()); - if (Bukkit.getPluginManager().getPermission("talismans.fromtable." + talisman.getConfigName() + "." + level) == null) { + if (Bukkit.getPluginManager().getPermission("talismans.fromtable." + this.getKey().getKey()) == null) { Permission permission = new Permission( - "talismans.fromtable." + talisman.getConfigName() + "." + level, - "Allows getting " + talisman.getConfigName() + " " + level + " from a Crafting Table", + "talismans.fromtable." + this.getKey().getKey(), + "Allows getting " + this.getKey().getKey() + " from a Crafting Table", PermissionDefault.TRUE ); permission.addParent(Objects.requireNonNull(Bukkit.getPluginManager().getPermission("talismans.fromtable.*")), true); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java index 8060d85..7ae6558 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java @@ -3,6 +3,7 @@ package com.willfp.talismans.talismans; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import com.willfp.eco.core.config.ConfigUpdater; import com.willfp.talismans.talismans.talismans.AlchemyTalisman; import com.willfp.talismans.talismans.talismans.ArcheryTalisman; @@ -31,6 +32,7 @@ import com.willfp.talismans.talismans.talismans.ZombieResistanceTalisman; import com.willfp.talismans.talismans.talismans.ZombieTalisman; import com.willfp.talismans.talismans.util.TalismanUtils; import lombok.experimental.UtilityClass; +import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -38,6 +40,7 @@ import org.jetbrains.annotations.Nullable; import java.util.HashSet; import java.util.List; import java.util.Optional; +import java.util.Set; @UtilityClass @SuppressWarnings({"unused", "checkstyle:JavadocVariable"}) @@ -80,8 +83,8 @@ public class Talismans { * * @return A list of all {@link Talisman}s. */ - public static List values() { - return ImmutableList.copyOf(BY_KEY.values()); + public static Set values() { + return ImmutableSet.copyOf(BY_KEY.values()); } /** @@ -89,19 +92,8 @@ public class Talismans { * * @return A list of all {@link Talisman}s. */ - public static List keySet() { - return ImmutableList.copyOf(BY_KEY.keySet()); - } - - /** - * Get {@link Talisman} matching config name. - * - * @param configName The config name to search for. - * @return The matching {@link Talisman}, or null if not found. - */ - public static Talisman getByConfig(@NotNull final String configName) { - Optional matching = values().stream().filter(talisman -> talisman.getConfigName().equalsIgnoreCase(configName)).findFirst(); - return matching.orElse(null); + public static Set keySet() { + return ImmutableSet.copyOf(BY_KEY.keySet()); } /** diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/AttackSpeedTalisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/AttackSpeedTalisman.java index f2dd2a1..b8d9e53 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/AttackSpeedTalisman.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/AttackSpeedTalisman.java @@ -19,7 +19,7 @@ public class AttackSpeedTalisman extends Talisman { private final Map modifiers = new HashMap<>(); public AttackSpeedTalisman() { - super("speed"); + super("attack_speed"); } @Override diff --git a/eco-core/core-plugin/src/main/resources/talismans/alchemy.yml b/eco-core/core-plugin/src/main/resources/talismans/alchemy.yml index a97ed42..b6cb770 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/alchemy.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/alchemy.yml @@ -3,7 +3,7 @@ disabled-in-worlds: [] levels: 1: - name: "Alchemy Talisman I" + name: "&aAlchemy Talisman I" description: 5% chance double the strength of applied potion effects. obtaining: @@ -26,4 +26,54 @@ levels: texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTExYTNjZWM3YWFmOTA0MjEyY2NmOTNiYjY3YTNjYWYzZDY0OTc4M2JhOTBiOGI2MGJiNjNjNzY4N2ViMzlmIn19fQ== config: - chance: 5 \ No newline at end of file + chance: 5 + 2: + name: "&eAlchemy Talisman II" + description: 10% chance double the strength of applied potion effects. + + obtaining: + craftable: true + recipe: + - talismans:alchemy_talisman_1 + - talismans:alchemy_talisman_1 + - talismans:alchemy_talisman_1 + + - talismans:alchemy_talisman_1 + - heart_of_the_sea + - talismans:alchemy_talisman_1 + + - talismans:alchemy_talisman_1 + - talismans:alchemy_talisman_1 + - talismans:alchemy_talisman_1 + + general-config: + material: player_head + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjZkNzljMDI2ODc0Nzk0MWRmOWEyYTQ1MTAzY2JkNzMxZmRlZGNiYTU4OGY2NDNiNjcwZmQ3N2FhMmJkOTE4YyJ9fX0= + + config: + chance: 10 + 3: + name: "&cAlchemy Talisman III" + description: 25% chance double the strength of applied potion effects. + + obtaining: + craftable: true + recipe: + - talismans:alchemy_talisman_2 + - talismans:alchemy_talisman_2 + - talismans:alchemy_talisman_2 + + - talismans:alchemy_talisman_2 + - nether_star + - talismans:alchemy_talisman_2 + + - talismans:alchemy_talisman_2 + - talismans:alchemy_talisman_2 + - talismans:alchemy_talisman_2 + + general-config: + material: player_head + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDMwOTNhNWI3NzY0MmQ0MDkyMTEyZjQ2ZWE2ODE0MGZiNWFlMDRiYmQyMzFjZGExMDY2YTA0YzE4Yjg5Yzk0ZSJ9fX0= + + config: + chance: 25 \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/talismans/archery.yml b/eco-core/core-plugin/src/main/resources/talismans/archery.yml index ba45e14..5994b8e 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/archery.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/archery.yml @@ -3,7 +3,7 @@ disabled-in-worlds: [ ] levels: 1: - name: "Archery Talisman I" + name: "&aArchery Talisman I" description: Deal 10% more damage with bows. obtaining: @@ -26,4 +26,29 @@ levels: texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDBmOGRmYTVlZmM3NTYzMGNlMGRmNDBhNDliOGY1OWJjMjIyMTRkZTk3ZTNmYjQ0YjNjNTZlOGE5YzhhNTZiNiJ9fX0= config: - percent-more-damage: 10 \ No newline at end of file + percent-more-damage: 10 + 2: + name: "&eArchery Talisman II" + description: Deal 25% more damage with bows. + + obtaining: + craftable: true + recipe: + - talismans:archery_talisman_1 + - talismans:archery_talisman_1 + - talismans:archery_talisman_1 + + - talismans:archery_talisman_1 + - heart_of_the_sea + - talismans:archery_talisman_1 + + - talismans:archery_talisman_1 + - talismans:archery_talisman_1 + - talismans:archery_talisman_1 + + general-config: + material: player_head + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDBmOGRmYTVlZmM3NTYzMGNlMGRmNDBhNDliOGY1OWJjMjIyMTRkZTk3ZTNmYjQ0YjNjNTZlOGE5YzhhNTZiNiJ9fX0= + + config: + percent-more-damage: 25 \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/talismans/attackspeed.yml b/eco-core/core-plugin/src/main/resources/talismans/attack_speed.yml similarity index 94% rename from eco-core/core-plugin/src/main/resources/talismans/attackspeed.yml rename to eco-core/core-plugin/src/main/resources/talismans/attack_speed.yml index b0ec805..81fc21b 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/attackspeed.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/attack_speed.yml @@ -3,7 +3,7 @@ disabled-in-worlds: [ ] levels: 1: - name: "Attack Speed Talisman I" + name: "&aAttack Speed Talisman I" description: Attack 5% faster. obtaining: diff --git a/eco-core/core-plugin/src/main/resources/talismans/boss.yml b/eco-core/core-plugin/src/main/resources/talismans/boss.yml index 2eb33a2..3d11bec 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/boss.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/boss.yml @@ -3,7 +3,7 @@ disabled-in-worlds: [ ] levels: 1: - name: "Boss Talisman I" + name: "&aBoss Talisman I" description: Deal 10% more damage to bosses. obtaining: diff --git a/eco-core/core-plugin/src/main/resources/talismans/creeper.yml b/eco-core/core-plugin/src/main/resources/talismans/creeper.yml index 822b7f9..1550bb2 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/creeper.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/creeper.yml @@ -3,7 +3,7 @@ disabled-in-worlds: [ ] levels: 1: - name: "Creeper Talisman I" + name: "&aCreeper Talisman I" description: Deal 10% more damage to creepers. obtaining: diff --git a/eco-core/core-plugin/src/main/resources/talismans/end.yml b/eco-core/core-plugin/src/main/resources/talismans/end.yml index 90b3ffb..11f5662 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/end.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/end.yml @@ -3,7 +3,7 @@ disabled-in-worlds: [ ] levels: 1: - name: "End Talisman I" + name: "&aEnd Talisman I" description: Deal 10% more damage in the end. obtaining: diff --git a/eco-core/core-plugin/src/main/resources/talismans/experience.yml b/eco-core/core-plugin/src/main/resources/talismans/experience.yml index 0456557..892ff40 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/experience.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/experience.yml @@ -3,7 +3,7 @@ disabled-in-worlds: [ ] levels: 1: - name: "Experience Talisman I" + name: "&aExperience Talisman I" description: Gain 10% more experience. obtaining: diff --git a/eco-core/core-plugin/src/main/resources/talismans/extraction.yml b/eco-core/core-plugin/src/main/resources/talismans/extraction.yml index 80fb584..c83bd58 100644 --- a/eco-core/core-plugin/src/main/resources/talismans/extraction.yml +++ b/eco-core/core-plugin/src/main/resources/talismans/extraction.yml @@ -3,7 +3,7 @@ disabled-in-worlds: [ ] levels: 1: - name: "Extraction Talisman I" + name: "&aExtraction Talisman I" description: 2% chance to get xp randomly while mining. obtaining: diff --git a/eco-core/core-plugin/src/main/resources/talismans/posiedon.yml b/eco-core/core-plugin/src/main/resources/talismans/poseidon.yml similarity index 100% rename from eco-core/core-plugin/src/main/resources/talismans/posiedon.yml rename to eco-core/core-plugin/src/main/resources/talismans/poseidon.yml diff --git a/eco-core/core-plugin/src/main/resources/talismans/spiderresistance.yml b/eco-core/core-plugin/src/main/resources/talismans/spider_resistance.yml similarity index 100% rename from eco-core/core-plugin/src/main/resources/talismans/spiderresistance.yml rename to eco-core/core-plugin/src/main/resources/talismans/spider_resistance.yml diff --git a/eco-core/core-plugin/src/main/resources/talismans/zombieresistance.yml b/eco-core/core-plugin/src/main/resources/talismans/zombie_resistance.yml similarity index 100% rename from eco-core/core-plugin/src/main/resources/talismans/zombieresistance.yml rename to eco-core/core-plugin/src/main/resources/talismans/zombie_resistance.yml diff --git a/gradle.properties b/gradle.properties index b94c042..c7fd9fb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 2.0.2 +version = 3.0.0 plugin-name = Talismans \ No newline at end of file