ifndef DifferentJDA lib 1400315 // JDA 4.0 with opus //static LS _stickyLibs_discordBot = ll(#1400315); // can cause loader constraint violations endifndef import net.dv8tion.jda.api.*; import net.dv8tion.jda.api.entities.*; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.hooks.*; import net.dv8tion.jda.api.events.message.*; import net.dv8tion.jda.api.events.message.react.*; static JDA discordBot40(VF1 onMessage) { ret discordBot40(new ListenerAdapter { @Override public void onMessageReceived(MessageReceivedEvent e) { if (e.getAuthor().isBot()) ret with print(" Msg from bot, skipping"); pcallF(onMessage, e); } }); } static JDA discordBot40(ListenerAdapter listener, O... _) ctex { print("Making JDABuilder"); JDABuilder builder = new(AccountType.BOT); print("Have JDABuilder"); S token = stringPar token(_); if (empty(token)) { File tokenFile = javaxSecretDir("discord-bot-token"); token = assertNempty("Need: " + tokenFile, trim(loadTextFile(tokenFile))); } builder.setToken(token); builder.addEventListeners(listener); print("Building JDA with token " + shorten(10, token)); JDA jda = builder.build(); print("Got JDA: " + jda); //jda.awaitSatus(JDA.Status.CONNECTED); jda.awaitReady(); print("Started Discord bot (token: " + shorten(token, 7) + ")"); ret jda; }