Skip to content

Commit 3042582

Browse files
EvtVaultDisplayItem (SkriptLang#7745)
* Initial Commit * Update EvtVaultDisplayItemTest.sk * Update EvtVaultDisplayItemTest.java * Requested Changes ---------
1 parent f90a607 commit 3042582

4 files changed

Lines changed: 96 additions & 0 deletions

File tree

src/main/java/ch/njol/skript/classes/data/BukkitEventValues.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,21 @@ else if (hand == EquipmentSlot.OFF_HAND)
764764
EventValues.registerEventValue(WorldBorderCenterChangeEvent.class, Location.class, WorldBorderCenterChangeEvent::getNewCenter);
765765
EventValues.registerEventValue(WorldBorderCenterChangeEvent.class, Location.class, WorldBorderCenterChangeEvent::getOldCenter, EventValues.TIME_PAST);
766766
}
767+
768+
if (Skript.classExists("org.bukkit.event.block.VaultDisplayItemEvent")) {
769+
EventValues.registerEventValue(VaultDisplayItemEvent.class, ItemStack.class, new EventConverter<>() {
770+
@Override
771+
public void set(VaultDisplayItemEvent event, @Nullable ItemStack itemStack) {
772+
event.setDisplayItem(itemStack);
773+
}
774+
775+
@Override
776+
public @Nullable ItemStack convert(VaultDisplayItemEvent event) {
777+
return event.getDisplayItem();
778+
}
779+
});
780+
}
781+
767782
}
768783

769784
}

src/main/java/ch/njol/skript/events/SimpleEvents.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -772,6 +772,20 @@ public class SimpleEvents {
772772
)
773773
.since("2.11");
774774
}
775+
776+
if (Skript.classExists("org.bukkit.event.block.VaultDisplayItemEvent")) {
777+
Skript.registerEvent("Vault Display Item", SimpleEvent.class, VaultDisplayItemEvent.class,
778+
"vault display[ing] item")
779+
.description("Called when a vault in a trial chamber is about to display an item.")
780+
.examples(
781+
"""
782+
on vault display item:
783+
set event-item to a netherite ingot
784+
"""
785+
)
786+
.since("INSERT VERSION")
787+
.requiredPlugins("Minecraft 1.21.1+");
788+
}
775789
}
776790

777791
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package org.skriptlang.skript.test.tests.syntaxes.events;
2+
3+
import ch.njol.skript.Skript;
4+
import ch.njol.skript.test.runner.SkriptJUnitTest;
5+
import org.bukkit.Bukkit;
6+
import org.bukkit.Material;
7+
import org.bukkit.block.Block;
8+
import org.bukkit.event.Event;
9+
import org.bukkit.inventory.ItemStack;
10+
import org.junit.Before;
11+
import org.junit.Test;
12+
13+
import java.lang.reflect.Constructor;
14+
15+
public class EvtVaultDisplayItemTest extends SkriptJUnitTest {
16+
17+
private static final boolean VAULT_EVENT_EXISTS = Skript.classExists("org.bukkit.event.block.VaultDisplayItemEvent");
18+
private Block vault;
19+
private final ItemStack item = new ItemStack(Material.DIAMOND);
20+
21+
@Before
22+
public void setup() {
23+
if (!VAULT_EVENT_EXISTS)
24+
return;
25+
vault = setBlock(Material.valueOf("VAULT"));
26+
}
27+
28+
@Test
29+
public void test() {
30+
if (!VAULT_EVENT_EXISTS)
31+
return;
32+
Event event = null;
33+
try {
34+
Class<?> eventClass = Class.forName("org.bukkit.event.block.VaultDisplayItemEvent");
35+
Constructor<?> constructor = eventClass.getConstructor(Block.class, ItemStack.class);
36+
event = (Event) constructor.newInstance(vault, item);
37+
} catch (Exception ignored) {}
38+
assert event != null;
39+
Bukkit.getPluginManager().callEvent(event);
40+
}
41+
42+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
options:
2+
test: "org.skriptlang.skript.test.tests.syntaxes.events.EvtVaultDisplayItemTest"
3+
4+
test "VaultDisplayItem" when running JUnit:
5+
running minecraft "1.21.1"
6+
set {_tests::*} to "event called", "display is diamond" and "display changed"
7+
ensure {@test} completes {_tests::*}
8+
9+
parse:
10+
results: {EvtVaultDisplayItem::parse::*}
11+
code:
12+
on vault display item:
13+
junit test is {@test}
14+
complete "event called" for {@test}
15+
if event-item is a diamond:
16+
complete "display is diamond" for {@test}
17+
set event-item to a netherite ingot
18+
if event-item is a netherite ingot:
19+
complete "display changed" for {@test}
20+
21+
test "VaultDisplayItemParse":
22+
if running minecraft "1.21.1":
23+
assert {EvtVaultDisplayItem::parse::*} is not set with "EvtVaultDisplayItem failed to parse on supported version"
24+
else:
25+
assert {EvtVaultDisplayItem::parse::*} is set with "EvtVaultDisplayItem should have failed to parse on unsupported version"

0 commit comments

Comments
 (0)