Skip to content

%viaversion_player_protocol_version% issue if player crashes or quits before fully joining server. #1

@AAlchemy

Description

@AAlchemy

if a player crashes or quits before fully joining server I get this error in my DiscordSRV plugin when using %viaversion_player_protocol_version%

[02:05:26 INFO]: AlmostHuey joined the game
[02:05:26 INFO]: AlmostHuey lost connection: Disconnected
[02:05:26 INFO]: AlmostHuey left the game
[02:05:27 WARN]: [DiscordSRV] Plugin DiscordSRV v1.29.0 generated an exception while executing task 16105
java.lang.NullPointerException: Cannot invoke "org.bukkit.entity.Player.getUniqueId()" because "player" is null
        at me.glaremasters.papi.expansion.viaversion.ViaVersionExpansion.onPlaceholderRequest(ViaVersionExpansion.java:40) ~[?:?]
        at PlaceholderAPI-2.11.6.jar/me.clip.placeholderapi.PlaceholderHook.onRequest(PlaceholderHook.java:35) ~[PlaceholderAPI-2.11.6.jar:?]
        at PlaceholderAPI-2.11.6.jar/me.clip.placeholderapi.replacer.CharsReplacer.apply(CharsReplacer.java:119) ~[PlaceholderAPI-2.11.6.jar:?]
        at PlaceholderAPI-2.11.6.jar/me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:71) ~[PlaceholderAPI-2.11.6.jar:?]
        at DiscordSRV-Build-1.29.0.jar/github.scarsz.discordsrv.util.PlaceholderUtil.replacePlaceholders(PlaceholderUtil.java:45) ~[DiscordSRV-Build-1.29.0.jar:?]
        at DiscordSRV-Build-1.29.0.jar/github.scarsz.discordsrv.util.PlaceholderUtil.replacePlaceholdersToDiscord(PlaceholderUtil.java:69) ~[DiscordSRV-Build-1.29.0.jar:?]
        at DiscordSRV-Build-1.29.0.jar/github.scarsz.discordsrv.DiscordSRV.lambda$sendJoinMessage$61(DiscordSRV.java:1951) ~[DiscordSRV-Build-1.29.0.jar:?]
        at DiscordSRV-Build-1.29.0.jar/github.scarsz.discordsrv.DiscordSRV.lambda$translateMessage$64(DiscordSRV.java:2043) ~[DiscordSRV-Build-1.29.0.jar:?]
        at java.base/java.util.Optional.map(Optional.java:260) ~[?:?]
        at DiscordSRV-Build-1.29.0.jar/github.scarsz.discordsrv.DiscordSRV.translateMessage(DiscordSRV.java:2043) ~[DiscordSRV-Build-1.29.0.jar:?]
        at DiscordSRV-Build-1.29.0.jar/github.scarsz.discordsrv.DiscordSRV.sendJoinMessage(DiscordSRV.java:1955) ~[DiscordSRV-Build-1.29.0.jar:?]
        at DiscordSRV-Build-1.29.0.jar/github.scarsz.discordsrv.listeners.PlayerJoinLeaveListener.lambda$onPlayerJoin$1(PlayerJoinLeaveListener.java:94) ~[DiscordSRV-Build-1.29.0.jar:?]
        at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:86) ~[paper-1.21.1.jar:1.21.1-131-84281ce]
        at org.bukkit.craftbukkit.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.21.1.jar:1.21.1-131-84281ce]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.21.1.jar:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

maybe add something like this to your code?

if (player == null) {
    return "Unknown";
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions