Merge pull request #2228 from Minecrell/patch-2

Fix some issues with the console command completion
This commit is contained in:
cpw 2015-12-11 15:42:06 -05:00
commit cef50616d8
2 changed files with 15 additions and 13 deletions

View file

@ -2,6 +2,7 @@ package net.minecraftforge.server.console;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
@ -28,14 +29,9 @@ public final class ConsoleCommandCompleter implements Completer
public int complete(String buffer, int cursor, List<CharSequence> candidates) public int complete(String buffer, int cursor, List<CharSequence> candidates)
{ {
int len = buffer.length(); int len = buffer.length();
buffer = buffer.trim();
if (buffer.isEmpty())
{
return cursor;
}
boolean prefix; boolean prefix;
if (buffer.charAt(0) != '/') if (buffer.isEmpty() || buffer.charAt(0) != '/')
{ {
buffer = '/' + buffer; buffer = '/' + buffer;
prefix = false; prefix = false;
@ -59,6 +55,7 @@ public final class ConsoleCommandCompleter implements Completer
try try
{ {
List<String> completions = tabComplete.get(); List<String> completions = tabComplete.get();
Collections.sort(completions);
if (prefix) if (prefix)
{ {
candidates.addAll(completions); candidates.addAll(completions);
@ -76,6 +73,10 @@ public final class ConsoleCommandCompleter implements Completer
{ {
return cursor - len; return cursor - len;
} }
else if (prefix)
{
return cursor - len + pos + 1;
}
else else
{ {
return cursor - len + pos; return cursor - len + pos;

View file

@ -34,16 +34,17 @@ public final class TerminalHandler
try try
{ {
line = reader.readLine("> "); line = reader.readLine("> ");
if (line == null)
if (line != null)
{ {
break;
}
line = line.trim(); line = line.trim();
if (!line.isEmpty()) if (!line.isEmpty())
{ {
server.addPendingCommand(line, server); server.addPendingCommand(line, server);
} }
} }
}
catch (IOException e) catch (IOException e)
{ {
logger.error("Exception handling console input", e); logger.error("Exception handling console input", e);