Skip to content

Commit 449e58c

Browse files
committed
reimplement resource condition matching on book contents
1 parent 652b3ca commit 449e58c

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ org.gradle.jvmargs=-Xmx1G
99
loader_version=0.15.11
1010

1111
# Mod Properties
12-
mod_version = 0.1.10
12+
mod_version = 0.1.11
1313
maven_group = io.wispforest
1414
archives_base_name = lavender
1515

src/main/java/io/wispforest/lavender/book/BookContentLoader.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
import com.google.gson.*;
55
import com.mojang.brigadier.StringReader;
66
import com.mojang.brigadier.exceptions.CommandSyntaxException;
7+
import com.mojang.serialization.JsonOps;
78
import io.wispforest.lavender.Lavender;
89
import io.wispforest.owo.ui.component.Components;
910
import io.wispforest.owo.ui.container.Containers;
1011
import io.wispforest.owo.ui.core.Component;
1112
import io.wispforest.owo.ui.core.Sizing;
1213
import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener;
1314
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
15+
import net.fabricmc.fabric.api.resource.conditions.v1.ResourceCondition;
16+
import net.fabricmc.fabric.api.resource.conditions.v1.ResourceConditions;
1417
import net.minecraft.client.MinecraftClient;
1518
import net.minecraft.command.argument.ItemStringReader;
1619
import net.minecraft.item.Item;
@@ -204,9 +207,13 @@ private static void forResourceOfBook(Map<String, Map<String, Resource>> resourc
204207
meta = GSON.fromJson(content.substring(0, frontmatterEnd), JsonObject.class);
205208
content = content.substring(frontmatterEnd + 3).stripLeading();
206209

207-
// return ResourceConditions.objectMatchesConditions(meta)
208-
// ? new MarkdownResource(meta, book.expandMacros(resourceId, content.replaceAll("\\r\\n?", "\n")))
209-
// : null;
210+
if (meta.has(ResourceConditions.CONDITIONS_KEY)) {
211+
var conditions = ResourceCondition.CONDITION_CODEC.parse(JsonOps.INSTANCE, meta.get(ResourceConditions.CONDITIONS_KEY));
212+
if (conditions.isSuccess() && !conditions.getOrThrow().test(MinecraftClient.getInstance().world.getRegistryManager())) {
213+
return null;
214+
}
215+
}
216+
210217
return new MarkdownResource(meta, book.expandMacros(resourceId, content.replaceAll("\\r\\n?", "\n")));
211218
} else {
212219
throw new RuntimeException("Missing markdown meta");

0 commit comments

Comments
 (0)