minecraft-src/com/mojang/realmsclient/dto/RealmsText.java
2025-07-04 01:41:11 +03:00

61 lines
1.8 KiB
Java

package com.mojang.realmsclient.dto;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.mojang.realmsclient.util.JsonUtils;
import java.util.Objects;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.resources.language.I18n;
import net.minecraft.network.chat.Component;
import org.jetbrains.annotations.Nullable;
@Environment(EnvType.CLIENT)
public class RealmsText {
private static final String TRANSLATION_KEY = "translationKey";
private static final String ARGS = "args";
private final String translationKey;
@Nullable
private final String[] args;
private RealmsText(String translationKey, @Nullable String[] args) {
this.translationKey = translationKey;
this.args = args;
}
public Component createComponent(Component defaultValue) {
return (Component)Objects.requireNonNullElse(this.createComponent(), defaultValue);
}
@Nullable
public Component createComponent() {
if (!I18n.exists(this.translationKey)) {
return null;
} else {
return this.args == null ? Component.translatable(this.translationKey) : Component.translatable(this.translationKey, this.args);
}
}
public static RealmsText parse(JsonObject json) {
String string = JsonUtils.getRequiredString("translationKey", json);
JsonElement jsonElement = json.get("args");
String[] strings;
if (jsonElement != null && !jsonElement.isJsonNull()) {
JsonArray jsonArray = jsonElement.getAsJsonArray();
strings = new String[jsonArray.size()];
for (int i = 0; i < jsonArray.size(); i++) {
strings[i] = jsonArray.get(i).getAsString();
}
} else {
strings = null;
}
return new RealmsText(string, strings);
}
public String toString() {
return this.translationKey;
}
}