lib 1400185 import net.dv8tion.jda.core.*; import net.dv8tion.jda.core.entities.*; import net.dv8tion.jda.core.entities.Member; import net.dv8tion.jda.core.hooks.*; import net.dv8tion.jda.core.events.message.*; import net.dv8tion.jda.core.events.message.react.*; static JDA discordBot(final VF1 onMessage) { ret discordBot(new ListenerAdapter { @Override public void onMessageReceived(MessageReceivedEvent e) { if (e.getAuthor().isBot()) ret with print(" Msg from bot, skipping"); pcallF(onMessage, e); } }); } static JDA discordBot(ListenerAdapter listener, O... _) ctex { JDABuilder builder = new(AccountType.BOT); S token = stringPar token(_); if (empty(token)) { File tokenFile = javaxSecretDir("discord-bot-token"); token = assertNempty("Need: " + tokenFile, trim(loadTextFile(tokenFile))); } builder.setToken(token); builder.addEventListener(listener); JDA jda = builder.build(); //jda.awaitSatus(JDA.Status.CONNECTED); print("Started Discord bot (token: " + shorten(token, 7) + ")"); ret jda; }