Я установил этот метод, когда игроки могут использовать Порох, когда они нажимают правой кнопкой мыши, чтобы накрыть на некоторое время, и 1 Порох будет вычтен из их инвентаря. Проблема в том, что, когда у них остается только 1 Порох, он не будет вычитаться, в результате у них будет бесконечный плащ. Вот мой код:Нельзя вычесть из одного предмета?
if (e.getAction().equals(Action.RIGHT_CLICK_AIR)
|| e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
if (e.getPlayer().getInventory().getItemInHand().getType()
.equals(Material.SULPHUR)) {
Player player = e.getPlayer();
Location location = e.getPlayer().getLocation().add(new Vector(0, 2, 0));
Bukkit.getWorld(e.getPlayer().getWorld().getName())
.createExplosion(location, 0);
player.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 80, 0));
player.getItemInHand().setAmount(player.getItemInHand().getAmount() - 1);
}
}
Вы должны использовать '==' для перечислений ('Материал' и' Действие'). –
Используйте 'player.getWorld()' вместо 'Bukkit.getWorld (e.getPlayer(). GetWorld(). GetName())'. –
Используйте 'player.getItemInHand()' вместо 'e.getPlayer(). GetInventory(). GetItemInHand()'. –