EncryptSL / LiteEco

Minecraft Economy Plugin works with vault.
19 stars 8 forks source link

[Bug]: NullPointerException While Tab Completing #67

Closed LandOfPeeps closed 3 months ago

LandOfPeeps commented 11 months ago

What happened?

I have this plugin for over a month now and had no issues but suddenly this happened and it essentially caused a free server crash every time someone runs /pay or /eco due to the tab-completion error

Plugin Version

1.3.5-SNAPSHOT

You detected problem on this server platform ?

PurpurMC

Version /version - output

Current: git-Purpur-2023 (MC: 1.20.1)*
Previous: git-Paper-100 (MC: 1.20.1)

Relevant log output

[11:08:03 ERROR]: Exception when LandOfPeeps attempted to tab complete eco add .
org.bukkit.command.CommandException: Unhandled exception executing tab-completer for 'eco add .' in encryptsl.cekuj.net.cloud.bukkit.BukkitCommand(eco)
        at org.bukkit.command.SimpleCommandMap.tabComplete(SimpleCommandMap.java:259) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.tabCompleteCommand(CraftServer.java:2442) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.tabComplete(CraftServer.java:2414) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at org.bukkit.craftbukkit.v1_20_R1.command.BukkitCommandWrapper.getSuggestions(BukkitCommandWrapper.java:74) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at com.mojang.brigadier.tree.ArgumentCommandNode.listSuggestions(ArgumentCommandNode.java:71) ~[brigadier-1.1.8.jar:git-Purpur-2023]
        at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:602) ~[purpur-1.20.1.jar:?]
        at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:582) ~[purpur-1.20.1.jar:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleCustomCommandSuggestions$5(ServerGamePacketListenerImpl.java:959) ~[?:?]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1366) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1343) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1336) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1452) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1192) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:323) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot read the array length because the return value of "com.mojang.authlib.yggdrasil.response.ProfileSearchResultsResponse.getProfiles()" is null
        at com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository.findProfilesByNames(YggdrasilGameProfileRepository.java:59) ~[purpur-1.20.1.jar:?]
        at com.destroystokyo.paper.profile.PaperGameProfileRepository.findProfilesByNames(PaperGameProfileRepository.java:44) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at net.minecraft.server.players.GameProfileCache.lookupGameProfile(GameProfileCache.java:110) ~[?:?]
        at net.minecraft.server.players.GameProfileCache.get(GameProfileCache.java:181) ~[?:?]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.getOfflinePlayer(CraftServer.java:1994) ~[purpur-1.20.1.jar:git-Purpur-2023]
        at org.bukkit.Bukkit.getOfflinePlayer(Bukkit.java:1283) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.bukkit.parsers.OfflinePlayerArgument$OfflinePlayerParser.parse(OfflinePlayerArgument.java:179) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.CommandTree.suggestionsForDynamicArgument(CommandTree.java:658) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.CommandTree.getSuggestions(CommandTree.java:571) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.CommandTree.getSuggestions(CommandTree.java:533) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.CommandTree.getSuggestions(CommandTree.java:533) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.CommandTree.getSuggestions(CommandTree.java:494) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.arguments.DelegatingCommandSuggestionEngine.getSuggestions(DelegatingCommandSuggestionEngine.java:77) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.CommandManager.suggest(CommandManager.java:219) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at encryptsl.cekuj.net.cloud.bukkit.BukkitCommand.tabComplete(BukkitCommand.java:98) ~[LiteEco-1.3.5-SNAPSHOT.jar:?]
        at org.bukkit.command.Command.tabComplete(Command.java:93) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.SimpleCommandMap.tabComplete(SimpleCommandMap.java:253) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        ... 20 more
EncryptSL commented 11 months ago

This issue is not related to LiteEco.

This scenario happend only because tabcompleter try search ... but yggdrasil from mojang returns empty search. Bug is from cloud.commandframework, in this case i can't do nothing.

EncryptSL commented 3 months ago

Fixed