2014-06-12 10:44:13 -05:00
|
|
|
package com.graywolf336.jail.command.subcommands;
|
|
|
|
|
2015-06-01 21:14:01 -05:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.List;
|
|
|
|
|
2014-06-12 10:44:13 -05:00
|
|
|
import org.bukkit.ChatColor;
|
|
|
|
import org.bukkit.command.CommandSender;
|
|
|
|
import org.bukkit.entity.Player;
|
2015-06-01 21:14:01 -05:00
|
|
|
import org.bukkit.util.StringUtil;
|
2014-06-12 10:44:13 -05:00
|
|
|
|
|
|
|
import com.graywolf336.jail.JailManager;
|
|
|
|
import com.graywolf336.jail.beans.Jail;
|
|
|
|
import com.graywolf336.jail.command.Command;
|
|
|
|
import com.graywolf336.jail.command.CommandInfo;
|
|
|
|
|
|
|
|
@CommandInfo(
|
2014-07-27 14:46:25 -05:00
|
|
|
maxArgs = 2,
|
|
|
|
minimumArgs = 1,
|
|
|
|
needsPlayer = true,
|
2015-05-29 16:56:02 -05:00
|
|
|
pattern = "createcells|createcell|cellcreate|cellscreate|cc",
|
2014-07-27 14:46:25 -05:00
|
|
|
permission = "jail.command.jailcreatecells",
|
|
|
|
usage = "/jail createcell [jail] (cellname)"
|
|
|
|
)
|
2014-07-15 20:19:35 -05:00
|
|
|
public class JailCreateCellCommand implements Command {
|
2014-06-12 10:44:13 -05:00
|
|
|
|
2014-07-27 14:46:25 -05:00
|
|
|
public boolean execute(JailManager jm, CommandSender sender, String... args) {
|
|
|
|
Player player = (Player) sender;
|
|
|
|
String name = player.getName();
|
2015-02-09 22:15:06 -06:00
|
|
|
String jail = args[1];
|
2014-07-27 14:46:25 -05:00
|
|
|
String cell = "";
|
|
|
|
|
|
|
|
//Only get the cell name they provide if they provide it
|
|
|
|
if(args.length >= 3) {
|
|
|
|
cell = args[2];
|
|
|
|
}
|
|
|
|
|
|
|
|
//Check if the player is currently creating something else
|
|
|
|
if(jm.isCreatingSomething(name)) {
|
|
|
|
String message = jm.getStepMessage(name);
|
|
|
|
if(!message.isEmpty()) {
|
|
|
|
player.sendMessage(ChatColor.RED + message);
|
|
|
|
}else {
|
|
|
|
player.sendMessage(ChatColor.RED + "You're already creating something else, please finish it or cancel.");
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
//Not creating anything, so let them create some cells.
|
|
|
|
if(jm.isValidJail(jail)) {
|
|
|
|
Jail j = jm.getJail(jail);
|
|
|
|
|
|
|
|
//If they didn't provide a cell name, let's provide one ourself.
|
|
|
|
if(cell.isEmpty()) cell = "cell_n" + (j.getCellCount() + 1);
|
|
|
|
|
|
|
|
if(j.getCell(cell) == null) {
|
|
|
|
if(jm.addCreatingCell(name, jail, cell)) {
|
|
|
|
jm.getCellCreationSteps().startStepping(player);
|
|
|
|
}else {
|
|
|
|
player.sendMessage(ChatColor.RED + "Appears you're creating a cell or something went wrong on our side.");
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
player.sendMessage(ChatColor.RED + "There's already a cell with the name '" + cell + "', please pick a new one or remove that cell.");
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
player.sendMessage(ChatColor.RED + "No such jail found by the name of '" + jail + "'.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
2014-06-12 10:44:13 -05:00
|
|
|
|
2015-06-01 21:14:01 -05:00
|
|
|
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
|
|
|
|
//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;
|
|
|
|
}
|
2014-06-12 10:44:13 -05:00
|
|
|
}
|