Bat/src/main/java/cc/fascinated/bat/features/Feature.java

48 lines
1.2 KiB
Java

package cc.fascinated.bat.features;
import cc.fascinated.bat.command.BatCommand;
import cc.fascinated.bat.command.Category;
import cc.fascinated.bat.service.CommandService;
import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
/**
* @author Fascinated (fascinated7)
*/
@RequiredArgsConstructor
@Getter
@Component
public abstract class Feature {
/**
* The name of the feature
*/
private final String name;
/**
* The description of the feature
*/
public final boolean canBeDisabled;
/**
* The category of the feature
*/
private final Category category;
/**
* Registers the command for the feature
*
* @param commandService The command service
* @param command The command to register
*/
public void registerCommand(@NonNull CommandService commandService, @NonNull BatCommand command) {
// If the command using the default category then set the category to the feature's category
if (command.getCategory() == Category.GENERAL) {
command.setCategory(this.category);
}
command.setFeature(this);
commandService.registerCommand(command);
}
}