diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-07-15 22:27:07 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-07-15 22:27:07 +0800 |
| commit | cd57003454840efd74ef072072402ea3822ab2ba (patch) | |
| tree | 481af32e3a330d48eba88e1fa4c4fa5a976f5377 /src/main/java/me/shedaniel/rei/impl/EntryRegistryImpl.java | |
| parent | 7d1e39007a1e7de6fd0381fa1e21cf9b6e927f97 (diff) | |
| download | RoughlyEnoughItems-cd57003454840efd74ef072072402ea3822ab2ba.tar.gz RoughlyEnoughItems-cd57003454840efd74ef072072402ea3822ab2ba.tar.bz2 RoughlyEnoughItems-cd57003454840efd74ef072072402ea3822ab2ba.zip | |
Close #322
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/EntryRegistryImpl.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/EntryRegistryImpl.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/EntryRegistryImpl.java b/src/main/java/me/shedaniel/rei/impl/EntryRegistryImpl.java index fcc62fe23..b4849b4e9 100644 --- a/src/main/java/me/shedaniel/rei/impl/EntryRegistryImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/EntryRegistryImpl.java @@ -42,6 +42,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; +import java.util.function.Predicate; import java.util.stream.Stream; @ApiStatus.Internal @@ -82,6 +83,8 @@ public class EntryRegistryImpl implements EntryRegistry { return preFilteredList; } + @Override + @ApiStatus.Experimental public void refilter() { long started = System.currentTimeMillis(); @@ -155,4 +158,30 @@ public class EntryRegistryImpl implements EntryRegistry { } else entries.addAll(stacks); } } + + @Override + public boolean alreadyContain(EntryStack stack) { + if (reloading) { + return reloadingRegistry.parallelStream().anyMatch(s -> s.unwrap().equalsAll(stack)); + } + return entries.parallelStream().anyMatch(s -> s.equalsAll(stack)); + } + + @Override + public void removeEntry(EntryStack stack) { + if (reloading) { + reloadingRegistry.remove(new AmountIgnoredEntryStackWrapper(stack)); + } else { + entries.remove(stack); + } + } + + @Override + public void removeEntryIf(Predicate<EntryStack> stackPredicate) { + if (reloading) { + reloadingRegistry.removeIf(wrapper -> stackPredicate.test(wrapper.unwrap())); + } else { + entries.removeIf(stackPredicate); + } + } } |
