Skip to content

Commit 5dfb035

Browse files
Update to 1.21.4
1 parent bb0b3ed commit 5dfb035

2 files changed

Lines changed: 33 additions & 3 deletions

File tree

buildSrc/src/main/kotlin/invui.common-conventions.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ repositories {
1313
}
1414

1515
dependencies {
16-
paperweight.paperDevBundle("1.21.3-R0.1-SNAPSHOT")
16+
paperweight.paperDevBundle("1.21.4-R0.1-SNAPSHOT")
1717
implementation("org.jetbrains:annotations:26.0.1")
1818
implementation("org.jspecify:jspecify:1.0.0")
1919
testImplementation("org.junit.jupiter:junit-jupiter:5.11.3")

invui/src/main/java/xyz/xenondevs/invui/item/ItemBuilder.java

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.function.Function;
2323
import java.util.stream.Collectors;
2424

25+
import static io.papermc.paper.datacomponent.item.CustomModelData.customModelData;
2526
import static org.jetbrains.annotations.ApiStatus.Experimental;
2627

2728
/**
@@ -73,11 +74,20 @@ public ItemBuilder(ItemStack base) {
7374
assert lore != null;
7475
this.lore = lore.lines();
7576
}
77+
78+
if (base.isDataOverridden(DataComponentTypes.CUSTOM_MODEL_DATA)) {
79+
var cmd = base.getData(DataComponentTypes.CUSTOM_MODEL_DATA);
80+
assert cmd != null;
81+
customModelDataFloats = new FloatArrayList(cmd.floats());
82+
customModelDataBooleans = new BooleanArrayList(cmd.flags());
83+
customModelDataStrings = cmd.strings();
84+
customModelDataColors = cmd.colors();
85+
}
7686
}
7787

7888
/**
7989
* Builds the {@link ItemStack} in {@link Locale#US}.
80-
*
90+
*
8191
* @return The {@link ItemStack}
8292
*/
8393
@Override
@@ -113,7 +123,27 @@ public ItemStack get(Locale locale) {
113123
itemStack.setData(DataComponentTypes.LORE, lore.build());
114124
}
115125

116-
// TODO: Custom model data (1.21.4)
126+
if (customModelDataFloats != null
127+
|| customModelDataBooleans != null
128+
|| customModelDataStrings != null
129+
|| customModelDataColors != null
130+
) {
131+
var cmd = customModelData();
132+
if (customModelDataFloats != null) {
133+
cmd.addFloats(customModelDataFloats);
134+
}
135+
if (customModelDataBooleans != null) {
136+
cmd.addFlags(customModelDataBooleans);
137+
}
138+
if (customModelDataStrings != null) {
139+
cmd.addStrings(customModelDataStrings);
140+
}
141+
if (customModelDataColors != null) {
142+
cmd.addColors(customModelDataColors);
143+
}
144+
145+
itemStack.setData(DataComponentTypes.CUSTOM_MODEL_DATA, cmd.build());
146+
}
117147

118148
if (modifiers != null) {
119149
for (var modifier : modifiers) {

0 commit comments

Comments
 (0)