Skip to content

Commit b2c279f

Browse files
committed
Extra registry methods
1 parent b8cac96 commit b2c279f

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

src/main/java/kamkeel/npcs/util/Register.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class Register<T> {
2626
protected final String namespace;
2727
protected final Map<String, Supplier<T>> entries = new LinkedHashMap<>();
2828

29-
protected Register(String registryKey, String namespace) {
29+
public Register(String registryKey, String namespace) {
3030
this.registryKey = registryKey;
3131
this.namespace = namespace;
3232
}
@@ -36,6 +36,31 @@ public T register(String factoryName, Supplier<T> factory) {
3636
return factory.get();
3737
}
3838

39+
public Map<String, Supplier<T>> getEntries() {
40+
return entries;
41+
}
42+
43+
public void forEach(Consumer<T> action) {
44+
entries.values().forEach(s -> action.accept(s.get()));
45+
}
46+
47+
public static <T> Register<T> create(String registryKey, String namespace, String displayName) {
48+
registerNamespace(registryKey, namespace, displayName);
49+
return new Register<>(registryKey, namespace);
50+
}
51+
52+
public static void registerNamespace(String registryKey, String namespace, String displayName) {
53+
if (!REGISTERED_NAMESPACES.containsKey(registryKey))
54+
REGISTERED_NAMESPACES.put(registryKey, new ArrayList<>());
55+
56+
if (REGISTERED_NAMESPACES.get(registryKey).contains(namespace)) {
57+
LogWriter.error("REGISTER: Namespace " + namespace + " already registered for registry " + registryKey + "!");
58+
}
59+
60+
REGISTERED_NAMESPACES.get(registryKey).add(namespace);
61+
NAMESPACE_DISPLAY_NAMES.put(namespace, displayName);
62+
}
63+
3964
public static boolean isEmpty(String registryKey) {
4065
if (REGISTERED_NAMESPACES.isEmpty()) return true;
4166

0 commit comments

Comments
 (0)