Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash after pasting an (seemingly valid) URL #27

Open
SammyForReal opened this issue Jul 8, 2024 · 1 comment
Open

Crash after pasting an (seemingly valid) URL #27

SammyForReal opened this issue Jul 8, 2024 · 1 comment

Comments

@SammyForReal
Copy link

Description

Whenever I paste the URL https://github.com/MModding/extravaganza/blob/main/src/main/resources/assets/extravaganza/icon.png?raw=true into a sign, it crashes.

Hotfix

I managed to avoid the crash by adding yet anoyher try-catch block at eu.midnightdust.picturesign.util.PictureURLUtils at Line 35:

try {
    jsonData = GSON.fromJson(reader, STRING_TYPE);
} catch (JsonIOException error) {
    PictureSignClient.LOGGER.error("Unable to load url from JSON because of reading issues: " + error.getMessage());
} catch (JsonSyntaxException error) {
    PictureSignClient.LOGGER.error("Unable to load url from JSON because of an syntax error: " + error.getMessage());
}

Crash

---- Minecraft Crash Report ----
// Hi. I'm Minecraft, and I'm a crashaholic.

Time: 2024-07-08 19:02:43
Description: Rendering Block Entity

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    at com.google.gson.Gson.fromJson(Gson.java:1238)
    at com.google.gson.Gson.fromJson(Gson.java:1137)
    at com.google.gson.Gson.fromJson(Gson.java:1107)
    at eu.midnightdust.picturesign.util.PictureURLUtils.infoFromJson(PictureURLUtils.java:35)
    at eu.midnightdust.picturesign.render.PictureRenderer.render(PictureRenderer.java:73)
    at eu.midnightdust.picturesign.render.PictureSignRenderer.render(PictureSignRenderer.java:23)
    at net.minecraft.class_837.handler$dmj000$picturesign$ps$onRender(class_837.java:537)
    at net.minecraft.class_837.method_23083(class_837.java)
    at net.minecraft.class_837.method_3569(class_837.java:41)
    at net.minecraft.class_824.method_23079(class_824.java:90)
    at net.minecraft.class_824.method_23081(class_824.java:79)
    at net.minecraft.class_824.method_3554(class_824.java:104)
    at net.minecraft.class_824.method_3555(class_824.java:79)
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.renderBlockEntity(SodiumWorldRenderer.java:368)
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.redirect$cjg000$iris$addToList2(SodiumWorldRenderer.java:592)
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.renderGlobalBlockEntities(SodiumWorldRenderer.java:330)
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.renderBlockEntities(SodiumWorldRenderer.java:271)
    at net.minecraft.class_761.handler$eia000$sodium$onRenderBlockEntities(class_761.java:14327)
    at net.minecraft.class_761.method_22710(class_761.java:1119)
    at net.minecraft.class_757.method_3188(class_757.java:1087)
    at net.minecraft.class_757.method_3192(class_757.java:850)
    at net.minecraft.class_310.method_1523(class_310.java:1285)
    at net.minecraft.class_310.method_1514(class_310.java:882)
    at net.minecraft.client.main.Main.main(Main.java:256)
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470)
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
    at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100)
    at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
    at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:393)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:182)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:144)
    at com.google.gson.Gson.fromJson(Gson.java:1227)
    ... 29 more

Environment

I am using Fabric in mc1.21, with PictureSign 2.0.1 installed.

@Motschen
Copy link
Member

Motschen commented Jul 8, 2024

The root issue seems to be that GitHub is listed as a JSON source by default, so the mod assumes it is a json when it's actually an image. Upload to a different host until I have time to fix this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants