Simplify and expand tab completion
This commit is contained in:
		@@ -17,7 +17,7 @@
 | 
			
		||||
package com.lishid.openinv.commands;
 | 
			
		||||
 | 
			
		||||
import com.lishid.openinv.OpenInv;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import com.lishid.openinv.util.TabCompleter;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.function.BiConsumer;
 | 
			
		||||
@@ -25,16 +25,15 @@ import java.util.function.Function;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.bukkit.command.TabCompleter;
 | 
			
		||||
import org.bukkit.command.TabExecutor;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
public class ContainerSettingPluginCommand implements CommandExecutor, TabCompleter {
 | 
			
		||||
public class ContainerSettingCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
    private final OpenInv plugin;
 | 
			
		||||
 | 
			
		||||
    public ContainerSettingPluginCommand(final OpenInv plugin) {
 | 
			
		||||
    public ContainerSettingCommand(final OpenInv plugin) {
 | 
			
		||||
        this.plugin = plugin;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -78,16 +77,7 @@ public class ContainerSettingPluginCommand implements CommandExecutor, TabComple
 | 
			
		||||
            return Collections.emptyList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        String argument = args[0].toLowerCase();
 | 
			
		||||
        List<String> completions = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        for (String subcommand : new String[] {"check", "on", "off"}) {
 | 
			
		||||
            if (subcommand.startsWith(argument)) {
 | 
			
		||||
                completions.add(subcommand);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return completions;
 | 
			
		||||
        return TabCompleter.completeString(args[0], new String[] {"check", "on", "off"});
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -19,22 +19,25 @@ package com.lishid.openinv.commands;
 | 
			
		||||
import com.lishid.openinv.OpenInv;
 | 
			
		||||
import com.lishid.openinv.internal.ISpecialInventory;
 | 
			
		||||
import com.lishid.openinv.util.Permissions;
 | 
			
		||||
import com.lishid.openinv.util.TabCompleter;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.bukkit.command.TabExecutor;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.scheduler.BukkitRunnable;
 | 
			
		||||
 | 
			
		||||
public class OpenInvPluginCommand implements CommandExecutor {
 | 
			
		||||
public class OpenInvCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
    private final OpenInv plugin;
 | 
			
		||||
    private final HashMap<Player, String> openInvHistory = new HashMap<Player, String>();
 | 
			
		||||
    private final HashMap<Player, String> openEnderHistory = new HashMap<Player, String>();
 | 
			
		||||
 | 
			
		||||
    public OpenInvPluginCommand(final OpenInv plugin) {
 | 
			
		||||
    public OpenInvCommand(final OpenInv plugin) {
 | 
			
		||||
        this.plugin = plugin;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -73,7 +76,7 @@ public class OpenInvPluginCommand implements CommandExecutor {
 | 
			
		||||
        new BukkitRunnable() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public void run() {
 | 
			
		||||
                final OfflinePlayer offlinePlayer = OpenInvPluginCommand.this.plugin.matchPlayer(name);
 | 
			
		||||
                final OfflinePlayer offlinePlayer = OpenInvCommand.this.plugin.matchPlayer(name);
 | 
			
		||||
 | 
			
		||||
                if (offlinePlayer == null || !offlinePlayer.hasPlayedBefore() && !offlinePlayer.isOnline()) {
 | 
			
		||||
                    player.sendMessage(ChatColor.RED + "Player not found!");
 | 
			
		||||
@@ -86,9 +89,9 @@ public class OpenInvPluginCommand implements CommandExecutor {
 | 
			
		||||
                        if (!player.isOnline()) {
 | 
			
		||||
                            return;
 | 
			
		||||
                        }
 | 
			
		||||
                        OpenInvPluginCommand.this.openInventory(player, offlinePlayer, openinv);
 | 
			
		||||
                        OpenInvCommand.this.openInventory(player, offlinePlayer, openinv);
 | 
			
		||||
                    }
 | 
			
		||||
                }.runTask(OpenInvPluginCommand.this.plugin);
 | 
			
		||||
                }.runTask(OpenInvCommand.this.plugin);
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        }.runTaskAsynchronously(this.plugin);
 | 
			
		||||
@@ -161,4 +164,13 @@ public class OpenInvPluginCommand implements CommandExecutor {
 | 
			
		||||
        plugin.openInventory(player, inv);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        if (!command.testPermissionSilent(sender) || args.length != 1) {
 | 
			
		||||
            return Collections.emptyList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return TabCompleter.completeOnlinePlayer(sender, args[0]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -17,10 +17,13 @@
 | 
			
		||||
package com.lishid.openinv.commands;
 | 
			
		||||
 | 
			
		||||
import com.lishid.openinv.OpenInv;
 | 
			
		||||
import com.lishid.openinv.util.TabCompleter;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.bukkit.command.TabExecutor;
 | 
			
		||||
import org.bukkit.enchantments.Enchantment;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.inventory.Inventory;
 | 
			
		||||
@@ -33,11 +36,11 @@ import org.bukkit.inventory.meta.ItemMeta;
 | 
			
		||||
 *
 | 
			
		||||
 * @author Jikoo
 | 
			
		||||
 */
 | 
			
		||||
public class SearchEnchantPluginCommand implements CommandExecutor {
 | 
			
		||||
public class SearchEnchantCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
    private final OpenInv plugin;
 | 
			
		||||
 | 
			
		||||
    public SearchEnchantPluginCommand(OpenInv plugin) {
 | 
			
		||||
    public SearchEnchantCommand(OpenInv plugin) {
 | 
			
		||||
        this.plugin = plugin;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -130,4 +133,17 @@ public class SearchEnchantPluginCommand implements CommandExecutor {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        if (!command.testPermissionSilent(sender) || args.length < 1 || args.length > 2) {
 | 
			
		||||
            return Collections.emptyList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (args.length == 1) {
 | 
			
		||||
            return TabCompleter.completeObject(args[0], Enchantment::getName, Enchantment.values());
 | 
			
		||||
        } else {
 | 
			
		||||
            return TabCompleter.completeInteger(args[1]);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -17,19 +17,22 @@
 | 
			
		||||
package com.lishid.openinv.commands;
 | 
			
		||||
 | 
			
		||||
import com.lishid.openinv.OpenInv;
 | 
			
		||||
import com.lishid.openinv.util.TabCompleter;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.bukkit.command.TabExecutor;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.inventory.Inventory;
 | 
			
		||||
 | 
			
		||||
public class SearchInvPluginCommand implements CommandExecutor {
 | 
			
		||||
public class SearchInvCommand implements TabExecutor {
 | 
			
		||||
 | 
			
		||||
    private final OpenInv plugin;
 | 
			
		||||
 | 
			
		||||
    public SearchInvPluginCommand(OpenInv plugin) {
 | 
			
		||||
    public SearchInvCommand(OpenInv plugin) {
 | 
			
		||||
        this.plugin = plugin;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -40,8 +43,7 @@ public class SearchInvPluginCommand implements CommandExecutor {
 | 
			
		||||
        int count = 1;
 | 
			
		||||
 | 
			
		||||
        if (args.length >= 1) {
 | 
			
		||||
            String[] gData = args[0].split(":");
 | 
			
		||||
            material = Material.matchMaterial(gData[0]);
 | 
			
		||||
            material = Material.getMaterial(args[0]);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (args.length >= 2) {
 | 
			
		||||
@@ -77,4 +79,18 @@ public class SearchInvPluginCommand implements CommandExecutor {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        if (args.length < 1 || args.length > 2 || !command.testPermissionSilent(sender)) {
 | 
			
		||||
            return Collections.emptyList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        String argument = args[args.length - 1];
 | 
			
		||||
        if (args.length == 1) {
 | 
			
		||||
            return TabCompleter.completeEnum(argument, Material.class);
 | 
			
		||||
        } else {
 | 
			
		||||
            return TabCompleter.completeInteger(argument);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user