-
Notifications
You must be signed in to change notification settings - Fork 0
/
ItemRegistry.java
37 lines (29 loc) · 1.15 KB
/
ItemRegistry.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package org.auioc.mcmod.arnicalib.game.item;
import java.util.List;
import java.util.Optional;
import javax.annotation.Nonnull;
import org.auioc.mcmod.arnicalib.game.registry.RegistryEntryException;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraftforge.registries.ForgeRegistries;
public class ItemRegistry {
@Nonnull
public static Optional<Item> get(ResourceLocation id) {
return Optional.ofNullable(ForgeRegistries.ITEMS.containsKey(id) ? ForgeRegistries.ITEMS.getValue(id) : null);
}
@Nonnull
public static Optional<Item> get(String id) {
return get(new ResourceLocation(id));
}
@Nonnull
public static Item getOrElseThrow(ResourceLocation id) {
return get(id).orElseThrow(RegistryEntryException.UNKNOWN_ITEM.create(id.toString()));
}
@Nonnull
public static Item getOrElseThrow(String id) {
return get(id).orElseThrow(RegistryEntryException.UNKNOWN_ITEM.create(id.toString()));
}
public static List<Item> getItems(List<String> idList) {
return idList.stream().map(ItemRegistry::getOrElseThrow).toList();
}
}