Almost finish tab completion, #77 (see details)

The only commands left to enable tab completion on are:
- jail
- jail transfer
This commit is contained in:
graywolf336
2015-06-02 12:32:34 -05:00
parent 019deea43a
commit cfb62eed13
23 changed files with 262 additions and 98 deletions

View File

@ -6,6 +6,7 @@ import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
@ -54,6 +55,11 @@ public class JailCheckCommand implements Command{
Collections.sort(results);
if(args.length == 1)
for(Player p : jm.getPlugin().getServer().getOnlinePlayers())
if(!results.contains(p.getName()))
results.add(p.getName());
return results;
}
}

View File

@ -1,13 +1,11 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Jail;
@ -72,18 +70,6 @@ public class JailCreateCellCommand implements Command {
//We shouldn't provide when they want a cell name
if(args.length >= 3) return Collections.emptyList();
List<String> results = new ArrayList<String>();
for(Jail j : jm.getJails()) {
if(args.length == 2 && StringUtil.startsWithIgnoreCase(j.getName(), args[1])) {
results.add(j.getName());
}else {
results.add(j.getName());
}
}
Collections.sort(results);
return results;
return jm.getJailsByPrefix(args.length == 2 ? args[1] : "");
}
}

View File

@ -41,19 +41,17 @@ public class JailDeleteCellCommand implements Command {
switch(args.length) {
case 1:
results.addAll(jm.getJailNamesAsList());
results.addAll(jm.getJailsByPrefix(""));
break;
case 2:
for(Jail j : jm.getJails())
if(StringUtil.startsWithIgnoreCase(j.getName(), args[1]))
results.add(j.getName());
results = jm.getJailsByPrefix(args[1]);
break;
case 3:
if(jm.isValidJail(args[1])) {
Jail j = jm.getJail(args[1]);
for(Cell c : j.getCells())
if(StringUtil.startsWithIgnoreCase(c.getName(), args[2]))
if(args[2].isEmpty() || StringUtil.startsWithIgnoreCase(c.getName(), args[2]))
results.add(c.getName());
}
break;

View File

@ -1,6 +1,5 @@
package com.graywolf336.jail.command.subcommands;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.CommandSender;
@ -33,7 +32,6 @@ public class JailDeleteCellsCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
return Collections.emptyList();
return jm.getJailsByPrefix(args.length == 2 ? args[1] : "");
}
}

View File

@ -1,6 +1,5 @@
package com.graywolf336.jail.command.subcommands;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.CommandSender;
@ -33,7 +32,6 @@ public class JailDeleteCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
return Collections.emptyList();
return jm.getJailsByPrefix(args.length == 2 ? args[1] : "");
}
}

View File

@ -1,12 +1,9 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Cell;
@ -58,18 +55,6 @@ public class JailListCellsCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
List<String> results = new ArrayList<String>();
for(Jail j : jm.getJails()) {
if(args.length == 2 && StringUtil.startsWithIgnoreCase(j.getName(), args[1])) {
results.add(j.getName());
}else {
results.add(j.getName());
}
}
Collections.sort(results);
return results;
return jm.getJailsByPrefix(args.length == 2 ? args[1] : "");
}
}

View File

@ -1,13 +1,10 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Jail;
@ -67,18 +64,6 @@ public class JailListCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
List<String> results = new ArrayList<String>();
for(Jail j : jm.getJails()) {
if(args.length == 2 && StringUtil.startsWithIgnoreCase(j.getName(), args[1])) {
results.add(j.getName());
}else {
results.add(j.getName());
}
}
Collections.sort(results);
return results;
return jm.getJailsByPrefix(args.length == 2 ? args[1] : "");
}
}

View File

@ -1,5 +1,6 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -7,6 +8,7 @@ import java.util.concurrent.TimeUnit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Prisoner;
@ -210,7 +212,24 @@ public class JailPayCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
if(jm.getPlugin().getConfig().getBoolean(Settings.JAILPAYENABLED.getPath())) {
switch(args.length) {
case 3:
List<String> results = new ArrayList<String>();
for(Prisoner p : jm.getAllPrisoners().values())
if(!p.isOfflinePending()) //Don't list if they're offline pending
if(p.getRemainingTime() != -1) //Don't list if they're jailed forever
if(StringUtil.startsWithIgnoreCase(p.getLastKnownName(), args[2]))
results.add(p.getLastKnownName());
Collections.sort(results);
return results;
default:
break;
}
}
return Collections.emptyList();
}
}

View File

@ -45,7 +45,7 @@ public class JailRecordCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
//We won't be implementing tab complete on this for now (unless requested)
return Collections.emptyList();
}
}

View File

@ -1,10 +1,12 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Jail;
@ -56,7 +58,21 @@ public class JailTeleInCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
return Collections.emptyList();
switch(args.length) {
case 2:
return jm.getJailsByPrefix(args[1]);
case 3:
List<String> results = new ArrayList<String>();
for(Player p : jm.getPlugin().getServer().getOnlinePlayers())
if(args[2].isEmpty() || StringUtil.startsWithIgnoreCase(p.getName(), args[2]))
results.add(p.getName());
Collections.sort(results);
return results;
default:
return Collections.emptyList();
}
}
}

View File

@ -1,10 +1,12 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Jail;
@ -56,7 +58,21 @@ public class JailTeleOutCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
return Collections.emptyList();
switch(args.length) {
case 2:
return jm.getJailsByPrefix(args[1]);
case 3:
List<String> results = new ArrayList<String>();
for(Player p : jm.getPlugin().getServer().getOnlinePlayers())
if(args[2].isEmpty() || StringUtil.startsWithIgnoreCase(p.getName(), args[2]))
results.add(p.getName());
Collections.sort(results);
return results;
default:
return Collections.emptyList();
}
}
}

View File

@ -1,9 +1,11 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.Util;
@ -57,7 +59,25 @@ public class JailTimeCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
return Collections.emptyList();
List<String> results = new ArrayList<String>();
switch(args.length) {
case 2:
for(String s : new String[] { "add", "remove", "set", "show" })
if(args[1].isEmpty() || StringUtil.startsWithIgnoreCase(s, args[1]))
results.add(s);
break;
case 3:
for(Prisoner p : jm.getAllPrisoners().values())
if(StringUtil.startsWithIgnoreCase(p.getLastKnownName(), args[2]))
results.add(p.getLastKnownName());
break;
default:
break;
}
Collections.sort(results);
return results;
}
}

View File

@ -1,10 +1,12 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Jail;
@ -57,7 +59,21 @@ public class JailTransferAllCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
return Collections.emptyList();
switch(args.length) {
case 2:
return jm.getJailsByPrefix(args[1]);
case 3:
List<String> results = new ArrayList<String>();
for(Jail j : jm.getJails())
if(!j.getName().equalsIgnoreCase(args[1]) && (args[2].isEmpty() || StringUtil.startsWithIgnoreCase(j.getName(), args[2])))
results.add(j.getName());
Collections.sort(results);
return results;
default:
return Collections.emptyList();
}
}
}

View File

@ -1,10 +1,12 @@
package com.graywolf336.jail.command.subcommands;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.JailVoteManager;
@ -102,7 +104,29 @@ public class JailVoteCommand implements Command {
}
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
//TODO implement
return Collections.emptyList();
if(jm.getPlugin().getConfig().getBoolean(Settings.JAILVOTEENABLED.getPath()) && jm.getPlugin().getJailVoteManager() != null && !jm.getJails().isEmpty()) {
List<String> results = new ArrayList<String>();
switch(args.length) {
case 2:
for(Player p : jm.getPlugin().getServer().getOnlinePlayers())
if(args[1].isEmpty() || StringUtil.startsWithIgnoreCase(p.getName(), args[1]))
results.add(p.getName());
break;
case 3:
for(String s : new String[] { "yes", "no" })
if(args[2].isEmpty() || StringUtil.startsWithIgnoreCase(s, args[2]))
results.add(s);
break;
default:
break;
}
Collections.sort(results);
return results;
}else {
return Collections.emptyList();
}
}
}