From 8921407398eede45f3c578914a3b2f527e288ba6 Mon Sep 17 00:00:00 2001 From: Rosa Date: Tue, 12 May 2026 19:26:45 -0400 Subject: wow, bot --- .../eviltransgenders/bookmark/BookmarksBot.java | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/java/club/eviltransgenders/bookmark/BookmarksBot.java (limited to 'src/main/java') 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(); + } + } +} -- cgit v1.3.1