как кодом узнать не сломан ли предмет
Для проверки состояния износа у предмета в Bukkit API используется значение `durability` у объекта ItemStack, где `0` соответствует полностью новому предмету, а `maxDurability` - предельному значению прочности для данного типа предметов.
Примерный код команды `/checkhand` для проверки состояния предмета в руке игрока:
```java
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("checkhand")) {
if (!(sender instanceof Player)) {
sender.sendMessage("Команда доступна только игрокам!");
return true;
}
Player player = (Player) sender;
ItemStack item = player.getInventory().getItemInMainHand();
if (item == null || item.getType() == Material.AIR) {
player.sendMessage(ChatColor.RED + "В вашей руке нет предмета!");
return true;
}
short durability = item.getDurability();
short maxDurability = item.getType().getMaxDurability();
if (durability == maxDurability) {
player.sendMessage(ChatColor.RED + "Предмет сломан!");
} else {
player.sendMessage(ChatColor.GREEN + "Предмет не сломан! Состояние: " + ChatColor.YELLOW
+ (maxDurability - durability) + "/" + maxDurability);
}
return true;
}
return false;
}
```
В этом коде мы проверяем, есть ли у игрока предмет в руке, и выводим сообщение об ошибке, если предмет отсутствует. Если предмет есть, мы получаем его значение износа и предельное значение прочности и сравниваем их. Если значение износа равно предельной прочности, то предмет сломан, и мы отправляем сообщение об этом. Если значение износа меньше предельной прочности, то предмет не сломан, и мы отправляем сообщение со значением износа относительно предельной прочности.