Создаешь свою реализацию ItemEntity, в обработчике события EntityJoinWorldEvent заменяешь ванильную реализацию на свою, если это нужный предмет.
В своем ItemEntity переопредели attackEntityFrom, чтобы он игнорировал урон, если его тип - огонь или лава
Боссы отличаются только наличием босс-бара. Посмотри в классе визера, как это делается.
Боссы и несгораемые предметы никак не связаны. Спрашивай про несвязанные вещи в разных темах. Две несвязанные вещи, два вопроса, две темы. Потом будет удобнее искать решения.