Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main {
- final static Logger logger = LoggerFactory.getLogger(Main.class);
- public static void main(String[] args) throws UnknownHostException {
- System.out.println("Starting Program...");
- Runtime.getRuntime().addShutdownHook(new Thread() {
- @Override
- public void run() {
- logger.info(">>> Running Shutdown Process <<<");
- Globals.saveFiles();
- }
- });
- String token;
- // you need to set a token in Token/Token.txt for the bot to run
- try {
- Discord4J.disableAudio();
- FileHandler.createDirectory(Constants.DIRECTORY_STORAGE);
- FileHandler.createDirectory(Constants.DIRECTORY_GLOBAL_IMAGES);
- FileHandler.createDirectory(Constants.DIRECTORY_BACKUPS);
- FileHandler.createDirectory(Constants.DIRECTORY_TEMP);
- if (!Files.exists(Paths.get(Constants.FILE_CONFIG))) {
- FileHandler.writeToJson(Constants.FILE_CONFIG, new Config());
- }
- //load config phase 1
- Config config = (Config) FileHandler.readFromJson(Constants.FILE_CONFIG, Config.class);
- config.initObject();
- FileHandler.writeToJson(Constants.FILE_CONFIG, config);
- //getting bot token
- try {
- token = FileHandler.readFromFile(Constants.FILE_TOKEN).get(0);
- }catch (IndexOutOfBoundsException e) {
- logger.error(Constants.ERROR_INVALID_TOKEN);
- return;
- }
- if (token == null) {
- logger.error(Constants.ERROR_INVALID_TOKEN);
- return;
- }
- IDiscordClient client = Client.getClient(token, false);
- //load config phase 2
- Globals.initConfig(client, config);
- //login + register listener.
- EventDispatcher dispatcher = client.getDispatcher();
- dispatcher.registerListener(new AnnotationListener());
- client.login(); //<--- bot logs in here.
- logger.info(client.getGuilds().size() + "");
- //timed events init
- new TimedEvents();
- while (!client.isReady()); //<--- bot stalls here.
- //makes sure that nothing in the config file will cause an error
- Globals.validateConfig();
- Globals.setVersion();
- } catch (DiscordException ex) {
- logger.error(ex.getErrorMessage());
- } catch (RateLimitException e) {
- e.printStackTrace();
- }
- }
- }
- public class Client {
- final static Logger logger = LoggerFactory.getLogger(Client.class);
- public static IDiscordClient getClient(String token,boolean login) throws DiscordException {
- ClientBuilder clientBuilder = new ClientBuilder();
- clientBuilder.withToken(token);
- clientBuilder.setMaxReconnectAttempts(4000);
- if(login){
- logger.info("Logging in to Discord");
- return clientBuilder.login();
- }else{
- return clientBuilder.build();
- }
- }
- }
- @EventSubscriber
- public void onReadyEvent(ReadyEvent event) {
- logger.info("yes i am firing, my userId is" + Globals.client.getOurUser().getID());
- Globals.isReady = true;
- event.getClient().changePlayingText(Globals.playing);
- Utility.updateUsername(Globals.botName);
- }
- //Console output.
- Starting Program...
- 22:27:54.896 [main] INFO org.eclipse.jetty.util.log - Logging initialized @551ms to org.eclipse.jetty.util.log.Slf4jLog
- 22:27:54.916 [main] INFO sx.blah.discord.Discord4J - Discord4J v2.7.1-SNAPSHOT (c9234bb0fdad505dfab5c95bd0384c136f379189-c9234bb) (https://github.com/austinv11/Discord4J)
- 22:27:54.918 [main] INFO sx.blah.discord.Discord4J - A Java binding for the official Discord API, forked from the inactive https://github.com/nerd/Discord4J. Copyright (c) 2017, Licensed under GNU LGPLv3
- 22:27:54.919 [main] INFO sx.blah.discord.Discord4J - Disabled audio.
- 22:27:55.558 [main] INFO Main.Globals - 7 Commands Loaded.
- 22:27:56.210 [main] INFO Main.Main - 0
- //TraceLog
- Starting Program...
- 22:33:49.591 [main] INFO org.eclipse.jetty.util.log - Logging initialized @415ms to org.eclipse.jetty.util.log.Slf4jLog
- 22:33:49.596 [main] INFO sx.blah.discord.Discord4J - Discord4J v2.7.1-SNAPSHOT (c9234bb0fdad505dfab5c95bd0384c136f379189-c9234bb) (https://github.com/austinv11/Discord4J)
- 22:33:49.596 [main] INFO sx.blah.discord.Discord4J - A Java binding for the official Discord API, forked from the inactive https://github.com/nerd/Discord4J. Copyright (c) 2017, Licensed under GNU LGPLv3
- 22:33:49.596 [main] INFO sx.blah.discord.Discord4J - Disabled audio.
- 22:33:50.140 [main] INFO Main.Globals - 7 Commands Loaded.
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onReadyEvent(sx.blah.discord.handle.impl.events.ReadyEvent)
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onMentionEvent(sx.blah.discord.handle.impl.events.guild.channel.message.MentionEvent)
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onChannelUpdateEvent(sx.blah.discord.handle.impl.events.guild.channel.ChannelUpdateEvent)
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onReactionAddEvent(sx.blah.discord.handle.impl.events.guild.channel.message.reaction.ReactionAddEvent)
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onRoleUpdateEvent(sx.blah.discord.handle.impl.events.guild.role.RoleUpdateEvent)
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onMessageDeleteEvent(sx.blah.discord.handle.impl.events.guild.channel.message.MessageDeleteEvent)
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onGuildCreateEvent(sx.blah.discord.handle.impl.events.guild.GuildCreateEvent)
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onMessageRecivedEvent(sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent)
- 22:33:50.159 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onGuildLeaveEvent(sx.blah.discord.handle.impl.events.guild.GuildLeaveEvent)
- 22:33:50.160 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onRoleDeleteEvent(sx.blah.discord.handle.impl.events.guild.role.RoleDeleteEvent)
- 22:33:50.160 [main] TRACE sx.blah.discord.Discord4J - Registered public void Listeners.AnnotationListener.onChannelDeleteEvent(sx.blah.discord.handle.impl.events.guild.channel.ChannelDeleteEvent)
- 22:33:50.792 [main] DEBUG sx.blah.discord.Discord4J - Obtained gateway wss://gateway.discord.gg?encoding=json&v=5.
- 22:33:50.798 [DiscordClientImpl Keep Alive] TRACE sx.blah.discord.Discord4J - DiscordClientImpl Keep Alive
- 22:33:50.799 [main] INFO Main.Main - 0
- 22:33:50.802 [RequestBuilder Async Executor] TRACE sx.blah.discord.Discord4J - Shard logging in.
- 22:34:00.798 [DiscordClientImpl Keep Alive] TRACE sx.blah.discord.Discord4J - DiscordClientImpl Keep Alive
Advertisement
Add Comment
Please, Sign In to add comment