Skip to content

Commit 83d42c2

Browse files
committed
handle class differences gracefully
1 parent 97b67ae commit 83d42c2

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/client/java/com/coflnet/mixin/HandledScreenMixin.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.coflnet.gui.RenderUtils;
77
import com.coflnet.models.TextElement;
88
import com.google.gson.Gson;
9-
import com.google.gson.reflect.TypeToken;
109
import net.minecraft.client.MinecraftClient;
1110
import net.minecraft.client.gui.DrawContext;
1211
import net.minecraft.client.gui.screen.ingame.HandledScreen;
@@ -25,7 +24,6 @@
2524
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2625
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
2726

28-
import java.lang.reflect.Type;
2927
import java.net.URI;
3028
import java.util.List;
3129

@@ -126,12 +124,20 @@ protected void updateTextWithJson(DescriptionHandler.DescModification[] lines) {
126124
}
127125

128126
try {
129-
Type listType = new TypeToken<List<TextElement>>(){}.getType();
130-
List<TextElement> textElements = gson.fromJson(jsonText, listType);
131-
127+
TextElement[] textElements = gson.fromJson(jsonText, TextElement[].class);
128+
if (textElements == null || textElements.length == 0) {
129+
MutableText fallbackText = Text.literal(descModification.value);
130+
interactiveTextLines.add(fallbackText);
131+
int width = MinecraftClient.getInstance().textRenderer.getWidth(fallbackText);
132+
if (width > maxWidth) {
133+
maxWidth = width;
134+
}
135+
continue;
136+
}
137+
132138
MutableText lineText = Text.empty();
133-
for (int i = 0; i < textElements.size(); i++) {
134-
TextElement element = textElements.get(i);
139+
for (int i = 0; i < textElements.length; i++) {
140+
TextElement element = textElements[i];
135141
MutableText elementText = Text.literal(element.text);
136142

137143
// Add click event

0 commit comments

Comments
 (0)