GeyserMC / Floodgate

Hybrid mode plugin to allow for connections from Geyser to join online mode servers.
https://geysermc.org
MIT License
569 stars 169 forks source link

[org.geysermc.floodgate.event.EventBus] Cannot invoke "net.skinsrestorer.shared.storage.adapter.StorageAdapter.getPlayerData(java.util.UUID)" because the return value of "net.skinsrestorer.shared.storage.adapter.AdapterReference.get()" is null #512

Closed Brasil150 closed 4 months ago

Brasil150 commented 4 months ago

Captura de tela 2024-05-15 220538

[23:12:50 ERROR]: [org.geysermc.floodgate.event.EventBus] An exception occurred while executing event SkinApplyEventImpl for subscriber org.geysermc.floodgate.event.EventSubscriber
java.lang.NullPointerException: Cannot invoke "net.skinsrestorer.shared.storage.adapter.StorageAdapter.getPlayerData(java.util.UUID)" because the return value of "net.skinsrestorer.shared.storage.adapter.AdapterReference.get()" is null
        at net.skinsrestorer.shared.storage.PlayerStorageImpl.getSkinIdOfPlayer(PlayerStorageImpl.java:51) ~[?:?]
        at net.skinsrestorer.shared.storage.PlayerStorageImpl.getSkinForPlayerResult(PlayerStorageImpl.java:112) ~[?:?]
        at net.skinsrestorer.shared.storage.PlayerStorageImpl.getSkinForPlayer(PlayerStorageImpl.java:108) ~[?:?]
        at net.skinsrestorer.shared.floodgate.FloodgateListener.accept(FloodgateListener.java:43) ~[?:?]
        at net.skinsrestorer.shared.floodgate.FloodgateListener.accept(FloodgateListener.java:32) ~[?:?]
        at org.geysermc.event.subscribe.impl.SubscriberImpl.invoke(SubscriberImpl.java:75) ~[?:?]
        at org.geysermc.event.bus.impl.BaseBusImpl.fireSilently(BaseBusImpl.java:201) ~[?:?]
        at org.geysermc.event.bus.impl.EventBusImpl.fireSilently(EventBusImpl.java:37) ~[?:?]
        at org.geysermc.event.bus.impl.BaseBusImpl.fire(BaseBusImpl.java:180) ~[?:?]
        at org.geysermc.event.bus.impl.EventBusImpl.fire(EventBusImpl.java:37) ~[?:?]
        at org.geysermc.floodgate.pluginmessage.SpigotSkinApplier.applySkin0(SpigotSkinApplier.java:85) ~[?:?]
        at org.geysermc.floodgate.pluginmessage.SpigotSkinApplier.applySkin(SpigotSkinApplier.java:53) ~[?:?]
        at org.geysermc.floodgate.skin.SkinUploadSocket.onMessage(SkinUploadSocket.java:120) ~[?:?]
        at org.java_websocket.client.WebSocketClient.onWebsocketMessage(WebSocketClient.java:636) ~[?:?]
        at org.java_websocket.drafts.Draft_6455.processFrameText(Draft_6455.java:963) ~[?:?]
        at org.java_websocket.drafts.Draft_6455.processFrame(Draft_6455.java:887) ~[?:?]
        at org.java_websocket.WebSocketImpl.decodeFrames(WebSocketImpl.java:401) ~[?:?]
        at org.java_websocket.WebSocketImpl.decode(WebSocketImpl.java:233) ~[?:?]
        at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:516) ~[?:?]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]

To reproduce:

  1. Run a Proxy with Geyser+Floodgate+SkinsRestorer
  2. Enable floodgate-send-data on the Proxy.
  3. Run a 1.12.2 server with Floodgate + SkinsRestorer.
  4. Join Proxy with Geyser installed and join server 1.12.2
  5. Exception occurs on backend side when joining server 1.12.2

Server Version: Waterfall Build 577. Plugins: Geyser, Floodgate, SkinsRestorer Dionysus 1.12.2 899c2f4 (Fork from Paper. Also applies to Paper). Plugins: Floodgate, SkinsRestorer, ViaVersion, ViaBackwards, ViaRewind.

Although this exception does not cause problems, I thought it was worth reporting. I believe it is just an incompatibility between Floodgate and SkinsRestorer. Since the exception occurs in the Floodgate plugin and there is no error log coming from SkinsRestorer and skins are applied correctly so I assumed this was the best place to report.

Floodgate build f8c8418

Camotoy commented 4 months ago

The last five lines of the stack trace are from SkinsRestorer's codebase. Talk to them and if they think it's our issue, we'll work from there.