EnchantmentHelper.contains(Collection<Enchantment>, Enchantment) -> hasNoConflictsCollection<Enchantment> does not have conflicting enchantments.Enchantment.isDifferent(Enchantment) -> "can be on the same item"this.differs(other) && other.differs(this). differs itself is named wrong, so this method checks that both enchantments think the other one is a valid partner.SilkTouchEnchantment.differs returns false if the enchantment is FORTUNE, so they conflict even though Fortune uses the default impl.Enchantment.differs(Enchantment) -> also "can be on the same item"isDifferent would better be named as isCompatibleWith, though I'm not sure what to rename differs to.
Imo hasNoConflicts is more like canCombine
Most helpful comment
Imo
hasNoConflictsis more likecanCombine