diff options
| author | Pinapelz <donaldshan1@outlook.com> | 2023-04-13 14:27:33 -0700 |
|---|---|---|
| committer | Pinapelz <donaldshan1@outlook.com> | 2023-04-13 14:27:33 -0700 |
| commit | c96487a2562c841f9f9f890864727575e35b2243 (patch) | |
| tree | 11d39001b1b99aa706f05973c5b5642946edc71d /src/main/java/commands | |
Initial Commit
Diffstat (limited to 'src/main/java/commands')
| -rw-r--r-- | src/main/java/commands/CommandManager.java | 52 | ||||
| -rw-r--r-- | src/main/java/commands/StatusHandler.java | 22 |
2 files changed, 74 insertions, 0 deletions
diff --git a/src/main/java/commands/CommandManager.java b/src/main/java/commands/CommandManager.java new file mode 100644 index 0000000..e374b21 --- /dev/null +++ b/src/main/java/commands/CommandManager.java @@ -0,0 +1,52 @@ +package commands; + +import builders.ScheduleMessageBuilder; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import vtuber.ScheduleHandler; + +import java.util.ArrayList; + +public class CommandManager extends ListenerAdapter { + ScheduleHandler scheduleHandler; + ScheduleMessageBuilder scb; + public CommandManager(String holodexAPIKey) { + scheduleHandler = new ScheduleHandler(holodexAPIKey); + scb = new ScheduleMessageBuilder(); + System.out.println("CommandManager initialized"); + } + @Override + public void onSlashCommand(SlashCommandEvent e) { + String command = e.getName(); + switch (command) { + case "schedule": + String organization = e.getOption("organization").getAsString(); + organization = organization.replaceAll(" ", "%20"); + MessageEmbed scheduleMessage = scb.buildLiveAndUpcomingMessage(scheduleHandler.getSchedule(organization, 10)); + e.deferReply().queue(); + e.getHook().sendMessageEmbeds(scheduleMessage).queue(); + break; + default: + e.reply("Unknown command received").queue(); + break; + } + } + + public ArrayList<MessageEmbed> updateUpcomingChannel(String name, String type){ + ArrayList<MessageEmbed> messageEmbeds = new ArrayList<>(); + switch (type) { + case "org": + messageEmbeds = scb.getUpcomingLiveListMessages(scheduleHandler.getSchedule(name)); + break; + case "channel": + messageEmbeds = scb.getUpcomingLiveListMessages(scheduleHandler.getScheduleChannelId(name)); + break; + default: + System.out.println("Unknown type"); + break; + } + return messageEmbeds; + } + +} diff --git a/src/main/java/commands/StatusHandler.java b/src/main/java/commands/StatusHandler.java new file mode 100644 index 0000000..ff48632 --- /dev/null +++ b/src/main/java/commands/StatusHandler.java @@ -0,0 +1,22 @@ +package commands; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.interactions.commands.OptionType; +import net.dv8tion.jda.api.interactions.commands.build.CommandData; + +public class StatusHandler { + JDA jda; + public StatusHandler(JDA jda) { + this.jda = jda; + + } + public void updateSlashCommands(){ + jda.upsertCommand(new CommandData("schedule", "Shows upcoming streams and events for a given organization") + .addOption(OptionType.STRING, "organization", + "Holodex Organization Name (e.g Hololive, Nijisanji, Phase Connect, PRISM, Production Kawaii)", + true)) + .queue(); + + } + + +} |
