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) ctex { JDABuilder builder = new(AccountType.BOT); File tokenFile = javaxSecretDir("discord-bot-token"); builder.setToken(assertNempty("Need: " + tokenFile, trim(loadTextFile(tokenFile)))); builder.addEventListener(listener); ret builder.build(); }