Implement TabCompleteEvent

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2016-05-16 16:59:57 +10:00
parent 3d355b6e64
commit 07c0e6067b
2 changed files with 17 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
package org.bukkit.craftbukkit.command;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.logging.Level;
@@ -8,6 +9,7 @@ import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.util.Waitable;
import jline.console.completer.Completer;
import org.bukkit.event.server.TabCompleteEvent;
public class ConsoleCommandCompleter implements Completer {
private final CraftServer server;
@@ -20,7 +22,12 @@ public class ConsoleCommandCompleter implements Completer {
Waitable<List<String>> waitable = new Waitable<List<String>>() {
@Override
protected List<String> evaluate() {
return server.getCommandMap().tabComplete(server.getConsoleSender(), buffer);
List<String> offers = server.getCommandMap().tabComplete(server.getConsoleSender(), buffer);
TabCompleteEvent tabEvent = new TabCompleteEvent(server.getConsoleSender(), buffer, offers);
server.getPluginManager().callEvent(tabEvent);
return tabEvent.isCancelled() ? Collections.EMPTY_LIST : tabEvent.getCompletions();
}
};
this.server.getServer().processQueue.add(waitable);