Skip to content

Commit 337627f

Browse files
committed
method to normalize the type of the key
1 parent 0d124a8 commit 337627f

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

all/src/main/java/io/github/projectunified/uniitem/all/AllItemProvider.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,15 @@ public List<String> availableTypes() {
106106
public @NotNull Item wrap(@NotNull ItemKey key) {
107107
return getProviders().stream().map(provider -> provider.wrap(key)).filter(Item::isValid).findFirst().orElse(Item.INVALID);
108108
}
109+
110+
@Override
111+
public @NotNull String normalize(@NotNull String type) {
112+
for (ItemProvider provider : getProviders()) {
113+
String normalized = provider.normalize(type);
114+
if (!type.equals(normalized)) {
115+
return normalized;
116+
}
117+
}
118+
return type;
119+
}
109120
}

api/src/main/java/io/github/projectunified/uniitem/api/ItemProvider.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.jetbrains.annotations.Nullable;
77

88
import java.util.List;
9+
import java.util.Locale;
910

1011
public interface ItemProvider {
1112
List<String> availableTypes();
@@ -37,4 +38,13 @@ default boolean isValidKey(@NotNull ItemKey key) {
3738
default boolean isSimilar(@NotNull ItemStack item, @NotNull ItemKey key) {
3839
return wrap(key).isSimilar(item);
3940
}
41+
42+
default @NotNull String normalize(@NotNull String type) {
43+
List<String> types = availableTypes();
44+
return types.contains(type.toLowerCase(Locale.ROOT)) ? types.getFirst() : type;
45+
}
46+
47+
default @NotNull ItemKey normalize(@NotNull ItemKey key) {
48+
return new ItemKey(normalize(key.type()), key.id());
49+
}
4050
}

0 commit comments

Comments
 (0)