9
0
mirror of https://github.com/Auxilor/Reforges.git synced 2026-01-06 15:51:32 +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.gui.slot.Slot;
import com.willfp.eco.core.items.builder.ItemStackBuilder; import com.willfp.eco.core.items.builder.ItemStackBuilder;
import com.willfp.reforges.ReforgesPlugin; import com.willfp.reforges.ReforgesPlugin;
import com.willfp.reforges.reforges.meta.ReforgeTarget;
import lombok.Getter; import lombok.Getter;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
import org.bukkit.Material; import org.bukkit.Material;
@@ -15,6 +16,8 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.Objects;
@UtilityClass @UtilityClass
public class ReforgeGUI { public class ReforgeGUI {
/** /**
@@ -28,6 +31,7 @@ public class ReforgeGUI {
* *
* @param plugin The plugin. * @param plugin The plugin.
*/ */
@SuppressWarnings("checkstyle:MissingSwitchDefault")
@ConfigUpdater @ConfigUpdater
public static void update(@NotNull final EcoPlugin plugin) { public static void update(@NotNull final EcoPlugin plugin) {
menu = Menu.builder(5) menu = Menu.builder(5)
@@ -70,13 +74,42 @@ public class ReforgeGUI {
return; return;
} }
if (menu.getCaptiveItems(player).isEmpty()) { ItemStack toReforge = menu.getCaptiveItems(player).isEmpty() ? null : menu.getCaptiveItems(player).get(0);
meta.setDisplayName(plugin.getConfigYml().getString("gui.no-item.name")); ReforgeStatus status = null;
meta.setLore(plugin.getConfigYml().getStrings("gui.no-item.lore"));
ReforgeTarget target = null;
if (toReforge == null) {
status = ReforgeStatus.NO_ITEM;
} else { } else {
meta.setDisplayName(plugin.getConfigYml().getString("gui.available.name")); target = ReforgeTarget.getForMaterial(toReforge.getType());
meta.setLore(plugin.getConfigYml().getStrings("gui.available.lore")); 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); previous.setItemMeta(meta);
}) })
.onLeftClick((event, slot, menu) -> { .onLeftClick((event, slot, menu) -> {
@@ -85,6 +118,9 @@ public class ReforgeGUI {
if (toReforge == null) { if (toReforge == null) {
return; return;
} }
player.sendMessage("reforged"); player.sendMessage("reforged");
}).build() }).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: gui:
available: allow:
material: anvil
name: "&aReforge Item" name: "&aReforge Item"
lore: lore:
- '&7Reforges the above item, giving' - '&7Reforges the above item, giving'
@@ -16,12 +17,18 @@ gui:
- '' - ''
- '&eClick to reforge!' - '&eClick to reforge!'
no-item: no-item:
material: anvil
name: "&eReforge Item" name: "&eReforge Item"
lore: lore:
- '&7Place an item above to reforge' - '&7Place an item above to reforge'
- '&7it! Reforging items adds a' - '&7it! Reforging items adds a'
- '&7random modifier to the item that' - '&7random modifier to the item that'
- '&7grants stat boosts' - '&7grants stat boosts'
invalid-item:
material: barrier
name: "&cError!"
lore:
- '&7You cannot reforge this item!'
reforge: reforge:
cost: 5000 cost: 5000