Skip to content

Commit

Permalink
feat: já nem sei mais oq eu to fazendo
Browse files Browse the repository at this point in the history
  • Loading branch information
yaansz committed Aug 27, 2024
1 parent 9bb0780 commit b0596cb
Show file tree
Hide file tree
Showing 19 changed files with 311 additions and 73 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/softawii/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static void main(String[] args) throws InterruptedException, NoSuchMethod
JDABuilder builder = JDABuilder.createDefault(token);
JDA JDA = builder.build();

boolean reset = true;
boolean reset = false;
CurupiraBoot curupira = new CurupiraBoot(JDA, context, reset, pkg);

JDA.awaitReady();
Expand Down
29 changes: 21 additions & 8 deletions src/main/java/com/softawii/curupira/example/controller/Foo.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
package com.softawii.curupira.example.controller;

import com.softawii.curupira.v2.annotations.*;
import com.softawii.curupira.v2.annotations.commands.DiscordAutoComplete;
import com.softawii.curupira.v2.annotations.commands.DiscordChoice;
import com.softawii.curupira.v2.annotations.commands.DiscordCommand;
import com.softawii.curupira.v2.annotations.commands.DiscordParameter;
import com.softawii.curupira.v2.annotations.interactions.DiscordMenu;
import com.softawii.curupira.v2.api.TextLocaleResponse;
import com.softawii.curupira.v2.localization.LocalizationManager;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.entities.channel.concrete.ForumChannel;
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
import net.dv8tion.jda.api.interactions.AutoCompleteQuery;
import net.dv8tion.jda.api.interactions.DiscordLocale;
import net.dv8tion.jda.api.interactions.commands.Command;
import net.dv8tion.jda.api.interactions.components.ActionRow;
import net.dv8tion.jda.api.interactions.components.LayoutComponent;
import net.dv8tion.jda.api.interactions.components.buttons.Button;
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu;
import net.dv8tion.jda.api.interactions.components.text.TextInput;
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
import net.dv8tion.jda.api.interactions.modals.Modal;
import net.dv8tion.jda.api.utils.messages.MessagePollData;

@DiscordController(value = "bar", description = "foo foo foo", parent = "foo", permissions = {Permission.ADMINISTRATOR},
Expand All @@ -39,8 +42,14 @@ public LayoutComponent baz(SlashCommandInteractionEvent event,
return ActionRow.of(build);
}

@DiscordMenu(name = "select-menu")
public void selectMenu(StringSelectInteractionEvent event) {
String selections = event.getSelectedOptions().stream().map(option -> option.getLabel()).reduce((a, b) -> a + ", " + b).orElse("none");
event.reply("You selected: " + selections).setEphemeral(true).queue();
}

@DiscordCommand(name = "qux", description = "qux qux qux")
public MessagePollData qux(JDA jda,
public Modal qux(JDA jda,
LocalizationManager localization,
@RequestInfo Member member,
@LocaleType DiscordLocale locale,
Expand All @@ -50,7 +59,11 @@ public MessagePollData qux(JDA jda,
String titleMessage = localization.getLocalizedString("foo.bar.qux.embed.title", locale, title, member.getNickname());
String descriptionMessage = localization.getLocalizedString("foo.bar.qux.embed.description", locale, member.getEffectiveName(), jda.getSelfUser().getEffectiveName());

return MessagePollData.builder(titleMessage).addAnswer("yes").addAnswer("no").build();
return Modal.create("modal-test", "Modal Test")
.addComponents(
ActionRow.of(TextInput.create("text-input", "Text Input", TextInputStyle.SHORT).build()),
ActionRow.of(TextInput.create("text-input-2", "Text Input 2", TextInputStyle.PARAGRAPH).build())
).build();
}

@DiscordCommand(name = "charlie", description = "charlie charlie charlie")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.softawii.curupira.v2.annotations;
package com.softawii.curupira.v2.annotations.commands;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.softawii.curupira.v2.annotations;
package com.softawii.curupira.v2.annotations.commands;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.softawii.curupira.v2.annotations;
package com.softawii.curupira.v2.annotations.commands;

import com.softawii.curupira.v2.enums.DiscordEnvironment;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.interactions.commands.Command;

import java.lang.annotation.ElementType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.softawii.curupira.v2.annotations;
package com.softawii.curupira.v2.annotations.commands;

import net.dv8tion.jda.api.interactions.commands.OptionType;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.softawii.curupira.v2.annotations.interactions;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DiscordButton {
String name();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.softawii.curupira.v2.annotations.interactions;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DiscordMenu {
String name();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.softawii.curupira.v2.annotations.interactions;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DiscordModal {
String name();
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.softawii.curupira.v2.core.exception;
package com.softawii.curupira.v2.api.exception;

public class CommandNotFoundException extends RuntimeException {
public CommandNotFoundException(String message) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.softawii.curupira.v2.core.exception;
package com.softawii.curupira.v2.api.exception;

public class MissingPermissionsException extends RuntimeException {
}
23 changes: 10 additions & 13 deletions src/main/java/com/softawii/curupira/v2/core/CurupiraBoot.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package com.softawii.curupira.v2.core;

import com.softawii.curupira.v2.core.command.CommandMapper;
import com.softawii.curupira.v2.core.exception.ExceptionMapper;
import com.softawii.curupira.v2.integration.ContextProvider;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.events.interaction.GenericInteractionCreateEvent;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.events.interaction.command.*;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
Expand All @@ -22,7 +19,7 @@ public class CurupiraBoot extends ListenerAdapter {
private final JDA jda;

private final ExceptionMapper exceptionMapper;
private final CommandMapper mapper;
private final InteractionMapper mapper;

public CurupiraBoot(@NotNull JDA jda, @NotNull ContextProvider context, boolean registerCommandsToDiscord, String ... packages) {
this.logger = LoggerFactory.getLogger(CurupiraBoot.class);
Expand All @@ -37,7 +34,7 @@ public CurupiraBoot(@NotNull JDA jda, @NotNull ContextProvider context, boolean
}

this.exceptionMapper = new ExceptionMapper(context, packages);
this.mapper = new CommandMapper(jda, context, exceptionMapper, registerCommandsToDiscord, packages);
this.mapper = new InteractionMapper(jda, context, exceptionMapper, registerCommandsToDiscord, packages);

this.jda.addEventListener(this);
this.logger.info("Curupira is ready!");
Expand All @@ -51,26 +48,26 @@ public void onGenericCommandInteraction(@NotNull GenericCommandInteractionEvent

@Override
public void onModalInteraction(@NotNull ModalInteractionEvent event) {
// TODO: implement
super.onModalInteraction(event);
this.logger.debug("Modal interaction received. Event: {}", event);
this.mapper.onGenericInteractionCreateEvent(event.getModalId(), event);
}

@Override
public void onButtonInteraction(@NotNull ButtonInteractionEvent event) {
// TODO: implement
super.onButtonInteraction(event);
this.logger.debug("Button interaction received. Event: {}", event);
this.mapper.onGenericInteractionCreateEvent(event.getComponentId(), event);
}

@Override
public void onStringSelectInteraction(@NotNull StringSelectInteractionEvent event) {
// TODO: implement
super.onStringSelectInteraction(event);
this.logger.debug("String select interaction received. Event: {}", event);
this.mapper.onGenericInteractionCreateEvent(event.getComponentId(), event);
}

@Override
public void onEntitySelectInteraction(@NotNull EntitySelectInteractionEvent event) {
// TODO: implement
super.onEntitySelectInteraction(event);
this.logger.debug("Entity select interaction received. Event: {}", event);
this.mapper.onGenericInteractionCreateEvent(event.getComponentId(), event);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
package com.softawii.curupira.v2.core.exception;
package com.softawii.curupira.v2.core;


import com.softawii.curupira.v2.annotations.DiscordController;
import com.softawii.curupira.v2.annotations.DiscordException;
import com.softawii.curupira.v2.annotations.DiscordExceptions;
import com.softawii.curupira.v2.core.handler.ExceptionHandler;
import com.softawii.curupira.v2.integration.ContextProvider;
import com.softawii.curupira.v2.localization.LocalizationManager;
import com.softawii.curupira.v2.utils.ScanUtils;
import net.dv8tion.jda.api.interactions.Interaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
Expand Down
Loading

0 comments on commit b0596cb

Please sign in to comment.