Skip to content

Commit a725985

Browse files
replacing items based on the original ones
1 parent 1cc40fc commit a725985

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

core/src/main/java/com/wizardlybump17/wlib/inventory/paginated/PaginatedInventoryBuilder.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.jetbrains.annotations.Nullable;
2424

2525
import java.util.*;
26+
import java.util.function.Function;
2627
import java.util.function.Supplier;
2728
import java.util.function.UnaryOperator;
2829

@@ -114,6 +115,8 @@ public PaginatedInventoryBuilder shapeReplacements(@NonNull Map<Character, ItemB
114115
return this;
115116
}
116117

118+
//ItemStack
119+
117120
public @NotNull PaginatedInventoryBuilder setReplacementItemStackByCustomData(@NotNull Object key, @Nullable Object value, @NotNull Supplier<ItemStack> itemSupplier) {
118121
for (ItemButton button : shapeReplacements.values())
119122
if (Objects.equals(button.getCustomData().get(key), value))
@@ -129,6 +132,15 @@ public PaginatedInventoryBuilder shapeReplacements(@NonNull Map<Character, ItemB
129132
return this;
130133
}
131134

135+
public @NotNull PaginatedInventoryBuilder setReplacementItemStackByCustomData(@NotNull Object key, @Nullable Object value, @NotNull Function<ItemStack, ItemStack> replacer) {
136+
for (ItemButton button : shapeReplacements.values())
137+
if (Objects.equals(button.getCustomData().get(key), value))
138+
button.setItem(() -> replacer.apply(button.getItem().get()));
139+
return this;
140+
}
141+
142+
//ItemBuilder
143+
132144
public @NotNull PaginatedInventoryBuilder setReplacementItemByCustomData(@NotNull Object key, @Nullable Object value, @NotNull Supplier<ItemBuilder> itemSupplier) {
133145
Supplier<ItemStack> itemStackSupplier = () -> itemSupplier.get().build();
134146
for (ItemButton button : shapeReplacements.values())
@@ -145,6 +157,15 @@ public PaginatedInventoryBuilder shapeReplacements(@NonNull Map<Character, ItemB
145157
return this;
146158
}
147159

160+
public @NotNull PaginatedInventoryBuilder setReplacementItemByCustomData(@NotNull Object key, @Nullable Object value, @NotNull Function<ItemBuilder, ItemBuilder> replacer) {
161+
for (ItemButton button : shapeReplacements.values())
162+
if (Objects.equals(button.getCustomData().get(key), value))
163+
button.setItem(() -> replacer.apply(ItemBuilder.fromItemStack(button.getItem().get())).build());
164+
return this;
165+
}
166+
167+
//rest of the code
168+
148169
public PaginatedInventoryBuilder content(@Nullable List<ItemButton> content) {
149170
this.content = content == null ? new ArrayList<>() : content;
150171
checkNullContent();

0 commit comments

Comments
 (0)