summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2017-04-13 17:57:47 -0700
committerPokechu22 <Pokechu022@gmail.com>2017-04-13 17:57:47 -0700
commit1ac133ecc52da74c6f87e3cf308fc4ad39df4518 (patch)
tree4b9bca3d2c8834f350ce74a5e0634518ad547b04 /src/main/java
parentd219213e2bb8b63e6ca51c1c86a7a698ac5106d3 (diff)
downloadcraftbukkit-1ac133ecc52da74c6f87e3cf308fc4ad39df4518.tar
craftbukkit-1ac133ecc52da74c6f87e3cf308fc4ad39df4518.tar.gz
craftbukkit-1ac133ecc52da74c6f87e3cf308fc4ad39df4518.tar.lz
craftbukkit-1ac133ecc52da74c6f87e3cf308fc4ad39df4518.tar.xz
craftbukkit-1ac133ecc52da74c6f87e3cf308fc4ad39df4518.zip
SPIGOT-3182: Fix tab-completion in command blocks without leading slash
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftServer.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 39d4daec..50e1349a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1532,14 +1532,14 @@ public final class CraftServer implements Server {
return warningState;
}
- public List<String> tabComplete(net.minecraft.server.ICommandListener sender, String message, BlockPosition pos) {
+ public List<String> tabComplete(net.minecraft.server.ICommandListener sender, String message, BlockPosition pos, boolean forceCommand) {
if (!(sender instanceof EntityPlayer)) {
return ImmutableList.of();
}
List<String> offers;
Player player = ((EntityPlayer) sender).getBukkitEntity();
- if (message.startsWith("/")) {
+ if (message.startsWith("/") || forceCommand) {
offers = tabCompleteCommand(player, message, pos);
} else {
offers = tabCompleteChat(player, message);
@@ -1554,10 +1554,14 @@ public final class CraftServer implements Server {
public List<String> tabCompleteCommand(Player player, String message, BlockPosition pos) {
List<String> completions = null;
try {
+ if (message.startsWith("/")) {
+ // Trim leading '/' if present (won't always be present in command blocks)
+ message = message.substring(1);
+ }
if (pos == null) {
- completions = getCommandMap().tabComplete(player, message.substring(1));
+ completions = getCommandMap().tabComplete(player, message);
} else {
- completions = getCommandMap().tabComplete(player, message.substring(1), new Location(player.getWorld(), pos.getX(), pos.getY(), pos.getZ()));
+ completions = getCommandMap().tabComplete(player, message, new Location(player.getWorld(), pos.getX(), pos.getY(), pos.getZ()));
}
} catch (CommandException ex) {
player.sendMessage(ChatColor.RED + "An internal error occurred while attempting to tab-complete this command");