3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-12-25 15:50:19 +01:00

Fix 1.13+ tab-complete with command but no arguments

As a nice side-effect, this simplifies the tab complete code
a bit.
Dieser Commit ist enthalten in:
Andrew Steinborn 2019-11-26 13:44:21 -05:00
Ursprung ae14eb8ccb
Commit e29e20b1e8

Datei anzeigen

@ -386,31 +386,19 @@ public class ClientPlaySessionHandler implements MinecraftSessionHandler {
} }
List<Offer> offers = new ArrayList<>(); List<Offer> offers = new ArrayList<>();
int longestLength = 0;
for (String suggestion : suggestions) { for (String suggestion : suggestions) {
offers.add(new Offer(suggestion)); offers.add(new Offer(suggestion));
if (suggestion.length() > longestLength) {
longestLength = suggestion.length();
}
} }
TabCompleteResponse resp = new TabCompleteResponse();
resp.setTransactionId(packet.getTransactionId());
int startPos = packet.getCommand().lastIndexOf(' ') + 1; int startPos = packet.getCommand().lastIndexOf(' ') + 1;
int length; if (startPos > 0) {
if (startPos == 0) { TabCompleteResponse resp = new TabCompleteResponse();
startPos = packet.getCommand().length() + 1; resp.setTransactionId(packet.getTransactionId());
length = longestLength; resp.setStart(startPos);
} else { resp.setLength(packet.getCommand().length() - startPos);
length = packet.getCommand().length() - startPos; resp.getOffers().addAll(offers);
player.getConnection().write(resp);
} }
resp.setStart(startPos);
resp.setLength(length);
resp.getOffers().addAll(offers);
player.getConnection().write(resp);
return true; return true;
} }