Began rework
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
package com.willfp.talismans.config.configs;
|
||||
package com.willfp.talismans.config;
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.eco.core.config.ExtendableConfig;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import lombok.Getter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -17,15 +16,13 @@ public class TalismanConfig extends ExtendableConfig {
|
||||
* Instantiate a new config for a talisman.
|
||||
*
|
||||
* @param name The name of the config.
|
||||
* @param strength The strength of the talisman.
|
||||
* @param source The provider of the talisman.
|
||||
* @param plugin Instance of talismans.
|
||||
*/
|
||||
public TalismanConfig(@NotNull final String name,
|
||||
@NotNull final TalismanStrength strength,
|
||||
@NotNull final Class<?> source,
|
||||
@NotNull final EcoPlugin plugin) {
|
||||
super(name, true, plugin, source, "talismans/" + strength.name().toLowerCase() + "/");
|
||||
super(name, true, plugin, source, "talismans/");
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.eco.core.display.DisplayModule;
|
||||
import com.willfp.eco.core.display.DisplayPriority;
|
||||
import com.willfp.eco.util.SkullUtils;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.util.TalismanChecks;
|
||||
import com.willfp.talismans.talismans.util.TalismanUtils;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@@ -47,7 +47,7 @@ public class TalismanDisplay extends DisplayModule {
|
||||
itemLore = new ArrayList<>();
|
||||
}
|
||||
|
||||
Talisman talisman = TalismanChecks.getTalismanOnItem(itemStack);
|
||||
TalismanLevel talisman = TalismanChecks.getTalismanOnItem(itemStack);
|
||||
|
||||
if (talisman == null) {
|
||||
return;
|
||||
@@ -57,7 +57,7 @@ public class TalismanDisplay extends DisplayModule {
|
||||
SkullUtils.setSkullTexture((SkullMeta) meta, talisman.getSkullBase64());
|
||||
}
|
||||
|
||||
meta.setDisplayName(talisman.getFormattedName());
|
||||
meta.setDisplayName(talisman.getName());
|
||||
|
||||
List<String> lore = new ArrayList<>();
|
||||
|
||||
|
||||
@@ -2,38 +2,27 @@ package com.willfp.talismans.talismans;
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.eco.core.Prerequisite;
|
||||
import com.willfp.eco.core.display.Display;
|
||||
import com.willfp.eco.core.items.CustomItem;
|
||||
import com.willfp.eco.core.items.Items;
|
||||
import com.willfp.eco.core.recipe.recipes.ShapedCraftingRecipe;
|
||||
import com.willfp.eco.util.StringUtils;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import com.willfp.talismans.config.configs.TalismanConfig;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.TalismanChecks;
|
||||
import com.willfp.talismans.config.TalismanConfig;
|
||||
import com.willfp.talismans.talismans.util.TalismanUtils;
|
||||
import com.willfp.talismans.talismans.util.Watcher;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.apache.commons.lang.WordUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
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.UUID;
|
||||
@@ -58,68 +47,18 @@ public abstract class Talisman implements Listener, Watcher {
|
||||
@Getter
|
||||
private final UUID uuid;
|
||||
|
||||
/**
|
||||
* The display name of the talisman.
|
||||
*/
|
||||
@Getter
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* The description of the talisman.
|
||||
*/
|
||||
@Getter
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* Get description of talisman formatted.
|
||||
*/
|
||||
@Getter
|
||||
private List<String> formattedDescription;
|
||||
|
||||
/**
|
||||
* The config name of the talisman.
|
||||
*/
|
||||
@Getter
|
||||
private final String configName;
|
||||
|
||||
/**
|
||||
* The strength of the talisman
|
||||
* <p>
|
||||
* Talisman is weakest, then ring, then relic.
|
||||
*/
|
||||
@Getter
|
||||
private final TalismanStrength strength;
|
||||
|
||||
/**
|
||||
* The talisman's config.
|
||||
*/
|
||||
@Getter
|
||||
private final TalismanConfig config;
|
||||
|
||||
/**
|
||||
* The talisman item.
|
||||
*/
|
||||
@Getter
|
||||
private ItemStack itemStack;
|
||||
|
||||
/**
|
||||
* The talisman recipe.
|
||||
*/
|
||||
@Getter
|
||||
private ShapedCraftingRecipe recipe = null;
|
||||
|
||||
/**
|
||||
* If the talisman is craftable.
|
||||
*/
|
||||
@Getter
|
||||
private boolean craftable = true;
|
||||
|
||||
/**
|
||||
* The base64 skull texture.
|
||||
*/
|
||||
@Getter
|
||||
private String skullBase64;
|
||||
|
||||
/**
|
||||
* The names of the worlds that this talisman is disabled in.
|
||||
*/
|
||||
@@ -138,21 +77,23 @@ public abstract class Talisman implements Listener, Watcher {
|
||||
@Getter
|
||||
private boolean enabled;
|
||||
|
||||
/**
|
||||
* All levels.
|
||||
*/
|
||||
private final Map<Integer, TalismanLevel> levels = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Create a new Talisman.
|
||||
*
|
||||
* @param key The key name of the talisman.
|
||||
* @param strength The strength of the talisman.
|
||||
* @param prerequisites Optional {@link Prerequisite}s that must be met.
|
||||
*/
|
||||
protected Talisman(@NotNull final String key,
|
||||
@NotNull final TalismanStrength strength,
|
||||
@NotNull final Prerequisite... prerequisites) {
|
||||
this.strength = strength;
|
||||
this.key = this.getPlugin().getNamespacedKeyFactory().create(key + "_" + strength.name().toLowerCase());
|
||||
this.key = this.getPlugin().getNamespacedKeyFactory().create(key);
|
||||
this.uuid = UUID.nameUUIDFromBytes(this.getKey().getKey().getBytes());
|
||||
this.configName = this.key.getKey().replace("_", "");
|
||||
this.config = new TalismanConfig(this.configName, this.strength, this.getClass(), this.plugin);
|
||||
this.config = new TalismanConfig(this.configName, this.getClass(), this.plugin);
|
||||
|
||||
if (Bukkit.getPluginManager().getPermission("talismans.fromtable." + configName) == null) {
|
||||
Permission permission = new Permission(
|
||||
@@ -178,52 +119,22 @@ public abstract class Talisman implements Listener, Watcher {
|
||||
*/
|
||||
public void update() {
|
||||
config.update();
|
||||
name = StringUtils.translate(config.getString("name"));
|
||||
description = StringUtils.translate(config.getString("description"));
|
||||
skullBase64 = config.getString(Talismans.GENERAL_LOCATION + "texture");
|
||||
Material material = Material.getMaterial(config.getString(Talismans.GENERAL_LOCATION + "material").toUpperCase());
|
||||
Validate.notNull(material, "Material specified for " + name + " is invalid!");
|
||||
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();
|
||||
|
||||
formattedDescription = Arrays.stream(WordUtils.wrap(description, this.getPlugin().getConfigYml().getInt("description.wrap"), "\n", false).split("\\r?\\n"))
|
||||
.map(s -> Display.PREFIX + StringUtils.translate(this.getPlugin().getLangYml().getString("description-color") + s)).collect(Collectors.toList());
|
||||
this.levels.clear();
|
||||
for (String key : config.getSubsection("levels").getKeys(false)) {
|
||||
this.levels.put(Integer.parseInt(key), new TalismanLevel(this, Integer.parseInt(key), config.getSubsection("levels." + key)));
|
||||
}
|
||||
|
||||
List<String> worldNames = Bukkit.getWorlds().stream().map(World::getName).map(String::toLowerCase).collect(Collectors.toList());
|
||||
List<String> disabledExistingWorldNames = disabledWorldNames.stream().filter(s -> worldNames.contains(s.toLowerCase())).collect(Collectors.toList());
|
||||
disabledWorlds.addAll(Bukkit.getWorlds().stream().filter(world -> disabledExistingWorldNames.contains(world.getName().toLowerCase())).collect(Collectors.toList()));
|
||||
enabled = config.getBool("enabled");
|
||||
craftable = config.getBool(Talismans.OBTAINING_LOCATION + "craftable");
|
||||
|
||||
TalismanUtils.registerPlaceholders(this);
|
||||
|
||||
ItemStack out = new ItemStack(material, 1);
|
||||
ItemMeta outMeta = out.getItemMeta();
|
||||
assert outMeta != null;
|
||||
PersistentDataContainer container = outMeta.getPersistentDataContainer();
|
||||
container.set(this.getKey(), PersistentDataType.INTEGER, 1);
|
||||
out.setItemMeta(outMeta);
|
||||
Display.display(out);
|
||||
|
||||
this.itemStack = out;
|
||||
|
||||
new CustomItem(this.getKey(), test -> Objects.equals(this, TalismanChecks.getTalismanOnItem(test)), out).register();
|
||||
|
||||
if (this.isCraftable() && this.isEnabled()) {
|
||||
ShapedCraftingRecipe.Builder builder = ShapedCraftingRecipe.builder(this.getPlugin(), this.getKey().getKey())
|
||||
.setOutput(out);
|
||||
|
||||
List<String> recipeStrings = this.getConfig().getStrings(Talismans.OBTAINING_LOCATION + "recipe");
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
builder.setRecipePart(i, Items.lookup(recipeStrings.get(i)));
|
||||
}
|
||||
|
||||
this.recipe = builder.build();
|
||||
this.recipe.register();
|
||||
}
|
||||
|
||||
postUpdate();
|
||||
}
|
||||
@@ -233,12 +144,13 @@ public abstract class Talisman implements Listener, Watcher {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the talisman, formatted with color.
|
||||
* Get level.
|
||||
*
|
||||
* @return The name.
|
||||
* @param level The level.
|
||||
* @return The level or null if not found.
|
||||
*/
|
||||
public String getFormattedName() {
|
||||
return this.getStrength().getColor() + this.getName();
|
||||
public final TalismanLevel getLevel(final int level) {
|
||||
return levels.get(level);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
package com.willfp.talismans.talismans;
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.eco.core.config.Config;
|
||||
import com.willfp.eco.core.display.Display;
|
||||
import com.willfp.eco.core.items.CustomItem;
|
||||
import com.willfp.eco.core.items.Items;
|
||||
import com.willfp.eco.core.recipe.recipes.ShapedCraftingRecipe;
|
||||
import com.willfp.eco.util.StringUtils;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import com.willfp.talismans.talismans.util.TalismanChecks;
|
||||
import com.willfp.talismans.talismans.util.TalismanUtils;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.apache.commons.lang.WordUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class TalismanLevel {
|
||||
/**
|
||||
* Instance of Talismans for talismans to be able to access.
|
||||
*/
|
||||
@Getter(AccessLevel.PROTECTED)
|
||||
private final EcoPlugin plugin = TalismansPlugin.getInstance();
|
||||
|
||||
/**
|
||||
* The key to store talismans in meta.
|
||||
*/
|
||||
@Getter
|
||||
private final NamespacedKey key;
|
||||
|
||||
/**
|
||||
* The display name of the talisman.
|
||||
*/
|
||||
@Getter
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* The description of the talisman.
|
||||
*/
|
||||
@Getter
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* Get description of talisman formatted.
|
||||
*/
|
||||
@Getter
|
||||
private List<String> formattedDescription;
|
||||
|
||||
/**
|
||||
* The talisman level.
|
||||
*/
|
||||
@Getter
|
||||
private final int level;
|
||||
|
||||
/**
|
||||
* The talisman.
|
||||
*/
|
||||
@Getter
|
||||
private final Talisman talisman;
|
||||
|
||||
/**
|
||||
* The talisman's config.
|
||||
*/
|
||||
@Getter
|
||||
private final Config config;
|
||||
|
||||
/**
|
||||
* The talisman item.
|
||||
*/
|
||||
@Getter
|
||||
private ItemStack itemStack;
|
||||
|
||||
/**
|
||||
* The talisman recipe.
|
||||
*/
|
||||
@Getter
|
||||
private ShapedCraftingRecipe recipe = null;
|
||||
|
||||
/**
|
||||
* If the talisman is craftable.
|
||||
*/
|
||||
@Getter
|
||||
private boolean craftable = true;
|
||||
|
||||
/**
|
||||
* The base64 skull texture.
|
||||
*/
|
||||
@Getter
|
||||
private String skullBase64;
|
||||
|
||||
/**
|
||||
* Create a new Talisman Level.
|
||||
*
|
||||
* @param talisman The talisman.
|
||||
* @param level The level.
|
||||
* @param config The config.
|
||||
*/
|
||||
protected TalismanLevel(@NotNull final Talisman talisman,
|
||||
final int level,
|
||||
@NotNull final Config config) {
|
||||
this.config = config;
|
||||
this.level = level;
|
||||
this.talisman = talisman;
|
||||
this.key = this.getPlugin().getNamespacedKeyFactory().create(talisman.getKey().getKey() + "_" + level);
|
||||
|
||||
if (Bukkit.getPluginManager().getPermission("talismans.fromtable." + talisman.getConfigName() + "." + level) == null) {
|
||||
Permission permission = new Permission(
|
||||
"talismans.fromtable." + talisman.getConfigName() + "." + level,
|
||||
"Allows getting " + talisman.getConfigName() + " " + level + " from a Crafting Table",
|
||||
PermissionDefault.TRUE
|
||||
);
|
||||
permission.addParent(Objects.requireNonNull(Bukkit.getPluginManager().getPermission("talismans.fromtable.*")), true);
|
||||
Bukkit.getPluginManager().addPermission(permission);
|
||||
}
|
||||
|
||||
this.update();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the talisman based off config values.
|
||||
* This can be overridden but may lead to unexpected behavior.
|
||||
*/
|
||||
public void update() {
|
||||
name = config.getString("name");
|
||||
description = config.getString("description");
|
||||
skullBase64 = config.getString(Talismans.GENERAL_LOCATION + "texture");
|
||||
Material material = Material.getMaterial(config.getString(Talismans.GENERAL_LOCATION + "material").toUpperCase());
|
||||
Validate.notNull(material, "Material specified for " + name + " is invalid!");
|
||||
TalismanUtils.registerTalismanMaterial(material);
|
||||
|
||||
formattedDescription = Arrays.stream(WordUtils.wrap(description, this.getPlugin().getConfigYml().getInt("description.wrap"), "\n", false).split("\\r?\\n"))
|
||||
.map(s -> Display.PREFIX + StringUtils.translate(this.getPlugin().getLangYml().getString("description-color") + s)).collect(Collectors.toList());
|
||||
|
||||
craftable = config.getBool(Talismans.OBTAINING_LOCATION + "craftable");
|
||||
|
||||
ItemStack out = new ItemStack(material, 1);
|
||||
ItemMeta outMeta = out.getItemMeta();
|
||||
assert outMeta != null;
|
||||
PersistentDataContainer container = outMeta.getPersistentDataContainer();
|
||||
container.set(this.getKey(), PersistentDataType.INTEGER, 1);
|
||||
out.setItemMeta(outMeta);
|
||||
Display.display(out);
|
||||
|
||||
this.itemStack = out;
|
||||
|
||||
new CustomItem(this.getKey(), test -> Objects.equals(this, TalismanChecks.getTalismanOnItem(test)), out).register();
|
||||
|
||||
if (this.isCraftable()) {
|
||||
ShapedCraftingRecipe.Builder builder = ShapedCraftingRecipe.builder(this.getPlugin(), this.getKey().getKey())
|
||||
.setOutput(out);
|
||||
|
||||
List<String> recipeStrings = this.getConfig().getStrings(Talismans.OBTAINING_LOCATION + "recipe");
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
builder.setRecipePart(i, Items.lookup(recipeStrings.get(i)));
|
||||
}
|
||||
|
||||
this.recipe = builder.build();
|
||||
this.recipe.register();
|
||||
}
|
||||
|
||||
postUpdate();
|
||||
}
|
||||
|
||||
protected void postUpdate() {
|
||||
// Unused as some talismans may have postUpdate tasks, however most won't.
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(@Nullable final Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (!(o instanceof TalismanLevel)) {
|
||||
return false;
|
||||
}
|
||||
TalismanLevel that = (TalismanLevel) o;
|
||||
return getLevel() == that.getLevel() && Objects.equals(getTalisman(), that.getTalisman());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(getLevel(), getTalisman());
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.willfp.eco.core.config.ConfigUpdater;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.talismans.AlchemyTalisman;
|
||||
import com.willfp.talismans.talismans.talismans.ArcheryTalisman;
|
||||
import com.willfp.talismans.talismans.talismans.AttackSpeedTalisman;
|
||||
@@ -50,70 +49,32 @@ public class Talismans {
|
||||
|
||||
private static final BiMap<NamespacedKey, Talisman> BY_KEY = HashBiMap.create();
|
||||
|
||||
public static final Talisman ZOMBIE_TALISMAN = new ZombieTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman SKELETON_TALISMAN = new SkeletonTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman CREEPER_TALISMAN = new CreeperTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman SPIDER_TALISMAN = new SpiderTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman RAID_TALISMAN = new RaidTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman NETHER_TALISMAN = new NetherTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman END_TALISMAN = new EndTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman FEATHER_TALISMAN = new FeatherTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman FLAME_TALISMAN = new FlameTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman ARCHERY_TALISMAN = new ArcheryTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman POSEIDON_TALISMAN = new PoseidonTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman EXPERIENCE_TALISMAN = new ExperienceTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman EXTRACTION_TALISMAN = new ExtractionTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman SHARPNESS_TALISMAN = new SharpnessTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman ZOMBIE_RESISTANCE_TALISMAN = new ZombieResistanceTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman SPIDER_RESISTANCE_TALISMAN = new SpiderResistanceTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman RESISTANCE_TALISMAN = new ResistanceTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman STRENGTH_TALISMAN = new StrengthTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman ARCHERY_RING = new ArcheryTalisman(TalismanStrength.RING);
|
||||
public static final Talisman END_RING = new EndTalisman(TalismanStrength.RING);
|
||||
public static final Talisman EXPERIENCE_RING = new ExperienceTalisman(TalismanStrength.RING);
|
||||
public static final Talisman EXTRACTION_RING = new ExtractionTalisman(TalismanStrength.RING);
|
||||
public static final Talisman FEATHER_RING = new FeatherTalisman(TalismanStrength.RING);
|
||||
public static final Talisman FLAME_RING = new FlameTalisman(TalismanStrength.RING);
|
||||
public static final Talisman NETHER_RING = new NetherTalisman(TalismanStrength.RING);
|
||||
public static final Talisman POSEIDON_RING = new PoseidonTalisman(TalismanStrength.RING);
|
||||
public static final Talisman RESISTANCE_RING = new ResistanceTalisman(TalismanStrength.RING);
|
||||
public static final Talisman SHARPNESS_RING = new SharpnessTalisman(TalismanStrength.RING);
|
||||
public static final Talisman STRENGTH_RING = new StrengthTalisman(TalismanStrength.RING);
|
||||
public static final Talisman ARCHERY_RELIC = new ArcheryTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman END_RELIC = new EndTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman EXPERIENCE_RELIC = new ExperienceTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman EXTRACTION_RELIC = new ExtractionTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman FEATHER_RELIC = new FeatherTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman FLAME_RELIC = new FlameTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman NETHER_RELIC = new NetherTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman POSEIDON_RELIC = new PoseidonTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman RESISTANCE_RELIC = new ResistanceTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman SHARPNESS_RELIC = new SharpnessTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman STRENGTH_RELIC = new StrengthTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman RAID_RING = new RaidTalisman(TalismanStrength.RING);
|
||||
public static final Talisman RAID_RELIC = new RaidTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman ALCHEMY_TALISMAN = new AlchemyTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman ALCHEMY_RING = new AlchemyTalisman(TalismanStrength.RING);
|
||||
public static final Talisman ALCHEMY_RELIC = new AlchemyTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman IMMUNITY_TALISMAN = new ImmunityTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman FLUX_TALISMAN = new FluxTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman FLUX_RING = new FluxTalisman(TalismanStrength.RING);
|
||||
public static final Talisman FLUX_RELIC = new FluxTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman HEALING_TALISMAN = new HealingTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman HEALING_RING = new HealingTalisman(TalismanStrength.RING);
|
||||
public static final Talisman HEALING_RELIC = new HealingTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman SPEED_TALISMAN = new SpeedTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman SPEED_RING = new SpeedTalisman(TalismanStrength.RING);
|
||||
public static final Talisman SPEED_RELIC = new SpeedTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman BOSS_TALISMAN = new BossTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman BOSS_RING = new BossTalisman(TalismanStrength.RING);
|
||||
public static final Talisman BOSS_RELIC = new BossTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman GRAVITY_TALISMAN = new GravityTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman GRAVITY_RING = new GravityTalisman(TalismanStrength.RING);
|
||||
public static final Talisman GRAVITY_RELIC = new GravityTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman ATTACK_SPEED_TALISMAN = new AttackSpeedTalisman(TalismanStrength.TALISMAN);
|
||||
public static final Talisman ATTACK_SPEED_RING = new AttackSpeedTalisman(TalismanStrength.RING);
|
||||
public static final Talisman ATTACK_SPEEED_TALISMAN = new AttackSpeedTalisman(TalismanStrength.RELIC);
|
||||
public static final Talisman ZOMBIE_TALISMAN = new ZombieTalisman();
|
||||
public static final Talisman SKELETON_TALISMAN = new SkeletonTalisman();
|
||||
public static final Talisman CREEPER_TALISMAN = new CreeperTalisman();
|
||||
public static final Talisman SPIDER_TALISMAN = new SpiderTalisman();
|
||||
public static final Talisman RAID_TALISMAN = new RaidTalisman();
|
||||
public static final Talisman NETHER_TALISMAN = new NetherTalisman();
|
||||
public static final Talisman END_TALISMAN = new EndTalisman();
|
||||
public static final Talisman FEATHER_TALISMAN = new FeatherTalisman();
|
||||
public static final Talisman FLAME_TALISMAN = new FlameTalisman();
|
||||
public static final Talisman ARCHERY_TALISMAN = new ArcheryTalisman();
|
||||
public static final Talisman POSEIDON_TALISMAN = new PoseidonTalisman();
|
||||
public static final Talisman EXPERIENCE_TALISMAN = new ExperienceTalisman();
|
||||
public static final Talisman EXTRACTION_TALISMAN = new ExtractionTalisman();
|
||||
public static final Talisman SHARPNESS_TALISMAN = new SharpnessTalisman();
|
||||
public static final Talisman ZOMBIE_RESISTANCE_TALISMAN = new ZombieResistanceTalisman();
|
||||
public static final Talisman SPIDER_RESISTANCE_TALISMAN = new SpiderResistanceTalisman();
|
||||
public static final Talisman RESISTANCE_TALISMAN = new ResistanceTalisman();
|
||||
public static final Talisman STRENGTH_TALISMAN = new StrengthTalisman();
|
||||
public static final Talisman ALCHEMY_TALISMAN = new AlchemyTalisman();
|
||||
public static final Talisman IMMUNITY_TALISMAN = new ImmunityTalisman();
|
||||
public static final Talisman FLUX_TALISMAN = new FluxTalisman();
|
||||
public static final Talisman HEALING_TALISMAN = new HealingTalisman();
|
||||
public static final Talisman SPEED_TALISMAN = new SpeedTalisman();
|
||||
public static final Talisman BOSS_TALISMAN = new BossTalisman();
|
||||
public static final Talisman GRAVITY_TALISMAN = new GravityTalisman();
|
||||
public static final Talisman ATTACK_SPEED_TALISMAN = new AttackSpeedTalisman();
|
||||
|
||||
/**
|
||||
* Get all registered {@link Talisman}s.
|
||||
@@ -133,17 +94,6 @@ public class Talismans {
|
||||
return ImmutableList.copyOf(BY_KEY.keySet());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get {@link Talisman} matching display name.
|
||||
*
|
||||
* @param name The display name to search for.
|
||||
* @return The matching {@link Talisman}, or null if not found.
|
||||
*/
|
||||
public static Talisman getByName(@NotNull final String name) {
|
||||
Optional<Talisman> matching = values().stream().filter(talisman -> talisman.getName().equalsIgnoreCase(name)).findFirst();
|
||||
return matching.orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get {@link Talisman} matching config name.
|
||||
*
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
package com.willfp.talismans.talismans.meta;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.willfp.eco.core.config.ConfigUpdater;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import lombok.Getter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class TalismanStrength {
|
||||
/**
|
||||
* All registered strengths.
|
||||
*/
|
||||
private static final Map<String, TalismanStrength> REGISTERED = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Weakest.
|
||||
*/
|
||||
public static final TalismanStrength TALISMAN = new TalismanStrength("talisman", () -> TalismansPlugin.getInstance().getConfigYml().getString("strengths.talisman.color"));
|
||||
|
||||
/**
|
||||
* Middle.
|
||||
*/
|
||||
public static final TalismanStrength RING = new TalismanStrength("ring", () -> TalismansPlugin.getInstance().getConfigYml().getString("strengths.ring.color"));
|
||||
|
||||
/**
|
||||
* Strongest.
|
||||
*/
|
||||
public static final TalismanStrength RELIC = new TalismanStrength("relic", () -> TalismansPlugin.getInstance().getConfigYml().getString("strengths.relic.color"));
|
||||
|
||||
/**
|
||||
* The color.
|
||||
*/
|
||||
@Getter
|
||||
private String color;
|
||||
|
||||
/**
|
||||
* The name.
|
||||
*/
|
||||
private final String name;
|
||||
|
||||
/**
|
||||
* Supplier to get the color.
|
||||
*/
|
||||
private final Supplier<String> colorSupplier;
|
||||
|
||||
/**
|
||||
* Create a new strength.
|
||||
*
|
||||
* @param name The name.
|
||||
* @param colorSupplier The color supplier.
|
||||
*/
|
||||
protected TalismanStrength(@NotNull final String name,
|
||||
@NotNull final Supplier<String> colorSupplier) {
|
||||
this.colorSupplier = colorSupplier;
|
||||
this.name = name;
|
||||
this.color = colorSupplier.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the strength.
|
||||
*
|
||||
* @return The name.
|
||||
*/
|
||||
public String name() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update values.
|
||||
*/
|
||||
@ConfigUpdater
|
||||
public static void update() {
|
||||
for (TalismanStrength strength : TalismanStrength.values()) {
|
||||
strength.color = strength.colorSupplier.get();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get talisman strength by name.
|
||||
*
|
||||
* @param name The name.
|
||||
* @return The strength, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
public static TalismanStrength valueOf(@NotNull final String name) {
|
||||
return REGISTERED.get(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all registered talisman strengths.
|
||||
*
|
||||
* @return A collection of strengths.
|
||||
*/
|
||||
public static Set<TalismanStrength> values() {
|
||||
return ImmutableSet.copyOf(REGISTERED.values());
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.TalismanChecks;
|
||||
import com.willfp.talismans.talismans.util.TalismanUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -11,8 +10,8 @@ import org.bukkit.potion.PotionEffect;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class AlchemyTalisman extends Talisman {
|
||||
public AlchemyTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("alchemy", strength);
|
||||
public AlchemyTalisman() {
|
||||
super("alchemy");
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@@ -30,11 +29,13 @@ public class AlchemyTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!TalismanChecks.hasTalisman(player, this)) {
|
||||
int level = TalismanChecks.getTalismanLevel(player, this);
|
||||
|
||||
if (level == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!TalismanUtils.passedChance(this)) {
|
||||
if (!TalismanUtils.passedChance(this.getLevel(level))) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -10,14 +10,16 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ArcheryTalisman extends Talisman {
|
||||
public ArcheryTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("archery", strength);
|
||||
public ArcheryTalisman() {
|
||||
super("archery");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.equipevent.EquipType;
|
||||
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
@@ -15,8 +14,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
public class AttackSpeedTalisman extends Talisman {
|
||||
private AttributeModifier modifier = null;
|
||||
|
||||
public AttackSpeedTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("attack_speed", strength);
|
||||
public AttackSpeedTalisman() {
|
||||
super("attack_speed");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Boss;
|
||||
@@ -16,23 +16,25 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class BossTalisman extends Talisman {
|
||||
public BossTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("boss", strength);
|
||||
public BossTalisman() {
|
||||
super("boss");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (!(victim instanceof Boss || victim instanceof ElderGuardian) && !victim.getPersistentDataContainer().has(new NamespacedKey("ecobosses", "boss"), PersistentDataType.STRING)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -40,11 +42,12 @@ public class BossTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -52,6 +55,6 @@ public class BossTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Creeper;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
@@ -12,23 +12,25 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class CreeperTalisman extends Talisman {
|
||||
public CreeperTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("creeper", strength);
|
||||
public CreeperTalisman() {
|
||||
super("creeper");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (!(victim instanceof Creeper)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -36,11 +38,12 @@ public class CreeperTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -48,6 +51,6 @@ public class CreeperTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
@@ -12,23 +12,25 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class EndTalisman extends Talisman {
|
||||
public EndTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("end", strength);
|
||||
public EndTalisman() {
|
||||
super("end");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (attacker.getWorld().getEnvironment() != World.Environment.THE_END) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -36,11 +38,12 @@ public class EndTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -48,6 +51,6 @@ public class EndTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,15 +3,14 @@ package com.willfp.talismans.talismans.talismans;
|
||||
import com.willfp.eco.core.events.NaturalExpGainEvent;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.TalismanChecks;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ExperienceTalisman extends Talisman {
|
||||
public ExperienceTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("experience", strength);
|
||||
public ExperienceTalisman() {
|
||||
super("experience");
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.eco.core.drops.DropQueue;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.TalismanUtils;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -11,20 +11,21 @@ import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ExtractionTalisman extends Talisman {
|
||||
public ExtractionTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("extraction", strength);
|
||||
public ExtractionTalisman() {
|
||||
super("extraction");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockBreak(@NotNull final Player player,
|
||||
public void onBlockBreak(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player player,
|
||||
@NotNull final Block block,
|
||||
@NotNull final BlockBreakEvent event) {
|
||||
if (!TalismanUtils.passedChance(this)) {
|
||||
if (!TalismanUtils.passedChance(level)) {
|
||||
return;
|
||||
}
|
||||
|
||||
new DropQueue(player)
|
||||
.addXP(this.getConfig().getInt(Talismans.CONFIG_LOCATION + "xp-amount"))
|
||||
.addXP(level.getConfig().getInt(Talismans.CONFIG_LOCATION + "xp-amount"))
|
||||
.setLocation(block.getLocation())
|
||||
.push();
|
||||
}
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class FeatherTalisman extends Talisman {
|
||||
public FeatherTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("feather", strength);
|
||||
public FeatherTalisman() {
|
||||
super("feather");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDamage(@NotNull final Player victim,
|
||||
public void onDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final EntityDamageEvent event) {
|
||||
if (event.getCause() != EntityDamageEvent.DamageCause.FALL) {
|
||||
return;
|
||||
|
||||
@@ -1,24 +1,25 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class FlameTalisman extends Talisman {
|
||||
public FlameTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("flame", strength);
|
||||
public FlameTalisman() {
|
||||
super("flame");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDamage(@NotNull final Player victim,
|
||||
public void onDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final EntityDamageEvent event) {
|
||||
if (event.getCause() != EntityDamageEvent.DamageCause.FIRE && event.getCause() != EntityDamageEvent.DamageCause.FIRE_TICK) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"));
|
||||
event.setDamage(event.getDamage() * level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.willfp.talismans.talismans.talismans;
|
||||
import com.willfp.eco.core.integrations.mcmmo.McmmoManager;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.TalismanChecks;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -12,8 +11,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class FluxTalisman extends Talisman {
|
||||
public FluxTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("flux", strength);
|
||||
public FluxTalisman() {
|
||||
super("flux");
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class GravityTalisman extends Talisman {
|
||||
public GravityTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("gravity", strength);
|
||||
public GravityTalisman() {
|
||||
super("gravity");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDamage(@NotNull final Player victim,
|
||||
public void onDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final EntityDamageEvent event) {
|
||||
if (victim.getLocation().getY() > 64 || victim.getLocation().getY() < 0) {
|
||||
return;
|
||||
@@ -21,7 +22,7 @@ public class GravityTalisman extends Talisman {
|
||||
|
||||
double below64 = 64 - victim.getLocation().getY();
|
||||
double multiplier = below64 / 64;
|
||||
double multiplierMultiplier = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "height-multiplier");
|
||||
double multiplierMultiplier = level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "height-multiplier");
|
||||
multiplier *= multiplierMultiplier;
|
||||
multiplier += 1;
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.TalismanChecks;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@@ -10,8 +9,8 @@ import org.bukkit.event.entity.EntityRegainHealthEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class HealingTalisman extends Talisman {
|
||||
public HealingTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("healing", strength);
|
||||
public HealingTalisman() {
|
||||
super("healing");
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ImmunityTalisman extends Talisman {
|
||||
public ImmunityTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("immunity", strength);
|
||||
public ImmunityTalisman() {
|
||||
super("immunity");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDamage(@NotNull final Player victim,
|
||||
public void onDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final EntityDamageEvent event) {
|
||||
if (event.getCause() != EntityDamageEvent.DamageCause.POISON) {
|
||||
return;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
@@ -12,23 +12,25 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class NetherTalisman extends Talisman {
|
||||
public NetherTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("nether", strength);
|
||||
public NetherTalisman() {
|
||||
super("nether");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (attacker.getWorld().getEnvironment() != World.Environment.NETHER) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -36,11 +38,12 @@ public class NetherTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -48,6 +51,6 @@ public class NetherTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Trident;
|
||||
@@ -10,15 +10,16 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class PoseidonTalisman extends Talisman {
|
||||
public PoseidonTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("poseidon", strength);
|
||||
public PoseidonTalisman() {
|
||||
super("poseidon");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Illager;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
@@ -12,23 +12,25 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class RaidTalisman extends Talisman {
|
||||
public RaidTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("raid", strength);
|
||||
public RaidTalisman() {
|
||||
super("raid");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (!(victim instanceof Illager)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -36,11 +38,12 @@ public class RaidTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -48,6 +51,6 @@ public class RaidTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ResistanceTalisman extends Talisman {
|
||||
public ResistanceTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("resistance", strength);
|
||||
public ResistanceTalisman() {
|
||||
super("resistance");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDamage(@NotNull final Player victim,
|
||||
public void onDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final EntityDamageEvent event) {
|
||||
event.setDamage(event.getDamage() * (1 - (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 - (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SharpnessTalisman extends Talisman {
|
||||
public SharpnessTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("sharpness", strength);
|
||||
public SharpnessTalisman() {
|
||||
super("sharpness");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -12,23 +12,25 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SkeletonTalisman extends Talisman {
|
||||
public SkeletonTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("skeleton", strength);
|
||||
public SkeletonTalisman() {
|
||||
super("skeleton");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (!(victim instanceof Skeleton)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -36,11 +38,12 @@ public class SkeletonTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -48,6 +51,6 @@ public class SkeletonTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.equipevent.EquipType;
|
||||
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
@@ -15,8 +14,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
public class SpeedTalisman extends Talisman {
|
||||
private AttributeModifier modifier = null;
|
||||
|
||||
public SpeedTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("speed", strength);
|
||||
public SpeedTalisman() {
|
||||
super("speed");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Spider;
|
||||
@@ -10,18 +10,19 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SpiderResistanceTalisman extends Talisman {
|
||||
public SpiderResistanceTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("spider_resistance", strength);
|
||||
public SpiderResistanceTalisman() {
|
||||
super("spider_resistance");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDamageByEntity(@NotNull final Player victim,
|
||||
public void onDamageByEntity(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final Entity attacker,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (!(attacker instanceof Spider)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 - (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 - (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -12,23 +12,25 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SpiderTalisman extends Talisman {
|
||||
public SpiderTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("spider", strength);
|
||||
public SpiderTalisman() {
|
||||
super("spider");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (!(victim instanceof Spider)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -36,11 +38,12 @@ public class SpiderTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -48,6 +51,6 @@ public class SpiderTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -11,30 +11,33 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class StrengthTalisman extends Talisman {
|
||||
public StrengthTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("strength", strength);
|
||||
public StrengthTalisman() {
|
||||
super("strength");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Zombie;
|
||||
@@ -10,18 +10,19 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ZombieResistanceTalisman extends Talisman {
|
||||
public ZombieResistanceTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("zombie_resistance", strength);
|
||||
public ZombieResistanceTalisman() {
|
||||
super("zombie_resistance");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDamageByEntity(@NotNull final Player victim,
|
||||
public void onDamageByEntity(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final Entity attacker,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (!(attacker instanceof Zombie)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 - (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 - (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.willfp.talismans.talismans.talismans;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -12,23 +12,25 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ZombieTalisman extends Talisman {
|
||||
public ZombieTalisman(@NotNull final TalismanStrength strength) {
|
||||
super("zombie", strength);
|
||||
public ZombieTalisman() {
|
||||
super("zombie");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final Player attacker,
|
||||
public void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (!(victim instanceof Zombie)) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrowDamage(@NotNull final Player attacker,
|
||||
public void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -36,11 +38,12 @@ public class ZombieTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTridentDamage(@NotNull final Player attacker,
|
||||
public void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -48,6 +51,6 @@ public class ZombieTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.eco.core.config.ConfigUpdater;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.bukkit.NamespacedKey;
|
||||
@@ -33,7 +34,7 @@ public class TalismanChecks {
|
||||
/**
|
||||
* Cached talismans.
|
||||
*/
|
||||
public static final Map<UUID, Set<Talisman>> CACHED_TALISMANS = Collections.synchronizedMap(new HashMap<>());
|
||||
public static final Map<UUID, Set<TalismanLevel>> CACHED_TALISMANS = Collections.synchronizedMap(new HashMap<>());
|
||||
|
||||
/**
|
||||
* If ender chests should be checked.
|
||||
@@ -85,7 +86,7 @@ public class TalismanChecks {
|
||||
* @param item The item to query.
|
||||
* @return The talisman, or null if no talisman is present.
|
||||
*/
|
||||
public static Talisman getTalismanOnItem(@Nullable final ItemStack item) {
|
||||
public static TalismanLevel getTalismanOnItem(@Nullable final ItemStack item) {
|
||||
if (item == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -103,7 +104,19 @@ public class TalismanChecks {
|
||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||
|
||||
NamespacedKey talismanKey = container.getKeys().stream().filter(namespacedKey -> namespacedKey.getNamespace().equals("talismans")).findFirst().orElse(null);
|
||||
return Talismans.getByKey(talismanKey);
|
||||
if (talismanKey == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Integer level = container.get(talismanKey, PersistentDataType.INTEGER);
|
||||
assert level != null;
|
||||
|
||||
Talisman talisman = Talismans.getByKey(talismanKey);
|
||||
if (talisman == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return talisman.getLevel(level);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -112,7 +125,7 @@ public class TalismanChecks {
|
||||
* @param player The player to query.
|
||||
* @return A set of all found talismans.
|
||||
*/
|
||||
public static Set<Talisman> getTalismansOnPlayer(@NotNull final Player player) {
|
||||
public static Set<TalismanLevel> getTalismansOnPlayer(@NotNull final Player player) {
|
||||
return getTalismansOnPlayer(player, true);
|
||||
}
|
||||
|
||||
@@ -124,18 +137,18 @@ public class TalismanChecks {
|
||||
* @param extra Bonus items.
|
||||
* @return A set of all found talismans.
|
||||
*/
|
||||
public static Set<Talisman> getTalismansOnPlayer(@NotNull final Player player,
|
||||
final boolean useCache,
|
||||
@NotNull final ItemStack... extra) {
|
||||
public static Set<TalismanLevel> getTalismansOnPlayer(@NotNull final Player player,
|
||||
final boolean useCache,
|
||||
@NotNull final ItemStack... extra) {
|
||||
if (useCache) {
|
||||
Set<Talisman> cached = CACHED_TALISMANS.get(player.getUniqueId());
|
||||
Set<TalismanLevel> cached = CACHED_TALISMANS.get(player.getUniqueId());
|
||||
if (cached != null) {
|
||||
return cached;
|
||||
}
|
||||
}
|
||||
|
||||
List<ItemStack> contents = new ArrayList<>();
|
||||
Set<Talisman> found = new HashSet<>();
|
||||
Set<TalismanLevel> found = new HashSet<>();
|
||||
|
||||
List<ItemStack> rawContents = new ArrayList<>(Arrays.asList(player.getInventory().getContents()));
|
||||
|
||||
@@ -170,7 +183,7 @@ public class TalismanChecks {
|
||||
}
|
||||
|
||||
for (ItemStack itemStack : contents) {
|
||||
Talisman talisman = getTalismanOnItem(itemStack);
|
||||
TalismanLevel talisman = getTalismanOnItem(itemStack);
|
||||
if (talisman == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -199,7 +212,25 @@ public class TalismanChecks {
|
||||
*/
|
||||
public static boolean hasTalisman(@NotNull final Player player,
|
||||
@NotNull final Talisman talisman) {
|
||||
return getTalismansOnPlayer(player).contains(talisman);
|
||||
return getTalismanLevel(player, talisman) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if a player has a specific talisman active.
|
||||
*
|
||||
* @param player The player to query.
|
||||
* @param talisman The talisman to search for.
|
||||
* @return A set of all found talismans.
|
||||
*/
|
||||
public static int getTalismanLevel(@NotNull final Player player,
|
||||
@NotNull final Talisman talisman) {
|
||||
for (TalismanLevel talismanLevel : getTalismansOnPlayer(player)) {
|
||||
if (talismanLevel.getTalisman().equals(talisman)) {
|
||||
return talismanLevel.getLevel();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigUpdater
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
package com.willfp.talismans.talismans.util;
|
||||
|
||||
|
||||
import com.willfp.eco.core.integrations.placeholder.PlaceholderEntry;
|
||||
import com.willfp.eco.core.integrations.placeholder.PlaceholderManager;
|
||||
import com.willfp.eco.util.NumberUtils;
|
||||
import com.willfp.eco.util.StringUtils;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.bukkit.Material;
|
||||
@@ -29,36 +26,10 @@ public class TalismanUtils {
|
||||
* @param talisman The talisman to query.
|
||||
* @return If the talisman should then be executed.
|
||||
*/
|
||||
public static boolean passedChance(@NotNull final Talisman talisman) {
|
||||
public static boolean passedChance(@NotNull final TalismanLevel talisman) {
|
||||
return NumberUtils.randFloat(0, 1) < (talisman.getConfig().getDouble(Talismans.CONFIG_LOCATION + "chance") / 100);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the placeholders for a talisman.
|
||||
*
|
||||
* @param talisman The talisman to register placeholders for.
|
||||
*/
|
||||
public static void registerPlaceholders(@NotNull final Talisman talisman) {
|
||||
PlaceholderManager.registerPlaceholder(
|
||||
new PlaceholderEntry(
|
||||
talisman.getConfigName() + "_" + "enabled",
|
||||
player -> String.valueOf(talisman.isEnabled())
|
||||
)
|
||||
);
|
||||
|
||||
talisman.getConfig().getKeys(true).forEach(string -> {
|
||||
String key = string.replace("\\.", "_").replace("-", "_");
|
||||
Object object = talisman.getConfig().get(string);
|
||||
|
||||
PlaceholderManager.registerPlaceholder(
|
||||
new PlaceholderEntry(
|
||||
talisman.getConfigName() + "_" + key,
|
||||
player -> StringUtils.internalToString(object)
|
||||
)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get limit for talisman reading.
|
||||
*
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.willfp.talismans.talismans.util;
|
||||
|
||||
import com.willfp.talismans.talismans.TalismanLevel;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Entity;
|
||||
@@ -20,12 +21,14 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player shoots another entity with an arrow.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param attacker The shooter.
|
||||
* @param victim The victim.
|
||||
* @param arrow The arrow entity.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onArrowDamage(@NotNull final Player attacker,
|
||||
default void onArrowDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -35,12 +38,14 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player damages another entity with a trident throw.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param attacker The shooter.
|
||||
* @param victim The victim.
|
||||
* @param trident The trident entity.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onTridentDamage(@NotNull final Player attacker,
|
||||
default void onTridentDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
@@ -50,10 +55,12 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player jumps.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param player The player.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onJump(@NotNull final Player player,
|
||||
default void onJump(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player player,
|
||||
@NotNull final PlayerMoveEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
}
|
||||
@@ -61,11 +68,13 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player another entity with a melee attack.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param attacker The attacker.
|
||||
* @param victim The victim.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onMeleeAttack(@NotNull final Player attacker,
|
||||
default void onMeleeAttack(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
@@ -74,11 +83,13 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player shoots a bow.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param shooter The player that shot the bow.
|
||||
* @param arrow The arrow that was shot.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onBowShoot(@NotNull final Player shooter,
|
||||
default void onBowShoot(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player shooter,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityShootBowEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
@@ -87,10 +98,12 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player takes fall damage.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param faller The player that took the fall damage.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onFallDamage(@NotNull final Player faller,
|
||||
default void onFallDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player faller,
|
||||
@NotNull final EntityDamageEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
}
|
||||
@@ -98,10 +111,12 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when an arrow hits a block or entity.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param shooter The player that shot the arrow.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onArrowHit(@NotNull final Player shooter,
|
||||
default void onArrowHit(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player shooter,
|
||||
@NotNull final ProjectileHitEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
}
|
||||
@@ -109,10 +124,12 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a trident hits a block or entity.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param shooter The player that threw the trident.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onTridentHit(@NotNull final Player shooter,
|
||||
default void onTridentHit(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player shooter,
|
||||
@NotNull final ProjectileHitEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
}
|
||||
@@ -120,11 +137,13 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player breaks a block.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param player The player.
|
||||
* @param block The block that was broken.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onBlockBreak(@NotNull final Player player,
|
||||
default void onBlockBreak(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player player,
|
||||
@NotNull final Block block,
|
||||
@NotNull final BlockBreakEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
@@ -133,10 +152,12 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player takes damage.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param victim The player that took damage.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onDamage(@NotNull final Player victim,
|
||||
default void onDamage(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final EntityDamageEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
}
|
||||
@@ -144,11 +165,13 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player takes damage from another entity.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param victim The player that took damage.
|
||||
* @param attacker The entity that damaged the player.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onDamageByEntity(@NotNull final Player victim,
|
||||
default void onDamageByEntity(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player victim,
|
||||
@NotNull final Entity attacker,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
@@ -157,11 +180,13 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player damages a block.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param player The player that damaged the block.
|
||||
* @param block The damaged block.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onDamageBlock(@NotNull final Player player,
|
||||
default void onDamageBlock(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player player,
|
||||
@NotNull final Block block,
|
||||
@NotNull final BlockDamageEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
@@ -170,11 +195,13 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player throws a trident.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param shooter The player that threw the trident.
|
||||
* @param trident The trident that was thrown.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onTridentLaunch(@NotNull final Player shooter,
|
||||
default void onTridentLaunch(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player shooter,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final ProjectileLaunchEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
@@ -183,11 +210,13 @@ public interface Watcher {
|
||||
/**
|
||||
* Called when a player blocks an attack with a shield.
|
||||
*
|
||||
* @param level The level.
|
||||
* @param blocker The player that blocked the attack.
|
||||
* @param attacker The attacker.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onDeflect(@NotNull final Player blocker,
|
||||
default void onDeflect(@NotNull final TalismanLevel level,
|
||||
@NotNull final Player blocker,
|
||||
@NotNull final LivingEntity attacker,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
// Empty default as talismans only override required watchers.
|
||||
|
||||
@@ -93,20 +93,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(attacker).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(attacker).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(attacker.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(attacker.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onArrowDamage(attacker, victim, arrow, event);
|
||||
talismanLevel.getTalisman().onArrowDamage(talismanLevel, attacker, victim, arrow, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -154,20 +154,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(attacker).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(attacker).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(attacker.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(attacker.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onTridentDamage(attacker, victim, trident, event);
|
||||
talismanLevel.getTalisman().onTridentDamage(talismanLevel, attacker, victim, trident, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -193,20 +193,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
&& PREVIOUS_PLAYERS_ON_GROUND.contains(player.getUniqueId())
|
||||
&& !player.isOnGround()
|
||||
&& Float.compare((float) player.getVelocity().getY(), jumpVelocity) == 0) {
|
||||
TalismanChecks.getTalismansOnPlayer(player).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(player).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(player.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(player.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onJump(player, event);
|
||||
talismanLevel.getTalisman().onJump(talismanLevel, player, event);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -251,20 +251,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(attacker).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(attacker).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(attacker.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(attacker.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onMeleeAttack(attacker, victim, event);
|
||||
talismanLevel.getTalisman().onMeleeAttack(talismanLevel, attacker, victim, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -290,20 +290,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
Player shooter = (Player) event.getEntity();
|
||||
Arrow arrow = (Arrow) event.getProjectile();
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(shooter).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(shooter).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(shooter.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(shooter.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onBowShoot(shooter, arrow, event);
|
||||
talismanLevel.getTalisman().onBowShoot(talismanLevel, shooter, arrow, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -328,20 +328,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
|
||||
Player victim = (Player) event.getEntity();
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(victim).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(victim).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(victim.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(victim.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onFallDamage(victim, event);
|
||||
talismanLevel.getTalisman().onFallDamage(talismanLevel, victim, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -370,16 +370,16 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
|
||||
Player shooter = (Player) event.getEntity().getShooter();
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(shooter).forEach(talisman -> {
|
||||
if (!talisman.isEnabled()) {
|
||||
TalismanChecks.getTalismansOnPlayer(shooter).forEach(talismanLevel -> {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(shooter.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(shooter.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onArrowHit(shooter, event);
|
||||
talismanLevel.getTalisman().onArrowHit(talismanLevel, shooter, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -409,16 +409,16 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
Trident trident = (Trident) event.getEntity();
|
||||
Player shooter = (Player) event.getEntity().getShooter();
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(shooter).forEach(talisman -> {
|
||||
if (!talisman.isEnabled()) {
|
||||
TalismanChecks.getTalismansOnPlayer(shooter).forEach(talismanLevel -> {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(shooter.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(shooter.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onTridentHit(shooter, event);
|
||||
talismanLevel.getTalisman().onTridentHit(talismanLevel, shooter, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -444,20 +444,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(player).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(player).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(player.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(player.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onBlockBreak(player, block, event);
|
||||
talismanLevel.getTalisman().onBlockBreak(talismanLevel, player, block, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -478,20 +478,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
|
||||
Player victim = (Player) event.getEntity();
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(victim).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(victim).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(victim.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(victim.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onDamage(victim, event);
|
||||
talismanLevel.getTalisman().onDamage(talismanLevel, victim, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -512,20 +512,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
|
||||
Player victim = (Player) event.getEntity();
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(victim).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(victim).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(victim.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(victim.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onDamageByEntity(victim, event.getDamager(), event);
|
||||
talismanLevel.getTalisman().onDamageByEntity(talismanLevel, victim, event.getDamager(), event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -547,20 +547,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(player).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(player).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(player.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(player.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onDamageBlock(player, block, event);
|
||||
talismanLevel.getTalisman().onDamageBlock(talismanLevel, player, block, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -586,20 +586,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
Trident trident = (Trident) event.getEntity();
|
||||
Player shooter = (Player) trident.getShooter();
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(shooter).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(shooter).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(shooter.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(shooter.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onTridentLaunch(shooter, trident, event);
|
||||
talismanLevel.getTalisman().onTridentLaunch(talismanLevel, shooter, trident, event);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -634,20 +634,20 @@ public class WatcherTriggers extends PluginDependent implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
TalismanChecks.getTalismansOnPlayer(blocker).forEach(talisman -> {
|
||||
TalismanChecks.getTalismansOnPlayer(blocker).forEach(talismanLevel -> {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!talisman.isEnabled()) {
|
||||
if (!talismanLevel.getTalisman().isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (talisman.getDisabledWorlds().contains(blocker.getWorld())) {
|
||||
if (talismanLevel.getTalisman().getDisabledWorlds().contains(blocker.getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
talisman.onDeflect(blocker, attacker, event);
|
||||
talismanLevel.getTalisman().onDeflect(talismanLevel, blocker, attacker, event);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,14 +7,6 @@ description:
|
||||
# How many characters to have on each line of description.
|
||||
wrap: 20
|
||||
|
||||
strengths:
|
||||
talisman:
|
||||
color: "&e"
|
||||
ring:
|
||||
color: "&c"
|
||||
relic:
|
||||
color: "&d"
|
||||
|
||||
crafting:
|
||||
discover: true # If players should automatically have recipes added to their crafting table.
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: []
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Alchemy Talisman I"
|
||||
description: 5% chance double the strength of applied potion effects.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- nether_wart
|
||||
- nether_wart
|
||||
- nether_wart
|
||||
|
||||
- nether_wart
|
||||
- ender_eye
|
||||
- nether_wart
|
||||
|
||||
- nether_wart
|
||||
- nether_wart
|
||||
- nether_wart
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTExYTNjZWM3YWFmOTA0MjEyY2NmOTNiYjY3YTNjYWYzZDY0OTc4M2JhOTBiOGI2MGJiNjNjNzY4N2ViMzlmIn19fQ==
|
||||
|
||||
config:
|
||||
chance: 5
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Archery Talisman I"
|
||||
description: Deal 10% more damage with bows.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- bow
|
||||
- crossbow
|
||||
- bow
|
||||
|
||||
- crossbow
|
||||
- ender_eye
|
||||
- crossbow
|
||||
|
||||
- bow
|
||||
- crossbow
|
||||
- bow
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDBmOGRmYTVlZmM3NTYzMGNlMGRmNDBhNDliOGY1OWJjMjIyMTRkZTk3ZTNmYjQ0YjNjNTZlOGE5YzhhNTZiNiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Attack Speed Talisman I"
|
||||
description: Attack 5% faster.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- sugar
|
||||
- diamond_sword
|
||||
- sugar
|
||||
|
||||
- diamond_sword
|
||||
- ender_eye
|
||||
- diamond_sword
|
||||
|
||||
- sugar
|
||||
- diamond_sword
|
||||
- sugar
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTVmZGRlYzM2NjU1ZDNiMzcxYzc5ZDYxMTMzNTQ4Nzc1NzcwODljMWZjYjFiM2Q4ZTAwYWYzMjYxMmYyNmYyOCJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 5
|
||||
29
eco-core/core-plugin/src/main/resources/talismans/boss.yml
Normal file
29
eco-core/core-plugin/src/main/resources/talismans/boss.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Boss Talisman I"
|
||||
description: Deal 10% more damage to bosses.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- bell
|
||||
- wither_skeleton_skull
|
||||
- bell
|
||||
|
||||
- wither_skeleton_skull
|
||||
- ender_eye
|
||||
- wither_skeleton_skull
|
||||
|
||||
- bell
|
||||
- wither_skeleton_skull
|
||||
- bell
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTFjZDZkMmQwM2YxMzVlN2M2YjVkNmNkYWUxYjNhNjg3NDNkYjRlYjc0OWZhZjczNDFlOWZiMzQ3YWEyODNiIn19fQ==
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Creeper Talisman I"
|
||||
description: Deal 10% more damage to creepers.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- gunpowder
|
||||
- gunpowder
|
||||
- gunpowder
|
||||
|
||||
- gunpowder
|
||||
- ender_eye
|
||||
- gunpowder
|
||||
|
||||
- gunpowder
|
||||
- gunpowder
|
||||
- gunpowder
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjQyNTQ4MzhjMzNlYTIyN2ZmY2EyMjNkZGRhYWJmZTBiMDIxNWY3MGRhNjQ5ZTk0NDQ3N2Y0NDM3MGNhNjk1MiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
29
eco-core/core-plugin/src/main/resources/talismans/end.yml
Normal file
29
eco-core/core-plugin/src/main/resources/talismans/end.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "End Talisman I"
|
||||
description: Deal 10% more damage in the end.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- shulker_shell
|
||||
- shulker_shell
|
||||
- shulker_shell
|
||||
|
||||
- shulker_shell
|
||||
- ender_eye
|
||||
- shulker_shell
|
||||
|
||||
- shulker_shell
|
||||
- shulker_shell
|
||||
- shulker_shell
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzZjYWM1OWIyYWFlNDg5YWEwNjg3YjVkODAyYjI1NTVlYjE0YTQwYmQ2MmIyMWViMTE2ZmE1NjljZGI3NTYifX19
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Experience Talisman I"
|
||||
description: Gain 10% more experience.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- diamond_block
|
||||
- diamond_block
|
||||
- diamond_block
|
||||
|
||||
- diamond_block
|
||||
- ender_eye
|
||||
- diamond_block
|
||||
|
||||
- diamond_block
|
||||
- diamond_block
|
||||
- diamond_block
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzA1NGMyOWM3ODA5MDQ3MWMxZWEwNThiZDY0MTg5NzM5MWM5ZTQ2OTRhYTlkMTQwYWZiYmE4ZDBjYzQzNjM3In19fQ==
|
||||
|
||||
config:
|
||||
percentage-bonus: 10
|
||||
@@ -0,0 +1,30 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Extraction Talisman I"
|
||||
description: 2% chance to get xp randomly while mining.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- emerald_block
|
||||
- emerald_block
|
||||
- emerald_block
|
||||
|
||||
- emerald_block
|
||||
- ender_eye
|
||||
- emerald_block
|
||||
|
||||
- emerald_block
|
||||
- emerald_block
|
||||
- emerald_block
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjU2NjM0YjU1NmNhZjUzODJkZTY1MDM4YTEwZTRkNzljN2MxODY5NTA0ODU5OWRmNzRmOWM2N2MxZTFlODczNiJ9fX0=
|
||||
|
||||
config:
|
||||
chance: 2
|
||||
xp-amount: 2
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Feather Talisman I"
|
||||
description: Take 10% less fall damage.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- feather
|
||||
- feather
|
||||
- feather
|
||||
|
||||
- feather
|
||||
- ender_eye
|
||||
- feather
|
||||
|
||||
- feather
|
||||
- feather
|
||||
- feather
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODY4NmQ5NmFkOGU1OGE4NmE1YTI4MzI2Yzk5ZmRlOWQ0OTgxZTQ2YzA5ZWFlNTFlN2E5ODYxOTBjZDM2YjBmIn19fQ==
|
||||
|
||||
config:
|
||||
multiplier: 0.9
|
||||
29
eco-core/core-plugin/src/main/resources/talismans/flame.yml
Normal file
29
eco-core/core-plugin/src/main/resources/talismans/flame.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Flame Talisman I"
|
||||
description: Take 10% less fire damage.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- blaze_rod
|
||||
- blaze_rod
|
||||
- blaze_rod
|
||||
|
||||
- blaze_rod
|
||||
- ender_eye
|
||||
- blaze_rod
|
||||
|
||||
- blaze_rod
|
||||
- blaze_rod
|
||||
- blaze_rod
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzBhNDRkNTFlY2M3OWY2OTRjZmQ2MDIyOGM4ODQyODg0OGNhNjE4ZTM2YTY1OWE0MTZlOTI0NmQ4NDFhZWM4In19fQ==
|
||||
|
||||
config:
|
||||
multiplier: 0.9
|
||||
30
eco-core/core-plugin/src/main/resources/talismans/flux.yml
Normal file
30
eco-core/core-plugin/src/main/resources/talismans/flux.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Flux Talisman I"
|
||||
description: Nearby players deal 5% more melee damage.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- redstone_block
|
||||
- redstone_block
|
||||
- redstone_block
|
||||
|
||||
- redstone_block
|
||||
- ender_eye
|
||||
- redstone_block
|
||||
|
||||
- redstone_block
|
||||
- redstone_block
|
||||
- redstone_block
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2FiNGM0ZDZlZTY5YmMyNGJiYTJiOGZhZjY3YjlmNzA0YTA2YjAxYWE5M2YzZWZhNmFlZjdhOTY5NmM0ZmVlZiJ9fX0=
|
||||
|
||||
config:
|
||||
distance: 5 # How close other players have to be
|
||||
percent-more-damage: 5
|
||||
@@ -0,0 +1,33 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Gravity Talisman I"
|
||||
description: Take less damage the lower down you are, up to 20% less.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- stone
|
||||
- obsidian
|
||||
- stone
|
||||
|
||||
- obsidian
|
||||
- ender_eye
|
||||
- obsidian
|
||||
|
||||
- stone
|
||||
- obsidian
|
||||
- stone
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWIzYTk0ZGZmYTU5MDk5MGRiMDAzZmUyNjg0NDJmNzkyYmVjNjE0ZWNlNWZiMThkOTkwNmU3NmU1NDE4N2ZiMSJ9fX0=
|
||||
|
||||
config:
|
||||
# Formula is ((distance below y = 64)/64) * multiplier + 1 times less
|
||||
# So if multiplier is 0.2, and you're at y = 1:
|
||||
# distance below y = 63
|
||||
# 63/64 * multiplier is roughly 0.2, +1 = 1.2x less
|
||||
height-multiplier: 0.2
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Healing Talisman I"
|
||||
description: Heal 10% faster.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- glistering_melon_slice
|
||||
- glistering_melon_slice
|
||||
- glistering_melon_slice
|
||||
|
||||
- glistering_melon_slice
|
||||
- ender_eye
|
||||
- glistering_melon_slice
|
||||
|
||||
- glistering_melon_slice
|
||||
- glistering_melon_slice
|
||||
- glistering_melon_slice
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjUyOGNmNmZhYjhhZTdlZmZiNTFjZDNhYzQyZDJlZTI3NTA0ZTQ0MDAyZmE0ZjYyOWE0NTA5MGZhMTY3YTQ3OCJ9fX0=
|
||||
|
||||
config:
|
||||
multiplier: 0.1
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Immunity Talisman I"
|
||||
description: Become immune to poison damage.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- poisonous_potato
|
||||
- poisonous_potato
|
||||
- poisonous_potato
|
||||
|
||||
- poisonous_potato
|
||||
- ender_eye
|
||||
- poisonous_potato
|
||||
|
||||
- poisonous_potato
|
||||
- poisonous_potato
|
||||
- poisonous_potato
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGQ5ZThkZTFmZTE3NjA4Mzg2OWUzMDI1MjRjNjUwMTBkN2NmMmUzMWIwNjNlYmI4YmM3NmI3OWQxNDEzMCJ9fX0=
|
||||
|
||||
config:
|
||||
# No config is available for this talisman
|
||||
29
eco-core/core-plugin/src/main/resources/talismans/nether.yml
Normal file
29
eco-core/core-plugin/src/main/resources/talismans/nether.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Nether Talisman I"
|
||||
description: Deal 10% more damage in the nether.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- netherrack
|
||||
- netherrack
|
||||
- netherrack
|
||||
|
||||
- netherrack
|
||||
- ender_eye
|
||||
- netherrack
|
||||
|
||||
- netherrack
|
||||
- netherrack
|
||||
- netherrack
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDUwMDI5MmY0YWZlNTJkMTBmMjk5ZGZiMjYwMzYzMjI4MzA0NTAzMzFlMDAzMDg0YmIyMjAzMzM1MzA2NjRlMSJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Poseidon Talisman I"
|
||||
description: Deal 10% more damage with tridents.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- nautilus_shell
|
||||
- trident
|
||||
- nautilus_shell
|
||||
|
||||
- trident
|
||||
- ender_eye
|
||||
- trident
|
||||
|
||||
- nautilus_shell
|
||||
- trident
|
||||
- nautilus_shell
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjQ4NGFhNWJlZTg5OGE2ZTg5NjBhM2Y5YTk5NzU5YjFmMzlmOWRjYjMyMTA1MGY3MTRjZDcyYjNkOGE4MDQxIn19fQ==
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
29
eco-core/core-plugin/src/main/resources/talismans/raid.yml
Normal file
29
eco-core/core-plugin/src/main/resources/talismans/raid.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Raid Talisman I"
|
||||
description: Deal 10% more damage to illagers.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- bell
|
||||
- bell
|
||||
- bell
|
||||
|
||||
- bell
|
||||
- ender_eye
|
||||
- bell
|
||||
|
||||
- bell
|
||||
- bell
|
||||
- bell
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmRlYWVjMzQ0YWIwOTViNDhjZWFkNzUyN2Y3ZGVlNjFiMDYzZmY3OTFmNzZhOGZhNzY2NDJjODY3NmUyMTczIn19fQ==
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Alchemy Relic"
|
||||
description: 25% chance double the strength of applied potion effects.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:alchemy_ring
|
||||
- talismans:alchemy_ring
|
||||
- talismans:alchemy_ring
|
||||
|
||||
- talismans:alchemy_ring
|
||||
- nether_star
|
||||
- talismans:alchemy_ring
|
||||
|
||||
- talismans:alchemy_ring
|
||||
- talismans:alchemy_ring
|
||||
- talismans:alchemy_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDMwOTNhNWI3NzY0MmQ0MDkyMTEyZjQ2ZWE2ODE0MGZiNWFlMDRiYmQyMzFjZGExMDY2YTA0YzE4Yjg5Yzk0ZSJ9fX0=
|
||||
|
||||
config:
|
||||
chance: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Archery Relic"
|
||||
description: Deal 40% more damage with bows.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:archery_ring
|
||||
- talismans:archery_ring
|
||||
- talismans:archery_ring
|
||||
|
||||
- talismans:archery_ring
|
||||
- nether_star
|
||||
- talismans:archery_ring
|
||||
|
||||
- talismans:archery_ring
|
||||
- talismans:archery_ring
|
||||
- talismans:archery_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmQ3NDk5NWQ2Y2RhMmI4YTI0NzcyYWY5NjllZjA3N2FlM2E4NWUyMzU3YzZmNjExOWI4YTI1MDYwNDFhNDQ4YiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Attack Speed Relic"
|
||||
description: Attack 25% faster.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:attack_speed_ring
|
||||
- talismans:attack_speed_ring
|
||||
- talismans:attack_speed_ring
|
||||
|
||||
- talismans:attack_speed_ring
|
||||
- nether_star
|
||||
- talismans:attack_speed_ring
|
||||
|
||||
- talismans:attack_speed_ring
|
||||
- talismans:attack_speed_ring
|
||||
- talismans:attack_speed_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjI2NjQ5MmZmMDk2MjRmZTdkYzA4MGI0YWE1ZjRiNjA4N2E3NTYzZmEwMjA3ZGY4NzdjZTUwZDI1OWE3NzM3NCJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Boss Relic"
|
||||
description: Deal 40% more damage to bosses.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:boss_ring
|
||||
- talismans:boss_ring
|
||||
- talismans:boss_ring
|
||||
|
||||
- talismans:boss_ring
|
||||
- nether_star
|
||||
- talismans:boss_ring
|
||||
|
||||
- talismans:boss_ring
|
||||
- talismans:boss_ring
|
||||
- talismans:boss_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmE0NjUxZDY2Nzc5MjA4ZGExMDdkNmUyZmZkOTZjNjJlMDY3YzJlNzc1MzA3OWFhYTgzYWNlOGZiNDk4OTUifX19
|
||||
|
||||
config:
|
||||
percent-more-damage: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "End Relic"
|
||||
description: Deal 40% more damage in the end.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:end_ring
|
||||
- talismans:end_ring
|
||||
- talismans:end_ring
|
||||
|
||||
- talismans:end_ring
|
||||
- nether_star
|
||||
- talismans:end_ring
|
||||
|
||||
- talismans:end_ring
|
||||
- talismans:end_ring
|
||||
- talismans:end_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzI3OWRjOTEzNzNiNDI3NzY5MDQzZmFlODg5Y2UyYWRkM2FlMzIxNjY0OTY1MzRhNGQ2YThhOGFhYTJkIn19fQ==
|
||||
|
||||
config:
|
||||
percent-more-damage: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Experience Relic"
|
||||
description: Gain 40% more experience.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:experience_ring
|
||||
- talismans:experience_ring
|
||||
- talismans:experience_ring
|
||||
|
||||
- talismans:experience_ring
|
||||
- nether_star
|
||||
- talismans:experience_ring
|
||||
|
||||
- talismans:experience_ring
|
||||
- talismans:experience_ring
|
||||
- talismans:experience_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDQzNGY0MDA0OGI0YTM1ZGExYTA2YmRmMDVlZjJlZDJlMWRhOGRjZTNmOWRlYTg5NGM3ZDFlYjMzODIzMmJkMiJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 40
|
||||
@@ -1,30 +0,0 @@
|
||||
name: "Extraction Relic"
|
||||
description: 10% chance to get xp randomly while mining.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:extraction_ring
|
||||
- talismans:extraction_ring
|
||||
- talismans:extraction_ring
|
||||
|
||||
- talismans:extraction_ring
|
||||
- nether_star
|
||||
- talismans:extraction_ring
|
||||
|
||||
- talismans:extraction_ring
|
||||
- talismans:extraction_ring
|
||||
- talismans:extraction_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmQxZWUyYjYwYTlkODFlYTgyZWIyNTBjNzEyYjNhNmJhYmVkMDNkMjFkNmY4MTg3MDBjNzBlNDM4OGU2YTUxOCJ9fX0=
|
||||
|
||||
config:
|
||||
chance: 10
|
||||
xp-amount: 2
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Feather Relic"
|
||||
description: Take 40% less fall damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:feather_ring
|
||||
- talismans:feather_ring
|
||||
- talismans:feather_ring
|
||||
|
||||
- talismans:feather_ring
|
||||
- nether_star
|
||||
- talismans:feather_ring
|
||||
|
||||
- talismans:feather_ring
|
||||
- talismans:feather_ring
|
||||
- talismans:feather_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzVmZjI1MzIwYTg0MjUwOWI3ZWU1YTIzNjczZjY4NTI5MWM0NjcyYjgzNGQ5YjU3N2U4NjJhOTIwOTgzYzEwYiJ9fX0=
|
||||
|
||||
config:
|
||||
multiplier: 0.6
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Flame Relic"
|
||||
description: Take 40% less fire damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:flame_ring
|
||||
- talismans:flame_ring
|
||||
- talismans:flame_ring
|
||||
|
||||
- talismans:flame_ring
|
||||
- nether_star
|
||||
- talismans:flame_ring
|
||||
|
||||
- talismans:flame_ring
|
||||
- talismans:flame_ring
|
||||
- talismans:flame_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODI4N2IzOTdkYWY5NTE2YTBiZDc2ZjVmMWI3YmY5Nzk1MTVkZjNkNWQ4MzNlMDYzNWZhNjhiMzdlZTA4MjIxMiJ9fX0=
|
||||
|
||||
config:
|
||||
multiplier: 0.6
|
||||
@@ -1,30 +0,0 @@
|
||||
name: "Flux Relic"
|
||||
description: Nearby players deal 25% more melee damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:flux_ring
|
||||
- talismans:flux_ring
|
||||
- talismans:flux_ring
|
||||
|
||||
- talismans:flux_ring
|
||||
- nether_star
|
||||
- talismans:flux_ring
|
||||
|
||||
- talismans:flux_ring
|
||||
- talismans:flux_ring
|
||||
- talismans:flux_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODNlZDRjZTIzOTMzZTY2ZTA0ZGYxNjA3MDY0NGY3NTk5ZWViNTUzMDdmN2VhZmU4ZDkyZjQwZmIzNTIwODYzYyJ9fX0=
|
||||
|
||||
config:
|
||||
distance: 5 # How close other players have to be
|
||||
percent-more-damage: 25
|
||||
@@ -1,33 +0,0 @@
|
||||
name: "Gravity Relic"
|
||||
description: Take less damage the lower down you are, up to 40% less.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:gravity_ring
|
||||
- talismans:gravity_ring
|
||||
- talismans:gravity_ring
|
||||
|
||||
- talismans:gravity_ring
|
||||
- nether_star
|
||||
- talismans:gravity_ring
|
||||
|
||||
- talismans:gravity_ring
|
||||
- talismans:gravity_ring
|
||||
- talismans:gravity_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTFhZjRiNzg0ZjExNDY1OTk2ZmNkNDNkMDg4MzgxY2QzODFmZDRjZThhZTRmMjlmMzY4YTI3MWI5OGYwMzgyMiJ9fX0=
|
||||
|
||||
config:
|
||||
# Formula is ((distance below y = 64)/64) * multiplier + 1 times less
|
||||
# So if multiplier is 2, and you're at y = 1:
|
||||
# distance below y = 63
|
||||
# 63/64 * multiplier is roughly 2, +1 = 3x less
|
||||
height-multiplier: 0.4
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Healing Relic"
|
||||
description: Heal 40% faster.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:healing_ring
|
||||
- talismans:healing_ring
|
||||
- talismans:healing_ring
|
||||
|
||||
- talismans:healing_ring
|
||||
- nether_star
|
||||
- talismans:healing_ring
|
||||
|
||||
- talismans:healing_ring
|
||||
- talismans:healing_ring
|
||||
- talismans:healing_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODc5M2VlZjQ4NDkwNzhkZjRjY2Q0OTgwNTRjNzRlMjE3MWM3NzFmMjczMDk0NDE2NGE4ZWU3YjJkNTYzODMyIn19fQ==
|
||||
|
||||
config:
|
||||
multiplier: 0.4
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Knockback Ring"
|
||||
description: Deal 40% more knockback.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:knockback_ring
|
||||
- talismans:knockback_ring
|
||||
- talismans:knockback_ring
|
||||
|
||||
- talismans:knockback_ring
|
||||
- nether_star
|
||||
- talismans:knockback_ring
|
||||
|
||||
- talismans:knockback_ring
|
||||
- talismans:knockback_ring
|
||||
- talismans:knockback_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGZjNDFiN2ViNjM1YjE5Zjg0ZGFjYTZkNzQxMDFhYTgxNjgzY2NhYzQyY2E2MDkwZTM2ZDQyNTA5OTI4MzMzNCJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Nether Relic"
|
||||
description: Deal 40% more damage in the nether.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:nether_ring
|
||||
- talismans:nether_ring
|
||||
- talismans:nether_ring
|
||||
|
||||
- talismans:nether_ring
|
||||
- nether_star
|
||||
- talismans:nether_ring
|
||||
|
||||
- talismans:nether_ring
|
||||
- talismans:nether_ring
|
||||
- talismans:nether_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTJmOWU5N2Y0YmU1MzM2MzRiZDFiM2UzNjc5ZWRlYmZmZmI5ODQwMTNhMWQ1OTAyZmEzYzM1ZDM0MzViYzEwIn19fQ==
|
||||
|
||||
config:
|
||||
percent-more-damage: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Poseidon Relic"
|
||||
description: Deal 40% more damage with tridents.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:poseidon_ring
|
||||
- talismans:poseidon_ring
|
||||
- talismans:poseidon_ring
|
||||
|
||||
- talismans:poseidon_ring
|
||||
- nether_star
|
||||
- talismans:poseidon_ring
|
||||
|
||||
- talismans:poseidon_ring
|
||||
- talismans:poseidon_ring
|
||||
- talismans:poseidon_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTY3OTliZmFhM2EyYzYzYWQ4NWRkMzc4ZTY2ZDU3ZDlhOTdhM2Y4NmQwZDlmNjgzYzQ5ODYzMmY0ZjVjIn19fQ==
|
||||
|
||||
config:
|
||||
percent-more-damage: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Raid Relic"
|
||||
description: Deal 40% more damage to illagers.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:raid_ring
|
||||
- talismans:raid_ring
|
||||
- talismans:raid_ring
|
||||
|
||||
- talismans:raid_ring
|
||||
- nether_star
|
||||
- talismans:raid_ring
|
||||
|
||||
- talismans:raid_ring
|
||||
- talismans:raid_ring
|
||||
- talismans:raid_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDUzYTM4N2U1ZDRjMDI1Zjg2ZDU5YmEwODljODcwYTIzYzRjNzk4ODEwODBkZTMzYjk0ZTJlN2I1YWNiYzhlMSJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Resistance Relic"
|
||||
description: Take 40% less damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:resistance_ring
|
||||
- talismans:resistance_ring
|
||||
- talismans:resistance_ring
|
||||
|
||||
- talismans:resistance_ring
|
||||
- nether_star
|
||||
- talismans:resistance_ring
|
||||
|
||||
- talismans:resistance_ring
|
||||
- talismans:resistance_ring
|
||||
- talismans:resistance_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODk0MDE0YWM1OGE5NmYxZDIzNjEzZGE3YTFlY2RiNmEyN2E0YTRkYjBiMTgwNTJjYTI2MjM1NmQyNGIxZiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-less-damage: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Sharpness Relic"
|
||||
description: Deal 40% more melee damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:sharpness_ring
|
||||
- talismans:sharpness_ring
|
||||
- talismans:sharpness_ring
|
||||
|
||||
- talismans:sharpness_ring
|
||||
- nether_star
|
||||
- talismans:sharpness_ring
|
||||
|
||||
- talismans:sharpness_ring
|
||||
- talismans:sharpness_ring
|
||||
- talismans:sharpness_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTdlNTVkNzI2MGFhM2IwNGU2ZTAwNjhjMTYyM2E3NWMzNTc3ODI3NzRlZGQ0YWZmMWQwZDYyNWY3OWQ5ZDRkZSJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 40
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Speed Relic"
|
||||
description: Move 25% faster.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:speed_ring
|
||||
- talismans:speed_ring
|
||||
- talismans:speed_ring
|
||||
|
||||
- talismans:speed_ring
|
||||
- nether_star
|
||||
- talismans:speed_ring
|
||||
|
||||
- talismans:speed_ring
|
||||
- talismans:speed_ring
|
||||
- talismans:speed_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDRiYTRhYjRmOTNiODJlNjE0MTI4OTgwMWMzOWUwYmMyNzBjYmU1MTc5ZGY3NmU4NWI1NDMwNmMyNzhjMTdkYSJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Strength Relic"
|
||||
description: Deal 40% more damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:strength_ring
|
||||
- talismans:strength_ring
|
||||
- talismans:strength_ring
|
||||
|
||||
- talismans:strength_ring
|
||||
- nether_star
|
||||
- talismans:strength_ring
|
||||
|
||||
- talismans:strength_ring
|
||||
- talismans:strength_ring
|
||||
- talismans:strength_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmRkNTZhZmU5YWZiODk5MDJmZjRlODdkNzZlNmExMzRhNmIyOWI5YWZkYTlmYzNjNzg5MDVmY2M0MGNmZmI0NiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 40
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Resistance Talisman I"
|
||||
description: Take 10% less damage.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- iron_block
|
||||
- obsidian
|
||||
- iron_block
|
||||
|
||||
- obsidian
|
||||
- ender_eye
|
||||
- obsidian
|
||||
|
||||
- iron_block
|
||||
- obsidian
|
||||
- iron_block
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTcyNjI2NGYzN2NjMGVlNDIyZjhlZGIzMTQxZTYxZTJlZDkzNmE4OTdkOTZkODA4NWRjMzVkYzUzOTllZGNmOSJ9fX0=
|
||||
|
||||
config:
|
||||
percent-less-damage: 10
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Alchemy Ring"
|
||||
description: 10% chance double the strength of applied potion effects.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:alchemy_talisman
|
||||
- talismans:alchemy_talisman
|
||||
- talismans:alchemy_talisman
|
||||
|
||||
- talismans:alchemy_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:alchemy_talisman
|
||||
|
||||
- talismans:alchemy_talisman
|
||||
- talismans:alchemy_talisman
|
||||
- talismans:alchemy_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjZkNzljMDI2ODc0Nzk0MWRmOWEyYTQ1MTAzY2JkNzMxZmRlZGNiYTU4OGY2NDNiNjcwZmQ3N2FhMmJkOTE4YyJ9fX0=
|
||||
|
||||
config:
|
||||
chance: 10
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Archery Ring"
|
||||
description: Deal 25% more damage with bows.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:archery_talisman
|
||||
- talismans:archery_talisman
|
||||
- talismans:archery_talisman
|
||||
|
||||
- talismans:archery_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:archery_talisman
|
||||
|
||||
- talismans:archery_talisman
|
||||
- talismans:archery_talisman
|
||||
- talismans:archery_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzgzODVhNWE0Njk4MjFiOGIzM2U0N2E1YjVjNDJhZWE1OTY2MzQ2NTQ2OTM4OGExYTRkNGU1MjNlNWE4ZGRkMiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Attack Speed Ring"
|
||||
description: Attack 10% faster.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:attack_speed_talisman
|
||||
- talismans:attack_speed_talisman
|
||||
- talismans:attack_speed_talisman
|
||||
|
||||
- talismans:attack_speed_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:attack_speed_talisman
|
||||
|
||||
- talismans:attack_speed_talisman
|
||||
- talismans:attack_speed_talisman
|
||||
- talismans:attack_speed_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzE1ZjAyZWFjNjAyNmI4ZTg3MTJjYTRkNzgxYjc5MWJiYmI3YjQ3NTVhYmRhMjdmNDYyMTg5YjkwZmVkNjZhMSJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 10
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Boss Ring"
|
||||
description: Deal 25% more damage to bosses.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:boss_talisman
|
||||
- talismans:boss_talisman
|
||||
- talismans:boss_talisman
|
||||
|
||||
- talismans:boss_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:boss_talisman
|
||||
|
||||
- talismans:boss_talisman
|
||||
- talismans:boss_talisman
|
||||
- talismans:boss_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzgzYWI0MmYyMmFkZDkzNjZkODkzNjRiYTNhZTIwMTNmYTQ1YTQ1NWNkODdjYTZhYWQ4MmY0MDFhNzcifX19
|
||||
|
||||
config:
|
||||
percent-more-damage: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "End Ring"
|
||||
description: Deal 25% more damage in the end.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:end_talisman
|
||||
- talismans:end_talisman
|
||||
- talismans:end_talisman
|
||||
|
||||
- talismans:end_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:end_talisman
|
||||
|
||||
- talismans:end_talisman
|
||||
- talismans:end_talisman
|
||||
- talismans:end_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTZjMGIzNmQ1M2ZmZjY5YTQ5YzdkNmYzOTMyZjJiMGZlOTQ4ZTAzMjIyNmQ1ZTgwNDVlYzU4NDA4YTM2ZTk1MSJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Experience Ring"
|
||||
description: Gain 25% more experience.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:experience_talisman
|
||||
- talismans:experience_talisman
|
||||
- talismans:experience_talisman
|
||||
|
||||
- talismans:experience_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:experience_talisman
|
||||
|
||||
- talismans:experience_talisman
|
||||
- talismans:experience_talisman
|
||||
- talismans:experience_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTNjNzZkMTA3OWM5NWUzYzc5ZGRmOTUxNDJmYzc0YzQ4ZjY1MjA1ZTQ2NWQxMDJiZjc4MjY1Y2E3ZTk3MDZkMiJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 25
|
||||
@@ -1,30 +0,0 @@
|
||||
name: "Extraction Ring"
|
||||
description: 5% chance to get xp randomly while mining.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:extraction_talisman
|
||||
- talismans:extraction_talisman
|
||||
- talismans:extraction_talisman
|
||||
|
||||
- talismans:extraction_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:extraction_talisman
|
||||
|
||||
- talismans:extraction_talisman
|
||||
- talismans:extraction_talisman
|
||||
- talismans:extraction_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmQxZWUyYjYwYTlkODFlYTgyZWIyNTBjNzEyYjNhNmJhYmVkMDNkMjFkNmY4MTg3MDBjNzBlNDM4OGU2YTUxOCJ9fX0=
|
||||
|
||||
config:
|
||||
chance: 5
|
||||
xp-amount: 2
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Feather Ring"
|
||||
description: Take 75% less fall damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:feather_talisman
|
||||
- talismans:feather_talisman
|
||||
- talismans:feather_talisman
|
||||
|
||||
- talismans:feather_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:feather_talisman
|
||||
|
||||
- talismans:feather_talisman
|
||||
- talismans:feather_talisman
|
||||
- talismans:feather_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYThlYmYzOWIwYjM3MWQxZWYzMTZhNjI2ZDM1NTM3NWY5ZDQ4MzcxOWU5NWY1ZGMzNDc4MTIwZjhmOWMzODcyNiJ9fX0=
|
||||
|
||||
config:
|
||||
multiplier: 0.75
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Flame Ring"
|
||||
description: Take 25% less fire damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:flame_talisman
|
||||
- talismans:flame_talisman
|
||||
- talismans:flame_talisman
|
||||
|
||||
- talismans:flame_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:flame_talisman
|
||||
|
||||
- talismans:flame_talisman
|
||||
- talismans:flame_talisman
|
||||
- talismans:flame_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGJjYjFkZGZjOGRhODUyZDNmMjU4ZmNiODg1ZjJjYjVlNGIyNmE3ZWJjZmJkMGIzM2VjMTM3N2EyMzVmM2E0NSJ9fX0=
|
||||
|
||||
config:
|
||||
multiplier: 0.75
|
||||
@@ -1,30 +0,0 @@
|
||||
name: "Flux Ring"
|
||||
description: Nearby players deal 10% more melee damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:flux_talisman
|
||||
- talismans:flux_talisman
|
||||
- talismans:flux_talisman
|
||||
|
||||
- talismans:flux_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:flux_talisman
|
||||
|
||||
- talismans:flux_talisman
|
||||
- talismans:flux_talisman
|
||||
- talismans:flux_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODJhZGExYzdmY2M4Y2YzNWRlZmViOTQ0YTRmOGZmYTlhOWQyNjA1NjBmYzdmNWY1ODI2ZGU4MDg1NDM1OTY3YyJ9fX0=
|
||||
|
||||
config:
|
||||
distance: 5 # How close other players have to be
|
||||
percent-more-damage: 10
|
||||
@@ -1,33 +0,0 @@
|
||||
name: "Gravity Ring"
|
||||
description: Take less damage the lower down you are, up to 30% less.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:gravity_talisman
|
||||
- talismans:gravity_talisman
|
||||
- talismans:gravity_talisman
|
||||
|
||||
- talismans:gravity_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:gravity_talisman
|
||||
|
||||
- talismans:gravity_talisman
|
||||
- talismans:gravity_talisman
|
||||
- talismans:gravity_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTY0ZjEwZjE1OWM5MjA0ZmM3NzIwMmIzZGFjZGRmMGQwZTNhMjVlY2EyZGVhYjNmOTJhNmEyNTIzMTAxMzc3ZSJ9fX0=
|
||||
|
||||
config:
|
||||
# Formula is ((distance below y = 64)/64) * multiplier + 1 times less
|
||||
# So if multiplier is 2, and you're at y = 1:
|
||||
# distance below y = 63
|
||||
# 63/64 * multiplier is roughly 2, +1 = 3x less
|
||||
height-multiplier: 0.3
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Healing Ring"
|
||||
description: Heal 25% faster.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:healing_talisman
|
||||
- talismans:healing_talisman
|
||||
- talismans:healing_talisman
|
||||
|
||||
- talismans:healing_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:healing_talisman
|
||||
|
||||
- talismans:healing_talisman
|
||||
- talismans:healing_talisman
|
||||
- talismans:healing_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDY2YTVmN2JjZDNjMWMyMjVhOTM2NmVlZTZkZmFiMWNjNjZhNmJmNzM2M2ZlZDA4NzUxMmU2ZWY0N2ExZCJ9fX0=
|
||||
|
||||
config:
|
||||
multiplier: 0.25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Knockback Ring"
|
||||
description: Deal 25% more knockback.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:knockback_talisman
|
||||
- talismans:knockback_talisman
|
||||
- talismans:knockback_talisman
|
||||
|
||||
- talismans:knockback_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:knockback_talisman
|
||||
|
||||
- talismans:knockback_talisman
|
||||
- talismans:knockback_talisman
|
||||
- talismans:knockback_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjgxY2M2NGIwNDViMThhM2E0MTljNTk1YWQ2NThmNmNlMmM1OTk5NDk0NzdhZmU0MmE2YjU4N2FhMzE1YmYifX19
|
||||
|
||||
config:
|
||||
percentage-bonus: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Nether Ring"
|
||||
description: Deal 25% more damage in the nether.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:nether_talisman
|
||||
- talismans:nether_talisman
|
||||
- talismans:nether_talisman
|
||||
|
||||
- talismans:nether_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:nether_talisman
|
||||
|
||||
- talismans:nether_talisman
|
||||
- talismans:nether_talisman
|
||||
- talismans:nether_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjE2MTAyYmM0ZjYwOWMyMjQwNDM3MWFlZjZjNjQxYmI5NjQwOWJjNTAwN2RjYTQ0YWM2NjhlZGRlYmFiZTQ0NiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Poseidon Ring"
|
||||
description: Deal 25% more damage with tridents.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:poseidon_talisman
|
||||
- talismans:poseidon_talisman
|
||||
- talismans:poseidon_talisman
|
||||
|
||||
- talismans:poseidon_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:poseidon_talisman
|
||||
|
||||
- talismans:poseidon_talisman
|
||||
- talismans:poseidon_talisman
|
||||
- talismans:poseidon_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjIyZTNhNTY5ZThkNTgxNDM3YzUwM2UyYWQxZDRiNTkxYmNiODI5MWE3MWVmN2IzNzM4OGVlYTNiMDhlNzIifX19
|
||||
|
||||
config:
|
||||
percent-more-damage: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Raid Ring"
|
||||
description: Deal 25% more damage to illagers.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:raid_talisman
|
||||
- talismans:raid_talisman
|
||||
- talismans:raid_talisman
|
||||
|
||||
- talismans:raid_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:raid_talisman
|
||||
|
||||
- talismans:raid_talisman
|
||||
- talismans:raid_talisman
|
||||
- talismans:raid_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTFkMGU4MTY0ODc1N2I5OGYwZGUyYjcwZDMzODJlZGNmNDI2OThkNDAxODU1ZDg3MjU1MmE2NzFiZWE1ZGFmNiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Resistance Ring"
|
||||
description: Take 25% less damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:resistance_talisman
|
||||
- talismans:resistance_talisman
|
||||
- talismans:resistance_talisman
|
||||
|
||||
- talismans:resistance_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:resistance_talisman
|
||||
|
||||
- talismans:resistance_talisman
|
||||
- talismans:resistance_talisman
|
||||
- talismans:resistance_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjY5ZDBkNDcxMTE1M2EwODljNTU2N2E3NDliMjc4NzljNzY5ZDNiZGNlYTZmZGE5ZDZmNjZlOTNkZDhjNDUxMiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-less-damage: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Sharpness Ring"
|
||||
description: Deal 25% more melee damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:sharpness_talisman
|
||||
- talismans:sharpness_talisman
|
||||
- talismans:sharpness_talisman
|
||||
|
||||
- talismans:sharpness_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:sharpness_talisman
|
||||
|
||||
- talismans:sharpness_talisman
|
||||
- talismans:sharpness_talisman
|
||||
- talismans:sharpness_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjg4MWI1ZTkxZjliNGVlMGQ0YzUzMzk2MmJiNjhmYTczY2VkYjc1ZWNkMjY4ZWNiZGQ0NGNhMGY0MDkxNDhjMiJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 25
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Speed Ring"
|
||||
description: Move 10% faster.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:speed_talisman
|
||||
- talismans:speed_talisman
|
||||
- talismans:speed_talisman
|
||||
|
||||
- talismans:speed_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:speed_talisman
|
||||
|
||||
- talismans:speed_talisman
|
||||
- talismans:speed_talisman
|
||||
- talismans:speed_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTNjZTc2NjAyZDNmZWM3YzAyNzNkYTYwMDA5MDA3YmU0MTQwYWM5ZmFjMDM0MTQ1MGMwNzU3ZTUzZDc1MTU3NyJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 10
|
||||
@@ -1,29 +0,0 @@
|
||||
name: "Strength Ring"
|
||||
description: Deal 25% more damage.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talismans:strength_talisman
|
||||
- talismans:strength_talisman
|
||||
- talismans:strength_talisman
|
||||
|
||||
- talismans:strength_talisman
|
||||
- heart_of_the_sea
|
||||
- talismans:strength_talisman
|
||||
|
||||
- talismans:strength_talisman
|
||||
- talismans:strength_talisman
|
||||
- talismans:strength_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
material: player_head
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls. Ignored if material is not player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDkwMzIyMTEyNGUxYTI3NDAyMjc2YzNlMDE3NmJjOWY2MzIzOGQ3ZWE3NzEzZTliNTc5YTg3OGRhY2EyNDgxOSJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 25
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Sharpness Talisman I"
|
||||
description: Deal 10% more melee damage.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- diamond_sword
|
||||
- diamond_sword
|
||||
- diamond_sword
|
||||
|
||||
- diamond_sword
|
||||
- ender_eye
|
||||
- diamond_sword
|
||||
|
||||
- diamond_sword
|
||||
- diamond_sword
|
||||
- diamond_sword
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzNkMTQ1NjFiYmQwNjNmNzA0MjRhOGFmY2MzN2JmZTljNzQ1NjJlYTM2ZjdiZmEzZjIzMjA2ODMwYzY0ZmFmMSJ9fX0=
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Skeleton Talisman I"
|
||||
description: Deal 10% more damage to skeletons.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- bone
|
||||
- bone
|
||||
- bone
|
||||
|
||||
- bone
|
||||
- ender_eye
|
||||
- bone
|
||||
|
||||
- bone
|
||||
- bone
|
||||
- bone
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzAxMjY4ZTljNDkyZGExZjBkODgyNzFjYjQ5MmE0YjMwMjM5NWY1MTVhN2JiZjc3ZjRhMjBiOTVmYzAyZWIyIn19fQ==
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
29
eco-core/core-plugin/src/main/resources/talismans/speed.yml
Normal file
29
eco-core/core-plugin/src/main/resources/talismans/speed.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Speed Talisman I"
|
||||
description: Move 5% faster.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- sugar
|
||||
- sugar
|
||||
- sugar
|
||||
|
||||
- sugar
|
||||
- ender_eye
|
||||
- sugar
|
||||
|
||||
- sugar
|
||||
- sugar
|
||||
- sugar
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODYyNGJhY2I1ZjE5ODZlNjQ3N2FiY2U0YWU3ZGNhMTgyMGE1MjYwYjYyMzNiNTViYTFkOWJhOTM2Yzg0YiJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 5
|
||||
29
eco-core/core-plugin/src/main/resources/talismans/spider.yml
Normal file
29
eco-core/core-plugin/src/main/resources/talismans/spider.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
enabled: true
|
||||
disabled-in-worlds: [ ]
|
||||
|
||||
levels:
|
||||
1:
|
||||
name: "Spider Talisman I"
|
||||
description: Deal 10% more damage to spiders.
|
||||
|
||||
obtaining:
|
||||
craftable: true
|
||||
recipe:
|
||||
- string
|
||||
- string
|
||||
- string
|
||||
|
||||
- string
|
||||
- ender_eye
|
||||
- string
|
||||
|
||||
- string
|
||||
- string
|
||||
- string
|
||||
|
||||
general-config:
|
||||
material: player_head
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2Q1NDE1NDFkYWFmZjUwODk2Y2QyNThiZGJkZDRjZjgwYzNiYTgxNjczNTcyNjA3OGJmZTM5MzkyN2U1N2YxIn19fQ==
|
||||
|
||||
config:
|
||||
percent-more-damage: 10
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user