diff --git a/src/main/java/me/zombie_striker/qav/command/subcommands/RemoveCommand.java b/src/main/java/me/zombie_striker/qav/command/subcommands/RemoveCommand.java index c1a9c4e..7b4e525 100644 --- a/src/main/java/me/zombie_striker/qav/command/subcommands/RemoveCommand.java +++ b/src/main/java/me/zombie_striker/qav/command/subcommands/RemoveCommand.java @@ -11,6 +11,7 @@ import me.zombie_striker.qav.vehicles.AbstractVehicle; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -37,36 +38,48 @@ public String getName() { } @Override + @SuppressWarnings("deprecation") public void perform(CommandSender sender, String[] args) { if (!sender.hasPermission(PermissionHandler.PERM_REMOVE_VEHICLE)) { sender.sendMessage(Main.prefix + MessagesConfig.COMMANDMESSAGES_NO_PERM); return; } - if (args.length != 1) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', Main.prefix + "&7 Try to use &6/qav removeVehicle ")); + if (args.length == 0) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', Main.prefix + "&7 Try to use &6/qav removeVehicle [player]")); return; } + OfflinePlayer target = args.length == 2 ? Bukkit.getOfflinePlayer(args[1]) : null; + final List collect = Main.vehicles.stream() .filter(ve -> ve.getType().getName().equalsIgnoreCase(args[0])) + .filter(ve -> target == null || target.getUniqueId().equals(ve.getOwner())) .collect(Collectors.toList()); - Main.vehicles.removeIf(ve -> ve.getType().getName().equalsIgnoreCase(args[0])); - for (VehicleEntity entity : collect) { entity.deconstruct(null, "Remove command"); } - Bukkit.getScheduler().runTaskAsynchronously(QualityArmoryVehicles.getPlugin(), () -> { - List files = QualityArmoryVehicles.getUnlockedVehiclesFiles(); - for (File file : files) { + if (target == null) + Bukkit.getScheduler().runTaskAsynchronously(QualityArmoryVehicles.getPlugin(), () -> { + List files = QualityArmoryVehicles.getUnlockedVehiclesFiles(); + for (File file : files) { + List unlockedVehicles = QualityArmoryVehicles.parseUnlockedVehicles(file); + unlockedVehicles.removeIf(unlockedVehicle -> unlockedVehicle.getVehicleType().getName().equalsIgnoreCase(args[0])); + + QualityArmoryVehicles.setUnlockedVehicles(file, unlockedVehicles); + } + }); + else { + Bukkit.getScheduler().runTaskAsynchronously(QualityArmoryVehicles.getPlugin(), () -> { + File file = QualityArmoryVehicles.getUnlockedVehiclesFile(target); List unlockedVehicles = QualityArmoryVehicles.parseUnlockedVehicles(file); unlockedVehicles.removeIf(unlockedVehicle -> unlockedVehicle.getVehicleType().getName().equalsIgnoreCase(args[0])); QualityArmoryVehicles.setUnlockedVehicles(file, unlockedVehicles); - } - }); + }); + } } @Override diff --git a/src/main/java/me/zombie_striker/qav/util/BlockCollisionUtil.java b/src/main/java/me/zombie_striker/qav/util/BlockCollisionUtil.java index 217b870..a140179 100644 --- a/src/main/java/me/zombie_striker/qav/util/BlockCollisionUtil.java +++ b/src/main/java/me/zombie_striker/qav/util/BlockCollisionUtil.java @@ -40,6 +40,7 @@ public class BlockCollisionUtil { } } + @SuppressWarnings("deprecation") public static double getHeight(Block b) { Material type = getMaterial(b.getLocation()); if (type == null) return 0; @@ -53,17 +54,13 @@ public static double getHeight(Block b) { } return 0.5; - } catch (Exception ignored) { - modernCheck = false; - } + } catch (Exception | Error ignored) {} } - if (!modernCheck) { - if (b.getData() == 0) - return 0.5; - if (b.getData() == 1) - return 1; - } + if (b.getData() == 0) + return 0.5; + if (b.getData() == 1) + return 1; } if (customBlockHeights.containsKey(type))