9
0
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:
Auxilor
2021-08-12 18:20:25 +01:00
parent 3ae7d51520
commit 9f605e2af0
4 changed files with 58 additions and 9 deletions

View File

@@ -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);
}
}

View File

@@ -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.

View File

@@ -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"));
}
}
}

View File

@@ -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