9
0
mirror of https://github.com/Auxilor/Reforges.git synced 2025-12-30 20:39:13 +00:00

Added strong reforg

This commit is contained in:
Auxilor
2021-08-12 18:22:47 +01:00
parent 9f605e2af0
commit 49de74f989
3 changed files with 79 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ import com.willfp.reforges.reforges.reforges.ReforgeDynamic;
import com.willfp.reforges.reforges.reforges.ReforgeGravitated;
import com.willfp.reforges.reforges.reforges.ReforgeLight;
import com.willfp.reforges.reforges.reforges.ReforgeSharp;
import com.willfp.reforges.reforges.reforges.ReforgeStrong;
import com.willfp.reforges.reforges.reforges.ReforgeWise;
import lombok.experimental.UtilityClass;
import org.jetbrains.annotations.NotNull;
@@ -28,6 +29,7 @@ public class Reforges {
public static final Reforge WISE = new ReforgeWise();
public static final Reforge DYNAMIC = new ReforgeDynamic();
public static final Reforge GRAVITATED = new ReforgeGravitated();
public static final Reforge STRONG = new ReforgeStrong();
/**
* Get all registered {@link Reforge}s.

View File

@@ -0,0 +1,66 @@
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.EntityDamageByEntityEvent;
import org.bukkit.inventory.EquipmentSlot;
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 ReforgeStrong extends Reforge {
private AttributeModifier kbModifier;
public ReforgeStrong() {
super("strong");
}
@Override
public ReforgeTarget getTarget() {
return ReforgeTarget.MELEE;
}
@Override
protected void postUpdate() {
this.kbModifier = new AttributeModifier(
UUID.nameUUIDFromBytes("strong-kb".getBytes()),
"strong-kb",
this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "knockback-multiplier") - 1,
AttributeModifier.Operation.MULTIPLY_SCALAR_1,
EquipmentSlot.HAND
);
}
@Override
public void onMeleeAttack(@NotNull final LivingEntity attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent 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_ATTACK_KNOCKBACK, kbModifier);
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_ATTACK_KNOCKBACK, kbModifier);
itemStack.setItemMeta(meta);
}
}

View File

@@ -0,0 +1,11 @@
#
# Strong Reforge
#
name: "<gradient:#ED213A>Strong</gradient:#93291E>"
enabled: true
description: "Deal &a2%&r more damage and &a10%&r more knockback"
config:
multiplier: 1.03 # Damage multiplier
knockback-multiplier: 1.1