3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-12-25 07:40:13 +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;
} else {
length = packet.getCommand().length() - startPos;
}
resp.setStart(startPos); resp.setStart(startPos);
resp.setLength(length); resp.setLength(packet.getCommand().length() - startPos);
resp.getOffers().addAll(offers); resp.getOffers().addAll(offers);
player.getConnection().write(resp); player.getConnection().write(resp);
}
return true; return true;
} }