Extra registry methods

This commit is contained in:
bigguy345 committed 2026-03-27 00:01:33 +02:00
1 parent b8cac96c46
commit b2c279feeb
1 file changed
+26 -1
+26 -1
View File
@@ -26,7 +26,7 @@ public class Register<T> {
protected final String namespace;
protected final Map<String, Supplier<T>> entries = new LinkedHashMap<>();
protected Register(String registryKey, String namespace) {
public Register(String registryKey, String namespace) {
this.registryKey = registryKey;
this.namespace = namespace;
}
@@ -36,6 +36,31 @@ public class Register<T> {
return factory.get();
}
public Map<String, Supplier<T>> getEntries() {
return entries;
}
public void forEach(Consumer<T> action) {
entries.values().forEach(s -> action.accept(s.get()));
}
public static <T> Register<T> create(String registryKey, String namespace, String displayName) {
registerNamespace(registryKey, namespace, displayName);
return new Register<>(registryKey, namespace);
}
public static void registerNamespace(String registryKey, String namespace, String displayName) {
if (!REGISTERED_NAMESPACES.containsKey(registryKey))
REGISTERED_NAMESPACES.put(registryKey, new ArrayList<>());
if (REGISTERED_NAMESPACES.get(registryKey).contains(namespace)) {
LogWriter.error("REGISTER: Namespace " + namespace + " already registered for registry " + registryKey + "!");
}
REGISTERED_NAMESPACES.get(registryKey).add(namespace);
NAMESPACE_DISPLAY_NAMES.put(namespace, displayName);
}
public static boolean isEmpty(String registryKey) {
if (REGISTERED_NAMESPACES.isEmpty()) return true;