add info on resource packs

This commit is contained in:
Johannes Frohnmeyer 2023-03-12 21:00:56 +01:00
parent 22fd7a0a8e
commit 0aa1b38e93
Signed by: Johannes
GPG Key ID: E76429612C2929F4
1 changed files with 22 additions and 2 deletions

View File

@ -9,10 +9,11 @@ import io.gitlab.jfronny.muscript.data.dynamic.additional.DFinal;
import net.fabricmc.api.*;
import net.fabricmc.fabric.api.client.networking.v1.ClientLoginNetworking;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
import net.minecraft.client.MinecraftClient;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.text.TextContent;
import java.util.LinkedList;
import java.util.List;
import java.util.*;
import java.util.concurrent.CompletableFuture;
@Environment(EnvType.CLIENT)
@ -21,6 +22,16 @@ public class BetterWhitelistClient implements ClientModInitializer {
public void onInitializeClient() {
ClientLoginNetworking.registerGlobalReceiver(BetterWhitelist.LOGIN_CHANNEL, (client, handler, buf, listenerAdder) -> {
Scope fork = BetterWhitelist.SCOPE.fork();
fork.set("resourcePacks", MinecraftClient.getInstance()
.getResourcePackManager()
.getEnabledProfiles()
.stream()
.map(s -> DFinal.of(Map.of(
"name", DFinal.of(s.getName()),
"displayName", DFinal.of(toString(s.getDisplayName().getContent())),
"description", DFinal.of(toString(s.getDescription().getContent()))
)))
.toList());
String scriptSource = buf.readString();
BetterWhitelist.LOG.info("Received challenge: " + scriptSource);
DCallable script = Parser.parse(scriptSource).asDynamicExpr().get(fork).asCallable();
@ -36,4 +47,13 @@ public class BetterWhitelistClient implements ClientModInitializer {
return CompletableFuture.completedFuture(resultBuf);
});
}
private String toString(TextContent text) {
StringBuilder sb = new StringBuilder();
text.visit(asString -> {
sb.append(asString);
return Optional.empty();
});
return sb.toString();
}
}