Skip to content

Commit

Permalink
Fix conflict between ExprItemsIn and ExprInventory (#6323)
Browse files Browse the repository at this point in the history
  • Loading branch information
Pikachu920 authored Jan 15, 2024
1 parent 67c4e0e commit 0c6d8bb
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
7 changes: 3 additions & 4 deletions src/main/java/ch/njol/skript/expressions/ExprInventory.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/
package ch.njol.skript.expressions;

import ch.njol.skript.aliases.ItemData;
import ch.njol.skript.aliases.ItemType;
import ch.njol.skript.config.Node;
import ch.njol.skript.expressions.base.PropertyExpression;
Expand All @@ -33,17 +32,14 @@
import org.bukkit.event.Event;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.BlockStateMeta;
import org.bukkit.inventory.meta.ItemMeta;
import org.eclipse.jdt.annotation.Nullable;

import ch.njol.skript.Skript;
import ch.njol.skript.doc.Description;
import ch.njol.skript.doc.Examples;
import ch.njol.skript.doc.Name;
import ch.njol.skript.doc.Since;
import ch.njol.skript.expressions.base.SimplePropertyExpression;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
Expand Down Expand Up @@ -73,6 +69,9 @@ public class ExprInventory extends SimpleExpression<Object> {
@Override
@SuppressWarnings("unchecked")
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
// prevent conflict with ExprItemsIn (https://github.com/SkriptLang/Skript/issues/6290)
if (exprs[0].getSource() instanceof ExprItemsIn)
return false;
// if we're dealing with a loop of just this expression
Node n = SkriptLogger.getNode();
inLoop = n != null && ("loop " + parseResult.expr).equals(n.getKey());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
test "item inventory conflict":
parse:
loop all players:
loop all items in the loop-player's inventory:
set {_item} to loop-item
assert parse logs are not set with "failed to parse loop"

0 comments on commit 0c6d8bb

Please sign in to comment.