Skip to content

Commit 526e6fe

Browse files
committed
Begin working with inventory events again
1 parent ea7546e commit 526e6fe

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

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

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import java.io.NotSerializableException;
2525
import java.io.StreamCorruptedException;
26+
import java.util.Arrays;
2627
import java.util.List;
2728
import java.util.Locale;
2829
import java.util.Map.Entry;
@@ -46,6 +47,7 @@
4647
import org.bukkit.entity.Player;
4748
import org.bukkit.entity.Projectile;
4849
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
50+
import org.bukkit.event.inventory.InventoryAction;
4951
import org.bukkit.inventory.Inventory;
5052
import org.bukkit.inventory.InventoryHolder;
5153
import org.bukkit.inventory.ItemStack;
@@ -68,6 +70,7 @@
6870
import ch.njol.skript.expressions.base.EventValueExpression;
6971
import ch.njol.skript.lang.ParseContext;
7072
import ch.njol.skript.lang.util.SimpleLiteral;
73+
import ch.njol.skript.localization.Language;
7174
import ch.njol.skript.localization.Message;
7275
import ch.njol.skript.registrations.Classes;
7376
import ch.njol.skript.util.BiomeUtils;
@@ -475,6 +478,39 @@ public String getVariableNamePattern() {
475478
}
476479
}).changer(DefaultChangers.inventoryChanger));
477480

481+
Classes.registerClass(new ClassInfo<InventoryAction>(InventoryAction.class, "inventory action")
482+
.user("inventory actions?")
483+
.name("Inventory Action")
484+
.description("There are multiple ways to perform clicks in inventories. Inventory actions represent them.")
485+
.user(Language.getList("inventory actions"))
486+
.examples("")
487+
.since("2.2-dev16")
488+
.defaultExpression(new EventValueExpression<InventoryAction>(InventoryAction.class))
489+
.parser(new Parser<InventoryAction>() {
490+
491+
@Override
492+
@Nullable
493+
public InventoryAction parse(String s, ParseContext context) {
494+
return null; // TODO Do this, while supporting language changes... How?
495+
}
496+
497+
@Override
498+
public String toString(InventoryAction o, int flags) {
499+
return Language.get("inventory actions." + o.toString().toLowerCase());
500+
}
501+
502+
@Override
503+
public String toVariableNameString(InventoryAction o) {
504+
return Language.get("inventory actions." + o.toString().toLowerCase());
505+
}
506+
507+
@Override
508+
public String getVariableNamePattern() {
509+
return "[a-z]+";
510+
}
511+
512+
}));
513+
478514
Classes.registerClass(new ClassInfo<Player>(Player.class, "player")
479515
.user("players?")
480516
.name("Player")

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
import org.eclipse.jdt.annotation.Nullable;
9191

9292
import ch.njol.skript.Skript;
93+
import ch.njol.skript.aliases.ItemType;
9394
import ch.njol.skript.command.CommandEvent;
9495
import ch.njol.skript.events.EvtMoveOn;
9596
import ch.njol.skript.registrations.EventValues;
@@ -700,6 +701,14 @@ public Slot get(final InventoryClickEvent e) {
700701
return new InventorySlot(e.getInventory(), e.getSlot());
701702
}
702703
}, 0);
704+
EventValues.registerEventValue(InventoryClickEvent.class, ItemType.class, new Getter<ItemType, InventoryClickEvent>() {
705+
@SuppressWarnings("null")
706+
@Override
707+
@Nullable
708+
public ItemType get(final InventoryClickEvent e) {
709+
return new ItemType(e.getCurrentItem());
710+
}
711+
}, 0);
703712
// CraftItemEvent
704713
EventValues.registerEventValue(CraftItemEvent.class, ItemStack.class, new Getter<ItemStack, CraftItemEvent>() {
705714
@Override

0 commit comments

Comments
 (0)