From 6fcdbfe36e1debc6bcf0cab731ee562f2eff6c5b Mon Sep 17 00:00:00 2001 From: Efnilite <35348263+Efnilite@users.noreply.github.com> Date: Thu, 3 Jul 2025 14:55:43 +0200 Subject: [PATCH 1/2] initcommit --- .../njol/skript/conditions/CondContains.java | 28 ++++++++++++++++++- .../tests/syntaxes/conditions/CondContains.sk | 2 +- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/conditions/CondContains.java b/src/main/java/ch/njol/skript/conditions/CondContains.java index 0e713bfeb44..1aa5d9ac245 100644 --- a/src/main/java/ch/njol/skript/conditions/CondContains.java +++ b/src/main/java/ch/njol/skript/conditions/CondContains.java @@ -3,6 +3,7 @@ import ch.njol.skript.Skript; import ch.njol.skript.SkriptConfig; import ch.njol.skript.aliases.ItemType; +import ch.njol.skript.lang.VerboseAssert; import ch.njol.skript.lang.util.common.AnyContains; import ch.njol.skript.util.LiteralUtils; import org.skriptlang.skript.lang.comparator.Relation; @@ -24,7 +25,9 @@ import org.jetbrains.annotations.Nullable; import java.util.Arrays; +import java.util.List; import java.util.Objects; +import java.util.StringJoiner; @Name("Contains") @Description("Checks whether an inventory contains an item, a text contains another piece of text, " @@ -34,7 +37,7 @@ "player has 4 flint and 2 iron ingots", "{list::*} contains 5"}) @Since("1.0") -public class CondContains extends Condition { +public class CondContains extends Condition implements VerboseAssert { static { Skript.registerCondition(CondContains.class, @@ -157,6 +160,29 @@ public boolean check(Event event) { }; } + @Override + public String getExpectedMessage(Event event) { + StringJoiner joiner = new StringJoiner(" "); + joiner.add("to"); + if (isNegated()) { + joiner.add("not"); + } + joiner.add("find %s".formatted(VerboseAssert.getExpressionValue(items, event))); + return joiner.toString(); + } + + @Override + public String getReceivedMessage(Event event) { + StringJoiner joiner = new StringJoiner(" "); + if (!isNegated()) { + joiner.add("no"); + } else { + joiner.add("a"); + } + joiner.add("match in %s".formatted(VerboseAssert.getExpressionValue(containers, event))); + return joiner.toString(); + } + @Override public String toString(@Nullable Event e, boolean debug) { return containers.toString(e, debug) + (isNegated() ? " doesn't contain " : " contains ") + items.toString(e, debug); diff --git a/src/test/skript/tests/syntaxes/conditions/CondContains.sk b/src/test/skript/tests/syntaxes/conditions/CondContains.sk index fcc247bb7c0..472256b19c9 100644 --- a/src/test/skript/tests/syntaxes/conditions/CondContains.sk +++ b/src/test/skript/tests/syntaxes/conditions/CondContains.sk @@ -65,7 +65,7 @@ test "contains condition": # Object (item) set {_item} to diamond block of sharpness 3 - add {_item} and {_item2} to {_list1::*} and {_list2::*} + add {_item} to {_list1::*} and {_list2::*} assert {_list1::*} and {_list2::*} contain {_item} with "19" assert {_list1::*} and {_list2::*} contain {_item} and {_item2} with "20" assert {_list1::*} and {_list2::*} contain {_item} or {_item2} with "21" From fabf4ff0ecdd6751f4e5595cb46f0a7b72010eac Mon Sep 17 00:00:00 2001 From: Efnilite <35348263+Efnilite@users.noreply.github.com> Date: Thu, 3 Jul 2025 16:12:55 +0200 Subject: [PATCH 2/2] fix --- src/test/skript/tests/syntaxes/conditions/CondContains.sk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/skript/tests/syntaxes/conditions/CondContains.sk b/src/test/skript/tests/syntaxes/conditions/CondContains.sk index 472256b19c9..fcc247bb7c0 100644 --- a/src/test/skript/tests/syntaxes/conditions/CondContains.sk +++ b/src/test/skript/tests/syntaxes/conditions/CondContains.sk @@ -65,7 +65,7 @@ test "contains condition": # Object (item) set {_item} to diamond block of sharpness 3 - add {_item} to {_list1::*} and {_list2::*} + add {_item} and {_item2} to {_list1::*} and {_list2::*} assert {_list1::*} and {_list2::*} contain {_item} with "19" assert {_list1::*} and {_list2::*} contain {_item} and {_item2} with "20" assert {_list1::*} and {_list2::*} contain {_item} or {_item2} with "21"