Spaces:
Build error
Build error
File size: 3,536 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
package net.minecraft.util.datafix;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.JsonParser;
import com.mojang.datafixers.DataFixUtils;
import com.mojang.serialization.Dynamic;
import com.mojang.serialization.DynamicOps;
import java.util.Optional;
import net.minecraft.util.GsonHelper;
public class ComponentDataFixUtils {
private static final String EMPTY_CONTENTS = createTextComponentJson("");
public static <T> Dynamic<T> createPlainTextComponent(DynamicOps<T> p_312596_, String p_312893_) {
String s = createTextComponentJson(p_312893_);
return new Dynamic<>(p_312596_, p_312596_.createString(s));
}
public static <T> Dynamic<T> createEmptyComponent(DynamicOps<T> p_310010_) {
return new Dynamic<>(p_310010_, p_310010_.createString(EMPTY_CONTENTS));
}
private static String createTextComponentJson(String p_309616_) {
JsonObject jsonobject = new JsonObject();
jsonobject.addProperty("text", p_309616_);
return GsonHelper.toStableString(jsonobject);
}
public static <T> Dynamic<T> createTranslatableComponent(DynamicOps<T> p_310384_, String p_313033_) {
JsonObject jsonobject = new JsonObject();
jsonobject.addProperty("translate", p_313033_);
return new Dynamic<>(p_310384_, p_310384_.createString(GsonHelper.toStableString(jsonobject)));
}
public static <T> Dynamic<T> wrapLiteralStringAsComponent(Dynamic<T> p_309728_) {
return DataFixUtils.orElse(p_309728_.asString().map(p_312090_ -> createPlainTextComponent(p_309728_.getOps(), p_312090_)).result(), p_309728_);
}
public static Dynamic<?> rewriteFromLenient(Dynamic<?> p_328370_) {
Optional<String> optional = p_328370_.asString().result();
if (optional.isEmpty()) {
return p_328370_;
} else {
String s = optional.get();
if (!s.isEmpty() && !s.equals("null")) {
char c0 = s.charAt(0);
char c1 = s.charAt(s.length() - 1);
if (c0 == '"' && c1 == '"' || c0 == '{' && c1 == '}' || c0 == '[' && c1 == ']') {
try {
JsonElement jsonelement = JsonParser.parseString(s);
if (jsonelement.isJsonPrimitive()) {
return createPlainTextComponent(p_328370_.getOps(), jsonelement.getAsString());
}
return p_328370_.createString(GsonHelper.toStableString(jsonelement));
} catch (JsonParseException jsonparseexception) {
}
}
return createPlainTextComponent(p_328370_.getOps(), s);
} else {
return createEmptyComponent(p_328370_.getOps());
}
}
}
public static Optional<String> extractTranslationString(String p_331580_) {
try {
JsonElement jsonelement = JsonParser.parseString(p_331580_);
if (jsonelement.isJsonObject()) {
JsonObject jsonobject = jsonelement.getAsJsonObject();
JsonElement jsonelement1 = jsonobject.get("translate");
if (jsonelement1 != null && jsonelement1.isJsonPrimitive()) {
return Optional.of(jsonelement1.getAsString());
}
}
} catch (JsonParseException jsonparseexception) {
}
return Optional.empty();
}
} |