From baa16537531930273cb7714e4d6abad576797242 Mon Sep 17 00:00:00 2001 From: "Blue (Lukas Rieger)" Date: Sun, 1 Nov 2020 12:41:40 +0100 Subject: [PATCH] Workaround for a paper-bug causing an error when tab-completing sometimes --- .../bluecolored/bluemap/bukkit/BukkitCommands.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/implementations/spigot/src/main/java/de/bluecolored/bluemap/bukkit/BukkitCommands.java b/implementations/spigot/src/main/java/de/bluecolored/bluemap/bukkit/BukkitCommands.java index 0125dbf8..fb27495a 100644 --- a/implementations/spigot/src/main/java/de/bluecolored/bluemap/bukkit/BukkitCommands.java +++ b/implementations/spigot/src/main/java/de/bluecolored/bluemap/bukkit/BukkitCommands.java @@ -32,6 +32,7 @@ import java.util.concurrent.TimeoutException; import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.command.defaults.BukkitCommand; @@ -88,8 +89,16 @@ public void onTabComplete(TabCompleteEvent evt) { } if (!completions.isEmpty()) { - completions.sort((s1, s2) -> s1.compareToIgnoreCase(s2)); - evt.getCompletions().addAll(completions); + completions.sort(String::compareToIgnoreCase); + + try { + evt.getCompletions().addAll(completions); + } catch (UnsupportedOperationException ex){ + // fix for a bug with paper where the completion-Collection is not mutable for some reason + List mutableCompletions = new ArrayList<>(evt.getCompletions()); + mutableCompletions.addAll(completions); + evt.setCompletions(mutableCompletions); + } } } catch (InterruptedException ignore) { Thread.currentThread().interrupt();