From d99121ad47d175f57ce7658930125bda88cd3b91 Mon Sep 17 00:00:00 2001 From: Will FP Date: Sat, 11 May 2024 17:42:56 +0100 Subject: [PATCH] Added onRegister and onRemove master functions to registries --- .../willfp/eco/core/registry/Registry.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/eco-api/src/main/java/com/willfp/eco/core/registry/Registry.java b/eco-api/src/main/java/com/willfp/eco/core/registry/Registry.java index 0ba56490e..cde1544a1 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/registry/Registry.java +++ b/eco-api/src/main/java/com/willfp/eco/core/registry/Registry.java @@ -62,6 +62,7 @@ public T register(@NotNull final T element) { registry.put(element.getID(), element); element.onRegister(); + onRegister(element); return element; } @@ -78,6 +79,7 @@ public T remove(@NotNull final T element) { } element.onRemove(); + onRemove(element); registry.remove(element.getID()); @@ -99,10 +101,10 @@ public T remove(@NotNull final String id) { T element = registry.get(id); if (element != null) { - element.onRemove(); + return remove(element); } - return registry.remove(id); + return null; } /** @@ -171,6 +173,24 @@ public void unlock(@Nullable final Object locker) { isLocked = false; } + /** + * Run when an element is registered. + * + * @param element The element. + */ + protected void onRegister(@NotNull final T element) { + // Override this method to do something when an element is registered. + } + + /** + * Run when an element is removed. + * + * @param element The element. + */ + protected void onRemove(@NotNull final T element) { + // Override this method to do something when an element is removed. + } + /** * Get if the registry is empty. *