Fix command duplication

This commit is contained in:
boy0001
2015-08-01 15:16:34 +10:00
parent 9b5958da31
commit a4f8292f04
8 changed files with 26 additions and 16 deletions

View File

@ -14,6 +14,8 @@ import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.metadata.MetadataValueAdapter;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;

View File

@ -11,8 +11,10 @@ import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import com.intellectualcrafters.plot.commands.Cluster;
import com.intellectualcrafters.plot.commands.DebugUUID;
import com.intellectualcrafters.plot.commands.MainCommand;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.object.ConsolePlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.StringComparison;
@ -27,6 +29,9 @@ public class BukkitCommand implements CommandExecutor, TabCompleter {
public BukkitCommand() {
MainCommand.getInstance().addCommand(new DebugUUID());
if (Settings.ENABLE_CLUSTERS) {
MainCommand.getInstance().addCommand(new Cluster());
}
}
@Override
@ -55,6 +60,8 @@ public class BukkitCommand implements CommandExecutor, TabCompleter {
return null;
}
final Set<String> tabOptions = new HashSet<>();
System.out.print(MainCommand.getInstance() + " mc");
System.out.print(MainCommand.getInstance().getCommands() + " gc");
ArrayList<Command<PlotPlayer>> commands = MainCommand.getInstance().getCommands();
String best = new StringComparison(strings[0], commands).getBestMatch();
tabOptions.add(best);

View File

@ -3,6 +3,7 @@ package com.plotsquared.general.commands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@ -51,7 +52,8 @@ public class CommandManager<T extends CommandCaller> {
}
final public ArrayList<Command<T>> getCommands() {
ArrayList<Command<T>> result = new ArrayList<>(this.commands.values());
HashSet<Command<T>> set = new HashSet<>(this.commands.values());
ArrayList<Command<T>> result = new ArrayList<>(set);
Collections.sort(result, new Comparator<Command<T>>() {
@Override
public int compare(Command<T> a, Command<T> b) {

View File

@ -33,7 +33,7 @@ public class SpongeCommand implements CommandCallable {
catch (Exception e) {
pp = ConsolePlayer.getConsole();
}
if (MainCommand.onCommand(pp, cmd.getName(), string.split(" "))) {
if (MainCommand.onCommand(pp, cmd.getName(), string.length() == 0 ? new String[] {} : string.split(" "))) {
return CommandResult.success();
}
else {