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);