Advertisement
Guest User

NullPointerException on line 33

a guest
Sep 18th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.42 KB | None | 0 0
  1. package votrix.Discord.commands.Miscellaneous;
  2.  
  3. import com.mongodb.BasicDBObject;
  4. import com.mongodb.client.MongoCollection;
  5. import net.dv8tion.jda.core.EmbedBuilder;
  6. import net.dv8tion.jda.core.entities.Message;
  7. import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
  8. import net.dv8tion.jda.core.hooks.ListenerAdapter;
  9. import org.bson.Document;
  10. import votrix.Discord.listeners.SuggestionReactAdd;
  11. import votrix.Discord.utils.Data;
  12. import votrix.Discord.utils.Database;
  13. import votrix.Discord.utils.Webhooks;
  14.  
  15. import java.awt.*;
  16. import java.io.IOException;
  17. import java.time.Instant;
  18. import java.util.Arrays;
  19. import java.util.List;
  20. import java.util.Random;
  21. import java.util.concurrent.TimeUnit;
  22. import java.util.stream.Collectors;
  23.  
  24. import static com.mongodb.client.model.Filters.eq;
  25.  
  26. public class Suggest extends ListenerAdapter {
  27.     Database db = new Database();
  28.     Integer id;
  29.  
  30.     public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
  31.         db.connect();
  32.         MongoCollection<Document> suggestions = db.getCollection("Suggestions");
  33.         id = suggestions.find().sort(eq("suggestionID", -1)).limit(1).first().getInteger("suggestionID");
  34.         db.close();
  35.         String[] args = event.getMessage().getContentRaw().split("\\s+");
  36.         Data data = new Data();
  37.         EmbedBuilder eb = new EmbedBuilder();
  38.         String[] images = {"TODO add links for random image selection"};
  39.         if (args[0].equalsIgnoreCase(data.getPrefix() + "suggest") || args[0].equalsIgnoreCase(data.getPrefix() + "suggestion")) {
  40.             event.getMessage().delete().queue();
  41.             if (args.length < 2) {
  42.                 Random rand = new Random();
  43.                 int image = rand.nextInt(images.length);
  44.                 eb.setDescription("I can't read your mind reeeeeeeeeeeee");
  45.                 eb.setColor(new Color(data.getColor()));
  46.                 eb.setImage(images[image]);
  47.                 eb.setFooter("Votrix Suggestions", data.getSelfAvatar(event));
  48.  
  49.                 event.getChannel().sendMessage(eb.build()).queue((message) -> {
  50.                     message.delete().queueAfter(30, TimeUnit.SECONDS);
  51.                     eb.clear();
  52.                 });
  53.             } else if (args.length > 1) {
  54.                 try {
  55.                     String sug = Arrays.stream(args).skip(1).collect(Collectors.joining(" "));
  56.                     Webhooks webhook = new Webhooks(System.getenv("VOTRIXSUGGESTIONWEBHOOK"));
  57.                     webhook.setAvatarUrl(event.getMember().getUser().getEffectiveAvatarUrl());
  58.                     webhook.setUsername(event.getMember().getUser().getName());
  59.                     webhook.addEmbed(new Webhooks.EmbedObject()
  60.                         .setTitle("New Suggestion | " + id)
  61.                         .setColor(new Color(data.getColor()))
  62.                         .setDescription(sug)
  63.                     );
  64.                     webhook.execute();
  65.                     new java.util.Timer().schedule(
  66.                         new java.util.TimerTask() {
  67.                             @Override
  68.                             public void run() {
  69.                                 addSuggestion(event, eb, sug, SuggestionReactAdd.messageID);
  70.                             }
  71.                         },
  72.                         250
  73.                     );
  74.  
  75.                     eb.setDescription(":white_check_mark: Successfully sent the suggestion");
  76.                     eb.setColor(new Color(data.getColor()));
  77.                     eb.setTimestamp(Instant.now());
  78.                     eb.setFooter("Votrix Suggestions", data.getSelfAvatar(event));
  79.  
  80.                     event.getChannel().sendMessage(eb.build()).queue((message) -> {
  81.                         message.delete().queueAfter(15, TimeUnit.SECONDS);
  82.                         eb.clear();
  83.                     });
  84.                 } catch (IOException ex) {
  85.                     event.getChannel().sendMessage("Well shit there was an error with this command tell " + event.getGuild().getMemberById("79693184417931264").getAsMention() + " he retarded").queue();
  86.                     ex.printStackTrace();
  87.                 }
  88.             }
  89.         }
  90.     }
  91.  
  92.     public void addSuggestion(GuildMessageReceivedEvent event, EmbedBuilder eb, String suggestion, String messageID) {
  93.         db.connect();
  94.         MongoCollection suggestions = db.getCollection("Suggestions");
  95.         Document doc = new Document(id.toString(), new BasicDBObject().append("messageID", messageID).append("finished", false).append("author", event.getAuthor().getAsTag()).append("suggestion", suggestion).append("suggestionID", id));
  96.         suggestions.insertOne(doc);
  97.         db.close();
  98.  
  99.         event.getChannel().sendMessage(eb.build()).queue((message) -> {
  100.             message.delete().queueAfter(20, TimeUnit.SECONDS);
  101.             eb.clear();
  102.         });
  103.     }
  104.  
  105.     public String getName() {
  106.         return "Suggest";
  107.     }
  108.  
  109.     public String getDescription() {
  110.         return "Make a suggestion for a feature to be added to the server and or bot.";
  111.     }
  112.  
  113.     public String getShortDescription() {
  114.         return "Make a suggestion";
  115.     }
  116.  
  117.     public String getRequiredRoles() {
  118.         return "Everyone";
  119.     }
  120.  
  121.     public String getCommandSyntax() {
  122.         return "```\n" + Data.getPrefix() + "suggest {suggestion in as much detail as you can give}\n```";
  123.     }
  124.  
  125.     public boolean isDisabled() {
  126.         return false;
  127.     }
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement