HidekoBot/src/main/java/wtf/beatrice/hidekobot/HidekoBot.java

72 lines
2.4 KiB
Java
Raw Normal View History

package wtf.beatrice.hidekobot;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
2022-08-25 22:18:36 +02:00
import net.dv8tion.jda.api.entities.Activity;
2022-08-25 23:20:51 +02:00
import net.dv8tion.jda.api.requests.GatewayIntent;
import wtf.beatrice.hidekobot.listeners.MessageListener;
2022-08-25 22:13:39 +02:00
import wtf.beatrice.hidekobot.utils.Logger;
import javax.security.auth.login.LoginException;
public class HidekoBot
{
2022-08-25 22:20:05 +02:00
private static String botToken;
private static String standardInviteLink = "https://discord.com/oauth2/authorize?client_id=%userid%&scope=bot&permissions=8";
private static String botUserId;
2022-08-25 22:59:47 +02:00
private static final String version = "0.0.1"; // we should probably find a way to make this consistent with Maven
2022-08-25 22:59:47 +02:00
// create a logger instance for ease of use
private static final Logger logger = new Logger(HidekoBot.class);
2022-08-25 22:54:08 +02:00
public static void main(String[] args)
{
2022-08-25 22:20:05 +02:00
// check if bot token was specified as a startup argument
if(args.length < 1)
{
logger.log("Please specify your bot token!");
return;
}
botToken = args[0];
2022-08-25 22:18:36 +02:00
JDABuilder jdaBuilder;
JDA jda;
try
{
2022-08-25 22:37:32 +02:00
// try to create the bot object and authenticate it with discord.
2022-08-25 22:20:05 +02:00
jdaBuilder = JDABuilder.createDefault(botToken);
2022-08-25 22:18:36 +02:00
jdaBuilder.setActivity(Activity.playing("the piano"));
2022-08-25 23:20:51 +02:00
jdaBuilder.enableIntents(GatewayIntent.MESSAGE_CONTENT,
GatewayIntent.DIRECT_MESSAGES,
GatewayIntent.GUILD_MESSAGES);
jda = jdaBuilder.build().awaitReady();
} catch (LoginException | InterruptedException e)
{
2022-08-25 22:37:32 +02:00
logger.log(e.getMessage()); // print the error message, omit the stack trace.
return; // if we failed connecting and authenticating, then quit.
}
2022-08-25 22:37:32 +02:00
// find the bot's user id and generate an invite-link.
botUserId = jda.getSelfUser().getId();
standardInviteLink = standardInviteLink.replace("%userid%", botUserId);
2022-08-25 22:54:08 +02:00
// print the bot logo.
logger.log("Ready!\n\n" + logger.getLogo() + "\nv" + version + " - bot is ready!\n", 2);
2022-08-25 22:37:32 +02:00
// log the invite-link to console so noob users can just click on it.
logger.log("Bot User ID: " + botUserId, 4);
2022-08-25 22:43:04 +02:00
logger.log("Invite Link: " + standardInviteLink, 5);
2022-08-25 23:20:51 +02:00
// register listeners
jda.addEventListener(new MessageListener());
}
2022-08-25 22:13:39 +02:00
}