Skip to content
Closed
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@
import org.spongepowered.api.Sponge;
import org.spongepowered.api.advancement.criteria.AdvancementCriterion;
import org.spongepowered.api.datapack.DataPackSerializable;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.util.CopyableBuilder;

import java.util.List;
Expand All @@ -40,7 +42,7 @@
/**
* An advancement.
*/
public interface Advancement extends DefaultedRegistryValue, ComponentLike, DataPackSerializable {
public interface Advancement extends DefaultedRegistryValue<Advancement>, ComponentLike, DataPackSerializable {

/**
* Creates a new {@link Builder} to create an {@link Advancement}.
Expand Down Expand Up @@ -85,6 +87,11 @@ static Advancement.Builder builder() {
*/
List<Component> toToastText();

@Override
default DefaultedRegistryType<Advancement> registryType() {
return RegistryTypes.ADVANCEMENT;
}

/**
* A builder to create {@link Advancement}s.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,18 @@
package org.spongepowered.api.advancement;

import net.kyori.adventure.text.format.TextColor;
import org.spongepowered.api.data.type.StringRepresentable;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
* Changes the frame around the {@link Advancement} icon and
* also the appearance in the notifications.
*/
@CatalogedBy(AdvancementTypes.class)
public interface AdvancementType extends DefaultedRegistryValue {
public interface AdvancementType extends DefaultedRegistryValue<AdvancementType>, StringRepresentable {

/**
* Gets the {@link TextColor} of the advancement type.
Expand All @@ -42,4 +45,8 @@ public interface AdvancementType extends DefaultedRegistryValue {
*/
TextColor textColor();

@Override
default DefaultedRegistryType<AdvancementType> registryType() {
return RegistryTypes.ADVANCEMENT_TYPE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,10 @@
import org.spongepowered.api.entity.living.player.server.ServerPlayer;
import org.spongepowered.api.event.Cause;
import org.spongepowered.api.event.advancement.CriterionEvent;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.scoreboard.criteria.Criterion;
import org.spongepowered.api.tag.Taggable;
import org.spongepowered.api.util.CopyableBuilder;
import org.spongepowered.api.util.annotation.CatalogedBy;
import org.spongepowered.configurate.ConfigurationOptions;
Expand All @@ -53,7 +55,7 @@
*/
@SuppressWarnings("unchecked")
@CatalogedBy(Triggers.class)
public interface Trigger<C extends FilteredTriggerConfiguration> extends DefaultedRegistryValue {
public interface Trigger<C extends FilteredTriggerConfiguration> extends Taggable<Trigger<?>> {

/**
* Creates a new {@link Builder} which can be used to create
Expand Down Expand Up @@ -96,6 +98,11 @@ static Builder<?> builder() {
*/
void trigger(ServerPlayer player);

@Override
default DefaultedRegistryType<Trigger<?>> registryType() {
return RegistryTypes.TRIGGER;
}

/**
* A builder to create {@link Trigger}s.
*
Expand Down
11 changes: 9 additions & 2 deletions src/main/java/org/spongepowered/api/adventure/ChatType.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,17 @@
import net.kyori.adventure.text.format.Style;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.datapack.DataPackSerializable;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.tag.Taggable;
import org.spongepowered.api.util.CopyableBuilder;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
* A type of chat
*/
@CatalogedBy(ChatTypes.class)
public interface ChatType extends DefaultedRegistryValue, net.kyori.adventure.chat.ChatType, DataPackSerializable {
public interface ChatType extends Taggable<ChatType>, net.kyori.adventure.chat.ChatType, DataPackSerializable {

/**
* Creates a new {@link Builder} to create a {@link ChatType}.
Expand All @@ -46,6 +48,11 @@ static Builder builder() {
return Sponge.game().builderProvider().provide(Builder.class);
}

@Override
default DefaultedRegistryType<ChatType> registryType() {
return RegistryTypes.CHAT_TYPE;
}

/**
* Gets the translation key that would be used
* to display the chat message.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,19 @@
*/
package org.spongepowered.api.adventure;

import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
* A type of rendering operation that can be performed on a component.
*/
@CatalogedBy(ResolveOperations.class)
public interface ResolveOperation {
public interface ResolveOperation extends DefaultedRegistryValue<ResolveOperation> {

@Override
default DefaultedRegistryType<ResolveOperation> registryType() {
return RegistryTypes.RESOLVE_OPERATION;
}
}
9 changes: 7 additions & 2 deletions src/main/java/org/spongepowered/api/block/BlockType.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@
import org.spongepowered.api.block.entity.BlockEntity;
import org.spongepowered.api.data.DataHolder;
import org.spongepowered.api.item.ItemType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.state.StateContainer;
import org.spongepowered.api.tag.Taggable;
import org.spongepowered.api.util.annotation.CatalogedBy;
Expand All @@ -44,7 +45,7 @@
* via {@link BlockEntity}.</p>
*/
@CatalogedBy(BlockTypes.class)
public interface BlockType extends DefaultedRegistryValue, ComponentLike, StateContainer<BlockState>, DataHolder.Immutable<BlockType>, Taggable<BlockType> {
public interface BlockType extends Taggable<BlockType>, ComponentLike, StateContainer<BlockState>, DataHolder.Immutable<BlockType> {

/**
* Return the {@link ItemType} that represents this block.
Expand Down Expand Up @@ -104,4 +105,8 @@ public interface BlockType extends DefaultedRegistryValue, ComponentLike, StateC
*/
boolean hasBlockEntity();

@Override
default DefaultedRegistryType<BlockType> registryType() {
return RegistryTypes.BLOCK_TYPE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,16 @@
package org.spongepowered.api.block.entity;

import org.spongepowered.api.block.BlockState;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.tag.Taggable;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
* Describes a type of block entity.
*/
@CatalogedBy(BlockEntityTypes.class)
public interface BlockEntityType extends DefaultedRegistryValue {
public interface BlockEntityType extends Taggable<BlockEntityType> {

/**
* Determines if the provided block is considered valid by the {@link BlockEntity}.
Expand All @@ -46,4 +48,9 @@ public interface BlockEntityType extends DefaultedRegistryValue {
* @return True if valid, false if not
*/
boolean isValidBlock(BlockState block);

@Override
default DefaultedRegistryType<BlockEntityType> registryType() {
return RegistryTypes.BLOCK_ENTITY_TYPE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
*/
package org.spongepowered.api.block.transaction;

import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
Expand All @@ -34,5 +36,10 @@
* but holds no bearing on the order of a transaction taking place.
*/
@CatalogedBy(Operations.class)
public interface Operation extends DefaultedRegistryValue {
public interface Operation extends DefaultedRegistryValue<Operation> {

@Override
default DefaultedRegistryType<Operation> registryType() {
return RegistryTypes.OPERATION;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,10 @@
import org.spongepowered.api.command.parameter.ArgumentReader;
import org.spongepowered.api.command.parameter.CommandContext;
import org.spongepowered.api.command.parameter.Parameter;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryHolder;
import org.spongepowered.api.registry.RegistryTypes;

import java.util.List;
import java.util.Optional;
Expand All @@ -48,7 +50,7 @@
* @see org.spongepowered.api.command.parameter.managed.ValueParser
* @see org.spongepowered.api.command.parameter.managed.ValueUsage
*/
public interface ValueParameter<T> extends DefaultedRegistryValue, ValueCompleter, ValueParser<T>, ValueUsage {
public interface ValueParameter<T> extends DefaultedRegistryValue<ValueParameter<?>>, ValueCompleter, ValueParser<T>, ValueUsage {

@Override
default String usage(@NonNull final String key) {
Expand All @@ -60,6 +62,11 @@ default ValueParameter<T> bind(RegistryHolder registryHolder) {
return this;
}

@Override
default DefaultedRegistryType<ValueParameter<?>> registryType() {
return RegistryTypes.REGISTRY_KEYED_VALUE_PARAMETER;
}

/**
* A {@link ValueParameter} that does not rely on the {@link CommandContext}
* or {@link Parameter.Key} to parse its results.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@
package org.spongepowered.api.command.parameter.managed.clientcompletion;

import org.spongepowered.api.command.parameter.managed.ValueParser;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
Expand All @@ -37,5 +39,10 @@
* types</p>
*/
@CatalogedBy(ClientCompletionTypes.class)
public interface ClientCompletionType extends DefaultedRegistryValue {
public interface ClientCompletionType extends DefaultedRegistryValue<ClientCompletionType> {

@Override
default DefaultedRegistryType<ClientCompletionType> registryType() {
return RegistryTypes.CLIENT_COMPLETION_TYPE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
package org.spongepowered.api.command.parameter.managed.operator;

import org.spongepowered.api.command.parameter.managed.standard.ResourceKeyedValueParameters;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
Expand All @@ -33,7 +36,7 @@
* @see ResourceKeyedValueParameters#OPERATOR
*/
@CatalogedBy(Operators.class)
public interface Operator {
public interface Operator extends DefaultedRegistryValue<Operator> {

/**
* The string representation of this operator
Expand All @@ -42,6 +45,11 @@ public interface Operator {
*/
String asString();

@Override
default DefaultedRegistryType<Operator> registryType() {
return RegistryTypes.OPERATOR;
}

/**
* An operator that can operate on two numbers and return a number.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@

import io.leangen.geantyref.TypeToken;
import org.spongepowered.api.command.manager.CommandManager;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryHolder;
import org.spongepowered.api.registry.RegistryTypes;

/**
* A type of {@link CommandRegistrar}.
Expand All @@ -37,7 +39,7 @@
*
* @param <T> the handled command type
*/
public interface CommandRegistrarType<T> extends DefaultedRegistryValue {
public interface CommandRegistrarType<T> extends DefaultedRegistryValue<CommandRegistrarType<?>> {

/**
* Gets the type of command that this registrar handles.
Expand All @@ -55,4 +57,9 @@ public interface CommandRegistrarType<T> extends DefaultedRegistryValue {
* @return the newly created registrar
*/
CommandRegistrar<T> create(final CommandManager.Mutable manager, RegistryHolder registryHolder);

@Override
default DefaultedRegistryType<CommandRegistrarType<?>> registryType() {
return RegistryTypes.COMMAND_REGISTRAR_TYPE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
import org.spongepowered.api.ResourceKeyed;
import org.spongepowered.api.command.Command;
import org.spongepowered.api.command.registrar.CommandRegistrarType;
import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
Expand Down Expand Up @@ -55,7 +57,7 @@
* displaying and completing command strings.</p>
*/
@CatalogedBy(CommandTreeNodeTypes.class)
public interface CommandTreeNodeType<T extends CommandTreeNode<T>> extends DefaultedRegistryValue, ResourceKeyed {
public interface CommandTreeNodeType<T extends CommandTreeNode<T>> extends DefaultedRegistryValue<CommandTreeNodeType<?>>, ResourceKeyed {

/**
* Creates a {@link CommandTreeNode} that represents this
Expand All @@ -65,4 +67,8 @@ public interface CommandTreeNodeType<T extends CommandTreeNode<T>> extends Defau
*/
T createNode();

@Override
default DefaultedRegistryType<CommandTreeNodeType<?>> registryType() {
return RegistryTypes.COMMAND_TREE_NODE_TYPE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,20 @@
*/
package org.spongepowered.api.command.selector;

import org.spongepowered.api.registry.DefaultedRegistryType;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.registry.RegistryTypes;
import org.spongepowered.api.util.annotation.CatalogedBy;

/**
* Defines an algorithm used when a selector sorts the selected entities, which
* will have a significant effect when limits are imposed on the selector.
*/
@CatalogedBy(SelectorSortAlgorithms.class)
public interface SelectorSortAlgorithm extends DefaultedRegistryValue {
public interface SelectorSortAlgorithm extends DefaultedRegistryValue<SelectorSortAlgorithm> {

@Override
default DefaultedRegistryType<SelectorSortAlgorithm> registryType() {
return RegistryTypes.SELECTOR_SORT_ALGORITHM;
}
}
Loading
Loading