package tc.oc.pgm.goals; import javax.annotation.Nullable; import net.md_5.bungee.api.chat.BaseComponent; import tc.oc.commons.core.chat.Component; import tc.oc.pgm.features.FeatureDefinition; import static com.google.common.base.Preconditions.checkNotNull; public abstract class GoalDefinitionImpl<G extends Goal<?>> extends FeatureDefinition.Impl implements GoalDefinition<G> { private final @Inspect @Nullable Boolean required; private final @Inspect boolean visible; private final @Inspect String name; public GoalDefinitionImpl(String name, @Nullable Boolean required, boolean visible) { this.name = checkNotNull(name); this.required = required; this.visible = visible; } @Override public String defaultSlug() { return GoalDefinition.super.defaultSlug() + "-" + slugify(getName()); } @Override public String getName() { return this.name; } @Override public String getColoredName() { return this.getName(); } @Override public BaseComponent getComponentName() { return new Component(getName()); } @Override public @Nullable Boolean isRequired() { return this.required; } @Override public boolean isVisible() { return this.visible; } }