mirror of
https://github.com/Auxilor/Reforges.git
synced 2026-01-04 15:41:40 +00:00
Added gravitated reforge
This commit is contained in:
@@ -21,6 +21,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -85,30 +86,38 @@ public class ReforgeGUI {
|
||||
ReforgeStatus status = ReforgeUtils.getStatus(menu.getCaptiveItems(player));
|
||||
|
||||
double cost = plugin.getConfigYml().getDouble("reforge.cost");
|
||||
int reforges = ReforgeUtils.getReforges(previous);
|
||||
cost *= Math.pow(plugin.getConfigYml().getDouble("reforge.cost-exponent"), reforges);
|
||||
double finalCost = cost;
|
||||
if (status == ReforgeStatus.ALLOW) {
|
||||
ItemStack item = menu.getCaptiveItems(player).get(0);
|
||||
int reforges = ReforgeUtils.getReforges(item);
|
||||
cost *= Math.pow(plugin.getConfigYml().getDouble("reforge.cost-exponent"), reforges);
|
||||
}
|
||||
|
||||
switch (status) {
|
||||
case INVALID_ITEM -> {
|
||||
previous.setType(Objects.requireNonNull(Material.getMaterial(plugin.getConfigYml().getString("gui.invalid-item.material").toUpperCase())));
|
||||
meta.setDisplayName(plugin.getConfigYml().getString("gui.invalid-item.name"));
|
||||
List<String> lore = plugin.getConfigYml().getStrings("gui.invalid-item.lore");
|
||||
lore.replaceAll(s -> s.replace("%cost%", NumberUtils.format(finalCost)));
|
||||
List<String> lore = new ArrayList<>();
|
||||
for (String string : plugin.getConfigYml().getStrings("gui.invalid-item.lore")) {
|
||||
lore.add(string.replace("%cost%", NumberUtils.format(cost)));
|
||||
}
|
||||
meta.setLore(lore);
|
||||
}
|
||||
case ALLOW -> {
|
||||
previous.setType(Objects.requireNonNull(Material.getMaterial(plugin.getConfigYml().getString("gui.allow.material").toUpperCase())));
|
||||
meta.setDisplayName(plugin.getConfigYml().getString("gui.allow.name"));
|
||||
List<String> lore = plugin.getConfigYml().getStrings("gui.allow.lore");
|
||||
lore.replaceAll(s -> s.replace("%cost%", NumberUtils.format(finalCost)));
|
||||
List<String> lore = new ArrayList<>();
|
||||
for (String string : plugin.getConfigYml().getStrings("gui.allow.lore")) {
|
||||
lore.add(string.replace("%cost%", NumberUtils.format(cost)));
|
||||
}
|
||||
meta.setLore(lore);
|
||||
}
|
||||
default -> {
|
||||
previous.setType(Objects.requireNonNull(Material.getMaterial(plugin.getConfigYml().getString("gui.no-item.material").toUpperCase())));
|
||||
meta.setDisplayName(plugin.getConfigYml().getString("gui.no-item.name"));
|
||||
List<String> lore = plugin.getConfigYml().getStrings("gui.no-item.lore");
|
||||
lore.replaceAll(s -> s.replace("%cost%", NumberUtils.format(finalCost)));
|
||||
List<String> lore = new ArrayList<>();
|
||||
for (String string : plugin.getConfigYml().getStrings("gui.no-item.lore")) {
|
||||
lore.add(string.replace("%cost%", NumberUtils.format(cost)));
|
||||
}
|
||||
meta.setLore(lore);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.google.common.collect.HashBiMap;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.willfp.eco.core.config.updating.ConfigUpdater;
|
||||
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.ReforgeWise;
|
||||
@@ -26,6 +27,7 @@ public class Reforges {
|
||||
public static final Reforge LIGHT = new ReforgeLight();
|
||||
public static final Reforge WISE = new ReforgeWise();
|
||||
public static final Reforge DYNAMIC = new ReforgeDynamic();
|
||||
public static final Reforge GRAVITATED = new ReforgeGravitated();
|
||||
|
||||
/**
|
||||
* Get all registered {@link Reforge}s.
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
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.EntityDamageByEntityEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ReforgeGravitated extends Reforge {
|
||||
public ReforgeGravitated() {
|
||||
super("gravitated");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReforgeTarget getTarget() {
|
||||
return ReforgeTarget.MELEE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeleeAttack(@NotNull final LivingEntity attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event) {
|
||||
if (attacker.getVelocity().getY() < 0) {
|
||||
event.setDamage(event.getDamage() * this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "crit-multiplier"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
#
|
||||
# Gravitated Reforge
|
||||
#
|
||||
|
||||
name: "<gradient:#1e3c72>Gravitated</gradient:#2a5298>"
|
||||
enabled: true
|
||||
description: "Deal &a8%&r more critical damage"
|
||||
|
||||
config:
|
||||
crit-multiplier: 1.08
|
||||
Reference in New Issue
Block a user