Skip to content

Commit fe145a9

Browse files
committed
refactor: use components instead of itemmeta
1 parent 3e910b2 commit fe145a9

5 files changed

Lines changed: 32 additions & 21 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
group=com.mineinabyss
22
version=0.11
3-
idofrontVersion=0.26.0
3+
idofrontVersion=0.26.2
44

src/main/kotlin/com/mineinabyss/blocky/BlockyConfig.kt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ package com.mineinabyss.blocky
22

33
import com.charleskorn.kaml.YamlComment
44
import com.mineinabyss.blocky.helpers.FurnitureOutlineType
5-
import com.mineinabyss.idofront.items.editItemMeta
5+
import com.mineinabyss.blocky.menus.emptyItemModel
66
import com.mineinabyss.idofront.serialization.MiniMessageSerializer
7-
import com.mineinabyss.idofront.serialization.SerializableDataTypes
87
import com.mineinabyss.idofront.serialization.SerializableItemStack
98
import com.mineinabyss.idofront.serialization.toSerializable
109
import com.mineinabyss.idofront.textcomponents.miniMsg
10+
import io.papermc.paper.datacomponent.DataComponentTypes
1111
import kotlinx.serialization.Serializable
1212
import kotlinx.serialization.Transient
1313
import net.kyori.adventure.text.Component
@@ -84,8 +84,17 @@ data class BlockyConfig(
8484
@Serializable data class DefaultBlockyMenu(
8585
val title: @Serializable(MiniMessageSerializer::class) Component = Component.empty(),
8686
val height: Int = 5,
87-
val blockButton: SerializableItemStack = ItemStack(Material.PAPER).editItemMeta { setCustomModelData(1); itemName("<gradient:gold:yellow>Block Menu".miniMsg()) }.toSerializable(),
88-
val wireButton: SerializableItemStack = ItemStack(Material.PAPER).editItemMeta { setCustomModelData(1); itemName("<gradient:gold:yellow>Wire Menu".miniMsg()) }.toSerializable(),
89-
val furnitureButton: SerializableItemStack = ItemStack(Material.PAPER).editItemMeta { setCustomModelData(1); itemName("<gradient:gold:yellow>Furniture Menu".miniMsg()) }.toSerializable(),
87+
val blockButton: SerializableItemStack = ItemStack(Material.PAPER).apply {
88+
setData(DataComponentTypes.ITEM_NAME, "<gradient:gold:yellow>Block Menu".miniMsg())
89+
setData(DataComponentTypes.ITEM_MODEL, emptyItemModel)
90+
}.toSerializable(),
91+
val wireButton: SerializableItemStack = ItemStack(Material.PAPER).apply {
92+
setData(DataComponentTypes.ITEM_NAME, "<gradient:gold:yellow>Wire Menu".miniMsg())
93+
setData(DataComponentTypes.ITEM_MODEL, emptyItemModel)
94+
}.toSerializable(),
95+
val furnitureButton: SerializableItemStack = ItemStack(Material.PAPER).apply {
96+
setData(DataComponentTypes.ITEM_NAME, "<gradient:gold:yellow>Furniture Menu".miniMsg())
97+
setData(DataComponentTypes.ITEM_MODEL, emptyItemModel)
98+
}.toSerializable(),
9099
)
91100
}

src/main/kotlin/com/mineinabyss/blocky/helpers/FurnitureHelpers.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ object FurnitureHelpers {
9393
}
9494

9595
// Try to get held item's color, used to dye furniture
96-
val color = item?.itemMeta?.asColorable()?.color
96+
val color = item?.asColorable()?.color
9797
return spawnLoc.spawnFromPrefab(prefabKey) {
9898
color?.let { set(BlockyFurniture.Color(it)) }
9999
}.getOrThrow() as? ItemDisplay

src/main/kotlin/com/mineinabyss/blocky/menus/BlockyNavigation.kt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ import com.mineinabyss.guiy.modifiers.height
2222
import com.mineinabyss.guiy.modifiers.placement.absolute.at
2323
import com.mineinabyss.guiy.modifiers.size
2424
import com.mineinabyss.guiy.navigation.Navigator
25-
import com.mineinabyss.idofront.items.editItemMeta
2625
import com.mineinabyss.idofront.textcomponents.miniMsg
26+
import io.papermc.paper.datacomponent.DataComponentTypes
27+
import net.kyori.adventure.key.Key
2728
import net.kyori.adventure.text.Component
2829
import org.bukkit.Material
2930
import org.bukkit.entity.Player
@@ -105,28 +106,29 @@ private fun handleTitle(screen: BlockyScreen, page: Int, hasMultiplePages: Boole
105106
}.miniMsg())
106107
}
107108

109+
val emptyItemModel = Key.key("minecraft:empty")
108110
@Composable
109111
fun ScrollDownButton(modifier: Modifier = Modifier) {
110-
Item(ItemStack(Material.PAPER).editItemMeta {
111-
itemName("<green><b>Scroll Down".miniMsg())
112-
setCustomModelData(1)
112+
Item(ItemStack.of(Material.PAPER).apply {
113+
setData(DataComponentTypes.ITEM_NAME, "<green><b>Scroll Down".miniMsg())
114+
setData(DataComponentTypes.ITEM_MODEL, emptyItemModel)
113115
}, modifier)
114116
}
115117

116118
@Composable
117119
fun ScrollUpButton(modifier: Modifier = Modifier) {
118-
Item(ItemStack(Material.PAPER).editItemMeta {
119-
itemName("<blue><b>Scroll Up".miniMsg())
120-
setCustomModelData(1)
120+
Item(ItemStack(Material.PAPER).apply {
121+
setData(DataComponentTypes.ITEM_NAME, "<blue><b>Scroll Up".miniMsg())
122+
setData(DataComponentTypes.ITEM_MODEL, emptyItemModel)
121123
}, modifier)
122124
}
123125

124126
@Composable
125127
fun BlockyUIScope.BackButton(modifier: Modifier = Modifier, onClick: () -> Unit = { nav.back() }) {
126128
Button(onClick = onClick, modifier = modifier) {
127-
Item(ItemStack(Material.PAPER).editItemMeta {
128-
itemName("<red><b>Back".miniMsg())
129-
setCustomModelData(1)
129+
Item(ItemStack(Material.PAPER).apply {
130+
setData(DataComponentTypes.ITEM_NAME, "<red><b>Back".miniMsg())
131+
setData(DataComponentTypes.ITEM_MODEL, emptyItemModel)
130132
})
131133
}
132134
}

src/main/kotlin/com/mineinabyss/blocky/systems/actions/SetItemOnFurnitureSystem.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ import com.mineinabyss.geary.observers.events.OnSet
77
import com.mineinabyss.geary.papermc.tracking.items.components.SetItem
88
import com.mineinabyss.geary.systems.query.query
99
import com.mineinabyss.idofront.items.asColorable
10-
import com.mineinabyss.idofront.items.editItemMeta
10+
import io.papermc.paper.datacomponent.DataComponentTypes
1111
import net.kyori.adventure.text.Component
1212
import org.bukkit.entity.ItemDisplay
1313

1414
fun Geary.createFurnitureItemSetter() = observe<OnSet>()
1515
.involving<SetItem, ItemDisplay, BlockyFurniture>()
1616
.exec(query<ItemDisplay, BlockyFurniture, BlockyFurniture.Color?, SetItem>()) { (itemDisplay, furniture, color, setItem) ->
1717
val itemStack = furniture.properties.itemStack?.toItemStackOrNull() ?: setItem.item.toItemStack()
18-
val furnitureItem = itemStack.clone().editItemMeta {
19-
itemName(Component.empty())
20-
displayName(Component.empty())
18+
val furnitureItem = itemStack.clone().apply {
19+
setData(DataComponentTypes.ITEM_NAME, Component.empty())
20+
unsetData(DataComponentTypes.CUSTOM_NAME)
2121
color?.color?.also { c -> asColorable()?.color = c }
2222
}
2323
itemDisplay.setItemStack(furnitureItem)

0 commit comments

Comments
 (0)