From 5761d9c00aa91690daf304c0a7a29cf7b410cee0 Mon Sep 17 00:00:00 2001 From: LLytho Date: Tue, 16 Jul 2024 11:38:21 +0200 Subject: [PATCH] Fix id filter for regex --- .../almostreliable/lootjs/kube/wrappers/BasicWrapper.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/almostreliable/lootjs/kube/wrappers/BasicWrapper.java b/src/main/java/com/almostreliable/lootjs/kube/wrappers/BasicWrapper.java index f3552b0..e1edffa 100644 --- a/src/main/java/com/almostreliable/lootjs/kube/wrappers/BasicWrapper.java +++ b/src/main/java/com/almostreliable/lootjs/kube/wrappers/BasicWrapper.java @@ -8,6 +8,7 @@ import dev.latvian.mods.kubejs.script.ConsoleJS; import dev.latvian.mods.kubejs.script.KubeJSContext; import dev.latvian.mods.kubejs.util.NBTUtils; +import dev.latvian.mods.kubejs.util.RegExpKJS; import dev.latvian.mods.kubejs.util.RegistryAccessContainer; import dev.latvian.mods.rhino.Context; import dev.latvian.mods.rhino.type.RecordTypeInfo; @@ -149,6 +150,11 @@ private static Optional> getTagPredicate(Object rawPred } public static IdFilter ofIdFilter(Object o) { + Pattern pattern = RegExpKJS.wrap(o); + if (pattern != null) { + return new IdFilter.ByPattern(pattern); + } + return switch (o) { case List list -> new IdFilter.Or(list.stream().map(BasicWrapper::ofIdFilter).toList()); case String str -> { @@ -159,7 +165,6 @@ public static IdFilter ofIdFilter(Object o) { yield new IdFilter.ByLocation(ResourceLocation.parse(str)); } case ResourceLocation rl -> new IdFilter.ByLocation(rl); - case Pattern pattern -> new IdFilter.ByPattern(pattern); default -> throw new IllegalArgumentException("Invalid resource location filter: " + o); }; }