mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-04 16:45:44 +00:00
refactored features to be components instead, so we have more runtime config (for example template config etc), this can be done, because features depend on the code anyway and do not need to be done via property files, the property files only define the default values when starting up
fixed feature disabled message not being templated and refactored the way condition checks are handled by the command received handler, so we do not use exceptions for this, this handled by a specified state in the result and a separate post execution handler added separate config module to the commands added command to see which features are available, and their current state fixed scheduler test
This commit is contained in:
@@ -6,8 +6,9 @@ import dev.sheldan.abstracto.core.command.config.HelpInfo;
|
||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.service.ConfigService;
|
||||
import dev.sheldan.abstracto.experience.config.ExperienceFeatures;
|
||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -49,7 +50,7 @@ public class ExpScale extends AbstractConditionableCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeature() {
|
||||
return ExperienceFeatures.EXPERIENCE;
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,9 @@ import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.service.ChannelService;
|
||||
import dev.sheldan.abstracto.experience.config.ExperienceFeatures;
|
||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||
import dev.sheldan.abstracto.experience.converter.LeaderBoardModelConverter;
|
||||
import dev.sheldan.abstracto.experience.models.LeaderBoard;
|
||||
import dev.sheldan.abstracto.experience.models.LeaderBoardEntry;
|
||||
@@ -78,7 +79,7 @@ public class LeaderBoardCommand extends AbstractConditionableCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeature() {
|
||||
return ExperienceFeatures.EXPERIENCE;
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,8 @@ import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
|
||||
import dev.sheldan.abstracto.experience.config.ExperienceFeatures;
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||
import dev.sheldan.abstracto.experience.converter.LeaderBoardModelConverter;
|
||||
import dev.sheldan.abstracto.experience.models.LeaderBoardEntry;
|
||||
import dev.sheldan.abstracto.experience.models.database.AUserExperience;
|
||||
@@ -66,7 +67,7 @@ public class Rank extends AbstractConditionableCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeature() {
|
||||
return ExperienceFeatures.EXPERIENCE;
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,13 +6,13 @@ import dev.sheldan.abstracto.core.command.config.HelpInfo;
|
||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.exception.RoleException;
|
||||
import dev.sheldan.abstracto.core.models.database.ARole;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import dev.sheldan.abstracto.core.service.RoleService;
|
||||
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||
import dev.sheldan.abstracto.experience.config.ExperienceFeatures;
|
||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||
import dev.sheldan.abstracto.experience.service.ExperienceRoleService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -66,7 +66,7 @@ public class SetExpRole extends AbstractConditionableCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeature() {
|
||||
return ExperienceFeatures.EXPERIENCE;
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,9 @@ import dev.sheldan.abstracto.core.command.config.HelpInfo;
|
||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import dev.sheldan.abstracto.experience.config.ExperienceFeatures;
|
||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||
import dev.sheldan.abstracto.experience.service.AUserExperienceService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -46,7 +47,7 @@ public class SyncRoles extends AbstractConditionableCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeature() {
|
||||
return ExperienceFeatures.EXPERIENCE;
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,10 @@ import dev.sheldan.abstracto.core.command.config.HelpInfo;
|
||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.models.database.ARole;
|
||||
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||
import dev.sheldan.abstracto.experience.config.ExperienceFeatures;
|
||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||
import dev.sheldan.abstracto.experience.service.ExperienceRoleService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -51,7 +52,7 @@ public class UnSetExpRole extends AbstractConditionableCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeature() {
|
||||
return ExperienceFeatures.EXPERIENCE;
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
package dev.sheldan.abstracto.experience.config;
|
||||
|
||||
public class ExperienceFeatures {
|
||||
public static String EXPERIENCE = "experience";
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
package dev.sheldan.abstracto.experience.listener;
|
||||
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.listener.MessageReceivedListener;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.core.service.management.UserManagementService;
|
||||
import dev.sheldan.abstracto.experience.config.ExperienceFeatures;
|
||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||
import dev.sheldan.abstracto.experience.service.AUserExperienceService;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -32,7 +33,7 @@ public class ExperienceTrackerListener implements MessageReceivedListener {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeature() {
|
||||
return ExperienceFeatures.EXPERIENCE;
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package dev.sheldan.abstracto.experience.listener;
|
||||
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.listener.JoinListener;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.experience.config.ExperienceFeatures;
|
||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||
import dev.sheldan.abstracto.experience.models.database.AUserExperience;
|
||||
import dev.sheldan.abstracto.experience.service.AUserExperienceService;
|
||||
import dev.sheldan.abstracto.experience.service.management.UserExperienceManagementService;
|
||||
@@ -36,7 +37,7 @@ public class JoiningUserRoleListener implements JoinListener {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeature() {
|
||||
return ExperienceFeatures.EXPERIENCE;
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Experience tracking
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.sheldan.abstracto.experience.config.features;
|
||||
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum ExperienceFeature implements FeatureEnum {
|
||||
EXPERIENCE("experience");
|
||||
|
||||
private String key;
|
||||
|
||||
ExperienceFeature(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package dev.sheldan.abstracto.experience.config.features;
|
||||
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.config.FeatureDisplay;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class ExperienceFeatureDisplay implements FeatureDisplay {
|
||||
public static String EXPERIENCE = "experience";
|
||||
|
||||
@Override
|
||||
public FeatureEnum getFeature() {
|
||||
return ExperienceFeature.EXPERIENCE;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user