mirror of
https://github.com/Auxilor/Reforges.git
synced 2025-12-24 17:39:32 +00:00
Changes
This commit is contained in:
@@ -30,6 +30,11 @@ public class ReforgesPlugin extends EcoPlugin {
|
||||
instance = this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleEnable() {
|
||||
this.getLogger().info(Reforges.values().size() + " Reforges Loaded");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleReload() {
|
||||
for (Reforge reforge : Reforges.values()) {
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
package com.willfp.reforges.display;
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.eco.core.display.Display;
|
||||
import com.willfp.eco.core.display.DisplayModule;
|
||||
import com.willfp.eco.core.display.DisplayPriority;
|
||||
import com.willfp.eco.core.fast.FastItemStack;
|
||||
import com.willfp.reforges.reforges.Reforge;
|
||||
import com.willfp.reforges.reforges.meta.ReforgeTarget;
|
||||
import com.willfp.reforges.reforges.util.ReforgeUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ReforgesDisplay extends DisplayModule {
|
||||
@@ -28,31 +30,43 @@ public class ReforgesDisplay extends DisplayModule {
|
||||
@NotNull final Object... args) {
|
||||
ReforgeTarget target = ReforgeTarget.getForMaterial(itemStack.getType());
|
||||
|
||||
Bukkit.getLogger().info(target + " hmm");
|
||||
|
||||
if (target == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reforge reforge = ReforgeUtils.getReforge(itemStack);
|
||||
ItemMeta meta = itemStack.getItemMeta();
|
||||
assert meta != null;
|
||||
|
||||
if (reforge == null) {
|
||||
return;
|
||||
Reforge reforge = ReforgeUtils.getReforge(meta);
|
||||
|
||||
Bukkit.getLogger().info(reforge + " yes?");
|
||||
|
||||
List<String> lore = meta.hasLore() ? meta.getLore() : new ArrayList<>();
|
||||
assert lore != null;
|
||||
|
||||
if (reforge != null) {
|
||||
if (this.getPlugin().getConfigYml().getBool("reforge.display-in-lore")) {
|
||||
List<String> addLore = this.getPlugin().getConfigYml().getStrings("reforge.lore-suffix");
|
||||
|
||||
addLore.replaceAll(s -> Display.PREFIX + s);
|
||||
addLore.replaceAll(s -> s.replace("%reforge%", reforge.getName()));
|
||||
addLore.replaceAll(s -> s.replace("%description%", reforge.getDescription()));
|
||||
lore.addAll(addLore);
|
||||
}
|
||||
}
|
||||
|
||||
FastItemStack fastItemStack = FastItemStack.wrap(itemStack);
|
||||
if (reforge == null && this.getPlugin().getConfigYml().getBool("reforge.show-reforgable")) {
|
||||
List<String> addLore = this.getPlugin().getConfigYml().getStrings("reforge.reforgable-suffix");
|
||||
|
||||
List<String> lore = fastItemStack.getLore();
|
||||
|
||||
if (this.getPlugin().getConfigYml().getBool("reforge.display-in-lore")) {
|
||||
List<String> addLore = this.getPlugin().getConfigYml().getStrings("reforge.lore-suffix");
|
||||
|
||||
addLore.replaceAll(s -> s.replace("%reforge%", reforge.getName()));
|
||||
addLore.replaceAll(s -> s.replace("%description%", reforge.getDescription()));
|
||||
addLore.replaceAll(s -> Display.PREFIX + s);
|
||||
Bukkit.getLogger().info(addLore.toString());
|
||||
lore.addAll(addLore);
|
||||
}
|
||||
|
||||
fastItemStack.setLore(lore);
|
||||
meta.setLore(lore);
|
||||
|
||||
ItemMeta meta = itemStack.getItemMeta();
|
||||
assert meta != null;
|
||||
itemStack.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,10 +54,12 @@ public class ReforgeGUI {
|
||||
.setDisplayName("&r")
|
||||
.build()
|
||||
).setModifier((player, menu, previous) -> {
|
||||
if (menu.getCaptiveItems(player).isEmpty()) {
|
||||
previous.setType(Material.RED_STAINED_GLASS_PANE);
|
||||
} else {
|
||||
|
||||
ReforgeStatus status = ReforgeUtils.getStatus(menu.getCaptiveItems(player));
|
||||
if (status == ReforgeStatus.ALLOW) {
|
||||
previous.setType(Material.LIME_STAINED_GLASS_PANE);
|
||||
} else {
|
||||
previous.setType(Material.RED_STAINED_GLASS_PANE);
|
||||
}
|
||||
}).build();
|
||||
|
||||
@@ -77,23 +79,7 @@ public class ReforgeGUI {
|
||||
return;
|
||||
}
|
||||
|
||||
ItemStack toReforge = menu.getCaptiveItems(player).isEmpty() ? null : menu.getCaptiveItems(player).get(0);
|
||||
ReforgeStatus status = null;
|
||||
|
||||
ReforgeTarget target = null;
|
||||
|
||||
if (toReforge == null) {
|
||||
status = ReforgeStatus.NO_ITEM;
|
||||
} else {
|
||||
target = ReforgeTarget.getForMaterial(toReforge.getType());
|
||||
if (target == null) {
|
||||
status = ReforgeStatus.INVALID_ITEM;
|
||||
}
|
||||
}
|
||||
|
||||
if (target != null) {
|
||||
status = ReforgeStatus.ALLOW;
|
||||
}
|
||||
ReforgeStatus status = ReforgeUtils.getStatus(menu.getCaptiveItems(player));
|
||||
|
||||
switch (status) {
|
||||
case INVALID_ITEM -> {
|
||||
@@ -126,6 +112,11 @@ public class ReforgeGUI {
|
||||
assert target != null;
|
||||
|
||||
Reforge reforge = ReforgeUtils.getRandomReforge(target);
|
||||
|
||||
if (reforge == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
ReforgeUtils.setReforge(toReforge, reforge);
|
||||
|
||||
player.playSound(
|
||||
|
||||
@@ -119,7 +119,9 @@ public class ReforgeTarget {
|
||||
*/
|
||||
@Nullable
|
||||
public static ReforgeTarget getForMaterial(@NotNull final Material material) {
|
||||
Optional<ReforgeTarget> matching = REGISTERED.stream().filter(rarity -> rarity.getMaterials().contains(material)).findFirst();
|
||||
Optional<ReforgeTarget> matching = REGISTERED.stream()
|
||||
.filter(rarity -> !rarity.getName().equalsIgnoreCase("all"))
|
||||
.filter(rarity -> rarity.getMaterials().contains(material)).findFirst();
|
||||
return matching.orElse(null);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.willfp.reforges.reforges.util;
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.reforges.ReforgesPlugin;
|
||||
import com.willfp.reforges.gui.ReforgeStatus;
|
||||
import com.willfp.reforges.reforges.Reforge;
|
||||
import com.willfp.reforges.reforges.Reforges;
|
||||
import com.willfp.reforges.reforges.meta.ReforgeTarget;
|
||||
@@ -46,9 +47,35 @@ public class ReforgeUtils {
|
||||
|
||||
Collections.shuffle(applicable);
|
||||
|
||||
if (applicable.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return applicable.get(0);
|
||||
}
|
||||
|
||||
public static ReforgeStatus getStatus(@NotNull final List<ItemStack> captive) {
|
||||
ItemStack toReforge = captive.isEmpty() ? null : captive.get(0);
|
||||
ReforgeStatus status = null;
|
||||
|
||||
ReforgeTarget target = null;
|
||||
|
||||
if (toReforge == null) {
|
||||
status = ReforgeStatus.NO_ITEM;
|
||||
} else {
|
||||
target = ReforgeTarget.getForMaterial(toReforge.getType());
|
||||
if (target == null) {
|
||||
status = ReforgeStatus.INVALID_ITEM;
|
||||
}
|
||||
}
|
||||
|
||||
if (target != null) {
|
||||
status = ReforgeStatus.ALLOW;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get reforge on an item.
|
||||
*
|
||||
@@ -82,6 +109,10 @@ public class ReforgeUtils {
|
||||
|
||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||
|
||||
if (!container.has(REFORGE_KEY, PersistentDataType.STRING)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String active = container.get(REFORGE_KEY, PersistentDataType.STRING);
|
||||
|
||||
return Reforges.getByKey(active);
|
||||
|
||||
@@ -32,7 +32,7 @@ gui:
|
||||
|
||||
sound:
|
||||
id: BLOCK_ANVIL_USE
|
||||
pitch: 0.8
|
||||
pitch: 1
|
||||
|
||||
reforge:
|
||||
cost: 5000
|
||||
@@ -40,10 +40,16 @@ reforge:
|
||||
display-in-item-name: true
|
||||
display-in-lore: true
|
||||
|
||||
show-reforgable: true
|
||||
|
||||
reforgable-suffix:
|
||||
- ""
|
||||
- "&8This item can be reforged!"
|
||||
|
||||
lore-suffix:
|
||||
- ""
|
||||
- "&fReforge: %name%"
|
||||
- "&8&o%description"
|
||||
- "%reforge%"
|
||||
- "&7&o%description%"
|
||||
|
||||
targets:
|
||||
melee:
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
# Sharp Reforge
|
||||
#
|
||||
|
||||
name: "&6Sharp"
|
||||
name: "<gradient:#f12711>Sharp</gradient:#f5af19>"
|
||||
enabled: true
|
||||
description: "Deal &a3%&8&o more damage"
|
||||
description: "Deal &a3%&7&o more damage"
|
||||
|
||||
config:
|
||||
multiplier: 1.03 # Damage multiplier
|
||||
Reference in New Issue
Block a user