Skip to content

Commit 2316b29

Browse files
Require Java 17/Skript 2.10
1 parent 522a303 commit 2316b29

File tree

11 files changed

+196
-216
lines changed

11 files changed

+196
-216
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ compileJava.options.encoding = 'UTF-8'
1111

1212
java {
1313
toolchain {
14-
languageVersion.set(JavaLanguageVersion.of(8))
14+
languageVersion.set(JavaLanguageVersion.of(17))
1515
}
1616
}
1717

@@ -25,8 +25,8 @@ repositories {
2525
dependencies {
2626
implementation group: 'org.jetbrains', name: 'annotations', version: '26.0.1'
2727
implementation group: 'com.google.code.findbugs', name: 'findbugs', version: '3.0.1'
28-
implementation group: 'com.destroystokyo.paper', name: 'paper-api', version: '1.16.4-R0.1-SNAPSHOT'
29-
implementation (group: 'com.github.SkriptLang', name: 'Skript', version: '2.7.3') {
28+
implementation group: 'io.papermc.paper', name: 'paper-api', version: '1.19.4-R0.1-SNAPSHOT'
29+
implementation (group: 'com.github.SkriptLang', name: 'Skript', version: '2.10.1') {
3030
transitive = false
3131
}
3232
}

src/main/java/io/github/apickledwalrus/skriptgui/SkriptClasses.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public SkriptClasses() {
2020
.description("Represents a skript-gui GUI")
2121
.examples("See the GUI creation section.")
2222
.since("1.0")
23-
.parser(new Parser<GUI>() {
23+
.parser(new Parser<>() {
2424
@Override
2525
public boolean canParse(ParseContext ctx) {
2626
return false;
@@ -49,7 +49,7 @@ public String toVariableNameString(GUI gui) {
4949
.description("Represents the slot type in an Inventory Click Event.")
5050
.examples(slotTypes.getAllNames())
5151
.since("1.0.0")
52-
.parser(new Parser<SlotType>() {
52+
.parser(new Parser<>() {
5353
@Override
5454
public @Nullable SlotType parse(String expr, ParseContext context) {
5555
return slotTypes.parse(expr);

src/main/java/io/github/apickledwalrus/skriptgui/SkriptGUI.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class SkriptGUI extends JavaPlugin {
2020
@Override
2121
public void onEnable() {
2222
Plugin skript = getServer().getPluginManager().getPlugin("Skript");
23-
Version minimumSupportedVersion = new Version(2, 7, 3);
23+
Version minimumSupportedVersion = new Version(2, 10, 1);
2424
if (skript == null) {
2525
// Skript doesn't exist within the server plugins folder
2626
getLogger().severe("Could not find Skript! Make sure you have it installed. Disabling...");

src/main/java/io/github/apickledwalrus/skriptgui/SkriptUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public static boolean isSection(Class<? extends Section>... sections) {
1212
ParserInstance parser = ParserInstance.get();
1313
Structure current = parser.getCurrentStructure();
1414
return parser.isCurrentSection(sections)
15-
|| (current instanceof SectionSkriptEvent && ((SectionSkriptEvent) current).isSection(sections));
15+
|| (current instanceof SectionSkriptEvent sectionSkriptEvent && sectionSkriptEvent.isSection(sections));
1616
}
1717

1818
}

src/main/java/io/github/apickledwalrus/skriptgui/elements/effects/EffCancelGUIClose.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import ch.njol.skript.doc.Since;
88
import ch.njol.skript.lang.Effect;
99
import ch.njol.skript.lang.Expression;
10-
import ch.njol.skript.lang.SectionSkriptEvent;
1110
import ch.njol.skript.lang.SkriptParser.ParseResult;
1211
import ch.njol.skript.lang.parser.ParserInstance;
1312
import ch.njol.util.Kleenean;

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

Lines changed: 34 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -49,39 +49,26 @@ public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelaye
4949
@Override
5050
@Nullable
5151
public Object convert(GUI gui) {
52-
switch (property) {
53-
case NAME:
54-
return gui.getName();
55-
case ROWS:
56-
return gui.getInventory().getSize() / 9; // We return rows
57-
case SHAPE:
58-
return gui.getRawShape();
59-
case LOCK_STATUS:
60-
return !gui.isRemovable(); // Not removable = locked
61-
default:
62-
return null;
63-
}
52+
return switch (property) {
53+
case NAME -> gui.getName();
54+
case ROWS -> gui.getInventory().getSize() / 9; // We return rows
55+
case SHAPE -> gui.getRawShape();
56+
case LOCK_STATUS -> !gui.isRemovable(); // Not removable = locked
57+
};
6458
}
6559

6660
@Override
6761
@Nullable
6862
public Class<?>[] acceptChange(ChangeMode mode) {
69-
switch (mode) {
70-
case SET:
71-
case RESET:
72-
switch (property) {
73-
case NAME:
74-
return CollectionUtils.array(String.class);
75-
case ROWS:
76-
return CollectionUtils.array(Number.class);
77-
case SHAPE:
78-
return CollectionUtils.array(String[].class);
79-
case LOCK_STATUS:
80-
return CollectionUtils.array(Boolean.class);
81-
}
82-
default:
83-
return null;
84-
}
63+
return switch (mode) {
64+
case SET, RESET -> switch (property) {
65+
case NAME -> CollectionUtils.array(String.class);
66+
case ROWS -> CollectionUtils.array(Number.class);
67+
case SHAPE -> CollectionUtils.array(String[].class);
68+
case LOCK_STATUS -> CollectionUtils.array(Boolean.class);
69+
};
70+
default -> null;
71+
};
8572
}
8673

8774
@Override
@@ -92,25 +79,25 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) {
9279
}
9380

9481
switch (property) {
95-
case NAME:
82+
case NAME -> {
9683
String name;
9784
if (delta == null) {
9885
name = gui.getInventory().getType().getDefaultTitle();
9986
} else {
10087
name = (String) delta[0];
10188
}
10289
gui.setName(name);
103-
break;
104-
case ROWS:
90+
}
91+
case ROWS -> {
10592
int size;
10693
if (delta == null) {
10794
size = gui.getInventory().getType().getDefaultSize();
10895
} else {
10996
size = ((Number) delta[0]).intValue() * 9;
11097
}
11198
gui.setSize(size);
112-
break;
113-
case SHAPE:
99+
}
100+
case SHAPE -> {
114101
if (delta == null) {
115102
gui.resetShape();
116103
break;
@@ -123,46 +110,34 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) {
123110
newShape[i] = (String) delta[i];
124111
}
125112
gui.setShape(newShape);
126-
break;
127-
case LOCK_STATUS:
113+
}
114+
case LOCK_STATUS -> {
128115
boolean value = false;
129116
if (delta != null) {
130117
value = (boolean) delta[0];
131118
}
132119
gui.setRemovable(value);
133-
break;
120+
}
134121
}
135122
}
136123

137124
@Override
138125
public Class<?> getReturnType() {
139-
switch (property) {
140-
case NAME:
141-
case SHAPE:
142-
return String.class;
143-
case ROWS:
144-
return Number.class;
145-
case LOCK_STATUS:
146-
return Boolean.class;
147-
default:
148-
throw new IllegalArgumentException("Unknown property: " + property);
149-
}
126+
return switch (property) {
127+
case NAME, SHAPE -> String.class;
128+
case ROWS -> Number.class;
129+
case LOCK_STATUS -> Boolean.class;
130+
};
150131
}
151132

152133
@Override
153134
protected String getPropertyName() {
154-
switch (property) {
155-
case NAME:
156-
return "name";
157-
case ROWS:
158-
return "size";
159-
case SHAPE:
160-
return "shape";
161-
case LOCK_STATUS:
162-
return "lock status";
163-
default:
164-
throw new IllegalArgumentException("Unknown property: " + property);
165-
}
135+
return switch (property) {
136+
case NAME -> "name";
137+
case ROWS -> "size";
138+
case SHAPE -> "shape";
139+
case LOCK_STATUS -> "lock status";
140+
};
166141
}
167142

168143
}

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

Lines changed: 46 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelaye
9494
value = Value.values()[matchedPattern];
9595
openClose = SkriptUtils.isSection(SecGUIOpenClose.class);
9696

97-
if (openClose && matchedPattern != 3 && matchedPattern != 9 && matchedPattern != 10 && matchedPattern != 12) {
97+
if (openClose && value != Value.GUI && value != Value.INVENTORY && value != Value.PLAYER && value != Value.VIEWERS) {
9898
Skript.error("You can't use '" + parseResult.expr + "' in a GUI open/close section.");
9999
return false;
100100
}
@@ -113,54 +113,47 @@ protected Object[] get(Event event) {
113113

114114
if (openClose) {
115115
InventoryEvent inventoryEvent = (InventoryEvent) event;
116-
switch (value) {
117-
case INVENTORY:
118-
return new Inventory[]{inventoryEvent.getInventory()};
119-
case PLAYER:
116+
return switch (value) {
117+
case INVENTORY -> new Inventory[]{inventoryEvent.getInventory()};
118+
case PLAYER -> {
120119
if (inventoryEvent instanceof InventoryCloseEvent) {
121-
return new HumanEntity[]{((InventoryCloseEvent) event).getPlayer()};
120+
yield new HumanEntity[]{((InventoryCloseEvent) event).getPlayer()};
122121
}
123-
return new HumanEntity[]{((InventoryOpenEvent) inventoryEvent).getPlayer()};
124-
case VIEWERS:
125-
return (inventoryEvent.getViewers().toArray(new HumanEntity[0]));
126-
default:
127-
throw new IllegalStateException("Unexpected value: " + value);
128-
}
122+
yield new HumanEntity[]{((InventoryOpenEvent) inventoryEvent).getPlayer()};
123+
}
124+
case VIEWERS -> (inventoryEvent.getViewers().toArray(new HumanEntity[0]));
125+
default -> throw new IllegalStateException("Unexpected value: " + value);
126+
};
129127
}
130128

131129
InventoryClickEvent clickEvent = (InventoryClickEvent) event;
132-
switch (value) {
133-
case SLOT:
134-
return new Number[]{clickEvent.getSlot()};
135-
case RAW_SLOT:
136-
return new Number[]{clickEvent.getRawSlot()};
137-
case HOTBAR_SLOT:
138-
return new Number[]{clickEvent.getHotbarButton()};
139-
case INVENTORY:
130+
return switch (value) {
131+
case SLOT -> new Number[]{clickEvent.getSlot()};
132+
case RAW_SLOT -> new Number[]{clickEvent.getRawSlot()};
133+
case HOTBAR_SLOT -> new Number[]{clickEvent.getHotbarButton()};
134+
case INVENTORY -> {
140135
Inventory clicked = clickEvent.getClickedInventory();
141-
return clicked != null ? new Inventory[]{clicked} : new Inventory[0];
142-
case INVENTORY_ACTION:
143-
return new InventoryAction[]{clickEvent.getAction()};
144-
case CLICK_TYPE:
145-
return new ClickType[]{clickEvent.getClick()};
146-
case CURSOR_ITEM:
136+
yield clicked != null ? new Inventory[]{clicked} : new Inventory[0];
137+
}
138+
case INVENTORY_ACTION -> new InventoryAction[]{clickEvent.getAction()};
139+
case CLICK_TYPE -> new ClickType[]{clickEvent.getClick()};
140+
case CURSOR_ITEM -> {
147141
ItemStack cursor = clickEvent.getCursor();
148-
return cursor != null ? new ItemType[]{new ItemType(cursor)} : new ItemType[0];
149-
case CLICKED_ITEM:
142+
yield cursor != null ? new ItemType[]{new ItemType(cursor)} : new ItemType[0];
143+
}
144+
case CLICKED_ITEM -> {
150145
ItemStack currentItem = clickEvent.getCurrentItem();
151-
return currentItem != null ? new ItemType[]{new ItemType(currentItem)} : new ItemType[0];
152-
case SLOT_TYPE:
153-
return new SlotType[]{clickEvent.getSlotType()};
154-
case PLAYER:
155-
return new HumanEntity[]{clickEvent.getWhoClicked()};
156-
case VIEWERS:
157-
return clickEvent.getViewers().toArray(new HumanEntity[0]);
158-
case SLOT_ID:
146+
yield currentItem != null ? new ItemType[]{new ItemType(currentItem)} : new ItemType[0];
147+
}
148+
case SLOT_TYPE -> new SlotType[]{clickEvent.getSlotType()};
149+
case PLAYER -> new HumanEntity[]{clickEvent.getWhoClicked()};
150+
case VIEWERS -> clickEvent.getViewers().toArray(new HumanEntity[0]);
151+
case SLOT_ID -> {
159152
GUI gui = SkriptGUI.getGUIManager().getGUI(event);
160-
return gui != null ? new String[]{String.valueOf(gui.convert(clickEvent.getSlot()))} : new GUI[0];
161-
default:
162-
throw new IllegalStateException("Unexpected value: " + value);
163-
}
153+
yield gui != null ? new String[]{String.valueOf(gui.convert(clickEvent.getSlot()))} : new GUI[0];
154+
}
155+
default -> throw new IllegalStateException("Unexpected value: " + value);
156+
};
164157
}
165158

166159
@Override
@@ -181,10 +174,10 @@ public Class<?>[] acceptChange(ChangeMode mode) {
181174

182175
@Override
183176
public void change(Event event, Object @Nullable [] delta, ChangeMode mode) {
184-
if (delta == null || !(event instanceof InventoryClickEvent)) {
177+
if (delta == null || !(event instanceof InventoryClickEvent inventoryClickEvent)) {
185178
return;
186179
}
187-
((InventoryClickEvent) event).setCurrentItem(((ItemType) delta[0]).getRandom());
180+
inventoryClickEvent.setCurrentItem(((ItemType) delta[0]).getRandom());
188181
}
189182

190183
@Override
@@ -194,32 +187,17 @@ public boolean isSingle() {
194187

195188
@Override
196189
public Class<?> getReturnType() {
197-
switch (value) {
198-
case SLOT:
199-
case RAW_SLOT:
200-
case HOTBAR_SLOT:
201-
return Number.class;
202-
case INVENTORY:
203-
return Inventory.class;
204-
case INVENTORY_ACTION:
205-
return InventoryAction.class;
206-
case CLICK_TYPE:
207-
return ClickType.class;
208-
case CURSOR_ITEM:
209-
case CLICKED_ITEM:
210-
return ItemType.class;
211-
case SLOT_TYPE:
212-
return SlotType.class;
213-
case PLAYER:
214-
case VIEWERS:
215-
return HumanEntity.class;
216-
case SLOT_ID:
217-
return String.class;
218-
case GUI:
219-
return GUI.class;
220-
default:
221-
throw new IllegalStateException("Unknown value " + value);
222-
}
190+
return switch (value) {
191+
case SLOT, RAW_SLOT, HOTBAR_SLOT -> Number.class;
192+
case INVENTORY -> Inventory.class;
193+
case INVENTORY_ACTION -> InventoryAction.class;
194+
case CLICK_TYPE -> ClickType.class;
195+
case CURSOR_ITEM, CLICKED_ITEM -> ItemType.class;
196+
case SLOT_TYPE -> SlotType.class;
197+
case PLAYER, VIEWERS -> HumanEntity.class;
198+
case SLOT_ID -> String.class;
199+
case GUI -> GUI.class;
200+
};
223201
}
224202

225203
@Override

0 commit comments

Comments
 (0)