Emojiful

Emojiful

19M Downloads

Emojiful prevents client to start when Github is down

SanderKnauff opened this issue ยท 4 comments

commented

Running Emojiful 1.16.3 2.1.1

My client fails to load at startup. Looking in to the logs and code, this seems to be caused by a request to github not being possible.
The stacktrace from latest.log can be found below:

[12Mar2021 19:37:32.619] [Worker-Main-15/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/]: Exception caught during firing event: null
	Index: 1
	Listeners:
		0: NORMAL
		1: net.minecraftforge.eventbus.EventBus$$Lambda$2986/441004239@d35eab5
java.lang.NullPointerException
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770)
	at com.google.common.collect.Lists.newArrayList(Lists.java:112)
	at com.hrznstudio.emojiful.Emojiful.readCategory(Emojiful.java:50)
	at com.hrznstudio.emojiful.ClientProxy.loadCustomEmojis(ClientProxy.java:190)
	at com.hrznstudio.emojiful.ClientProxy.preInitEmojis(ClientProxy.java:178)
	at com.hrznstudio.emojiful.ClientProxy.setup(ClientProxy.java:57)
	at com.hrznstudio.emojiful.ClientProxy$$Lambda$3987/1706536711.accept(Unknown Source)
	at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:247)
	at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:239)
	at net.minecraftforge.eventbus.EventBus$$Lambda$2986/441004239.invoke(Unknown Source)
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:297)
	at net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:120)
	at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:121)
	at net.minecraftforge.fml.ModContainer$$Lambda$3769/1562960136.run(Unknown Source)
	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618)
	at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

[12Mar2021 19:37:32.620] [Worker-Main-15/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Caught exception during event FMLClientSetupEvent dispatch for modid emojiful
java.lang.NullPointerException: null
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770) ~[guava-21.0.jar:?]
	at com.google.common.collect.Lists.newArrayList(Lists.java:112) ~[guava-21.0.jar:?]
	at com.hrznstudio.emojiful.Emojiful.readCategory(Emojiful.java:50) ~[?:1.16.3-2.1.1]
	at com.hrznstudio.emojiful.ClientProxy.loadCustomEmojis(ClientProxy.java:190) ~[?:1.16.3-2.1.1]
	at com.hrznstudio.emojiful.ClientProxy.preInitEmojis(ClientProxy.java:178) ~[?:1.16.3-2.1.1]
	at com.hrznstudio.emojiful.ClientProxy.setup(ClientProxy.java:57) ~[?:1.16.3-2.1.1]
	at com.hrznstudio.emojiful.ClientProxy$$Lambda$3987/1706536711.accept(Unknown Source) ~[?:?]
	at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:247) ~[eventbus-3.0.5-service.jar:?]
	at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:239) ~[eventbus-3.0.5-service.jar:?]
	at net.minecraftforge.eventbus.EventBus$$Lambda$2986/441004239.invoke(Unknown Source) ~[?:?]
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:297) ~[eventbus-3.0.5-service.jar:?]
	at net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:120) [?:35.1]
	at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:121) [?:?]
	at net.minecraftforge.fml.ModContainer$$Lambda$3769/1562960136.run(Unknown Source) [?:?]
	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) [?:1.8.0_51]
	at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) [?:1.8.0_51]
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_51]
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_51]
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) [?:1.8.0_51]
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) [?:1.8.0_51]
commented

Should be fixed

commented

Perhaps a solution would be to cache them locally, and update them when they change?

commented

Could put them in the Horizon CDN as a fallback

commented

While it is rare for the main and fallback to both fail, it would be better if the mod would not crash anyway when these files are not available. I feel like a mod should not depend on external resources for it to load.

What if someone has no internet connection, but wants to play in a singleplayer world?
At the moment they would have to remove the mod from their pack/instance just to boot it up. Having error handling or placeholders for when asset downloading fails would be much more user friendly.