Fix tag lifecycle event handlers not disabling /reload

This commit is contained in:
Jake Potrebic
2024-09-24 19:33:30 -07:00
parent 653a12cc46
commit ee957a53ba
4 changed files with 23 additions and 38 deletions

View File

@@ -728,7 +728,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ eventType = (ET) this.eventTypes.get(registryKey);
+ } else {
+ eventType = eventTypeCreator.apply(registryKey, this.name);
+ LifecycleEventRunner.INSTANCE.addEventType(eventType);
+ this.eventTypes.put(registryKey, eventType);
+ }
+ return eventType;
@@ -844,6 +843,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ }
+
+ @Override
+ public boolean blocksReloading(final BootstrapContext eventOwner) {
+ return false; // only runs once
+ }
+
+ @Override
+ public RegistryEntryAddConfiguration<T> newHandler(final LifecycleEventHandler<? super RegistryEntryAddEvent<T, B>> handler) {
+ return new RegistryEntryAddHandlerConfiguration<>(handler, this);
+ }
@@ -924,6 +928,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ public RegistryLifecycleEventType(final RegistryKey<T> registryKey, final String eventName) {
+ super(registryKey + " / " + eventName, BootstrapContext.class);
+ }
+
+ @Override
+ public boolean blocksReloading(final BootstrapContext eventOwner) {
+ return false; // only runs once
+ }
+}
diff --git a/src/main/java/io/papermc/paper/registry/legacy/DelayedRegistry.java b/src/main/java/io/papermc/paper/registry/legacy/DelayedRegistry.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644