aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-03-29 00:29:50 +0800
committershedaniel <daniel@shedaniel.me>2021-03-29 00:29:50 +0800
commit096a01c606f491f2bb7a07c3df8ac83f6d313086 (patch)
treeb8f788dd6ed087ef76a5c81d3b3378bc3b1cf7b3
parent7b44adc2bd4e1ef21cd229f5b52d3ddae58a8b20 (diff)
downloadRoughlyEnoughItems-096a01c606f491f2bb7a07c3df8ac83f6d313086.tar.gz
RoughlyEnoughItems-096a01c606f491f2bb7a07c3df8ac83f6d313086.tar.bz2
RoughlyEnoughItems-096a01c606f491f2bb7a07c3df8ac83f6d313086.zip
Use long for hashing the EntryStack
Signed-off-by: shedaniel <daniel@shedaniel.me>
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java4
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java8
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java4
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java2
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java14
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java14
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/ManualFilteringRule.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/AsyncSearchManager.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java5
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/util/HashedEntryStackWrapper.java8
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java2
19 files changed, 47 insertions, 46 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
index 9ca3b960e..662338b0c 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
@@ -76,7 +76,7 @@ public abstract class FavoriteEntry {
return Optional.empty();
}
- public abstract int hashIgnoreAmount();
+ public abstract long hashIgnoreAmount();
public abstract FavoriteEntry copy();
@@ -96,7 +96,7 @@ public abstract class FavoriteEntry {
public int hashCode() {
int result = 1;
result = 31 * result + getType().hashCode();
- result = 31 * result + hashIgnoreAmount();
+ result = 31 * result + Long.hashCode(hashIgnoreAmount());
return result;
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java
index 9765edb99..c4b2205ae 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java
@@ -24,8 +24,8 @@
package me.shedaniel.rei.api.client.gui;
import com.mojang.blaze3d.vertex.PoseStack;
-import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
-import it.unimi.dsi.fastutil.ints.IntSet;
+import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
+import it.unimi.dsi.fastutil.longs.LongSet;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.gui.widgets.Slot;
@@ -84,12 +84,12 @@ public class SimpleDisplayRenderer extends DisplayRenderer implements WidgetHold
}
public static boolean equalsList(EntryIngredient left, EntryIngredient right) {
- IntSet leftBytes = new IntOpenHashSet(left.size());
+ LongSet leftBytes = new LongOpenHashSet(left.size());
for (EntryStack<?> entryStack : left) {
leftBytes.add(EntryStacks.hashExact(entryStack));
}
if (leftBytes.size() > right.size()) return false;
- IntSet rightBytes = new IntOpenHashSet(right.size());
+ LongSet rightBytes = new LongOpenHashSet(right.size());
for (EntryStack<?> entryStack : right) {
rightBytes.add(EntryStacks.hashExact(entryStack));
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java
index 04ea05d7f..2b41f0cd7 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java
@@ -59,7 +59,7 @@ public interface EntryDefinition<T> {
T normalize(EntryStack<T> entry, T value);
- int hash(EntryStack<T> entry, T value, ComparisonContext context);
+ long hash(EntryStack<T> entry, T value, ComparisonContext context);
boolean equals(T o1, T o2, ComparisonContext context);
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
index 58cf1ada5..c8b1b86e9 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
@@ -157,7 +157,7 @@ public final class EntryStacks {
* @param <T> the type of the stack
* @return the hash code of the {@link ComparisonContext#EXACT} context
*/
- public static <T> int hashExact(EntryStack<T> stack) {
+ public static <T> long hashExact(EntryStack<T> stack) {
return stack.getDefinition().hash(stack, stack.getValue(), ComparisonContext.EXACT);
}
@@ -171,7 +171,7 @@ public final class EntryStacks {
* @param <T> the type of the stack
* @return the hash code of the {@link ComparisonContext#FUZZY} context
*/
- public static <T> int hashFuzzy(EntryStack<T> stack) {
+ public static <T> long hashFuzzy(EntryStack<T> stack) {
return stack.getDefinition().hash(stack, stack.getValue(), ComparisonContext.FUZZY);
}
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java
index 1e45f89fd..d3d00d752 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java
@@ -164,7 +164,7 @@ public class GameModeFavoriteEntry extends FavoriteEntry {
}
@Override
- public int hashIgnoreAmount() {
+ public long hashIgnoreAmount() {
return gameMode == null ? -1 : gameMode.ordinal();
}
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java
index 13c66e1b0..c48e8501a 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java
@@ -170,7 +170,7 @@ public class WeatherFavoriteEntry extends FavoriteEntry {
}
@Override
- public int hashIgnoreAmount() {
+ public long hashIgnoreAmount() {
return weather == null ? -1 : weather.ordinal();
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index 3f7e762a7..b7edd47a7 100644
--- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -272,7 +272,7 @@ public class RoughlyEnoughItemsCore {
}
@Override
- public int hashIgnoreAmount() {
+ public long hashIgnoreAmount() {
return getUnwrapped().hashIgnoreAmount();
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java
index 0fe8aac0b..3fd155860 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java
@@ -43,12 +43,12 @@ import java.util.*;
import java.util.function.Consumer;
@ApiStatus.Internal
-public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack>> {
+public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>>> {
private int width;
- Consumer<List<EntryStack>> saveConsumer;
+ Consumer<List<EntryStack<?>>> saveConsumer;
Consumer<List<FilteringRule<?>>> rulesSaveConsumer;
- List<EntryStack> defaultValue;
- Set<EntryStack> configFiltered;
+ List<EntryStack<?>> defaultValue;
+ Set<EntryStack<?>> configFiltered;
List<FilteringRule<?>> rules;
boolean edited = false;
final FilteringScreen filteringScreen = new FilteringScreen(this);
@@ -59,7 +59,7 @@ public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack>> {
});
private final List<GuiEventListener> children = ImmutableList.of(buttonWidget);
- public FilteringEntry(int width, List<EntryStack> configFiltered, List<FilteringRule<?>> rules, List<EntryStack> defaultValue, Consumer<List<EntryStack>> saveConsumer, Consumer<List<FilteringRule<?>>> rulesSaveConsumer) {
+ public FilteringEntry(int width, List<EntryStack<?>> configFiltered, List<FilteringRule<?>> rules, List<EntryStack<?>> defaultValue, Consumer<List<EntryStack<?>>> saveConsumer, Consumer<List<FilteringRule<?>>> rulesSaveConsumer) {
super(NarratorChatListener.NO_TITLE, false);
this.width = width;
this.configFiltered = new TreeSet<>(Comparator.comparing(EntryStacks::hashExact));
@@ -71,12 +71,12 @@ public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack>> {
}
@Override
- public List<EntryStack> getValue() {
+ public List<EntryStack<?>> getValue() {
return Lists.newArrayList(configFiltered);
}
@Override
- public Optional<List<EntryStack>> getDefaultValue() {
+ public Optional<List<EntryStack<?>>> getDefaultValue() {
return Optional.ofNullable(defaultValue);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java
index bfc414c67..35f505ca0 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java
@@ -41,15 +41,15 @@ import java.util.Optional;
import java.util.function.Consumer;
@ApiStatus.Internal
-public class NoFilteringEntry extends AbstractConfigListEntry<List<EntryStack>> {
+public class NoFilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>>> {
private int width;
- private Consumer<List<EntryStack>> saveConsumer;
- private List<EntryStack> defaultValue;
- private List<EntryStack> configFiltered;
+ private Consumer<List<EntryStack<?>>> saveConsumer;
+ private List<EntryStack<?>> defaultValue;
+ private List<EntryStack<?>> configFiltered;
private final AbstractWidget buttonWidget = new Button(0, 0, 0, 20, new TranslatableComponent("config.roughlyenoughitems.filteredEntries.loadWorldFirst"), button -> {});
private final List<GuiEventListener> children = ImmutableList.of(buttonWidget);
- public NoFilteringEntry(int width, List<EntryStack> configFiltered, List<EntryStack> defaultValue, Consumer<List<EntryStack>> saveConsumer) {
+ public NoFilteringEntry(int width, List<EntryStack<?>> configFiltered, List<EntryStack<?>> defaultValue, Consumer<List<EntryStack<?>>> saveConsumer) {
super(NarratorChatListener.NO_TITLE, false);
this.width = width;
this.configFiltered = configFiltered;
@@ -58,12 +58,12 @@ public class NoFilteringEntry extends AbstractConfigListEntry<List<EntryStack>>
}
@Override
- public List<EntryStack> getValue() {
+ public List<EntryStack<?>> getValue() {
return configFiltered;
}
@Override
- public Optional<List<EntryStack>> getDefaultValue() {
+ public Optional<List<EntryStack<?>>> getDefaultValue() {
return Optional.ofNullable(defaultValue);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/ManualFilteringRule.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/ManualFilteringRule.java
index d5a2cfde3..361e506f5 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/ManualFilteringRule.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/ManualFilteringRule.java
@@ -23,8 +23,8 @@
package me.shedaniel.rei.impl.client.entry.filtering.rules;
-import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
-import it.unimi.dsi.fastutil.ints.IntSet;
+import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
+import it.unimi.dsi.fastutil.longs.LongSet;
import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.util.CollectionUtils;
@@ -59,7 +59,7 @@ public class ManualFilteringRule extends AbstractFilteringRule<ManualFilteringRu
}
private void processList(Collection<EntryStack<?>> stacks, FilteringResult result) {
- IntSet filteredStacks = CollectionUtils.mapParallel(ConfigObject.getInstance().getFilteredStacks(), EntryStacks::hashExact, IntOpenHashSet::new);
+ LongSet filteredStacks = CollectionUtils.mapParallel(ConfigObject.getInstance().getFilteredStacks(), EntryStacks::hashExact, LongOpenHashSet::new);
result.hide(stacks.parallelStream().filter(stack -> filteredStacks.contains(EntryStacks.hashExact(stack))).collect(Collectors.toList()));
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/AsyncSearchManager.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/AsyncSearchManager.java
index 43daccc7b..3e334ce6d 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/AsyncSearchManager.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/AsyncSearchManager.java
@@ -24,8 +24,8 @@
package me.shedaniel.rei.impl.client.search;
import com.google.common.collect.Lists;
-import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
-import it.unimi.dsi.fastutil.ints.IntSet;
+import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
+import it.unimi.dsi.fastutil.longs.LongSet;
import me.shedaniel.rei.api.client.config.ConfigManager;
import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.registry.entry.EntryRegistry;
@@ -65,7 +65,7 @@ public class AsyncSearchManager {
public static AsyncSearchManager createDefault() {
return new AsyncSearchManager(EntryRegistry.getInstance()::getPreFilteredList, () -> {
boolean checkCraftable = ConfigManager.getInstance().isCraftableOnlyEnabled() && !ContainerScreenOverlay.getInstance().inventoryStacks.isEmpty();
- IntSet workingItems = checkCraftable ? new IntOpenHashSet() : null;
+ LongSet workingItems = checkCraftable ? new LongOpenHashSet() : null;
if (checkCraftable) {
for (EntryStack<?> stack : Views.getInstance().findCraftableEntriesByMaterials(ContainerScreenOverlay.getInstance().inventoryStacks)) {
workingItems.add(EntryStacks.hashExact(stack));
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
index 9e7d407b7..e525e21ae 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
@@ -176,7 +176,7 @@ public abstract class AbstractEntryStack<A> extends AbstractRenderer implements
@Override
public int hashCode() {
- return EntryStacks.hashExact(this);
+ return Long.hashCode(EntryStacks.hashExact(this));
}
@Override
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java
index 94169c265..ab584ac21 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java
@@ -70,8 +70,9 @@ public class EntryRegistryImpl implements EntryRegistry {
@Override
public void startReload() {
entries.clear();
- if (reloadingRegistry != null)
+ if (reloadingRegistry != null) {
reloadingRegistry.clear();
+ }
reloadingRegistry = Lists.newArrayListWithCapacity(Registry.ITEM.keySet().size() + 100);
preFilteredList.clear();
reloading = true;
@@ -132,7 +133,7 @@ public class EntryRegistryImpl implements EntryRegistry {
RoughlyEnoughItemsCore.LOGGER.debug("Refiltered %d entries with %d rules in %s.", entries.size() - preFilteredList.size(), rules.size(), stopwatch.stop().toString());
}
- static <T> Predicate<T> not(Predicate<? super T> target) {
+ private static <T> Predicate<T> not(Predicate<? super T> target) {
Objects.requireNonNull(target);
return (Predicate<T>) target.negate();
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java
index 2df769391..fb7590a82 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java
@@ -95,7 +95,7 @@ public class BuiltinEntryDefinition<T> implements EntryDefinition<T>, EntrySeria
}
@Override
- public int hash(EntryStack<T> entry, T value, ComparisonContext context) {
+ public long hash(EntryStack<T> entry, T value, ComparisonContext context) {
return empty ? 0 : Objects.hash(value.getClass().getName(), value);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java
index cdac8b751..bc4114379 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java
@@ -158,6 +158,7 @@ public class PluginManagerImpl<P extends REIPlugin<?>> implements PluginManager<
@Override
public void startReload() {
try {
+ arePluginsLoading = true;
long startTime = Util.getMillis();
MutablePair<Stopwatch, String> sectionData = new MutablePair<>(Stopwatch.createUnstarted(), "");
@@ -170,7 +171,6 @@ public class PluginManagerImpl<P extends REIPlugin<?>> implements PluginManager<
}
}
- arePluginsLoading = true;
List<P> plugins = new ArrayList<>(getPlugins().toList());
plugins.sort(Comparator.comparingInt(P::getPriority).reversed());
RoughlyEnoughItemsCore.LOGGER.info("Reloading Plugin Manager [%s], registered %d plugins: %s", pluginClass.getSimpleName(), plugins.size(), CollectionUtils.mapAndJoinToString(plugins, REIPlugin::getPluginName, ", "));
@@ -192,8 +192,6 @@ public class PluginManagerImpl<P extends REIPlugin<?>> implements PluginManager<
}
}
- arePluginsLoading = false;
-
try (SectionClosable refilter = section(sectionData, "entry-registry-refilter")) {
EntryRegistry.getInstance().refilter();
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/util/HashedEntryStackWrapper.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/util/HashedEntryStackWrapper.java
index e317ec523..2e8fc2098 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/util/HashedEntryStackWrapper.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/util/HashedEntryStackWrapper.java
@@ -35,21 +35,23 @@ import java.util.Objects;
@Environment(EnvType.CLIENT)
public class HashedEntryStackWrapper {
private final EntryStack<?> stack;
- private int hash;
+ private long hash;
+ private int hashInt;
public HashedEntryStackWrapper(EntryStack<?> stack) {
this.stack = Objects.requireNonNull(stack);
this.hash = EntryStacks.hashExact(stack);
+ this.hashInt = Long.hashCode(this.hash);
}
@Override
public boolean equals(Object o) {
- return o instanceof HashedEntryStackWrapper && hashCode() == o.hashCode();
+ return o instanceof HashedEntryStackWrapper && hash == ((HashedEntryStackWrapper) o).hash;
}
@Override
public int hashCode() {
- return hash;
+ return hashInt;
}
public boolean isEmpty() {
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java
index d4049d2e4..3b547fe2f 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java
@@ -189,7 +189,7 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin {
private static class EntryStackFavoriteEntry extends FavoriteEntry {
private static final Function<EntryStack<?>, String> CANCEL_FLUID_AMOUNT = s -> null;
private final EntryStack<?> stack;
- private final int hashIgnoreAmount;
+ private final long hashIgnoreAmount;
public EntryStackFavoriteEntry(EntryStack<?> stack) {
this.stack = stack.normalize();
@@ -226,7 +226,7 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin {
}
@Override
- public int hashIgnoreAmount() {
+ public long hashIgnoreAmount() {
return hashIgnoreAmount;
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java
index 750dae613..aebfa33f9 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java
@@ -112,7 +112,7 @@ public class FluidEntryDefinition implements EntryDefinition<FluidStack>, EntryS
}
@Override
- public int hash(EntryStack<FluidStack> entry, FluidStack value, ComparisonContext context) {
+ public long hash(EntryStack<FluidStack> entry, FluidStack value, ComparisonContext context) {
int code = 1;
code = 31 * code + value.getFluid().hashCode();
code = 31 * code + (context.isFuzzy() || !value.hasTag() ? 0 : value.getTag().hashCode());
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
index 8f995af67..292ca0fb8 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
@@ -108,7 +108,7 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer
}
@Override
- public int hash(EntryStack<ItemStack> entry, ItemStack value, ComparisonContext context) {
+ public long hash(EntryStack<ItemStack> entry, ItemStack value, ComparisonContext context) {
int code = 1;
code = 31 * code + System.identityHashCode(value.getItem());
code = 31 * code + (context.isFuzzy() ? 0 : Long.hashCode(ItemComparatorRegistry.getInstance().hashOf(value)));