Tag Lifecycle Events
== AT == public net/minecraft/tags/TagEntry id public net/minecraft/tags/TagEntry tag public net/minecraft/tags/TagEntry required
This commit is contained in:
@@ -13,6 +13,8 @@ public final class LifecycleEventTypeProviderImpl implements LifecycleEventTypeP
|
||||
return (LifecycleEventTypeProviderImpl) LifecycleEventTypeProvider.provider();
|
||||
}
|
||||
|
||||
private final PaperTagEventTypeProvider provider = new PaperTagEventTypeProvider();
|
||||
|
||||
@Override
|
||||
public <O extends LifecycleEventOwner, E extends LifecycleEvent> LifecycleEventType.Monitorable<O, E> monitor(final String name, final Class<? extends O> ownerType) {
|
||||
return new MonitorableLifecycleEventType<>(name, ownerType);
|
||||
@@ -22,4 +24,9 @@ public final class LifecycleEventTypeProviderImpl implements LifecycleEventTypeP
|
||||
public <O extends LifecycleEventOwner, E extends LifecycleEvent> LifecycleEventType.Prioritizable<O, E> prioritized(final String name, final Class<? extends O> ownerType) {
|
||||
return new PrioritizableLifecycleEventType.Simple<>(name, ownerType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PaperTagEventTypeProvider tagProvider() {
|
||||
return this.provider;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package io.papermc.paper.plugin.lifecycle.event.types;
|
||||
|
||||
import io.papermc.paper.plugin.bootstrap.BootstrapContext;
|
||||
import io.papermc.paper.plugin.lifecycle.event.registrar.ReloadableRegistrarEvent;
|
||||
import io.papermc.paper.registry.RegistryKey;
|
||||
import io.papermc.paper.tag.PaperTagListenerManager;
|
||||
import io.papermc.paper.tag.PostFlattenTagRegistrar;
|
||||
import io.papermc.paper.tag.PreFlattenTagRegistrar;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.checkerframework.framework.qual.DefaultQualifier;
|
||||
|
||||
@DefaultQualifier(NonNull.class)
|
||||
public class PaperTagEventTypeProvider implements TagEventTypeProvider {
|
||||
|
||||
@Override
|
||||
public <T> PrioritizableLifecycleEventType.Simple<BootstrapContext, ReloadableRegistrarEvent<PreFlattenTagRegistrar<T>>> preFlatten(final RegistryKey<T> registryKey) {
|
||||
return PaperTagListenerManager.INSTANCE.getPreFlattenType(registryKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> PrioritizableLifecycleEventType.Simple<BootstrapContext, ReloadableRegistrarEvent<PostFlattenTagRegistrar<T>>> postFlatten(final RegistryKey<T> registryKey) {
|
||||
return PaperTagListenerManager.INSTANCE.getPostFlattenType(registryKey);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user