feat: text blocks and consistent code

This commit is contained in:
aro 2023-01-14 23:45:01 +01:00
parent 4d1b6c0318
commit 61727ecbe8
4 changed files with 38 additions and 31 deletions

View file

@ -14,20 +14,22 @@ import org.bukkit.entity.Player;
public class MainGUI { public class MainGUI {
private final Player player; private final Player player;
private final GUI gui; private final GUI gui;
private final String[] structureIngredients = new String[]{ private final String structure = """
"# # # # # # # # #", # # # # # # # # #
"# % % % % % % % #", # % % % % % % % #
"# % # R S P # % #", # % # R S P # % #
"# % % % % % % % #", # % % % A % % % #
"E A # # # # # # #"}; E # # # # # # # #
""";
public MainGUI(Player player) { public MainGUI(Player player) {
if (!player.hasPermission("nicko.admin") || !player.isOp()) { if (!player.hasPermission("nicko.admin") || !player.isOp()) {
structureIngredients[3] = structureIngredients[3].replace("A", "#"); final String[] rows = structure.split("\n");
rows[3] = rows[3].replace("A", "#");
} }
this.gui = new GUIBuilder<>(GUIType.NORMAL) this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(new Structure(structureIngredients)) .setStructure(new Structure(structure))
.addIngredient('R', new ResetItem()) .addIngredient('R', new ResetItem())
.addIngredient('S', new SkinItem()) .addIngredient('S', new SkinItem())
.addIngredient('P', new SettingsItem()) .addIngredient('P', new SettingsItem())

View file

@ -1,24 +1,26 @@
package net.artelnatif.nicko.gui; package net.artelnatif.nicko.gui.sub;
import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.GUI;
import de.studiocode.invui.gui.builder.GUIBuilder; import de.studiocode.invui.gui.builder.GUIBuilder;
import de.studiocode.invui.gui.builder.guitype.GUIType; import de.studiocode.invui.gui.builder.guitype.GUIType;
import de.studiocode.invui.gui.structure.Structure;
import de.studiocode.invui.window.impl.single.SimpleWindow; import de.studiocode.invui.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.gui.MainGUI;
import net.artelnatif.nicko.gui.items.common.BackItem; import net.artelnatif.nicko.gui.items.common.BackItem;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class AdminPanelGUI { public class AdminPanelGUI {
private final Player player; private final Player player;
private final GUI gui; private final GUI gui;
private final String structure = """
# # # # # # # # #
# % % X X X % % #
B # # # # # # # #
""";
public AdminPanelGUI(Player player) { public AdminPanelGUI(Player player) {
final Structure structure = new Structure("# # # # # # # # #",
"# % % X X X % % #",
"B # # # # # # # #");
structure.addIngredient('B', new BackItem(new MainGUI(player).getGUI()));
this.gui = new GUIBuilder<>(GUIType.NORMAL) this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(structure) .setStructure(structure)
.addIngredient('B', new BackItem(new MainGUI(player).getGUI()))
.build(); .build();
this.player = player; this.player = player;
} }

View file

@ -1,10 +1,11 @@
package net.artelnatif.nicko.gui; package net.artelnatif.nicko.gui.sub;
import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.GUI;
import de.studiocode.invui.gui.builder.GUIBuilder; import de.studiocode.invui.gui.builder.GUIBuilder;
import de.studiocode.invui.gui.builder.guitype.GUIType; import de.studiocode.invui.gui.builder.guitype.GUIType;
import de.studiocode.invui.gui.structure.Structure; import de.studiocode.invui.gui.structure.Structure;
import de.studiocode.invui.window.impl.single.SimpleWindow; import de.studiocode.invui.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.gui.MainGUI;
import net.artelnatif.nicko.gui.items.common.BackItem; import net.artelnatif.nicko.gui.items.common.BackItem;
import net.artelnatif.nicko.gui.items.skin.ChangeNameAndSkinItem; import net.artelnatif.nicko.gui.items.skin.ChangeNameAndSkinItem;
import net.artelnatif.nicko.gui.items.skin.ChangeNameItem; import net.artelnatif.nicko.gui.items.skin.ChangeNameItem;
@ -14,16 +15,17 @@ import org.bukkit.entity.Player;
public class AppearanceGUI { public class AppearanceGUI {
private final Player player; private final Player player;
private final GUI gui; private final GUI gui;
private final String[] structureIngredients = new String[]{ private final String structure = """
"# # # # # # # # #", # # # # # # # # #
"# % % % % % % % #", # % % % % % % % #
"# % # N A S # % #", # % # N A S # % #
"# % % % % % % % #", # % % % % % % % #
"B # # # # # # # #"}; B # # # # # # # #
""";
public AppearanceGUI(Player player) { public AppearanceGUI(Player player) {
this.gui = new GUIBuilder<>(GUIType.NORMAL) this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(new Structure(structureIngredients)) .setStructure(new Structure(structure))
.addIngredient('N', new ChangeNameItem()) .addIngredient('N', new ChangeNameItem())
.addIngredient('A', new ChangeNameAndSkinItem()) .addIngredient('A', new ChangeNameAndSkinItem())
.addIngredient('S', new ChangeSkinItem()) .addIngredient('S', new ChangeSkinItem())

View file

@ -1,10 +1,11 @@
package net.artelnatif.nicko.gui; package net.artelnatif.nicko.gui.sub;
import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.GUI;
import de.studiocode.invui.gui.builder.GUIBuilder; import de.studiocode.invui.gui.builder.GUIBuilder;
import de.studiocode.invui.gui.builder.guitype.GUIType; import de.studiocode.invui.gui.builder.guitype.GUIType;
import de.studiocode.invui.window.impl.single.SimpleWindow; import de.studiocode.invui.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.NickoBukkit;
import net.artelnatif.nicko.gui.MainGUI;
import net.artelnatif.nicko.gui.items.common.BackItem; import net.artelnatif.nicko.gui.items.common.BackItem;
import net.artelnatif.nicko.gui.items.settings.BungeeCordCyclingItem; import net.artelnatif.nicko.gui.items.settings.BungeeCordCyclingItem;
import net.artelnatif.nicko.gui.items.settings.LanguageCyclingItem; import net.artelnatif.nicko.gui.items.settings.LanguageCyclingItem;
@ -13,20 +14,20 @@ import org.bukkit.entity.Player;
public class SettingsGUI { public class SettingsGUI {
private final Player player; private final Player player;
private final GUI gui; private final GUI gui;
private final String structure = """
private final String[] structureIngredients = new String[]{ # # # # # # # # #
"# # # # # # # # #", # % % L # T % % #
"# % % L # T % % #", B # # # # # # # #
"B # # # # # # # #" """;
};
public SettingsGUI(Player player) { public SettingsGUI(Player player) {
if (!NickoBukkit.getInstance().getNickoConfig().isBungeecordSupport()) { if (!NickoBukkit.getInstance().getNickoConfig().isBungeecordSupport()) {
structureIngredients[1] = structureIngredients[1].replace("T", "#"); final String[] rows = structure.split("\n");
rows[1] = rows[1].replace("T", "#");
} }
this.gui = new GUIBuilder<>(GUIType.NORMAL) this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(structureIngredients) .setStructure(structure)
.addIngredient('B', new BackItem(new MainGUI(player).getGUI())) .addIngredient('B', new BackItem(new MainGUI(player).getGUI()))
.addIngredient('L', new LanguageCyclingItem().get(player)) .addIngredient('L', new LanguageCyclingItem().get(player))
.addIngredient('T', new BungeeCordCyclingItem().get(player)) .addIngredient('T', new BungeeCordCyclingItem().get(player))