Finish global gui for group config.

This commit is contained in:
alexcrea 2024-04-18 16:59:11 +02:00
parent 2c6349735b
commit d5b7e5dbfd
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
7 changed files with 56 additions and 27 deletions

View file

@ -6,6 +6,7 @@ import com.github.stefvanschie.inventoryframework.pane.PatternPane;
import com.github.stefvanschie.inventoryframework.pane.util.Pattern;
import io.delilaheve.CustomAnvil;
import org.bukkit.Material;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import xyz.alexcrea.cuanvil.gui.config.global.*;
@ -83,12 +84,14 @@ public class MainConfigGui extends ChestGui {
pane.bindItem('4', enchantConflictItem);
// Group config items
ItemStack wipItemstack = new ItemStack(Material.BARRIER);
ItemMeta wipMeta = wipItemstack.getItemMeta();
wipMeta.setDisplayName("\u00A7cWIP");
wipItemstack.setItemMeta(wipMeta);
ItemStack groupItemstack = new ItemStack(Material.CHEST);
GuiItem groupConfigItem = GuiGlobalItems.goToGuiItem(wipItemstack, GroupConfigGui.INSTANCE);
ItemMeta groupMeta = groupItemstack.getItemMeta();
groupMeta.setDisplayName("\u00A7aMaterial Groups");
groupMeta.setLore(Collections.singletonList("\u00A77Click here to open material group menu"));
groupItemstack.setItemMeta(groupMeta);
GuiItem groupConfigItem = GuiGlobalItems.goToGuiItem(groupItemstack, GroupConfigGui.INSTANCE);
pane.bindItem('5', groupConfigItem);

View file

@ -2,6 +2,7 @@ package xyz.alexcrea.cuanvil.gui.config.global;
import com.github.stefvanschie.inventoryframework.gui.GuiItem;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import xyz.alexcrea.cuanvil.config.ConfigHolder;
@ -58,6 +59,7 @@ public class EnchantConflictGui extends MappedGuiListConfigGui<EnchantConflictGr
ItemMeta meta = item.getItemMeta();
meta.addItemFlags(ItemFlag.values());
meta.setDisplayName("\u00A7e" + CasedStringUtil.snakeToUpperSpacedCase(conflict.toString()) + " \u00A7fConflict");
meta.setLore(Arrays.asList(
"\u00A77Enchantment count: \u00A7e" + conflict.getEnchants().size(),

View file

@ -1,19 +1,24 @@
package xyz.alexcrea.cuanvil.gui.config.global;
import com.github.stefvanschie.inventoryframework.gui.GuiItem;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.group.AbstractMaterialGroup;
import xyz.alexcrea.cuanvil.group.GroupType;
import xyz.alexcrea.cuanvil.group.IncludeGroup;
import xyz.alexcrea.cuanvil.group.ItemGroupManager;
import xyz.alexcrea.cuanvil.gui.config.list.MappedGuiListConfigGui;
import xyz.alexcrea.cuanvil.gui.config.list.elements.ConflictSubSettingGui;
import xyz.alexcrea.cuanvil.gui.config.list.elements.GroupConfigSubSettingGui;
import xyz.alexcrea.cuanvil.util.CasedStringUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class GroupConfigGui extends MappedGuiListConfigGui<AbstractMaterialGroup, ConflictSubSettingGui> {
public class GroupConfigGui extends MappedGuiListConfigGui<AbstractMaterialGroup, GroupConfigSubSettingGui> {
public final static GroupConfigGui INSTANCE = new GroupConfigGui();
@ -30,7 +35,13 @@ public class GroupConfigGui extends MappedGuiListConfigGui<AbstractMaterialGroup
ItemStack item = new ItemStack(group.getRepresentativeMaterial());
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(group.getName());
meta.addItemFlags(ItemFlag.values());
meta.setDisplayName("\u00A7e" + CasedStringUtil.snakeToUpperSpacedCase(group.getName())+ " \u00A7rGroup");
meta.setLore(Arrays.asList(
"\u00A77Number of selected groups : " + group.getGroups().size(),
"\u00A77Number of selected material: " + group.getNonGroupInheritedMaterials().size(),
"",
"\u00A77Total number of included material "+group.getMaterials().size()));
item.setItemMeta(meta);
return item;
@ -49,8 +60,8 @@ public class GroupConfigGui extends MappedGuiListConfigGui<AbstractMaterialGroup
}
@Override
protected ConflictSubSettingGui newInstanceOfGui(AbstractMaterialGroup group, GuiItem item) {
return new ConflictSubSettingGui(this, group, item);
protected GroupConfigSubSettingGui newInstanceOfGui(AbstractMaterialGroup group, GuiItem item) {
return new GroupConfigSubSettingGui(this, group, item);
}
@Override
@ -60,8 +71,13 @@ public class GroupConfigGui extends MappedGuiListConfigGui<AbstractMaterialGroup
@Override
protected AbstractMaterialGroup createAndSaveNewEmptyGeneric(String name) {
ItemGroupManager manager = ConfigHolder.ITEM_GROUP_HOLDER.getItemGroupsManager();
if(manager.getGroupMap().containsKey(name)) return null;
return null;
ConfigurationSection config = ConfigHolder.ITEM_GROUP_HOLDER.getConfig();
config.set(name+"."+ItemGroupManager.GROUP_TYPE_PATH, GroupType.INCLUDE.getGroupID());
return manager.createGroup(config, name);
}
}

View file

@ -81,7 +81,10 @@ public abstract class MappedGuiListConfigGui< T, S extends ElementMappedToListGu
}
T generic = createAndSaveNewEmptyGeneric(message);
if(generic == null) return;// we don't know what to do
if(generic == null) {// we don't know what to do. so we back up by opening this gui.
this.show(player);
return;
}
updateValueForGeneric(generic, true);

View file

@ -1,7 +1,6 @@
package xyz.alexcrea.cuanvil.gui.config.list.elements;
import com.github.stefvanschie.inventoryframework.gui.GuiItem;
import com.github.stefvanschie.inventoryframework.gui.type.util.Gui;
import com.github.stefvanschie.inventoryframework.pane.PatternPane;
import com.github.stefvanschie.inventoryframework.pane.util.Pattern;
import io.delilaheve.CustomAnvil;
@ -20,20 +19,19 @@ import xyz.alexcrea.cuanvil.gui.config.global.GroupConfigGui;
import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions;
import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems;
import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant;
import xyz.alexcrea.cuanvil.recipe.CustomAnvilRecipeManager;
import xyz.alexcrea.cuanvil.util.CasedStringUtil;
import java.util.Collections;
import java.util.function.Consumer;
import java.util.function.Supplier;
public class ConflictSubSettingGui extends MappedToListSubSettingGui {
public class GroupConfigSubSettingGui extends MappedToListSubSettingGui {
private final GroupConfigGui parent;
private final AbstractMaterialGroup group;
private final PatternPane pane;
public ConflictSubSettingGui(
public GroupConfigSubSettingGui(
@NotNull GroupConfigGui parent,
@NotNull AbstractMaterialGroup group,
@NotNull GuiItem item) {