File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
all/src/main/java/io/github/projectunified/uniitem/all
api/src/main/java/io/github/projectunified/uniitem/api Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff line change 66import org .jetbrains .annotations .Nullable ;
77
88import java .util .List ;
9+ import java .util .Locale ;
910
1011public 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}
You can’t perform that action at this time.
0 commit comments