OpenNAW/src/main/java/moe/oko/opennaw/command/CityCommand.java

57 lines
2.0 KiB
Java
Raw Normal View History

2022-04-22 03:48:33 +00:00
package moe.oko.opennaw.command;
import moe.oko.opennaw.OpenNAW;
import moe.oko.opennaw.util.CommandHelper;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import java.util.List;
public class CityCommand implements TabExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(CommandHelper.NOT_PLAYER);
return true;
}
if (args.length < 1) { return false; }
var cityList = OpenNAW.getInstance().getCityHandler().getCityList();
switch (args[0]) {
case "add": {
var location = ((Player) sender).getLocation();
OpenNAW.getInstance().getCityHandler().addCity(args[1], args[2], location);
sender.sendMessage("Created city " + args[1] + " at " + location.getBlockX() + " " + location.getBlockY() + " " + location.getBlockZ());
return true;
2022-04-22 03:48:33 +00:00
}
case "remove": {
OpenNAW.getInstance().getCityHandler().removeCity(args[1]);
sender.sendMessage("Removed city " + args[1]);
return true;
2022-04-22 03:48:33 +00:00
}
case "list": {
final var msg = cityList.size() == 0
? "There are no cities"
: "There are " + cityList.size() + " cities: " + cityList;
sender.sendMessage(msg);
return true;
2022-04-22 03:48:33 +00:00
}
}
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
return switch (args.length) {
case 1 -> List.of("add", "list", "modify", "remove");
case 2 -> OpenNAW.getInstance().getCityHandler().getCityList();
default -> null;
};
}
}