mirror of https://github.com/sgoudham/Enso-Bot.git
Tidy up code
parent
dd6763269e
commit
a2efe9dc69
@ -1,71 +1,26 @@
|
|||||||
package me.goudham.bot;
|
package me.goudham.bot;
|
||||||
|
|
||||||
import io.micronaut.context.BeanContext;
|
|
||||||
import io.micronaut.core.annotation.AnnotationValue;
|
|
||||||
import io.micronaut.inject.BeanDefinition;
|
|
||||||
import io.micronaut.inject.qualifiers.Qualifiers;
|
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.inject.Singleton;
|
import jakarta.inject.Singleton;
|
||||||
import java.lang.annotation.Annotation;
|
import me.goudham.command.CommandManager;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import me.goudham.command.annotation.Choice;
|
|
||||||
import me.goudham.command.annotation.Command;
|
|
||||||
import me.goudham.command.annotation.Option;
|
|
||||||
import net.dv8tion.jda.api.JDA;
|
import net.dv8tion.jda.api.JDA;
|
||||||
|
import net.dv8tion.jda.api.entities.Guild;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class Enso implements Bot {
|
public class Enso implements Bot {
|
||||||
private final JDA bot;
|
private final JDA bot;
|
||||||
private final BeanContext beanContext;
|
private final Guild guild;
|
||||||
|
private final CommandManager commandManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public Enso(JDA bot, BeanContext beanContext) {
|
public Enso(JDA bot, Guild guild, CommandManager commandManager) {
|
||||||
this.bot = bot;
|
this.bot = bot;
|
||||||
this.beanContext = beanContext;
|
this.guild = guild;
|
||||||
|
this.commandManager = commandManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startup() {
|
public void startup() {
|
||||||
System.out.println("pog");
|
commandManager.registerSlashCommands(guild);
|
||||||
Set<Class<?>> classes = collectConsumedAnnotatedClasses();
|
|
||||||
// CommandListUpdateAction commands = bot.updateCommands();
|
|
||||||
// CommandData commandData = new CommandData("", "");
|
|
||||||
// SubcommandGroupData subcommandGroupData = new SubcommandGroupData();
|
|
||||||
// SubcommandData subcommandData = new SubcommandData();
|
|
||||||
// OptionData optionData = new OptionData(OptionType.BOOLEAN, "", "");
|
|
||||||
// Guild guildById = bot.getGuildById(1234);
|
|
||||||
// guildById.upsertCommand()
|
|
||||||
// commands.addCommands(
|
|
||||||
// commandData
|
|
||||||
// );
|
|
||||||
}
|
|
||||||
|
|
||||||
private Set<Class<?>> collectConsumedAnnotatedClasses() {
|
|
||||||
Set<Class<?>> classes = new HashSet<>();
|
|
||||||
Collection<BeanDefinition<?>> definitions = beanContext.getBeanDefinitions(Qualifiers.byStereotype(Command.class));
|
|
||||||
definitions.forEach(definition -> {
|
|
||||||
AnnotationValue<Annotation> command = definition.getDeclaredAnnotation("me.goudham.command.annotation.Command");
|
|
||||||
Optional<String> name = command.stringValue("name");
|
|
||||||
|
|
||||||
if (command.contains("options")) {
|
|
||||||
List<AnnotationValue<Option>> optionAnnotations = command.getAnnotations("options", Option.class);
|
|
||||||
for (AnnotationValue<Option> optionAnnotationValue : optionAnnotations) {
|
|
||||||
// do option stuff
|
|
||||||
if (command.contains("choices")) {
|
|
||||||
List<AnnotationValue<Choice>> choiceAnnotations = optionAnnotationValue.getAnnotations("choices", Choice.class);
|
|
||||||
for (AnnotationValue<Choice> choiceAnnotationValue : choiceAnnotations) {
|
|
||||||
// do choice stuff
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return classes;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue