Skip to content

Commit d0f09be

Browse files
committed
chore: update ItemFilterAdapter to take registry access params
1 parent 135752f commit d0f09be

File tree

5 files changed

+14
-11
lines changed

5 files changed

+14
-11
lines changed

common/src/main/java/dev/ftb/mods/ftbquests/api/ItemFilterAdapter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.ftb.mods.ftbquests.api;
22

3+
import net.minecraft.core.HolderLookup;
34
import net.minecraft.tags.TagKey;
45
import net.minecraft.world.item.Item;
56
import net.minecraft.world.item.ItemStack;
@@ -35,7 +36,7 @@ public interface ItemFilterAdapter {
3536
* @param toCheck the itemstack to check
3637
* @return true if the first item is a filter stack AND the second item is matched by it
3738
*/
38-
boolean doesItemMatch(ItemStack filterStack, ItemStack toCheck);
39+
boolean doesItemMatch(ItemStack filterStack, ItemStack toCheck, HolderLookup.Provider registryAccess);
3940

4041
/**
4142
* Retrieve the actual item matcher from this filter implementation, which is basically a predicate that can
@@ -45,7 +46,7 @@ public interface ItemFilterAdapter {
4546
* @param filterStack the filter item (note: the filter, not the item to be tested!)
4647
* @return a matcher object
4748
*/
48-
Matcher getMatcher(ItemStack filterStack);
49+
Matcher getMatcher(ItemStack filterStack, HolderLookup.Provider registryAccess);
4950

5051
/**
5152
* Does this filter mod provide a way to filter items by item tag?

common/src/main/java/dev/ftb/mods/ftbquests/integration/item_filtering/DisplayStacksCache.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import dev.ftb.mods.ftbquests.api.event.CustomFilterDisplayItemsEvent;
77
import dev.ftb.mods.ftbquests.client.FTBQuestsClient;
88
import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap;
9+
import net.minecraft.core.HolderLookup;
910
import net.minecraft.world.item.CreativeModeTabs;
1011
import net.minecraft.world.item.ItemStack;
1112
import org.jetbrains.annotations.NotNull;
@@ -18,12 +19,12 @@ public class DisplayStacksCache {
1819
private static List<ItemStack> extraCache = null;
1920

2021
@NotNull
21-
public static List<ItemStack> getCachedDisplayStacks(ItemStack filterStack, ItemFilterAdapter adapter) {
22+
public static List<ItemStack> getCachedDisplayStacks(ItemStack filterStack, ItemFilterAdapter adapter, HolderLookup.Provider registryAccess) {
2223
int key = ItemStack.hashItemAndComponents(filterStack);
2324

2425
List<ItemStack> result = cache.getAndMoveToFirst(key);
2526
if (result == null) {
26-
result = computeMatchingStacks(adapter.getMatcher(filterStack));
27+
result = computeMatchingStacks(adapter.getMatcher(filterStack, registryAccess));
2728
cache.put(key, result);
2829
if (cache.size() >= MAX_CACHE_SIZE) {
2930
cache.removeLast();

common/src/main/java/dev/ftb/mods/ftbquests/integration/item_filtering/ItemMatchingSystem.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import dev.ftb.mods.ftblibrary.config.NameMap;
44
import dev.ftb.mods.ftbquests.api.ItemFilterAdapter;
5+
import net.minecraft.core.HolderLookup;
56
import net.minecraft.core.component.DataComponentMap;
67
import net.minecraft.world.item.ItemStack;
78

@@ -25,18 +26,18 @@ public Optional<ItemFilterAdapter> getFilterAdapter(ItemStack stack) {
2526
return adapters.stream().filter(adapter -> adapter.isFilterStack(stack)).findFirst();
2627
}
2728

28-
public boolean doesItemMatch(ItemStack filterStack, ItemStack toCheck, ComponentMatchType matchType) {
29+
public boolean doesItemMatch(ItemStack filterStack, ItemStack toCheck, ComponentMatchType matchType, HolderLookup.Provider registryAccess) {
2930
return getFilterAdapter(filterStack)
30-
.map(adapter -> adapter.doesItemMatch(filterStack, toCheck))
31+
.map(adapter -> adapter.doesItemMatch(filterStack, toCheck, registryAccess))
3132
.orElse(areItemStacksEqual(filterStack, toCheck, matchType));
3233
}
3334

34-
public List<ItemStack> getAllMatchingStacks(ItemStack filterStack) {
35+
public List<ItemStack> getAllMatchingStacks(ItemStack filterStack, HolderLookup.Provider registryAccess) {
3536
List<ItemStack> res = new ArrayList<>();
3637

3738
adapters.forEach(adapter -> {
3839
if (adapter.isFilterStack(filterStack)) {
39-
res.addAll(DisplayStacksCache.getCachedDisplayStacks(filterStack, adapter));
40+
res.addAll(DisplayStacksCache.getCachedDisplayStacks(filterStack, adapter, registryAccess));
4041
}
4142
});
4243

common/src/main/java/dev/ftb/mods/ftbquests/quest/task/ItemTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public void readNetData(RegistryFriendlyByteBuf buffer) {
147147
}
148148

149149
public List<ItemStack> getValidDisplayItems() {
150-
return ItemMatchingSystem.INSTANCE.getAllMatchingStacks(itemStack);
150+
return ItemMatchingSystem.INSTANCE.getAllMatchingStacks(itemStack, getQuestFile().holderLookup());
151151
}
152152

153153
@Override
@@ -188,7 +188,7 @@ public boolean test(ItemStack stack) {
188188
return true;
189189
}
190190

191-
return ItemMatchingSystem.INSTANCE.doesItemMatch(itemStack, stack, matchComponents);
191+
return ItemMatchingSystem.INSTANCE.doesItemMatch(itemStack, stack, matchComponents, getQuestFile().holderLookup());
192192
}
193193

194194
@Override

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ maven_group=dev.ftb.mods
99
mod_author=FTB Team
1010

1111
# Build time
12-
mod_version=2101.1.20
12+
mod_version=2101.1.21
1313
minecraft_version=1.21.1
1414

1515
# Cross env

0 commit comments

Comments
 (0)