From 95b3e807f0b6b2af73cb60c325e30f44f74d70f7 Mon Sep 17 00:00:00 2001
From: sovdee <10354869+sovdeeth@users.noreply.github.com>
Date: Tue, 21 Oct 2025 19:36:32 -0700
Subject: [PATCH] Update CondHasScoreboardTag.java
---
.../conditions/CondHasScoreboardTag.java | 41 +++++++++----------
1 file changed, 20 insertions(+), 21 deletions(-)
diff --git a/src/main/java/ch/njol/skript/conditions/CondHasScoreboardTag.java b/src/main/java/ch/njol/skript/conditions/CondHasScoreboardTag.java
index 06509b54772..7379bbfdd14 100644
--- a/src/main/java/ch/njol/skript/conditions/CondHasScoreboardTag.java
+++ b/src/main/java/ch/njol/skript/conditions/CondHasScoreboardTag.java
@@ -1,13 +1,5 @@
package ch.njol.skript.conditions;
-import java.util.Arrays;
-import java.util.List;
-
-import org.bukkit.entity.Entity;
-import org.bukkit.event.Event;
-import org.jetbrains.annotations.Nullable;
-
-import ch.njol.skript.Skript;
import ch.njol.skript.conditions.base.PropertyCondition;
import ch.njol.skript.conditions.base.PropertyCondition.PropertyType;
import ch.njol.skript.doc.Description;
@@ -17,7 +9,11 @@
import ch.njol.skript.lang.Condition;
import ch.njol.skript.lang.Expression;
import ch.njol.skript.lang.SkriptParser.ParseResult;
+import ch.njol.skript.lang.util.SimpleExpression;
import ch.njol.util.Kleenean;
+import org.bukkit.entity.Entity;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
@Name("Has Scoreboard Tag")
@Description("Checks whether the given entities has the given scoreboard tags.")
@@ -28,33 +24,36 @@ public class CondHasScoreboardTag extends Condition {
static {
PropertyCondition.register(CondHasScoreboardTag.class, PropertyType.HAVE, "[the] score[ ]board tag[s] %strings%", "entities");
}
-
- @SuppressWarnings("null")
+
private Expression entities;
- @SuppressWarnings("null")
private Expression tags;
- @SuppressWarnings("unchecked")
@Override
+ @SuppressWarnings("unchecked")
public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
entities = (Expression) exprs[0];
tags = (Expression) exprs[1];
setNegated(matchedPattern == 1);
return true;
}
-
+
@Override
- public boolean check(Event e) {
- List tagsList = Arrays.asList(tags.getArray(e));
- return entities.check(e,
- entity -> entity.getScoreboardTags().containsAll(tagsList),
- isNegated());
+ public boolean check(Event event) {
+ String[] tagsList = tags.getAll(event);
+ return entities.check(event,
+ entity -> SimpleExpression.check(
+ tagsList,
+ tag -> entity.getScoreboardTags().contains(tag),
+ false,
+ tags.getAnd()
+ ),
+ isNegated());
}
@Override
- public String toString(@Nullable Event e, boolean debug) {
- return PropertyCondition.toString(this, PropertyType.HAVE, e, debug, entities,
- "the scoreboard " + (tags.isSingle() ? "tag " : "tags ") + tags.toString(e, debug));
+ public String toString(@Nullable Event event, boolean debug) {
+ return PropertyCondition.toString(this, PropertyType.HAVE, event, debug, entities,
+ "the scoreboard " + (tags.isSingle() ? "tag " : "tags ") + tags.toString(event, debug));
}
}