mirror of
https://github.com/Auxilor/Reforges.git
synced 2026-01-04 15:41:40 +00:00
Added evasive, reinforced, thin, and tough reforges
This commit is contained in:
@@ -6,13 +6,17 @@ import com.google.common.collect.ImmutableSet;
|
|||||||
import com.willfp.eco.core.config.updating.ConfigUpdater;
|
import com.willfp.eco.core.config.updating.ConfigUpdater;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeAerobic;
|
import com.willfp.reforges.reforges.reforges.ReforgeAerobic;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeDynamic;
|
import com.willfp.reforges.reforges.reforges.ReforgeDynamic;
|
||||||
|
import com.willfp.reforges.reforges.reforges.ReforgeEvasive;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeGravitated;
|
import com.willfp.reforges.reforges.reforges.ReforgeGravitated;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeLight;
|
import com.willfp.reforges.reforges.reforges.ReforgeLight;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeLucky;
|
import com.willfp.reforges.reforges.reforges.ReforgeLucky;
|
||||||
|
import com.willfp.reforges.reforges.reforges.ReforgeReinforced;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeRich;
|
import com.willfp.reforges.reforges.reforges.ReforgeRich;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeSharp;
|
import com.willfp.reforges.reforges.reforges.ReforgeSharp;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeStreamlined;
|
import com.willfp.reforges.reforges.reforges.ReforgeStreamlined;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeStrong;
|
import com.willfp.reforges.reforges.reforges.ReforgeStrong;
|
||||||
|
import com.willfp.reforges.reforges.reforges.ReforgeThin;
|
||||||
|
import com.willfp.reforges.reforges.reforges.ReforgeTough;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeWealthy;
|
import com.willfp.reforges.reforges.reforges.ReforgeWealthy;
|
||||||
import com.willfp.reforges.reforges.reforges.ReforgeWise;
|
import com.willfp.reforges.reforges.reforges.ReforgeWise;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
@@ -40,6 +44,10 @@ public class Reforges {
|
|||||||
public static final Reforge LUCKY = new ReforgeLucky();
|
public static final Reforge LUCKY = new ReforgeLucky();
|
||||||
public static final Reforge AEROBIC = new ReforgeAerobic();
|
public static final Reforge AEROBIC = new ReforgeAerobic();
|
||||||
public static final Reforge STREAMLINED = new ReforgeStreamlined();
|
public static final Reforge STREAMLINED = new ReforgeStreamlined();
|
||||||
|
public static final Reforge THIN = new ReforgeThin();
|
||||||
|
public static final Reforge TOUGH = new ReforgeTough();
|
||||||
|
public static final Reforge REINFORCED = new ReforgeReinforced();
|
||||||
|
public static final Reforge EVASIVE = new ReforgeEvasive();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all registered {@link Reforge}s.
|
* Get all registered {@link Reforge}s.
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.willfp.reforges.reforges.reforges;
|
||||||
|
|
||||||
|
import com.willfp.eco.util.NumberUtils;
|
||||||
|
import com.willfp.reforges.reforges.Reforge;
|
||||||
|
import com.willfp.reforges.reforges.Reforges;
|
||||||
|
import com.willfp.reforges.reforges.meta.ReforgeTarget;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public class ReforgeEvasive extends Reforge {
|
||||||
|
public ReforgeEvasive() {
|
||||||
|
super("evasive");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReforgeTarget getTarget() {
|
||||||
|
return ReforgeTarget.ARMOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDamageWearingArmor(@NotNull final LivingEntity victim,
|
||||||
|
@NotNull final EntityDamageEvent event) {
|
||||||
|
if (NumberUtils.randFloat(0, 100) < this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "chance")) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.willfp.reforges.reforges.reforges;
|
||||||
|
|
||||||
|
import com.willfp.reforges.reforges.Reforge;
|
||||||
|
import com.willfp.reforges.reforges.Reforges;
|
||||||
|
import com.willfp.reforges.reforges.meta.ReforgeTarget;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public class ReforgeReinforced extends Reforge {
|
||||||
|
public ReforgeReinforced() {
|
||||||
|
super("reinforced");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReforgeTarget getTarget() {
|
||||||
|
return ReforgeTarget.ARMOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDamageWearingArmor(@NotNull final LivingEntity victim,
|
||||||
|
@NotNull final EntityDamageEvent event) {
|
||||||
|
event.setDamage(event.getDamage() * this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "multiplier"));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package com.willfp.reforges.reforges.reforges;
|
||||||
|
|
||||||
|
import com.willfp.reforges.reforges.Reforge;
|
||||||
|
import com.willfp.reforges.reforges.Reforges;
|
||||||
|
import com.willfp.reforges.reforges.meta.ReforgeTarget;
|
||||||
|
import org.bukkit.attribute.Attribute;
|
||||||
|
import org.bukkit.attribute.AttributeModifier;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.inventory.ItemFlag;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class ReforgeThin extends Reforge {
|
||||||
|
private AttributeModifier speedModifier;
|
||||||
|
|
||||||
|
public ReforgeThin() {
|
||||||
|
super("thin");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void postUpdate() {
|
||||||
|
this.speedModifier = new AttributeModifier(
|
||||||
|
UUID.nameUUIDFromBytes("thin-speed".getBytes()),
|
||||||
|
"thin-speed",
|
||||||
|
this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "speed-multiplier") - 1,
|
||||||
|
AttributeModifier.Operation.MULTIPLY_SCALAR_1
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReforgeTarget getTarget() {
|
||||||
|
return ReforgeTarget.ARMOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDamageWearingArmor(@NotNull final LivingEntity victim,
|
||||||
|
@NotNull final EntityDamageEvent event) {
|
||||||
|
event.setDamage(event.getDamage() * this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "multiplier"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleApplication(@NotNull final ItemStack itemStack) {
|
||||||
|
ItemMeta meta = itemStack.getItemMeta();
|
||||||
|
assert meta != null;
|
||||||
|
|
||||||
|
meta.addAttributeModifier(Attribute.GENERIC_MOVEMENT_SPEED, speedModifier);
|
||||||
|
meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||||
|
itemStack.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleRemoval(@NotNull final ItemStack itemStack) {
|
||||||
|
ItemMeta meta = itemStack.getItemMeta();
|
||||||
|
assert meta != null;
|
||||||
|
|
||||||
|
meta.removeAttributeModifier(Attribute.GENERIC_MOVEMENT_SPEED, speedModifier);
|
||||||
|
itemStack.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package com.willfp.reforges.reforges.reforges;
|
||||||
|
|
||||||
|
import com.willfp.reforges.reforges.Reforge;
|
||||||
|
import com.willfp.reforges.reforges.Reforges;
|
||||||
|
import com.willfp.reforges.reforges.meta.ReforgeTarget;
|
||||||
|
import org.bukkit.attribute.Attribute;
|
||||||
|
import org.bukkit.attribute.AttributeModifier;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.inventory.ItemFlag;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class ReforgeTough extends Reforge {
|
||||||
|
private AttributeModifier speedModifier;
|
||||||
|
|
||||||
|
public ReforgeTough() {
|
||||||
|
super("tough");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void postUpdate() {
|
||||||
|
this.speedModifier = new AttributeModifier(
|
||||||
|
UUID.nameUUIDFromBytes("tough-speed".getBytes()),
|
||||||
|
"tough-speed",
|
||||||
|
this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "speed-multiplier") - 1,
|
||||||
|
AttributeModifier.Operation.MULTIPLY_SCALAR_1
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReforgeTarget getTarget() {
|
||||||
|
return ReforgeTarget.ARMOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDamageWearingArmor(@NotNull final LivingEntity victim,
|
||||||
|
@NotNull final EntityDamageEvent event) {
|
||||||
|
event.setDamage(event.getDamage() * this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "multiplier"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleApplication(@NotNull final ItemStack itemStack) {
|
||||||
|
ItemMeta meta = itemStack.getItemMeta();
|
||||||
|
assert meta != null;
|
||||||
|
|
||||||
|
meta.addAttributeModifier(Attribute.GENERIC_MOVEMENT_SPEED, speedModifier);
|
||||||
|
meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||||
|
itemStack.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleRemoval(@NotNull final ItemStack itemStack) {
|
||||||
|
ItemMeta meta = itemStack.getItemMeta();
|
||||||
|
assert meta != null;
|
||||||
|
|
||||||
|
meta.removeAttributeModifier(Attribute.GENERIC_MOVEMENT_SPEED, speedModifier);
|
||||||
|
itemStack.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
}
|
||||||
16
eco-core/core-plugin/src/main/resources/reforges/evasive.yml
Normal file
16
eco-core/core-plugin/src/main/resources/reforges/evasive.yml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#
|
||||||
|
# Evasive Reforge
|
||||||
|
#
|
||||||
|
|
||||||
|
name: "<gradient:#EFEFBB>Evasive</gradient:#D4D3DD>"
|
||||||
|
enabled: true
|
||||||
|
description: "&a2%&r chance to ignore damage"
|
||||||
|
|
||||||
|
stone-config:
|
||||||
|
requires-stone: false
|
||||||
|
texture: ''
|
||||||
|
craftable: false
|
||||||
|
recipe: []
|
||||||
|
|
||||||
|
config:
|
||||||
|
chance: 2
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#
|
||||||
|
# Reinforced Reforge
|
||||||
|
#
|
||||||
|
|
||||||
|
name: "<gradient:#FBD786>Reinforced</gradient:#f7797d>"
|
||||||
|
enabled: true
|
||||||
|
description: "Take &a4%&r less damage"
|
||||||
|
|
||||||
|
stone-config:
|
||||||
|
requires-stone: false
|
||||||
|
texture: ''
|
||||||
|
craftable: false
|
||||||
|
recipe: []
|
||||||
|
|
||||||
|
config:
|
||||||
|
multiplier: 0.96 # Damage taken multiplier
|
||||||
17
eco-core/core-plugin/src/main/resources/reforges/thin.yml
Normal file
17
eco-core/core-plugin/src/main/resources/reforges/thin.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#
|
||||||
|
# Thin Reforge
|
||||||
|
#
|
||||||
|
|
||||||
|
name: "<gradient:#D1913C>Thin</gradient:#FFD194>"
|
||||||
|
enabled: true
|
||||||
|
description: "Take &a5%&r more damage but move &a2.5%&r faster"
|
||||||
|
|
||||||
|
stone-config:
|
||||||
|
requires-stone: false
|
||||||
|
texture: ''
|
||||||
|
craftable: false
|
||||||
|
recipe: []
|
||||||
|
|
||||||
|
config:
|
||||||
|
multiplier: 1.05 # Damage taken multiplier
|
||||||
|
speed-multiplier: 1.025
|
||||||
17
eco-core/core-plugin/src/main/resources/reforges/tough.yml
Normal file
17
eco-core/core-plugin/src/main/resources/reforges/tough.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#
|
||||||
|
# Tough Reforge
|
||||||
|
#
|
||||||
|
|
||||||
|
name: "<gradient:#a73737>Tough</gradient:#7a2828>"
|
||||||
|
enabled: true
|
||||||
|
description: "Take &a8%&r less damage but move &a5%&r slower"
|
||||||
|
|
||||||
|
stone-config:
|
||||||
|
requires-stone: false
|
||||||
|
texture: ''
|
||||||
|
craftable: false
|
||||||
|
recipe: []
|
||||||
|
|
||||||
|
config:
|
||||||
|
multiplier: 0.92 # Damage taken multiplier
|
||||||
|
speed-multiplier: 0.95
|
||||||
Reference in New Issue
Block a user