From fd371dd9cded0bcff7d3bd7cca337191a7f11b3d Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 8 Nov 2020 20:44:09 +0800 Subject: [PATCH] Add byId in ToolType --- .../me/shedaniel/architectury/registry/ToolType.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/me/shedaniel/architectury/registry/ToolType.java b/common/src/main/java/me/shedaniel/architectury/registry/ToolType.java index f2407c55..d18a9aa8 100644 --- a/common/src/main/java/me/shedaniel/architectury/registry/ToolType.java +++ b/common/src/main/java/me/shedaniel/architectury/registry/ToolType.java @@ -16,10 +16,12 @@ package me.shedaniel.architectury.registry; +import com.google.common.collect.Maps; import me.shedaniel.architectury.Populatable; import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; +import java.util.Map; import java.util.function.Supplier; public final class ToolType { @@ -46,6 +48,7 @@ public final class ToolType { return IMPL.shovelTag(); } + private static final Map TYPES = Maps.newConcurrentMap(); public final String forgeName; public final Supplier> fabricTag; private Object obj; @@ -56,7 +59,11 @@ public final class ToolType { } public static ToolType create(String forgeName, Supplier> fabricTag) { - return new ToolType(forgeName, fabricTag); + return TYPES.computeIfAbsent(forgeName, s -> new ToolType(s, fabricTag)); + } + + public static ToolType byName(String forgeName) { + return TYPES.get(forgeName); } public interface Impl {