Added input command

This commit is contained in:
stijnb1234 2020-01-30 14:47:22 +01:00
parent 46bd6676e3
commit 9ef7830c69

View file

@ -18,8 +18,10 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import javax.annotation.Nonnull;
import javax.xml.crypto.Data;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.Objects;
public class V10LiftCommand implements CommandExecutor {
@ -72,10 +74,80 @@ public class V10LiftCommand implements CommandExecutor {
} else {
sender.sendMessage(ChatColor.RED + "You don't have the permission to do this!");
}
} else if (args[0].equalsIgnoreCase("input") && (args.length == 2 || args.length == 3)) {
//v10lift input add <Floor name> || v10lift input del
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "You have to be a player to do this.");
}
if (sender.hasPermission("v10lift.build") || sender.hasPermission("v10lift.admin")) {
return inputCommand(sender, args);
} else {
sender.sendMessage(ChatColor.RED + "You don't have the permission to do this!");
}
}
return false;
}
private boolean inputCommand(CommandSender sender, String[] args) {
Player p = (Player) sender;
if (!DataManager.containsEditPlayer(p.getUniqueId())) {
sender.sendMessage(ChatColor.RED + "First switch on the editor mode!");
return true;
}
String liftName = DataManager.getEditPlayer(p.getUniqueId());
if (!DataManager.containsLift(liftName)) {
sender.sendMessage(ChatColor.RED + "That lift doesn't exists.");
return true;
}
Lift lift = DataManager.getLift(liftName);
if (args[1].equalsIgnoreCase("add")) {
String floor = null;
if (args.length < 3) {
Block b = p.getLocation().getBlock();
Floor f = new Floor(b.getY() - 1, b.getWorld().getName());
if (!lift.getFloors().containsValue(f)) {
sender.sendMessage(ChatColor.RED + "Automatic floor detection failed!");
return true;
}
for (Map.Entry<String, Floor> e : lift.getFloors().entrySet()) {
Floor fl = e.getValue();
if (fl.equals(f)) {
floor = e.getKey();
}
}
} else {
floor = args[2];
}
if (DataManager.containsInputEditsPlayer(p.getUniqueId()) || DataManager.containsInputRemovesPlayer(p.getUniqueId())) {
sender.sendMessage(ChatColor.RED + "You are still adjusting an input!");
return true;
}
DataManager.addInputEditsPlayer(p.getUniqueId(), Objects.requireNonNull(floor, "Floor is null at input add command"));
sender.sendMessage(ChatColor.GREEN + "Now right click on the input block!");
} else if (args[1].equalsIgnoreCase("del")) {
if (lift.getInputs().isEmpty()) {
sender.sendMessage(ChatColor.RED + "There is no input to remove!");
return true;
}
if (DataManager.containsInputEditsPlayer(p.getUniqueId()) || DataManager.containsInputRemovesPlayer(p.getUniqueId())) {
sender.sendMessage(ChatColor.RED + "You are still adjusting an input!");
return true;
}
DataManager.addInputRemovesPlayer(p.getUniqueId());
sender.sendMessage(ChatColor.GREEN + "Now right click on the input block!");
} else {
return helpCommand(sender);
}
return true;
}
private boolean floorCommand(CommandSender sender, String[] args) {
Player p = (Player) sender;
if (!DataManager.containsEditPlayer(p.getUniqueId())) {
@ -88,8 +160,6 @@ public class V10LiftCommand implements CommandExecutor {
sender.sendMessage(ChatColor.RED + "That lift doesn't exists.");
return true;
}
Lift lift = DataManager.getLift(liftName);
if (args[1].equalsIgnoreCase("add")) {
Block b = p.getLocation().getBlock();
String floorName = args[2];