9
0
mirror of https://github.com/Auxilor/Reforges.git synced 2025-12-29 11:59:21 +00:00

Even more backend

This commit is contained in:
Auxilor
2021-08-12 15:30:33 +01:00
parent 68e875b985
commit bf66898bb2
3 changed files with 67 additions and 6 deletions

View File

@@ -7,6 +7,7 @@ import com.willfp.eco.core.gui.slot.FillerMask;
import com.willfp.eco.core.gui.slot.Slot;
import com.willfp.eco.core.items.builder.ItemStackBuilder;
import com.willfp.reforges.ReforgesPlugin;
import com.willfp.reforges.reforges.meta.ReforgeTarget;
import lombok.Getter;
import lombok.experimental.UtilityClass;
import org.bukkit.Material;
@@ -15,6 +16,8 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
@UtilityClass
public class ReforgeGUI {
/**
@@ -28,6 +31,7 @@ public class ReforgeGUI {
*
* @param plugin The plugin.
*/
@SuppressWarnings("checkstyle:MissingSwitchDefault")
@ConfigUpdater
public static void update(@NotNull final EcoPlugin plugin) {
menu = Menu.builder(5)
@@ -70,13 +74,42 @@ public class ReforgeGUI {
return;
}
if (menu.getCaptiveItems(player).isEmpty()) {
meta.setDisplayName(plugin.getConfigYml().getString("gui.no-item.name"));
meta.setLore(plugin.getConfigYml().getStrings("gui.no-item.lore"));
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 {
meta.setDisplayName(plugin.getConfigYml().getString("gui.available.name"));
meta.setLore(plugin.getConfigYml().getStrings("gui.available.lore"));
target = ReforgeTarget.getForMaterial(toReforge.getType());
if (target == null) {
status = ReforgeStatus.INVALID_ITEM;
}
}
if (target != null) {
status = ReforgeStatus.ALLOW;
}
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"));
meta.setLore(plugin.getConfigYml().getStrings("gui.invalid-item.lore"));
}
case ALLOW -> {
previous.setType(Objects.requireNonNull(Material.getMaterial(plugin.getConfigYml().getString("gui.allow.material").toUpperCase())));
meta.setDisplayName(plugin.getConfigYml().getString("gui.allow.name"));
meta.setLore(plugin.getConfigYml().getStrings("gui.allow.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"));
meta.setLore(plugin.getConfigYml().getStrings("gui.no-item.lore"));
}
}
previous.setItemMeta(meta);
})
.onLeftClick((event, slot, menu) -> {
@@ -85,6 +118,9 @@ public class ReforgeGUI {
if (toReforge == null) {
return;
}
player.sendMessage("reforged");
}).build()
)

View File

@@ -0,0 +1,18 @@
package com.willfp.reforges.gui;
public enum ReforgeStatus {
/**
* Allow the reforge.
*/
ALLOW,
/**
* Invalid item to reforge.
*/
INVALID_ITEM,
/**
* No item at all.
*/
NO_ITEM
}

View File

@@ -4,7 +4,8 @@
#
gui:
available:
allow:
material: anvil
name: "&aReforge Item"
lore:
- '&7Reforges the above item, giving'
@@ -16,12 +17,18 @@ gui:
- ''
- '&eClick to reforge!'
no-item:
material: anvil
name: "&eReforge Item"
lore:
- '&7Place an item above to reforge'
- '&7it! Reforging items adds a'
- '&7random modifier to the item that'
- '&7grants stat boosts'
invalid-item:
material: barrier
name: "&cError!"
lore:
- '&7You cannot reforge this item!'
reforge:
cost: 5000