Skip to content

Commit ab1072d

Browse files
Add global GUI changer
1 parent 9fe16f7 commit ab1072d

2 files changed

Lines changed: 22 additions & 20 deletions

File tree

src/main/java/io/github/apickledwalrus/skriptgui/elements/expressions/ExprGUIWithId.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@
44
import io.github.apickledwalrus.skriptgui.gui.GUIManager;
55
import org.bukkit.event.Event;
66

7-
import ch.njol.skript.classes.Changer.ChangeMode;
87
import ch.njol.skript.doc.Description;
98
import ch.njol.skript.doc.Name;
109
import ch.njol.skript.doc.Since;
1110
import ch.njol.skript.lang.Expression;
1211
import ch.njol.skript.lang.SkriptParser.ParseResult;
1312
import ch.njol.skript.lang.util.SimpleExpression;
1413
import ch.njol.util.Kleenean;
15-
import ch.njol.util.coll.CollectionUtils;
1614
import io.github.apickledwalrus.skriptgui.SkriptGUI;
1715
import io.github.apickledwalrus.skriptgui.gui.GUI;
1816
import org.jetbrains.annotations.Nullable;
@@ -55,24 +53,6 @@ protected GUI[] get(Event event) {
5553
.toArray(GUI[]::new);
5654
}
5755

58-
@Override
59-
public Class<?> @Nullable [] acceptChange(ChangeMode mode) {
60-
if (mode == ChangeMode.DELETE) {
61-
return CollectionUtils.array();
62-
}
63-
return null;
64-
}
65-
66-
@Override
67-
public void change(Event event, Object @Nullable [] delta, ChangeMode mode) {
68-
for (String id : ids.getArray(event)) {
69-
GUI gui = SkriptGUI.getGUIManager().getGUI(id);
70-
if (gui != null) {
71-
gui.setID(null);
72-
}
73-
}
74-
}
75-
7656
@Override
7757
public boolean isSingle() {
7858
return ids.isSingle();

src/main/java/io/github/apickledwalrus/skriptgui/types/GUIClassInfo.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package io.github.apickledwalrus.skriptgui.types;
22

3+
import ch.njol.skript.classes.Changer;
34
import ch.njol.skript.classes.Changer.ChangeMode;
45
import ch.njol.skript.classes.ClassInfo;
56
import ch.njol.skript.classes.Parser;
67
import ch.njol.skript.lang.ParseContext;
78
import ch.njol.skript.registrations.Classes;
9+
import ch.njol.util.coll.CollectionUtils;
810
import io.github.apickledwalrus.skriptgui.gui.GUI;
911
import net.kyori.adventure.text.Component;
1012
import org.jetbrains.annotations.NotNull;
@@ -24,6 +26,7 @@ public GUIClassInfo(SkriptAddon source) {
2426
.examples("See the GUI creation section.")
2527
.since("1.0.0")
2628
.parser(new GUIParser())
29+
.changer(new GUIChanger())
2730
.property(Property.NAME,
2831
"A GUI's name. Can be set, cleared, or reset.",
2932
source,
@@ -56,6 +59,25 @@ public String toVariableNameString(GUI gui) {
5659

5760
}
5861

62+
private static final class GUIChanger implements Changer<GUI> {
63+
64+
@Override
65+
public Class<?> @Nullable [] acceptChange(ChangeMode mode) {
66+
if (mode == ChangeMode.DELETE) {
67+
return CollectionUtils.array();
68+
}
69+
return null;
70+
}
71+
72+
@Override
73+
public void change(GUI[] guis, Object @Nullable [] delta, ChangeMode mode) {
74+
for (GUI gui : guis) {
75+
gui.setID(null);
76+
}
77+
}
78+
79+
}
80+
5981
private static final class GUINameHandler implements ExpressionPropertyHandler<GUI, Component> {
6082

6183
@Override

0 commit comments

Comments
 (0)