Interface PreFlattenTagRegistrar<T>
- Type Parameters:
T- the type of value in the tag
- All Superinterfaces:
Registrar
@Experimental
@NullMarked
@NonExtendable
public interface PreFlattenTagRegistrar<T>
extends Registrar
Registrar for tags before they are flattened. Flattened
tags are tags which have any nested tags resolved to the tagged
values the nested tags point to. This registrar, being a pre-flatten
registrar, allows for modification before that flattening has happened, when
tags both point to individual entries and other nested tags.
An example of a tag being created in a pre-flatten registrar:
class YourBootstrapClass implements PluginBootstrap {
public static final TagKey<ItemType> AXE_PICKAXE = ItemTypeTagKeys.create(Key.key("papermc:axe_pickaxe"));
@Override
public void bootstrap(BootstrapContext context) {
final LifecycleEventManager<BootstrapContext> manager = context.getLifecycleManager();
manager.registerEventHandler(LifecycleEvents.TAGS.preFlatten(RegistryKey.ITEM), event -> {
final PreFlattenTagRegistrar<ItemType> registrar = event.registrar();
registrar.setTag(AXE_PICKAXE, Set.of(
TagEntry.tagEntry(ItemTypeTagKeys.PICKAXES),
TagEntry.tagEntry(ItemTypeTagKeys.AXES)
));
});
}
}
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidAdds entries to the given tag.@Unmodifiable Map<TagKey<T>, Collection<TagEntry<T>>> Get a copy of all tags currently held in this registrar.Get the tag with the given key.booleanChecks if this registrar has a tag with the given key.Get the registry key for this tag registrar.voidSets the entries of the given tag.
-
Method Details
-
registryKey
-
getAllTags
@Contract(value="-> new", pure=true) @Unmodifiable Map<TagKey<T>, Collection<TagEntry<T>>> getAllTags()Get a copy of all tags currently held in this registrar.- Returns:
- an immutable map of all tags
-
hasTag
-
getTag
Get the tag with the given key. UsehasTag(TagKey)to check if a tag exists first.- Parameters:
tagKey- the key of the tag to get- Returns:
- an immutable list of tag entries
- Throws:
NoSuchElementException- if the tag does not exist- See Also:
-
addToTag
-
setTag
Sets the entries of the given tag. If the tag does not exist, it will be created. If the tag does exist, it will be overwritten.- Parameters:
tagKey- the key of the tag to setentries- the entries to set- See Also:
-