summaryrefslogtreecommitdiff
path: root/src/main/java/club/eviltransgenders/bookmark
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/club/eviltransgenders/bookmark')
-rw-r--r--src/main/java/club/eviltransgenders/bookmark/BookmarksBot.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/main/java/club/eviltransgenders/bookmark/BookmarksBot.java b/src/main/java/club/eviltransgenders/bookmark/BookmarksBot.java
new file mode 100644
index 0000000..f5e7ca9
--- /dev/null
+++ b/src/main/java/club/eviltransgenders/bookmark/BookmarksBot.java
@@ -0,0 +1,71 @@
+package club.eviltransgenders.bookmark;
+
+import net.dv8tion.jda.api.EmbedBuilder;
+import net.dv8tion.jda.api.entities.Message;
+import net.dv8tion.jda.api.events.interaction.command.MessageContextInteractionEvent;
+import net.dv8tion.jda.api.events.session.ReadyEvent;
+import net.dv8tion.jda.api.hooks.ListenerAdapter;
+import net.dv8tion.jda.api.interactions.commands.build.Commands;
+import net.dv8tion.jda.api.interactions.commands.Command;
+import net.dv8tion.jda.api.interactions.commands.Command.Type;
+import net.dv8tion.jda.api.interactions.IntegrationType;
+import net.dv8tion.jda.api.interactions.InteractionContextType;
+import net.dv8tion.jda.api.JDABuilder;
+import net.dv8tion.jda.api.requests.GatewayIntent;
+import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public final class BookmarksBot extends ListenerAdapter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(BookmarksBot.class);
+ public static void main(String[] args) throws InterruptedException {
+ LOGGER.info("Starting bookmarks bot...");
+ String token = System.getenv("DISCORD_TOKEN");
+ if (token == null) {
+ LOGGER.error("Token not provided in environment (set DISCORD_TOKEN)");
+ return;
+ }
+
+ JDABuilder.createLight(token, GatewayIntent.MESSAGE_CONTENT)
+ .addEventListeners(new BookmarksBot())
+ .build()
+ .awaitShutdown();
+ }
+
+ @Override
+ public void onReady(ReadyEvent event) {
+ // Register commands
+ event.getJDA().retrieveCommands().queue(list -> {
+ for (Command cmd : list) {
+ if (cmd.getName().equals("Bookmark Message")) {
+ LOGGER.info("bookmark message already registered");
+ return;
+ }
+ }
+
+ event.getJDA()
+ .updateCommands()
+ .addCommands(Commands.context(Type.MESSAGE, "Bookmark Message")
+ .setIntegrationTypes(IntegrationType.USER_INSTALL))
+ .queue(blah -> LOGGER.info("Registered context menu command!"));
+ });
+ }
+
+ @Override
+ public void onMessageContextInteraction(MessageContextInteractionEvent event) {
+ if (event.getName().equals("Bookmark Message")) {
+ event.getUser().openPrivateChannel().queue(channel -> {
+ Message target = event.getTarget();
+ channel.sendMessage(new MessageCreateBuilder().setContent(target.getJumpUrl())
+ .setEmbeds(new EmbedBuilder()
+ .setAuthor(target.getAuthor().getName(), null, target.getAuthor().getAvatarUrl())
+ .setDescription(target.getContentRaw())
+ .build()
+ ).build()).queue();
+ });
+
+ event.reply("Message bookmarked!").setEphemeral(true).queue();
+ }
+ }
+}