mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-14 11:48:16 +00:00
added allowed roles, immune roles and restriction status to help command
This commit is contained in:
@@ -3,14 +3,19 @@ package dev.sheldan.abstracto.core.commands.help;
|
|||||||
import dev.sheldan.abstracto.core.command.*;
|
import dev.sheldan.abstracto.core.command.*;
|
||||||
import dev.sheldan.abstracto.core.command.config.*;
|
import dev.sheldan.abstracto.core.command.config.*;
|
||||||
import dev.sheldan.abstracto.core.command.execution.*;
|
import dev.sheldan.abstracto.core.command.execution.*;
|
||||||
|
import dev.sheldan.abstracto.core.command.models.database.ACommand;
|
||||||
|
import dev.sheldan.abstracto.core.command.models.database.ACommandInAServer;
|
||||||
import dev.sheldan.abstracto.core.command.service.CommandRegistry;
|
import dev.sheldan.abstracto.core.command.service.CommandRegistry;
|
||||||
import dev.sheldan.abstracto.core.command.service.ModuleRegistry;
|
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.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.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;
|
||||||
import dev.sheldan.abstracto.core.service.ChannelService;
|
import dev.sheldan.abstracto.core.service.ChannelService;
|
||||||
|
import dev.sheldan.abstracto.core.service.RoleService;
|
||||||
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
||||||
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;
|
||||||
@@ -36,6 +41,15 @@ public class Help implements Command {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CommandRegistry commandRegistry;
|
private CommandRegistry commandRegistry;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CommandInServerManagementService commandInServerManagementService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CommandManagementService commandManagementService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RoleService roleService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommandResult execute(CommandContext commandContext) {
|
public CommandResult execute(CommandContext commandContext) {
|
||||||
List<Object> parameters = commandContext.getParameters().getParameters();
|
List<Object> parameters = commandContext.getParameters().getParameters();
|
||||||
@@ -59,7 +73,14 @@ public class Help implements Command {
|
|||||||
channelService.sendMessageToEndInTextChannel(messageToSend, commandContext.getChannel());
|
channelService.sendMessageToEndInTextChannel(messageToSend, commandContext.getChannel());
|
||||||
} else if(commandRegistry.commandExists(parameter)) {
|
} else if(commandRegistry.commandExists(parameter)) {
|
||||||
Command command = commandRegistry.getCommandByName(parameter);
|
Command command = commandRegistry.getCommandByName(parameter);
|
||||||
|
ACommand aCommand = commandManagementService.findCommandByName(parameter);
|
||||||
|
ACommandInAServer aCommandInAServer = commandInServerManagementService.getCommandForServer(aCommand, commandContext.getUserInitiatedContext().getServer());
|
||||||
HelpCommandDetailsModel model = (HelpCommandDetailsModel) ContextConverter.fromCommandContext(commandContext, HelpCommandDetailsModel.class);
|
HelpCommandDetailsModel model = (HelpCommandDetailsModel) ContextConverter.fromCommandContext(commandContext, HelpCommandDetailsModel.class);
|
||||||
|
if(aCommandInAServer.getRestricted()) {
|
||||||
|
model.setImmuneRoles(roleService.getRolesFromGuild(aCommandInAServer.getImmuneRoles()));
|
||||||
|
model.setAllowedRoles(roleService.getRolesFromGuild(aCommandInAServer.getAllowedRoles()));
|
||||||
|
model.setRestricted(true);
|
||||||
|
}
|
||||||
model.setCommand(command.getConfiguration());
|
model.setCommand(command.getConfiguration());
|
||||||
MessageToSend messageToSend = templateService.renderEmbedTemplate("help_command_details_response", model);
|
MessageToSend messageToSend = templateService.renderEmbedTemplate("help_command_details_response", model);
|
||||||
channelService.sendMessageToEndInTextChannel(messageToSend, commandContext.getChannel());
|
channelService.sendMessageToEndInTextChannel(messageToSend, commandContext.getChannel());
|
||||||
|
|||||||
@@ -25,6 +25,13 @@ Detailed help: ${command.help.longHelp}
|
|||||||
<#if command.aliases?? && command.aliases?size gt 0>
|
<#if command.aliases?? && command.aliases?size gt 0>
|
||||||
Aliases: `${command.aliases?join("`, `")}`
|
Aliases: `${command.aliases?join("`, `")}`
|
||||||
</#if>
|
</#if>
|
||||||
|
Restrictions:
|
||||||
|
<#if restricted?? && restricted>
|
||||||
|
Executable by:<#if allowedRoles??> <#list allowedRoles as allowedRole> ${allowedRole.asMention}<#sep>or<#else>Nobody</#list> </#if>
|
||||||
|
<#if immuneRoles?? > Immune roles: <#list immuneRoles as immuneRole> ${immuneRole.asMention}<#sep>or<#else>None</#list> </#if>
|
||||||
|
<#else>
|
||||||
|
Not restricted
|
||||||
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
Parameters:
|
Parameters:
|
||||||
<#if command.parameters??>
|
<#if command.parameters??>
|
||||||
|
|||||||
@@ -5,10 +5,16 @@ import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.experimental.SuperBuilder;
|
import lombok.experimental.SuperBuilder;
|
||||||
|
import net.dv8tion.jda.api.entities.Role;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@SuperBuilder
|
@SuperBuilder
|
||||||
public class HelpCommandDetailsModel extends UserInitiatedServerContext {
|
public class HelpCommandDetailsModel extends UserInitiatedServerContext {
|
||||||
private CommandConfiguration command;
|
private CommandConfiguration command;
|
||||||
|
private List<Role> allowedRoles;
|
||||||
|
private List<Role> immuneRoles;
|
||||||
|
private Boolean restricted;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user