StyledPlayerList icon indicating copy to clipboard operation
StyledPlayerList copied to clipboard

[Bug] Mod doesn't compact with Fake Player in carpet

Open Cierra-Runis opened this issue 1 year ago • 0 comments

I am using Fabric server, and I add StyledPlayerList and Carpet mods. After I starting my server with save has Fake Player datas(include in fake_player.gca.json), however server crashed once fake player joined like below:

[08:23:56] [Server thread/INFO]: End joined the game
[08:23:56] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NullPointerException: Cannot invoke "eu.pb4.styledplayerlist.config.Config.isPlayerHidden(net.minecraft.class_3222)" because the return value of "eu.pb4.styledplayerlist.config.ConfigManager.getConfig()" is null
        at net.minecraft.class_2703$class_2705.constant$dlj000$styledplayerlist$styledPlayerList$hideRealPlayer(class_2703.java:514) ~[server-intermediary.jar:?]
        at net.minecraft.class_2703$class_2705.<init>(class_2703.java:141) ~[server-intermediary.jar:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
        at java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?]
        at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?]
        at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) ~[?:?]
        at java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) ~[?:?]
        at net.minecraft.class_2703.<init>(class_2703.java:26) ~[server-intermediary.jar:?]
        at net.minecraft.class_2703.method_43886(class_2703.java:36) ~[server-intermediary.jar:?]
        at net.minecraft.class_3324.method_14570(class_3324.java:248) ~[server-intermediary.jar:?]
        at carpet.patches.EntityPlayerMPFake.createFake(EntityPlayerMPFake.java:71) ~[%E3%80%90%E5%9C%B0%E6%AF%AF%E6%9C%AC%E4%BD%93%E3%80%91fabric-carpet-1.20-1.4.112+v230608.jar:?]
        at dev.dubhe.gugle.carpet.tools.FakePlayerResident.load(FakePlayerResident.java:60) ~[%E3%80%90%E5%9C%B0%E6%AF%AF%E5%81%87%E4%BA%BA%20UI%20%E6%8E%A7%E5%88%B6%E3%80%91gugle-carpet-addition-mc1.20.1-2.8.0+build.55.jar:?]
        at dev.dubhe.gugle.carpet.GcaExtension.onServerStart(GcaExtension.java:109) ~[%E3%80%90%E5%9C%B0%E6%AF%AF%E5%81%87%E4%BA%BA%20UI%20%E6%8E%A7%E5%88%B6%E3%80%91gugle-carpet-addition-mc1.20.1-2.8.0+build.55.jar:?]
        at net.minecraft.server.MinecraftServer.handler$coc000$gca$loadLevel(MinecraftServer.java:9806) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_3735(MinecraftServer.java:327) ~[server-intermediary.jar:?]
        at net.minecraft.class_3176.method_3823(class_3176.java:169) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:646) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[server-intermediary.jar:?]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
[08:23:56] [Server thread/ERROR]: This crash report has been saved to: /Users/cierra_runis/Desktop/GAME/Minecraft Server/./crash-reports/crash-2024-10-28_08.23.56-server.txt

And I found that the contents of fake_player.gca.json have been cleaned.

I re-imported my save, and disabled StyledPlayerList, server started successfully.

I checked the source code of ConfigManager.getConfig(), it might be StyledPlayerList can't get config for a fake player.

Cierra-Runis avatar Oct 28 '24 01:10 Cierra-Runis