package net.tomatentum.tomatenmusic3; import org.javacord.api.DiscordApi; import org.javacord.api.DiscordApiBuilder; import org.javacord.api.entity.intent.Intent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.core.JsonFactory; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.LoggerContext; import io.github.cdimascio.dotenv.Dotenv; import net.tomatentum.marinara.Marinara; import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper; import net.tomatentum.tomatenmusic3.command.PingCommand; public class App { public static void main(String[] args) { new App().connect(); } private JsonFactory jsonFactory; private Config config; private DiscordApi client; private Logger logger = LoggerFactory.getLogger(getClass()); private Marinara marinara; private App() { this.jsonFactory = JsonFactory.builder().build(); Dotenv env = Dotenv.configure().ignoreIfMissing().load(); this.config = new Config(env); LoggerContext loggerctx = (LoggerContext) LoggerFactory.getILoggerFactory(); if (config.isDevelopment()) loggerctx.getLogger("root").setLevel(Level.DEBUG); } public void connect() { client = new DiscordApiBuilder() .setToken(config.token()) .addIntents(Intent.GUILD_VOICE_STATES) .login().join(); initMarinara(); logger.info("connected as {}", client.getYourself().getName()); } private void initMarinara() { this.marinara = Marinara.load(new JavacordWrapper(client)); marinara.getRegistry().addInteractions(new PingCommand()); marinara.getRegistry().registerCommands(); } }