Fix incorrect number of arguments in command

Fix check stock command checking total items left, not total amount of purchases left
This commit is contained in:
Teriuihi 2023-01-22 21:37:00 +01:00
parent d3ba5be040
commit da5e514422

View File

@ -48,14 +48,14 @@ public class CheckStockCommand implements Subcommand {
sender.sendMessage(Util.parseMiniMessage("<red>Only players can use this command."));
return false;
}
if (args.length != 2 && args.length != 3) {
if (args.length != 1 && args.length != 2) {
player.sendMessage(Util.parseMiniMessage("<red>Invalid command syntax, use /checkstock <radius> [minimum stock]"));
return false;
}
int radius;
try {
radius = Integer.parseInt(args[1]);
radius = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
player.sendMessage(Util.parseMiniMessage("<red>radius has to be a valid number, use /checkstock <radius> [minimum stock]"));
return false;
@ -66,9 +66,9 @@ public class CheckStockCommand implements Subcommand {
return false;
}
if (args.length == 3) {
if (args.length == 2) {
try {
minimumStock = Integer.parseInt(args[2]);
minimumStock = Integer.parseInt(args[1]);
} catch (NumberFormatException e) {
player.sendMessage(Util.parseMiniMessage("<red>minimum stock has to be a valid number, use /checkstock <radius> [minimum stock]"));
return false;
@ -90,12 +90,12 @@ public class CheckStockCommand implements Subcommand {
List<PlayerShop> shops = PlayerShops.getInstance().getShopHandler().getShopsInRadius(x, z, radius);
Stream<PlayerShop> playerShopStream = shops.stream();
if (minimumStock != -1)
playerShopStream = playerShopStream.filter(shop -> shop.getRemainingStock() < minimumStock);
playerShopStream = playerShopStream.filter(shop -> shop.getRemainingStock() / shop.getAmount() < minimumStock);
if (!caller.hasPermission(PlayerShopCommand.BASE_PERM + ".checkstock.any"))
playerShopStream = playerShopStream.filter(shop -> shop.getOwnerUUID().equals(caller.getUniqueId()));
return playerShopStream.map(shop -> {
Location signLocation = shop.getSignLocation();
return new Stock(shop.getRemainingStock(),
return new Stock(shop.getRemainingStock() / shop.getAmount(),
signLocation.getBlockX(),
signLocation.getBlockY(),
signLocation.getBlockZ(),