From 00245f5bf5b4ad853b68db8e13ab95b2955a2046 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Sat, 15 Oct 2022 19:09:14 +0200 Subject: [PATCH 1/7] Hotfix: GUI Unconditional Delete --- .../src/de/steamwar/schematicsystem/commands/GUI.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java index c2ccbf3..f2874c0 100644 --- a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java +++ b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java @@ -189,9 +189,8 @@ public class GUI { SteamwarUser user = getUser(p); SWInventory inv = new SWInventory(p, 9, SchematicSystem.MESSAGE.parse("GUI_DELETE_OWN_TITLE", p, schem.generateBreadcrumbs(user))); inv.setItem(0, SWItem.getDye(1), (byte) 1, SchematicSystem.MESSAGE.parse("CONFIRM", p), click -> { - schem.delete(); + p.performCommand("schematic delete " + schem.generateBreadcrumbs(user)); - SchematicSystem.MESSAGE.send("GUI_DELETE_OWN_DELETED", p, schem.generateBreadcrumbs(user)); if(back != null) { if(schem.isDir()) { back.reOpenDirUp(); From b0703c393b74f07d05c7451b95e91aee46a40c39 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Wed, 26 Oct 2022 11:41:45 +0200 Subject: [PATCH 2/7] Add Quick item change --- .../src/de/steamwar/schematicsystem/commands/GUI.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java index f2874c0..fff279b 100644 --- a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java +++ b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java @@ -78,8 +78,13 @@ public class GUI { } Material mat = SWItem.getMaterial(node.getItem()); - inv.setItem(node.isDir()?7:5, mat, SchematicSystem.MESSAGE.parse("GUI_INFO_MAT", player, mat.name()), Arrays.asList(SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK", player)), false, click -> { - changeItem(player, node, back); + inv.setItemEvent(node.isDir()?7:5, mat, SchematicSystem.MESSAGE.parse("GUI_INFO_MAT", player, mat.name()), Arrays.asList(SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK", player)), false, event -> { + if(event.getCursor() != null && event.getCursor().getType() != Material.AIR) { + node.setItem(event.getCursor().getType().name()); + info(player, node, back); + } else { + changeItem(player, node, back); + } }); if(!node.isDir()) { inv.setItem(6, node.getSchemtype().getMaterial(), SchematicSystem.MESSAGE.parse("GUI_INFO_TYPE", player, node.getSchemtype().name()), Arrays.asList(SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK", player)), node.getSchemtype().fightType(), click -> { From 1a8c5a0677239d46c499170f6d75c4b20f68cd97 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Wed, 26 Oct 2022 11:47:37 +0200 Subject: [PATCH 3/7] Update Message --- SchematicSystem_Core/src/SchematicSystem.properties | 1 + SchematicSystem_Core/src/SchematicSystem_de.properties | 1 + .../src/de/steamwar/schematicsystem/commands/GUI.java | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/SchematicSystem_Core/src/SchematicSystem.properties b/SchematicSystem_Core/src/SchematicSystem.properties index a792efe..cd6b666 100644 --- a/SchematicSystem_Core/src/SchematicSystem.properties +++ b/SchematicSystem_Core/src/SchematicSystem.properties @@ -3,6 +3,7 @@ ON=§aon OFF=§coff CHANGE=§7To change CLICK=§7Click +CLICK_DRAG_ITEM=§7Click or drag item here CURRENT=§7Current: {0} CONFIRM=§aConfirm CANCEL=§cCancel diff --git a/SchematicSystem_Core/src/SchematicSystem_de.properties b/SchematicSystem_Core/src/SchematicSystem_de.properties index 107636f..9e5bc1e 100644 --- a/SchematicSystem_Core/src/SchematicSystem_de.properties +++ b/SchematicSystem_Core/src/SchematicSystem_de.properties @@ -2,6 +2,7 @@ ON=§aAn OFF=§cAus CHANGE=§7Zum Ändern CLICK=§7anklicken +CLICK_DRAG_ITEM=§7anklicken oder hier hineinlegen CURRENT=§7Aktuell: {0} CONFIRM=§aBestätigen CANCEL=§cAbbrechen diff --git a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java index fff279b..4470dbc 100644 --- a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java +++ b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java @@ -78,7 +78,7 @@ public class GUI { } Material mat = SWItem.getMaterial(node.getItem()); - inv.setItemEvent(node.isDir()?7:5, mat, SchematicSystem.MESSAGE.parse("GUI_INFO_MAT", player, mat.name()), Arrays.asList(SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK", player)), false, event -> { + inv.setItemEvent(node.isDir()?7:5, mat, SchematicSystem.MESSAGE.parse("GUI_INFO_MAT", player, mat.name()), Arrays.asList(SchematicSystem.MESSAGE.parse("CHANGE", player), SchematicSystem.MESSAGE.parse("CLICK_DRAG_ITEM", player)), false, event -> { if(event.getCursor() != null && event.getCursor().getType() != Material.AIR) { node.setItem(event.getCursor().getType().name()); info(player, node, back); From a36658faa5d133c5a50359ea8afbe067f7e3e983 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Wed, 26 Oct 2022 11:49:04 +0200 Subject: [PATCH 4/7] Update Message --- SchematicSystem_Core/src/SchematicSystem_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SchematicSystem_Core/src/SchematicSystem_de.properties b/SchematicSystem_Core/src/SchematicSystem_de.properties index 9e5bc1e..b45a613 100644 --- a/SchematicSystem_Core/src/SchematicSystem_de.properties +++ b/SchematicSystem_Core/src/SchematicSystem_de.properties @@ -2,7 +2,7 @@ ON=§aAn OFF=§cAus CHANGE=§7Zum Ändern CLICK=§7anklicken -CLICK_DRAG_ITEM=§7anklicken oder hier hineinlegen +CLICK_DRAG_ITEM=§7anklicken oder hier Item hineinlegen CURRENT=§7Aktuell: {0} CONFIRM=§aBestätigen CANCEL=§cAbbrechen From 9281c5e56e95a08e8ed824d330277771456be872 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 27 Oct 2022 12:16:40 +0200 Subject: [PATCH 5/7] Some Minor Schem list Changes --- SchematicSystem_Core/src/SchematicSystem.properties | 2 +- .../schematicsystem/commands/SchematicCommandUtils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SchematicSystem_Core/src/SchematicSystem.properties b/SchematicSystem_Core/src/SchematicSystem.properties index cd6b666..1d7598b 100644 --- a/SchematicSystem_Core/src/SchematicSystem.properties +++ b/SchematicSystem_Core/src/SchematicSystem.properties @@ -19,7 +19,7 @@ UTIL_LIST_BACK_HOVER=§eBack {0} UTIL_LIST_DIR=§7§lDIR UTIL_LIST_TYPE=§8§l{0} UTIL_LIST_BASE=§e -UTIL_LIST_FROM=§8Owner §7{0} +UTIL_LIST_FROM=§8From §7{0} UTIL_LIST_OPEN_DIR=§eShow directory UTIL_LIST_OPEN_SCHEM=§eManage schematics UTIL_LIST_REMOVE=[Remove] diff --git a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/SchematicCommandUtils.java b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/SchematicCommandUtils.java index 631e7ee..4bfbe9c 100644 --- a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/SchematicCommandUtils.java +++ b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/SchematicCommandUtils.java @@ -125,7 +125,7 @@ public class SchematicCommandUtils { } else { SchematicType type = node.getSchemtype(); if (type != SchematicType.Normal) { - nodeString.append(SchematicSystem.MESSAGE.parse("UTIL_LIST_TYPE", player, type.name())).append(" "); + nodeString.append(SchematicSystem.MESSAGE.parse("UTIL_LIST_TYPE", player, type.getKuerzel())).append(" "); } } nodeString.append(SchematicSystem.MESSAGE.parse("UTIL_LIST_BASE", player)); From eba2a3e80bad545d8b6377d976ccbfa010bef443 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 27 Oct 2022 12:16:59 +0200 Subject: [PATCH 6/7] smoll --- SchematicSystem_Core/src/SchematicSystem.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SchematicSystem_Core/src/SchematicSystem.properties b/SchematicSystem_Core/src/SchematicSystem.properties index 1d7598b..5ffaa02 100644 --- a/SchematicSystem_Core/src/SchematicSystem.properties +++ b/SchematicSystem_Core/src/SchematicSystem.properties @@ -19,7 +19,7 @@ UTIL_LIST_BACK_HOVER=§eBack {0} UTIL_LIST_DIR=§7§lDIR UTIL_LIST_TYPE=§8§l{0} UTIL_LIST_BASE=§e -UTIL_LIST_FROM=§8From §7{0} +UTIL_LIST_FROM=§8from §7{0} UTIL_LIST_OPEN_DIR=§eShow directory UTIL_LIST_OPEN_SCHEM=§eManage schematics UTIL_LIST_REMOVE=[Remove] From 683e9d57fa9747d41b796cefeef822cd486b5f82 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Fri, 28 Oct 2022 12:11:54 +0200 Subject: [PATCH 7/7] smoll --- .../schematicsystem/commands/GUI.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java index 4470dbc..2984f9d 100644 --- a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java +++ b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/GUI.java @@ -19,15 +19,18 @@ package de.steamwar.schematicsystem.commands; +import de.steamwar.core.Core; import de.steamwar.inventory.*; import de.steamwar.schematicsystem.SafeSchematicNode; import de.steamwar.schematicsystem.SchematicSystem; import de.steamwar.sql.*; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; import static de.steamwar.schematicsystem.commands.SchematicCommandUtils.*; @@ -51,12 +54,30 @@ public class GUI { }); } } + + @Override + public AnvilInvCloseAction onAnvilInvCloseAction(SchematicSelector selector) { + return AnvilInvCloseAction.REOPEN; + } }, node -> {}); selector.setCallback(node -> info(player, node, selector)); selector.setSingleDirOpen(false); selector.open(); } + private static void setCloseLeftCallback(SWAnvilInv inv, Runnable action) { + AtomicBoolean left = new AtomicBoolean(false); + inv.addCloseCallback(() -> { + if(!left.get()) { + Bukkit.getScheduler().runTaskLater(SchematicSystem.getInstance(), action, 1); + } + }); + inv.addLeftCallback(() -> { + left.set(true); + action.run(); + }); + } + private static void info(Player player, SchematicNode node, SchematicSelector back) { SteamwarUser user = getUser(player); SWInventory inv = new SWInventory(player, 9 * 2, node.generateBreadcrumbs(user)); @@ -134,7 +155,7 @@ public class GUI { }); inv.setItem(16, Material.NAME_TAG, SchematicSystem.MESSAGE.parse("GUI_INFO_RENAME", player), clickType -> { SWAnvilInv anvilInv = new SWAnvilInv(player, SchematicSystem.MESSAGE.parse("GUI_INFO_RENAME_TITLE", player, node.getName()), node.getName()); - anvilInv.setItem(mat); + anvilInv.setItem(mat, Collections.singletonList(Core.MESSAGE.parse("SCHEM_SELECTOR_CLICK_BACK", player)), false); anvilInv.setCallback(s -> { SafeSchematicNode.Result result = SafeSchematicNode.setName(user, node, s); if(result.isSuccessful()) { @@ -143,6 +164,7 @@ public class GUI { result.sendError(player); } }); + setCloseLeftCallback(anvilInv, () -> info(player, node, back)); anvilInv.open(); }); inv.setItem(17, SWItem.getDye(1), (byte) 1, SchematicSystem.MESSAGE.parse("GUI_INFO_DELETE", player), click -> {