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:
@@ -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()
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user