mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-15 20:16:34 +00:00
added validation for emotes to features
This commit is contained in:
@@ -39,4 +39,9 @@ public class ModMailFeature implements FeatureConfig {
|
|||||||
public List<FeatureValidator> getAdditionalFeatureValidators() {
|
public List<FeatureValidator> getAdditionalFeatureValidators() {
|
||||||
return Arrays.asList(modMailFeatureValidator);
|
return Arrays.asList(modMailFeatureValidator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getRequiredEmotes() {
|
||||||
|
return Arrays.asList("readReaction");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ import dev.sheldan.abstracto.core.config.FeatureConfig;
|
|||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class LinkEmbedFeature implements FeatureConfig {
|
public class LinkEmbedFeature implements FeatureConfig {
|
||||||
|
|
||||||
@@ -12,4 +15,8 @@ public class LinkEmbedFeature implements FeatureConfig {
|
|||||||
return UtilityFeature.LINK_EMBEDS;
|
return UtilityFeature.LINK_EMBEDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getRequiredEmotes() {
|
||||||
|
return Arrays.asList("removeEmbed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,4 +32,9 @@ public class StarboardFeature implements FeatureConfig {
|
|||||||
public List<FeatureValidator> getAdditionalFeatureValidators() {
|
public List<FeatureValidator> getAdditionalFeatureValidators() {
|
||||||
return Arrays.asList(starboardFeatureValidator);
|
return Arrays.asList(starboardFeatureValidator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getRequiredEmotes() {
|
||||||
|
return Arrays.asList("star", "star1", "star2", "star3", "star4", "starboardBadge1", "starboardBadge2", "starboardBadge3");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,4 +21,9 @@ public class SuggestionFeature implements FeatureConfig {
|
|||||||
public List<PostTargetEnum> getRequiredPostTargets() {
|
public List<PostTargetEnum> getRequiredPostTargets() {
|
||||||
return Arrays.asList(SuggestionPostTarget.SUGGESTION);
|
return Arrays.asList(SuggestionPostTarget.SUGGESTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getRequiredEmotes() {
|
||||||
|
return Arrays.asList("suggestionYes", "suggestionNo");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
||||||
import net.dv8tion.jda.api.entities.TextChannel;
|
import net.dv8tion.jda.api.entities.TextChannel;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
|
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.ChannelGroupChannelModel;
|
import dev.sheldan.abstracto.core.models.template.commands.ChannelGroupChannelModel;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.ChannelGroupModel;
|
import dev.sheldan.abstracto.core.models.template.commands.ChannelGroupModel;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import dev.sheldan.abstracto.core.command.config.HelpInfo;
|
|||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.command.execution.*;
|
import dev.sheldan.abstracto.core.command.execution.*;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.PostTargetErrorModel;
|
import dev.sheldan.abstracto.core.models.template.commands.PostTargetErrorModel;
|
||||||
import dev.sheldan.abstracto.core.service.PostTargetService;
|
import dev.sheldan.abstracto.core.service.PostTargetService;
|
||||||
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
|
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
import dev.sheldan.abstracto.core.service.ChannelGroupService;
|
||||||
import net.dv8tion.jda.api.entities.TextChannel;
|
import net.dv8tion.jda.api.entities.TextChannel;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.config.Parameter;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.CacheServiceBean;
|
import dev.sheldan.abstracto.core.service.CacheServiceBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.config.Parameter;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.ConfigService;
|
import dev.sheldan.abstracto.core.service.ConfigService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.config.Parameter;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.ConfigService;
|
import dev.sheldan.abstracto.core.service.ConfigService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import dev.sheldan.abstracto.core.command.service.management.CommandManagementSe
|
|||||||
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.database.AFeature;
|
import dev.sheldan.abstracto.core.models.database.AFeature;
|
||||||
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||||
import dev.sheldan.abstracto.templating.service.TemplateService;
|
import dev.sheldan.abstracto.templating.service.TemplateService;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import dev.sheldan.abstracto.core.command.service.management.CommandManagementSe
|
|||||||
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.database.ARole;
|
import dev.sheldan.abstracto.core.models.database.ARole;
|
||||||
import dev.sheldan.abstracto.core.service.FeatureFlagService;
|
import dev.sheldan.abstracto.core.service.FeatureFlagService;
|
||||||
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import dev.sheldan.abstracto.core.command.service.management.CommandManagementSe
|
|||||||
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.database.AFeature;
|
import dev.sheldan.abstracto.core.models.database.AFeature;
|
||||||
import dev.sheldan.abstracto.core.models.database.ARole;
|
import dev.sheldan.abstracto.core.models.database.ARole;
|
||||||
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import dev.sheldan.abstracto.core.command.execution.ContextConverter;
|
|||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureConfig;
|
import dev.sheldan.abstracto.core.config.FeatureConfig;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.EnableModel;
|
import dev.sheldan.abstracto.core.models.template.commands.EnableModel;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelService;
|
import dev.sheldan.abstracto.core.service.ChannelService;
|
||||||
import dev.sheldan.abstracto.core.service.FeatureFlagService;
|
import dev.sheldan.abstracto.core.service.FeatureFlagService;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import dev.sheldan.abstracto.core.command.execution.ContextConverter;
|
|||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureConfig;
|
import dev.sheldan.abstracto.core.config.FeatureConfig;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
|
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.EnableModel;
|
import dev.sheldan.abstracto.core.models.template.commands.EnableModel;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelService;
|
import dev.sheldan.abstracto.core.service.ChannelService;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
|
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
|
||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.converter.FeatureFlagConverter;
|
import dev.sheldan.abstracto.core.converter.FeatureFlagConverter;
|
||||||
import dev.sheldan.abstracto.core.models.database.AFeatureFlag;
|
import dev.sheldan.abstracto.core.models.database.AFeatureFlag;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.FeaturesModel;
|
import dev.sheldan.abstracto.core.models.template.commands.FeaturesModel;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import dev.sheldan.abstracto.core.command.service.management.CommandManagementSe
|
|||||||
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.database.AFeature;
|
import dev.sheldan.abstracto.core.models.database.AFeature;
|
||||||
import dev.sheldan.abstracto.core.models.database.ARole;
|
import dev.sheldan.abstracto.core.models.database.ARole;
|
||||||
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import dev.sheldan.abstracto.core.command.service.management.CommandManagementSe
|
|||||||
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.database.AFeature;
|
import dev.sheldan.abstracto.core.models.database.AFeature;
|
||||||
import dev.sheldan.abstracto.core.models.database.ARole;
|
import dev.sheldan.abstracto.core.models.database.ARole;
|
||||||
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import dev.sheldan.abstracto.core.command.service.management.CommandManagementSe
|
|||||||
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
|
||||||
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.database.AFeature;
|
import dev.sheldan.abstracto.core.models.database.AFeature;
|
||||||
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||||
import dev.sheldan.abstracto.templating.service.TemplateService;
|
import dev.sheldan.abstracto.templating.service.TemplateService;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import dev.sheldan.abstracto.core.command.service.ModuleRegistry;
|
|||||||
import dev.sheldan.abstracto.core.command.service.management.CommandInServerManagementService;
|
import dev.sheldan.abstracto.core.command.service.management.CommandInServerManagementService;
|
||||||
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
|
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.help.HelpCommandDetailsModel;
|
import dev.sheldan.abstracto.core.models.template.commands.help.HelpCommandDetailsModel;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.help.HelpModuleDetailsModel;
|
import dev.sheldan.abstracto.core.models.template.commands.help.HelpModuleDetailsModel;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.help.HelpModuleOverviewModel;
|
import dev.sheldan.abstracto.core.models.template.commands.help.HelpModuleOverviewModel;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.EchoModel;
|
import dev.sheldan.abstracto.core.models.template.commands.EchoModel;
|
||||||
import dev.sheldan.abstracto.templating.service.TemplateService;
|
import dev.sheldan.abstracto.templating.service.TemplateService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import dev.sheldan.abstracto.core.command.config.HelpInfo;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.models.template.commands.PingModel;
|
import dev.sheldan.abstracto.core.models.template.commands.PingModel;
|
||||||
import dev.sheldan.abstracto.templating.service.TemplateService;
|
import dev.sheldan.abstracto.templating.service.TemplateService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
|
|||||||
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||||
import dev.sheldan.abstracto.core.command.config.Parameter;
|
import dev.sheldan.abstracto.core.command.config.Parameter;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.features.CoreFeatures;
|
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
|
||||||
import dev.sheldan.abstracto.core.service.management.EmoteManagementService;
|
import dev.sheldan.abstracto.core.service.management.EmoteManagementService;
|
||||||
import net.dv8tion.jda.api.entities.Emote;
|
import net.dv8tion.jda.api.entities.Emote;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -172,6 +172,9 @@ public class FeatureFlagServiceBean implements FeatureFlagService {
|
|||||||
featureConfig.getRequiredSystemConfigKeys().forEach(s -> {
|
featureConfig.getRequiredSystemConfigKeys().forEach(s -> {
|
||||||
featureValidatorService.checkSystemConfig(s, server, featureValidationResult);
|
featureValidatorService.checkSystemConfig(s, server, featureValidationResult);
|
||||||
});
|
});
|
||||||
|
featureConfig.getRequiredEmotes().forEach(s -> {
|
||||||
|
featureValidatorService.checkEmote(s, server, featureValidationResult);
|
||||||
|
});
|
||||||
featureConfig.getAdditionalFeatureValidators().forEach(featureValidator -> {
|
featureConfig.getAdditionalFeatureValidators().forEach(featureValidator -> {
|
||||||
featureValidator.featureIsSetup(featureConfig, server, featureValidationResult);
|
featureValidator.featureIsSetup(featureConfig, server, featureValidationResult);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,15 +1,22 @@
|
|||||||
package dev.sheldan.abstracto.core.service;
|
package dev.sheldan.abstracto.core.service;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.PostTargetEnum;
|
import dev.sheldan.abstracto.core.config.PostTargetEnum;
|
||||||
|
import dev.sheldan.abstracto.core.models.EmoteMissingValidationError;
|
||||||
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
|
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
|
||||||
import dev.sheldan.abstracto.core.models.PostTargetValidationError;
|
import dev.sheldan.abstracto.core.models.PostTargetValidationError;
|
||||||
import dev.sheldan.abstracto.core.models.SystemConfigValidationError;
|
import dev.sheldan.abstracto.core.models.SystemConfigValidationError;
|
||||||
|
import dev.sheldan.abstracto.core.models.database.AEmote;
|
||||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||||
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
|
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
|
||||||
|
import dev.sheldan.abstracto.core.service.management.EmoteManagementService;
|
||||||
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
|
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
|
||||||
|
import net.dv8tion.jda.api.entities.Emote;
|
||||||
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class FeatureValidationServiceBean implements FeatureValidatorService {
|
public class FeatureValidationServiceBean implements FeatureValidatorService {
|
||||||
|
|
||||||
@@ -19,6 +26,15 @@ public class FeatureValidationServiceBean implements FeatureValidatorService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ConfigManagementService configService;
|
private ConfigManagementService configService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmoteService emoteService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmoteManagementService emoteManagementService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BotService botService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void checkPostTarget(PostTargetEnum name, AServer server, FeatureValidationResult featureValidationResult) {
|
public void checkPostTarget(PostTargetEnum name, AServer server, FeatureValidationResult featureValidationResult) {
|
||||||
if(!postTargetManagement.postTargetExists(name.getKey(), server)) {
|
if(!postTargetManagement.postTargetExists(name.getKey(), server)) {
|
||||||
@@ -39,6 +55,34 @@ public class FeatureValidationServiceBean implements FeatureValidatorService {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void checkEmote(String emoteKey, AServer server, FeatureValidationResult featureValidationResult) {
|
||||||
|
if(emoteService.getUsableEmoteOrDefault(server.getId(), emoteKey) == null) {
|
||||||
|
rejectEmote(emoteKey, featureValidationResult);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Optional<AEmote> emoteOptional = emoteManagementService.loadEmoteByName(emoteKey, server.getId());
|
||||||
|
if(emoteOptional.isPresent()) {
|
||||||
|
AEmote emote = emoteOptional.get();
|
||||||
|
if(emote.getCustom()) {
|
||||||
|
Emote emoteById = botService.getInstance().getEmoteById(emote.getEmoteId());
|
||||||
|
if(emoteById == null) {
|
||||||
|
rejectEmote(emoteKey, featureValidationResult);
|
||||||
|
} else {
|
||||||
|
Member selfMember = botService.getMemberInServer(server.getId(), botService.getInstance().getSelfUser().getIdLong());
|
||||||
|
if(!emoteById.canInteract(selfMember)) {
|
||||||
|
rejectEmote(emoteKey, featureValidationResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rejectEmote(String emoteKey, FeatureValidationResult featureValidationResult) {
|
||||||
|
EmoteMissingValidationError validationError = EmoteMissingValidationError.builder().emoteKey(emoteKey).build();
|
||||||
|
featureValidationResult.setValidationResult(false);
|
||||||
|
featureValidationResult.getValidationErrors().add(validationError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,11 +38,9 @@ public class MessageServiceBean implements MessageService {
|
|||||||
@Override
|
@Override
|
||||||
public void addReactionToMessage(String emoteKey, Long serverId, Message message) {
|
public void addReactionToMessage(String emoteKey, Long serverId, Message message) {
|
||||||
Optional<Guild> guildByIdOptional = botService.getGuildById(serverId);
|
Optional<Guild> guildByIdOptional = botService.getGuildById(serverId);
|
||||||
Optional<AEmote> aEmote = emoteManagementService.loadEmoteByName(emoteKey, serverId);
|
AEmote emote = emoteService.getEmoteOrFakeEmote(emoteKey, serverId);
|
||||||
if(guildByIdOptional.isPresent()) {
|
if(guildByIdOptional.isPresent()) {
|
||||||
Guild guild = guildByIdOptional.get();
|
Guild guild = guildByIdOptional.get();
|
||||||
if(aEmote.isPresent()) {
|
|
||||||
AEmote emote = aEmote.get();
|
|
||||||
if(emote.getCustom()) {
|
if(emote.getCustom()) {
|
||||||
Emote emoteById = botService.getInstance().getEmoteById(emote.getEmoteId());
|
Emote emoteById = botService.getInstance().getEmoteById(emote.getEmoteId());
|
||||||
if(emoteById != null) {
|
if(emoteById != null) {
|
||||||
@@ -54,9 +52,6 @@ public class MessageServiceBean implements MessageService {
|
|||||||
} else {
|
} else {
|
||||||
message.addReaction(emote.getEmoteKey()).queue();
|
message.addReaction(emote.getEmoteKey()).queue();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
String defaultEmote = emoteService.getDefaultEmote(emoteKey);
|
|
||||||
message.addReaction(defaultEmote).queue();}
|
|
||||||
} else {
|
} else {
|
||||||
log.error("Cannot add reaction, guild not found {}", serverId);
|
log.error("Cannot add reaction, guild not found {}", serverId);
|
||||||
throw new GuildException(serverId);
|
throw new GuildException(serverId);
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
<#assign emoteKey>${error.templateModel['emoteKey']}</#assign><#include "emote_key_not_setup_text">
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
package dev.sheldan.abstracto.core.config.features;
|
package dev.sheldan.abstracto.core.command.config.features;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureConfig;
|
import dev.sheldan.abstracto.core.config.FeatureConfig;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class CoreFeature implements FeatureConfig {
|
public class CoreFeature implements FeatureConfig {
|
||||||
|
|
||||||
@@ -12,4 +15,8 @@ public class CoreFeature implements FeatureConfig {
|
|||||||
return CoreFeatures.CORE_FEATURE;
|
return CoreFeatures.CORE_FEATURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getRequiredEmotes() {
|
||||||
|
return Arrays.asList("warnReaction", "successReaction");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package dev.sheldan.abstracto.core.config.features;
|
package dev.sheldan.abstracto.core.command.config.features;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -16,4 +16,5 @@ public interface FeatureConfig {
|
|||||||
default List<PostTargetEnum> getRequiredPostTargets() { return Collections.emptyList();}
|
default List<PostTargetEnum> getRequiredPostTargets() { return Collections.emptyList();}
|
||||||
default List<String> getRequiredSystemConfigKeys() { return Collections.emptyList();}
|
default List<String> getRequiredSystemConfigKeys() { return Collections.emptyList();}
|
||||||
default List<FeatureValidator> getAdditionalFeatureValidators() { return Collections.emptyList(); }
|
default List<FeatureValidator> getAdditionalFeatureValidators() { return Collections.emptyList(); }
|
||||||
|
default List<String> getRequiredEmotes() { return Collections.emptyList(); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package dev.sheldan.abstracto.core.models;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
public class EmoteMissingValidationError implements ValidationError {
|
||||||
|
|
||||||
|
private String emoteKey;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTemplateName() {
|
||||||
|
return "emote_not_setup";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getTemplateModel() {
|
||||||
|
HashMap<String, String> params = new HashMap<>();
|
||||||
|
params.put("emoteKey", emoteKey);
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -7,4 +7,5 @@ import dev.sheldan.abstracto.core.models.database.AServer;
|
|||||||
public interface FeatureValidatorService {
|
public interface FeatureValidatorService {
|
||||||
void checkPostTarget(PostTargetEnum postTargetEnum, AServer server, FeatureValidationResult featureValidationResult);
|
void checkPostTarget(PostTargetEnum postTargetEnum, AServer server, FeatureValidationResult featureValidationResult);
|
||||||
boolean checkSystemConfig(String name, AServer server, FeatureValidationResult featureValidationResult);
|
boolean checkSystemConfig(String name, AServer server, FeatureValidationResult featureValidationResult);
|
||||||
|
void checkEmote(String emoteKey, AServer server, FeatureValidationResult featureValidationResult);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
Emote `${emoteKey}` is not set up.
|
||||||
Reference in New Issue
Block a user