Skip to content

Commit d6eeb18

Browse files
committed
fix AdventureComponents breaking ItemStack equality
(cherry picked from commit 0c7dcdd)
1 parent 0ba2a39 commit d6eeb18

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/main/java/org/spongepowered/common/data/provider/item/stack/BookItemStackData.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
2828
import net.minecraft.core.component.DataComponents;
29+
import net.minecraft.network.chat.Component;
2930
import net.minecraft.server.network.Filterable;
3031
import net.minecraft.world.item.ItemStack;
3132
import net.minecraft.world.item.Items;
@@ -89,7 +90,7 @@ public static void register(final DataProviderRegistrator registrator) {
8990
})
9091
.set((h, v) -> {
9192
final WrittenBookContent content = h.getOrDefault(DataComponents.WRITTEN_BOOK_CONTENT, WrittenBookContent.EMPTY);
92-
var pages = v.stream().map(SpongeAdventure::asVanilla).map(Filterable::passThrough).toList();
93+
var pages = v.stream().map(SpongeAdventure::asVanillaMutable).map(Component.class::cast).map(Filterable::passThrough).toList();
9394
h.set(DataComponents.WRITTEN_BOOK_CONTENT,
9495
new WrittenBookContent(content.title(), content.author(), content.generation(), pages, content.resolved()));
9596
})

src/main/java/org/spongepowered/common/data/provider/item/stack/ItemStackData.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public static void register(final DataProviderRegistrator registrator) {
156156
}
157157
return null;
158158
})
159-
.set((h, v) -> h.set(DataComponents.CUSTOM_NAME, SpongeAdventure.asVanilla(v)))
159+
.set((h, v) -> h.set(DataComponents.CUSTOM_NAME, SpongeAdventure.asVanillaMutable(v)))
160160
.delete(h -> h.remove(DataComponents.CUSTOM_NAME))
161161
.create(Keys.IS_UNBREAKABLE)
162162
.get(h -> h.has(DataComponents.UNBREAKABLE))
@@ -175,7 +175,7 @@ public static void register(final DataProviderRegistrator registrator) {
175175
h.remove(DataComponents.LORE);
176176
return;
177177
}
178-
h.set(DataComponents.LORE, new ItemLore(v.stream().map(SpongeAdventure::asVanilla).toList()));
178+
h.set(DataComponents.LORE, new ItemLore(v.stream().map(SpongeAdventure::asVanillaMutable).map(Component.class::cast).toList()));
179179
})
180180
.delete(h -> h.remove(DataComponents.LORE))
181181
.create(Keys.MAX_DURABILITY)
@@ -264,7 +264,7 @@ public static void register(final DataProviderRegistrator registrator) {
264264
}
265265
return SpongeAdventure.asAdventure(component);
266266
})
267-
.set((h, value) -> h.set(DataComponents.ITEM_NAME, SpongeAdventure.asVanilla(value)))
267+
.set((h, value) -> h.set(DataComponents.ITEM_NAME, SpongeAdventure.asVanillaMutable(value)))
268268
.delete(stack -> stack.remove(DataComponents.ITEM_NAME))
269269
;
270270
}

0 commit comments

Comments
 (0)