1818 */
1919package ch .njol .skript .classes .data ;
2020
21- import java .util .List ;
22-
21+ import ch .njol .skript .Skript ;
22+ import ch .njol .skript .aliases .Aliases ;
23+ import ch .njol .skript .aliases .ItemType ;
24+ import ch .njol .skript .command .CommandEvent ;
25+ import ch .njol .skript .events .EvtMoveOn ;
26+ import ch .njol .skript .events .bukkit .ScriptEvent ;
27+ import ch .njol .skript .events .bukkit .SkriptStartEvent ;
28+ import ch .njol .skript .events .bukkit .SkriptStopEvent ;
29+ import ch .njol .skript .registrations .EventValues ;
30+ import ch .njol .skript .util .BlockStateBlock ;
31+ import ch .njol .skript .util .BlockUtils ;
32+ import ch .njol .skript .util .DelayedChangeBlock ;
33+ import ch .njol .skript .util .Direction ;
34+ import ch .njol .skript .util .Getter ;
35+ import ch .njol .skript .util .slot .InventorySlot ;
36+ import ch .njol .skript .util .slot .Slot ;
37+ import com .destroystokyo .paper .event .entity .ProjectileCollideEvent ;
38+ import com .destroystokyo .paper .event .player .PlayerArmorChangeEvent ;
2339import org .bukkit .Bukkit ;
2440import org .bukkit .Chunk ;
2541import org .bukkit .FireworkEffect ;
126142import org .bukkit .potion .PotionEffectType ;
127143import org .eclipse .jdt .annotation .Nullable ;
128144
129- import com .destroystokyo .paper .event .entity .ProjectileCollideEvent ;
130- import com .destroystokyo .paper .event .player .PlayerArmorChangeEvent ;
131-
132- import ch .njol .skript .Skript ;
133- import ch .njol .skript .aliases .Aliases ;
134- import ch .njol .skript .aliases .ItemType ;
135- import ch .njol .skript .command .CommandEvent ;
136- import ch .njol .skript .events .EvtMoveOn ;
137- import ch .njol .skript .events .bukkit .ScriptEvent ;
138- import ch .njol .skript .events .bukkit .SkriptStartEvent ;
139- import ch .njol .skript .events .bukkit .SkriptStopEvent ;
140- import ch .njol .skript .registrations .EventValues ;
141- import ch .njol .skript .util .BlockStateBlock ;
142- import ch .njol .skript .util .BlockUtils ;
143- import ch .njol .skript .util .DelayedChangeBlock ;
144- import ch .njol .skript .util .Direction ;
145- import ch .njol .skript .util .Getter ;
146- import ch .njol .skript .util .slot .InventorySlot ;
147- import ch .njol .skript .util .slot .Slot ;
145+ import java .util .List ;
148146
149147/**
150148 * @author Peter Güttinger
@@ -156,7 +154,8 @@ public BukkitEventValues() {}
156154
157155 private static final boolean offHandSupport = Skript .isRunningMinecraft (1 , 9 );
158156 private static final boolean NAMESPACE_SUPPORT = Skript .classExists ("org.bukkit.NamespacedKey" );
159-
157+ private static final ItemStack AIR_IS = new ItemStack (Material .AIR );
158+
160159 static {
161160
162161 // === WorldEvents ===
@@ -1040,20 +1039,24 @@ public Player get(BlockFertilizeEvent event) {
10401039 }
10411040 }, 0 );
10421041 }
1043- // CraftItemEvent REMIND maybe re-add this when Skript parser is reworked?
1044- // EventValues.registerEventValue(CraftItemEvent.class, ItemStack.class, new Getter<ItemStack, CraftItemEvent>() {
1045- // @Override
1046- // @Nullable
1047- // public ItemStack get(final CraftItemEvent e) {
1048- // return e.getRecipe().getResult();
1049- // }
1050- // }, 0);
10511042 // PrepareItemCraftEvent
10521043 EventValues .registerEventValue (PrepareItemCraftEvent .class , Slot .class , new Getter <Slot , PrepareItemCraftEvent >() {
10531044 @ Override
1054- @ Nullable
10551045 public Slot get (final PrepareItemCraftEvent e ) {
1056- return new InventorySlot (e .getInventory (), 9 );
1046+ return new InventorySlot (e .getInventory (), 0 );
1047+ }
1048+ }, 0 );
1049+ EventValues .registerEventValue (PrepareItemCraftEvent .class , ItemStack .class , new Getter <ItemStack , PrepareItemCraftEvent >() {
1050+ @ Override
1051+ public ItemStack get (PrepareItemCraftEvent e ) {
1052+ ItemStack item = e .getInventory ().getResult ();
1053+ return item != null ? item : AIR_IS ;
1054+ }
1055+ }, 0 );
1056+ EventValues .registerEventValue (PrepareItemCraftEvent .class , Inventory .class , new Getter <Inventory , PrepareItemCraftEvent >() {
1057+ @ Override
1058+ public Inventory get (PrepareItemCraftEvent e ) {
1059+ return e .getInventory ();
10571060 }
10581061 }, 0 );
10591062 EventValues .registerEventValue (PrepareItemCraftEvent .class , Player .class , new Getter <Player , PrepareItemCraftEvent >() {
@@ -1092,6 +1095,14 @@ public String get(PrepareItemCraftEvent e) {
10921095 }
10931096 }, 0 );
10941097 }
1098+ // CraftItemEvent
1099+ EventValues .registerEventValue (CraftItemEvent .class , ItemStack .class , new Getter <ItemStack , CraftItemEvent >() {
1100+ @ Override
1101+ @ Nullable
1102+ public ItemStack get (CraftItemEvent e ) {
1103+ return e .getRecipe ().getResult ();
1104+ }
1105+ }, 0 );
10951106 //InventoryOpenEvent
10961107 EventValues .registerEventValue (InventoryOpenEvent .class , Player .class , new Getter <Player , InventoryOpenEvent >() {
10971108 @ Override
0 commit comments