@@ -228,6 +228,15 @@ sealed interface ItemProviderDsl {
228228 */
229229 val hasTooltip: ProviderDslProperty <Boolean ?>
230230
231+ /* *
232+ * A set of [DataComponentTypes][DataComponentType] that are hidden in the tooltip.
233+ *
234+ * ```
235+ * hiddenComponents by setOf(DataComponentTypes.ENCHANTMENTS)
236+ * ```
237+ */
238+ val hiddenComponents: ProviderDslProperty <Set <DataComponentType >? >
239+
231240 /* *
232241 * Access to arbitrary data components beyond the convenience properties.
233242 *
@@ -305,6 +314,7 @@ internal class ItemProviderDslImpl(
305314 private var _customName = provider<Component ?>(null )
306315 private var _lore = provider<List <Component >? > (null )
307316 private var _hasTooltip = provider<Boolean ?>(null )
317+ private var _hiddenComponents = provider<Set <DataComponentType >? > (null )
308318
309319 override val data = DataComponentsPatchImpl ()
310320
@@ -322,14 +332,16 @@ internal class ItemProviderDslImpl(
322332 get() = ProviderDslProperty (::_lore )
323333 override val hasTooltip: ProviderDslProperty <Boolean ?>
324334 get() = ProviderDslProperty (::_hasTooltip )
335+ override val hiddenComponents: ProviderDslProperty <Set <DataComponentType >? >
336+ get() = ProviderDslProperty (::_hiddenComponents )
325337 override val hasGlint: ProviderDslProperty <Boolean ?>
326338 get() = data[DataComponentTypes .ENCHANTMENT_GLINT_OVERRIDE ]
327339
328340 fun build (): Provider <ItemProvider > {
329341 val dataTypeProviders = data.components.map { (type, dslProperty) -> dslProperty.map { type to it } }
330342 return combinedProvider(
331- _base , _type , _amount , _name , _customName , _lore , _hasTooltip , combinedProvider(dataTypeProviders)
332- ) { base, type, amount, name, customName, lore, hasTooltip, dataTypes ->
343+ _base , _type , _amount , _name , _customName , _lore , _hasTooltip , _hiddenComponents , combinedProvider(dataTypeProviders)
344+ ) { base, type, amount, name, customName, lore, hasTooltip, hiddenComponents, dataTypes ->
333345 var result = base.clone()
334346 var hasTooltip = hasTooltip
335347
@@ -361,7 +373,7 @@ internal class ItemProviderDslImpl(
361373 hideTooltip(! hasTooltip)
362374 // individual hidden components are only needed if tooltip is shown
363375 if (hasTooltip) {
364- hiddenComponents(prev?.hiddenComponents() ? : emptySet())
376+ hiddenComponents(hiddenComponents ? : prev?.hiddenComponents() ? : emptySet())
365377 }
366378 }
367379 result.setData(DataComponentTypes .TOOLTIP_DISPLAY , new)
0 commit comments