diff --git a/src/main/java/nl/SBDeveloper/V10Lift/API/Objects/Floor.java b/src/main/java/nl/SBDeveloper/V10Lift/API/Objects/Floor.java index 99c8a68..5765e8f 100644 --- a/src/main/java/nl/SBDeveloper/V10Lift/API/Objects/Floor.java +++ b/src/main/java/nl/SBDeveloper/V10Lift/API/Objects/Floor.java @@ -1,16 +1,20 @@ package nl.SBDeveloper.V10Lift.API.Objects; -import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.UUID; -@Getter @Setter @AllArgsConstructor +@Getter @Setter public class Floor { private String world; private int y; private ArrayList doorBlocks; private ArrayList whitelist; + + public Floor(int y, String world) { + this.y = y; + this.world = world; + } } diff --git a/src/main/java/nl/SBDeveloper/V10Lift/Commands/V10LiftCommand.java b/src/main/java/nl/SBDeveloper/V10Lift/Commands/V10LiftCommand.java index 4a4077f..8385ced 100644 --- a/src/main/java/nl/SBDeveloper/V10Lift/Commands/V10LiftCommand.java +++ b/src/main/java/nl/SBDeveloper/V10Lift/Commands/V10LiftCommand.java @@ -1,5 +1,6 @@ package nl.SBDeveloper.V10Lift.Commands; +import nl.SBDeveloper.V10Lift.API.Objects.Floor; import nl.SBDeveloper.V10Lift.API.Objects.Lift; import nl.SBDeveloper.V10Lift.API.Objects.LiftBlock; import nl.SBDeveloper.V10Lift.API.Objects.LiftSign; @@ -61,10 +62,89 @@ public class V10LiftCommand implements CommandExecutor { } else { sender.sendMessage(ChatColor.RED + "You don't have the permission to do this!"); } + } else if (args[0].equalsIgnoreCase("floor") && (args.length == 3 || args.length == 4)) { + //v10lift floor add || v10lift floor del || v10lift floor rename + 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 floorCommand(sender, args); + } else { + sender.sendMessage(ChatColor.RED + "You don't have the permission to do this!"); + } } return false; } + private boolean floorCommand(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")) { + Block b = p.getLocation().getBlock(); + String floorName = args[2]; + int response = V10LiftPlugin.getAPI().addFloor(liftName, floorName, new Floor(b.getY() - 1, b.getWorld().getName())); + switch (response) { + case 0: + sender.sendMessage(ChatColor.GREEN + "Floor successfully added!"); + break; + case -2: + sender.sendMessage(ChatColor.RED + "That floor is too high!"); + break; + case -3: + sender.sendMessage(ChatColor.RED + "That floor already exists!"); + break; + default: + sender.sendMessage(ChatColor.RED + "Internal error!"); + break; + } + } else if (args[1].equalsIgnoreCase("del")) { + String floorName = args[2]; + if (!V10LiftPlugin.getAPI().removeFloor(liftName, floorName)) { + sender.sendMessage(ChatColor.RED + "Internal error!"); + } else { + sender.sendMessage(ChatColor.GREEN + "Floor successfully removed!"); + } + } else if (args[1].equalsIgnoreCase("rename")) { + if (args.length < 4) { + sender.sendMessage(ChatColor.RED + "Please use: /v10lift floor rename "); + return true; + } + + String floorName = args[2]; + String newFloorName = args[3]; + int response = V10LiftPlugin.getAPI().renameFloor(liftName, floorName, newFloorName); + switch (response) { + case 0: + sender.sendMessage(ChatColor.GREEN + "Floor successfully renamed!"); + break; + case -2: + sender.sendMessage(ChatColor.RED + "That floor doesn't exists!"); + break; + case -3: + sender.sendMessage(ChatColor.RED + "That floor already exists!"); + break; + default: + sender.sendMessage(ChatColor.RED + "Internal error!"); + break; + } + } else { + //args[1] not found! + return helpCommand(sender); + } + return true; + } + private boolean editCommand(@Nonnull CommandSender sender, @Nonnull String[] args) { Player p = (Player) sender; if (DataManager.containsEditPlayer(p.getUniqueId())) { @@ -174,11 +254,6 @@ public class V10LiftCommand implements CommandExecutor { private boolean deleteCommand(@Nonnull CommandSender sender, @Nonnull String[] args) { Player p = (Player) sender; - if (args.length < 2) { - sender.sendMessage(ChatColor.RED + "Please use /v10lift delete "); - return true; - } - if (!DataManager.containsLift(args[1])) { sender.sendMessage(ChatColor.RED + "That lift doesn't exists."); return true;