From c6e9ec35d36a142f528992fe09d432838f64ced9 Mon Sep 17 00:00:00 2001 From: TheLimeGlass Date: Fri, 20 Oct 2023 23:14:50 -0600 Subject: [PATCH 1/3] Allow numbers in the changer for ExprHotbarSlot --- .../skript/expressions/ExprHotbarSlot.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java b/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java index ced8c4df34f..0391a8f2cd0 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java @@ -96,19 +96,29 @@ public Slot get(Player player) { @Nullable public Class[] acceptChange(ChangeMode mode) { if (mode == ChangeMode.SET) - return new Class[] {Slot.class}; + return new Class[] {Slot.class, Number.class}; return null; } @Override public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { assert delta != null; - Slot slot = (Slot) delta[0]; - if (!(slot instanceof InventorySlot)) - return; // Only inventory slots can be hotbar slots + Object object = delta[0]; + Number number = null; + if (object instanceof Slot) { + Slot slot = (Slot) delta[0]; + if (!(slot instanceof InventorySlot)) + return; // Only inventory slots can be hotbar slots + + number = ((InventorySlot) slot).getIndex(); + } else if (object instanceof Number) { + number = (Number) object; + } - int index = ((InventorySlot) slot).getIndex(); - if (index > 8) // Only slots in hotbar can be current hotbar slot + if (number == null) + return; + int index = number.intValue(); + if (index > 8 || index < 0) // Only slots in hotbar can be current hotbar slot return; for (Player player : getExpr().getArray(event)) From 3856562a12c2d69dfd3121fe20ee959c85cb1f82 Mon Sep 17 00:00:00 2001 From: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com> Date: Sat, 21 Oct 2023 06:36:30 -0600 Subject: [PATCH 2/3] Update ExprHotbarSlot.java --- .../java/ch/njol/skript/expressions/ExprHotbarSlot.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java b/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java index 0391a8f2cd0..fad272db189 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java @@ -105,11 +105,7 @@ public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { assert delta != null; Object object = delta[0]; Number number = null; - if (object instanceof Slot) { - Slot slot = (Slot) delta[0]; - if (!(slot instanceof InventorySlot)) - return; // Only inventory slots can be hotbar slots - + if (object instanceof InventorySlot) { number = ((InventorySlot) slot).getIndex(); } else if (object instanceof Number) { number = (Number) object; From 480014014fca492fb54f8814e99177eba1305fa4 Mon Sep 17 00:00:00 2001 From: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com> Date: Sun, 22 Oct 2023 08:21:25 -0600 Subject: [PATCH 3/3] Update ExprHotbarSlot.java --- src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java b/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java index fad272db189..032afc50501 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHotbarSlot.java @@ -106,7 +106,7 @@ public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { Object object = delta[0]; Number number = null; if (object instanceof InventorySlot) { - number = ((InventorySlot) slot).getIndex(); + number = ((InventorySlot) object).getIndex(); } else if (object instanceof Number) { number = (Number) object; }