aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/impl/common
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-06-03 14:47:25 +0800
committershedaniel <daniel@shedaniel.me>2021-06-03 14:47:25 +0800
commite9c230bfcd93b3bb6191a668891d99c1f241e5be (patch)
tree9971f31b42a1eb6a03067030a3f70b844cc49a0b /runtime/src/main/java/me/shedaniel/rei/impl/common
parent572ebd36c32c0248f2c826cc518eeedbc0701287 (diff)
downloadRoughlyEnoughItems-e9c230bfcd93b3bb6191a668891d99c1f241e5be.tar.gz
RoughlyEnoughItems-e9c230bfcd93b3bb6191a668891d99c1f241e5be.tar.bz2
RoughlyEnoughItems-e9c230bfcd93b3bb6191a668891d99c1f241e5be.zip
Use Java 16 features
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/impl/common')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/category/CategoryIdentifierImpl.java19
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/EntryIngredientImpl.java9
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/comparison/NbtHasherProviderImpl.java4
4 files changed, 22 insertions, 13 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/category/CategoryIdentifierImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/category/CategoryIdentifierImpl.java
index 2b9ed42ed..6bbf0954e 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/category/CategoryIdentifierImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/category/CategoryIdentifierImpl.java
@@ -28,14 +28,18 @@ import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.impl.Internals;
import net.minecraft.resources.ResourceLocation;
+import java.util.Map;
import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
public class CategoryIdentifierImpl<D extends Display> implements CategoryIdentifier<D> {
private final ResourceLocation location;
+ private final int hashCode;
public CategoryIdentifierImpl(ResourceLocation location) {
this.location = Objects.requireNonNull(location);
+ this.hashCode = location.hashCode();
}
@Override
@@ -45,13 +49,13 @@ public class CategoryIdentifierImpl<D extends Display> implements CategoryIdenti
@Override
public int hashCode() {
- return location.hashCode();
+ return hashCode;
}
@Override
public boolean equals(Object obj) {
- if (!(obj instanceof CategoryIdentifier)) return false;
- return location.equals(((CategoryIdentifier<?>) obj).getIdentifier());
+ if (!(obj instanceof CategoryIdentifier<?> that)) return false;
+ return location.equals(that.getIdentifier());
}
@Override
@@ -60,6 +64,13 @@ public class CategoryIdentifierImpl<D extends Display> implements CategoryIdenti
}
public static void attach() {
- Internals.attachInstance((Function<ResourceLocation, CategoryIdentifier<?>>) CategoryIdentifierImpl::new, "categoryIdentifier");
+ Map<String, CategoryIdentifier<?>> cache = new ConcurrentHashMap<>();
+ Internals.attachInstance((Function<String, CategoryIdentifier<?>>) id -> {
+ CategoryIdentifier<?> identifier = cache.get(id);
+ if (identifier != null) return identifier;
+ identifier = new CategoryIdentifierImpl<>(new ResourceLocation(id));
+ cache.put(id, identifier);
+ return identifier;
+ }, "categoryIdentifier");
}
}
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 db95d6a76..ae09bcd7e 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
@@ -171,8 +171,7 @@ public abstract class AbstractEntryStack<A> extends AbstractRenderer implements
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof AbstractEntryStack)) return false;
- AbstractEntryStack<?> that = (AbstractEntryStack<?>) o;
+ if (!(o instanceof AbstractEntryStack<?> that)) return false;
return EntryStacks.equalsExact(this, that);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/EntryIngredientImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/EntryIngredientImpl.java
index b6a706d9d..1d9214326 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/EntryIngredientImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/EntryIngredientImpl.java
@@ -58,11 +58,11 @@ public class EntryIngredientImpl {
@Override
public EntryIngredient of(Iterable<EntryStack<?>> stacks) {
if (stacks instanceof EntryIngredient) return (EntryIngredient) stacks;
- if (stacks instanceof Collection) {
- int size = ((Collection<EntryStack<?>>) stacks).size();
+ if (stacks instanceof Collection<EntryStack<?>> collection) {
+ int size = collection.size();
if (size == 0) return empty();
if (size == 1) return of(stacks.iterator().next());
- return _of(((Collection<EntryStack<?>>) stacks).toArray(new EntryStack[0]));
+ return _of(collection.toArray(new EntryStack[0]));
}
return _of(StreamSupport.stream(stacks.spliterator(), false).toArray(EntryStack[]::new));
}
@@ -125,8 +125,7 @@ public class EntryIngredientImpl {
@Override
public EntryIngredient.Builder addAll(Iterable<? extends EntryStack<?>> stacks) {
- if (stacks instanceof Collection) {
- Collection<?> collection = (Collection<?>) stacks;
+ if (stacks instanceof Collection<?> collection) {
ensureCapacity(size + collection.size());
}
for (EntryStack<?> stack : stacks) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/comparison/NbtHasherProviderImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/comparison/NbtHasherProviderImpl.java
index e25f754f1..89c2653fb 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/comparison/NbtHasherProviderImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/comparison/NbtHasherProviderImpl.java
@@ -74,8 +74,8 @@ public class NbtHasherProviderImpl implements Internals.NbtHasherProvider {
private int hashTag(Tag tag) {
if (tag == null) return 0;
- if (tag instanceof ListTag) return hashListTag((ListTag) tag);
- if (tag instanceof CompoundTag) return hashCompoundTag((CompoundTag) tag);
+ if (tag instanceof ListTag list) return hashListTag(list);
+ if (tag instanceof CompoundTag compound) return hashCompoundTag(compound);
return tag.hashCode();
}