Advertisement
Guest User

Untitled

a guest
Feb 24th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.30 KB | None | 0 0
  1. package me.billysucks.workerbot.event;
  2.  
  3. import me.billysucks.workerbot.WorkerBot;
  4. import me.billysucks.workerbot.misc.BuyStuff;
  5. import me.billysucks.workerbot.misc.Workers;
  6. import me.billysucks.workerbot.util.MySQL;
  7. import net.dv8tion.jda.core.EmbedBuilder;
  8. import net.dv8tion.jda.core.entities.*;
  9. import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
  10. import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent;
  11. import net.dv8tion.jda.core.hooks.ListenerAdapter;
  12. import org.w3c.dom.Text;
  13.  
  14. import java.util.HashMap;
  15. import java.util.List;
  16. import java.util.StringJoiner;
  17.  
  18. public class MessageResponder extends ListenerAdapter {
  19.  
  20.     private WorkerBot workerBot;
  21.     public MessageResponder(WorkerBot workerBot){
  22.         this.workerBot = workerBot;
  23.     }
  24.  
  25.     public void onMessageReceived(MessageReceivedEvent event) {
  26.         String message = event.getMessage().getContent();
  27.  
  28.         if (message.startsWith("]setchannel")) {
  29.             workerBot.getCommandHandler().SetChannel(event.getTextChannel(),event.getGuild().getId(),event.getAuthor());
  30.         }
  31.  
  32.         //---------------------------------------------------------------------\\
  33.  
  34.         if(message.startsWith("]unsetchannel")){
  35.             workerBot.getCommandHandler().UnSetChannel(event.getTextChannel(),event.getGuild().getId(), event.getAuthor());
  36.         }
  37.  
  38.         if (getDefaultChannel(event.getGuild().getId()) == null || event.getTextChannel().toString().equals(getDefaultChannel(event.getGuild().getId()))) {
  39.             if (!event.getAuthor().isBot()) {
  40.                 if(message.startsWith("]help")){
  41.                     String[] messageArr = message.split(" ");
  42.                         User user = event.getAuthor();
  43.                         if (!user.hasPrivateChannel()) {
  44.                             user.openPrivateChannel().queue(channel -> {
  45.                                 if (messageArr.length>1){
  46.                                     workerBot.getCommandHandler().Help(channel, messageArr[1]);
  47.                                 }else {
  48.                                     workerBot.getCommandHandler().Help(channel, null);
  49.                                 }
  50.                             });
  51.                     }
  52.                 }
  53.  
  54.                 //---------------------------------------------------------------------\\
  55.  
  56.                 if (message.startsWith("]cash")){
  57.                     ShowBalance(event.getTextChannel(),event.getAuthor());
  58.                 }
  59.  
  60.                 //---------------------------------------------------------------------\\
  61.  
  62.                 if (message.startsWith("]workers")){
  63.                     ShowWorkers(event.getTextChannel(),event.getAuthor());
  64.                 }
  65.  
  66.                 //---------------------------------------------------------------------\\
  67.  
  68.                 if (message.startsWith("]buy")) {
  69.                     String[] messageArr = message.split(" ");
  70.                     if (messageArr.length>1) {
  71.                         if (messageArr[1].equalsIgnoreCase("worker")) {
  72.                             if (messageArr.length > 2) {
  73.                                 if (messageArr[2] != null) {
  74.                                     try {
  75.                                         int num = Integer.parseInt(messageArr[2]);
  76.                                     String user_id = event.getMessage().getAuthor().getId();
  77.  
  78.                                     double userCash = workerBot.getUserInteraction().getUserCash(user_id);
  79.                                     int userWorkers = workerBot.getUserInteraction().getUserBasicWorkers(user_id);
  80.  
  81.                                     double totalCost = 0;
  82.                                     double currentCost = 100 + (userWorkers * 10);
  83.                                     if (num>0) {
  84.                                         for (int i = 0; i < num; i++) {
  85.                                             totalCost += currentCost;
  86.                                             currentCost += 10;
  87.                                         }
  88.                                         User user = event.getAuthor();
  89.  
  90.                                         Message msg = event.getTextChannel().sendMessage(user.getAsMention() + "\nThis amount of workers will cost: $" + totalCost + "\nAre you sure you want to buy this amount of workers?").complete();
  91.  
  92.                                         TextChannel channel = event.getTextChannel();
  93.  
  94.                                         Message orgMessage = event.getMessage();
  95.  
  96.                                         Emote tick = WorkerBot.getDiscord().getEmoteById("374332134837452803");
  97.                                         Emote cross = WorkerBot.getDiscord().getEmoteById("374337406071209990");
  98.  
  99.                                         msg.addReaction(tick).queue();
  100.                                         msg.addReaction(cross).queue();
  101.  
  102.                                         BuyStuff buyStuff = new BuyStuff(user_id, user, orgMessage, msg, totalCost, userCash, channel, num);
  103.                                         WorkerBot.BuyStuffList.add(buyStuff);
  104.  
  105.                                     }else
  106.                                         event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\nYou cannot enter this number!").queue();
  107.                                 }catch (NumberFormatException e){
  108.                                     System.out.println(e);
  109.                                     event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\nYou cannot enter this number!").queue();
  110.                                 }
  111.                                 }
  112.                             }   else {ShowStore(event.getTextChannel(), event.getMessage().getAuthor());}
  113.                         }   else {ShowStore(event.getTextChannel(), event.getMessage().getAuthor());}
  114.                     } else {ShowStore(event.getTextChannel(), event.getMessage().getAuthor());}
  115.                 }
  116.             }
  117.         }
  118.     }
  119.  
  120.     public void onMessageReactionAdd(MessageReactionAddEvent reaction){
  121.  
  122.         try {
  123.             BuyStuff buyStuff = null;
  124.             for (BuyStuff stuff1 : WorkerBot.BuyStuffList) {
  125.                 if (stuff1.getUser_id().equalsIgnoreCase(reaction.getUser().getId())) {
  126.                     buyStuff = stuff1;
  127.                 }
  128.             }
  129.             if(buyStuff == null)
  130.                 return;
  131.             if (reaction.getReactionEmote().getId().equals("374332134837452803")) {
  132.                 if (buyStuff.getTotalCost() > buyStuff.getUserCash()) {
  133.                     buyStuff.getChannel().sendMessage(buyStuff.getUser().getAsMention() + "\nYou do not have enough money for that!").queue();
  134.                 } else {
  135.                     workerBot.getUserInteraction().giveUserWorkers(buyStuff.getUser_id(), buyStuff.getNum());
  136.                     workerBot.getUserInteraction().giveUserCash(buyStuff.getUser_id(), -buyStuff.getTotalCost());
  137.                     if (buyStuff.getNum() > 1) {
  138.                         buyStuff.getChannel().sendMessage(buyStuff.getUser().getAsMention() + "\nYou bought " + buyStuff.getNum() + " workers!").queue();
  139.                         buyStuff.getMessage().delete().queue();
  140.                         buyStuff.getOrgMessage().delete().queue();
  141.                     }
  142.                     else if (buyStuff.getNum() == 1) {
  143.                         buyStuff.getChannel().sendMessage(buyStuff.getUser().getAsMention() + "\nYou bought 1 worker!").queue();
  144.                         buyStuff.getMessage().delete().queue();
  145.                         buyStuff.getOrgMessage().delete().queue();
  146.                     }
  147.                 }
  148.             }else if (reaction.getReactionEmote().getId().equals("374337406071209990")){
  149.                 buyStuff.getMessage().delete().queue();
  150.                 buyStuff.getOrgMessage().delete().queue();
  151.             }
  152.             WorkerBot.BuyStuffList.remove(WorkerBot.BuyStuffList);
  153.         }catch (Exception e){
  154.             System.out.println(e);
  155.         }
  156.     }
  157.  
  158.     public void ShowBalance(TextChannel channel, User user){
  159.         String user_id = user.getId();
  160.         String cash = Double.toString(workerBot.getUserInteraction().getUserCash(user_id));
  161.         String cashMade = Double.toString(workerBot.getUserInteraction().getUserCashMade(user_id));
  162.  
  163.         EmbedBuilder embed = new EmbedBuilder();
  164.         embed.setColor(WorkerBot.getColor("#2ECC40"));
  165.         embed.setTitle("Welcome to the Worker Bank!");
  166.         embed.setDescription(user.getAsMention());
  167.         embed.addField("Balance", "$" + cash, true);
  168.         embed.addField("Income", "$" + cashMade + " per " + Workers.seconds + " seconds", true);
  169.         channel.sendMessage(embed.build()).queue();
  170.     }
  171.  
  172.     public void ShowStore(TextChannel channel, User user){
  173.         String user_id = user.getId();
  174.         String cash = Double.toString(workerBot.getUserInteraction().getUserCash(user_id));
  175.  
  176.         EmbedBuilder embed = new EmbedBuilder();
  177.         embed.setColor(WorkerBot.getColor("#39CCCC"));
  178.         embed.setTitle("Welcome to the Worker Store!");
  179.         embed.setDescription(user.getAsMention());
  180.         embed.addField("Balance", "$" + cash,false);
  181.  
  182.         StringJoiner worker_types = new StringJoiner("\n");
  183.         StringJoiner worker_costs = new StringJoiner("\n");
  184.  
  185.         HashMap<String, Double> workers = WorkerBot.getUserInteraction().getUserWorkerCosts(user_id);
  186.         HashMap<String, String> worker_typesMap = WorkerBot.getUserInteraction().getWorkerTypes();
  187.  
  188.         for (int i = 0; i < workers.size(); i++){
  189.             worker_types.add(worker_typesMap.get(Integer.toString(i)));
  190.             worker_costs.add("$" + Double.toString(workers.get(worker_typesMap.get(Integer.toString(i)))) + " each");
  191.         }
  192.  
  193.         embed.addField("Item", worker_types.toString(), true);
  194.         embed.addField("Price", worker_costs.toString(), true);
  195.  
  196.         channel.sendMessage(embed.build()).queue();
  197.  
  198.     }
  199.  
  200.     public void ShowWorkers(TextChannel channel, User user){
  201.         EmbedBuilder embed = new EmbedBuilder();
  202.         embed.setColor(WorkerBot.getColor("#0074D9"));
  203.         embed.setTitle("These are your workers!");
  204.         embed.setDescription(user.getAsMention());
  205.  
  206.         StringJoiner worker_types = new StringJoiner("\n");
  207.         StringJoiner worker_amount = new StringJoiner("\n");
  208.  
  209.         List<HashMap<String, String>> user_workers = WorkerBot.getUserInteraction().getUserWorkers(user.getId());
  210.  
  211.         for (int i = 0; i < user_workers.get(0).size(); i++){
  212.             worker_types.add(user_workers.get(0).get(Integer.toString(i)));
  213.             worker_amount.add(user_workers.get(1).get(Integer.toString(i)));
  214.         }
  215.  
  216.         embed.addField("Worker Type", worker_types.toString(), true);
  217.         embed.addField("Amount", worker_amount.toString(), true);
  218.  
  219.         channel.sendMessage(embed.build()).queue();
  220.     }
  221.  
  222.     public String getDefaultChannel(String server_id){
  223.         String defaultChannel = null;
  224.         List<HashMap<String,Object>> result = workerBot.getMySQL().find("SELECT * FROM servers WHERE server_id = ?",server_id);
  225.         if (result.size()>0 && result.get(0).get("default_channel") != null){
  226.             defaultChannel = result.get(0).get("default_channel").toString();
  227.             return defaultChannel;
  228.         }else
  229.         return defaultChannel;
  230.     }
  231.  
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement