Claro fera tu nunca ta parando o loop, caso todos os slots estejam vazios ele vai setar em todos.
ItemStack bootNB = new ItemStack(Material.IRON_BOOTS);
bootNB.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 4);
for(int i = 0 ; i < s.getSize() ; i++) {
ItemStack item = s.getItem(i);
if(item == null || item.getType() == Material.AIR){
s.setItem(i, bootNB);
break; // <------------------------------------------
}
}
Ou
int emptySlot = inventario.firstEmpty();
if (emptySlot == -1) {
player.sendMessage("Você nao tem um slot vazio.");
} else {
inventario.setItem(emptySlot, bootNB);
}