do not complete from legacy tab complete packet

This commit is contained in:
2022-12-29 21:54:50 +01:00
parent ed1024c9e7
commit e8b284db69
2 changed files with 10 additions and 6 deletions
@@ -9,7 +9,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
public class AsyncTabCompleteBlockerListener implements Listener { public class AsyncTabCompleteBlockerListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
@@ -18,8 +17,14 @@ public class AsyncTabCompleteBlockerListener implements Listener {
Player player = (Player) event.getSender(); Player player = (Player) event.getSender();
if (player.hasPermission(CWPermission.BYPASS.permission())) return; if (player.hasPermission(CWPermission.BYPASS.permission())) return;
String buffer = event.getBuffer(); String buffer = event.getBuffer();
if (!buffer.endsWith(" ") && buffer.split(" ").length == 1) event.setCancelled(true); if ((buffer.split(" ").length == 1 && !buffer.endsWith(" ")) || !buffer.startsWith("/")) {
if (event.getCompletions().isEmpty()) return; CommandWhitelistBukkit.getConfigCache().debug("Actively prevented "+event.getSender().getName()+"'s tab completion (sus packet)");
event.setCancelled(true);
return;
}
if (event.getCompletions().isEmpty()) {
return;
}
event.setCompletions(CommandUtil.filterSuggestions(buffer, event.getCompletions(), CommandWhitelistBukkit.getSuggestions(player))); event.setCompletions(CommandUtil.filterSuggestions(buffer, event.getCompletions(), CommandWhitelistBukkit.getSuggestions(player)));
} }
@@ -17,13 +17,12 @@ public class TabCompleteBlockerListener implements Listener {
Player player = (Player) event.getSender(); Player player = (Player) event.getSender();
if (player.hasPermission(CWPermission.BYPASS.permission())) return; if (player.hasPermission(CWPermission.BYPASS.permission())) return;
String buffer = event.getBuffer(); String buffer = event.getBuffer();
if (!buffer.endsWith(" ") && buffer.split(" ").length == 1) { if ((buffer.split(" ").length == 1 && !buffer.endsWith(" ")) || !buffer.startsWith("/")) {
CommandWhitelistBukkit.getConfigCache().debug("Actively prevented "+event.getSender().getName()+"'s tab completion (/[tab] packet)"); CommandWhitelistBukkit.getConfigCache().debug("Actively prevented "+event.getSender().getName()+"'s tab completion (sus packet)");
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
if (event.getCompletions().isEmpty()) { if (event.getCompletions().isEmpty()) {
CommandWhitelistBukkit.getConfigCache().debug("Tab completion not provided");
return; return;
} }
event.setCompletions( event.setCompletions(