Advertisement
HaFRPG

PPBot

Mar 28th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.02 KB | None | 0 0
  1.     @Override
  2.     public void onMessageReceived(MessageReceivedEvent event) {
  3.         JDA jda = event.getJDA();
  4.         if (event.getAuthor().isBot() || event.getMessage().getContentRaw().equals("") || !event.getChannel().getName().equals("input")) {
  5.             return;
  6.         } else {
  7.             String rawMessage, newMessage, nickname, nameHashString, timeString, diceString, dices[], diceStringFinale, theme;
  8.             rawMessage = event.getMessage().getContentRaw();
  9.             //Никнейм %123%
  10.             try {
  11.                 FileWriter writer = new FileWriter("output", true);
  12.                 if (rawMessage.startsWith("!copyclear") && event.getMessage().getAuthor().getName().equals("Fizzy")) {
  13.                     List<TextChannel> channelsList = jda.getTextChannelsByName("input", true);
  14.                     for (int i = 0; i < channelsList.size(); i++) {
  15.                         List<Message> messageList = channelsList.get(i).getHistory().getRetrievedHistory();
  16.                         for (int j = 0; j < messageList.size(); j++) {
  17.                             if (j == 0) {
  18.                                 writer.append(messageList.get(j).getContentRaw());
  19.                             }
  20.                             messageList.get(j).delete().queue();
  21.                         }
  22.                     }
  23.                 }
  24.             } catch (IOException e) {
  25.             }
  26.             Pattern pattern = Pattern.compile("%[^%1234567890]{1,30}%");
  27.             Matcher matcher = pattern.matcher(rawMessage);
  28.             if (matcher.find()) {
  29.                 nickname = rawMessage.substring(matcher.start() + 1, matcher.end() - 1);
  30.                 rawMessage = matcher.replaceFirst("");
  31.                 //Integer nameHash = event.getAuthor().hashCode() * nickname.hashCode();
  32.                 //nameHash = Integer.signum(nameHash) * nameHash;
  33.                 //nameHashString = nameHash.toString();
  34.                 newMessage = /*"**" + */nickname/* + "**"*//* + "*" + nameHashString + "*"*/;
  35.             } else {
  36.                 newMessage = "Pony";
  37.                 Pattern cheaterPattern = Pattern.compile("[1-9][0-9]?d[1-9][0-9]{0,3}[  ]+[(][1-9][0-9]{0,3}[)][  ]+[=][  ]+[1-9][0-9]{0,3}");
  38.                 Matcher cheaterMatcher = cheaterPattern.matcher(rawMessage);
  39.                 if (cheaterMatcher.find()) {
  40.                     newMessage = "*Cheater*";
  41.                 }
  42.             }
  43.             if (rawMessage.equals("")) {
  44.                 return;
  45.             }
  46.             //Дата и время
  47.             LocalDateTime currentDate = LocalDateTime.now();
  48.             //Date currentDate = new Date();
  49.             timeString = String.format("%02d.%02d.%02d %02d:%02d:%02d", currentDate.getDayOfMonth(), currentDate.getMonth().getValue(), (currentDate.getYear() % 100), currentDate.getHour(),  currentDate.getMinute(), currentDate.getSecond());
  50.             //timeString = currentDate.getDayOfMonth() + "." + currentDate.getMonth().getValue() + "." + (currentDate.getYear() % 100);
  51.             //timeString += " " + currentDate.getHour() + ":" + currentDate.getMinute() + ":" + currentDate.getSecond();
  52.             newMessage += " " + timeString;
  53.             long id = 0;
  54.             try {
  55.                 ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("boardId.out"));
  56.                 BoardId boardId = (BoardId) objectInputStream.readObject();
  57.                 objectInputStream.close();
  58.                 String idString = boardId.toString();
  59.                 id = boardId.getId();
  60.                 newMessage = newMessage + " No. " + idString + " ";
  61.                 boardId.setId(1 + boardId.getId());
  62.                 ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("boardId.out"));
  63.                 objectOutputStream.writeObject(boardId);
  64.                 objectOutputStream.close();
  65.             } catch (Exception ex) {
  66.                 //sorry.
  67.             }
  68.             Pattern dice = Pattern.compile("##[1-9][0-9]?d[1-9][0-9]{0,3}##");
  69.             Matcher diceMatcher = dice.matcher(rawMessage);
  70.             int sum;
  71.             while (diceMatcher.find()) {
  72.                 diceString = rawMessage.substring(diceMatcher.start() + 2, diceMatcher.end() - 2);
  73.                 if (diceString.contains("d")) {
  74.                     diceStringFinale = diceString + " (";
  75.                     dices = diceString.split("d");
  76.                     sum = 0;
  77.                     for (int i = 0; i < Integer.parseInt(dices[0]); i++) {
  78.                         Random r = new Random();
  79.                         int rand = r.nextInt(Integer.parseInt(dices[1]) - 1) + 1;
  80.                         diceStringFinale += rand;
  81.                         sum += rand;
  82.                         if (i < Integer.parseInt(dices[0]) - 1) {
  83.                             diceStringFinale += "+";
  84.                         }
  85.                     }
  86.                     diceStringFinale += ") = " + sum;
  87.                     rawMessage = diceMatcher.replaceFirst(diceStringFinale);
  88.                     diceMatcher = dice.matcher(rawMessage);
  89.                 }
  90.             }
  91.             //Send message
  92.             List<TextChannel> inputList = jda.getTextChannelsByName("input", true);
  93.             String regex;
  94.             regex = "https?:/(/[^/]+)+\\.(?:jpg|gif|png)";
  95.             //String regex = "\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|](?:jpg|gif|png)";
  96.             Pattern url = Pattern.compile(regex);
  97.             Matcher urlMatcher = url.matcher(rawMessage);
  98.             MessageBuilder newMsg = new MessageBuilder();
  99.             if(urlMatcher.find()) {
  100.                 String urlString = rawMessage.substring(urlMatcher.start(), urlMatcher.end());
  101.                 rawMessage = urlMatcher.replaceFirst("");
  102.                 EmbedBuilder embedBuilder = new EmbedBuilder();
  103.                 embedBuilder.setTitle("Embed", urlString);
  104.                 embedBuilder.setImage(urlString);
  105.  
  106.                 newMsg.setEmbed(embedBuilder.build());
  107.             }
  108.             try{
  109.                 MessageFile messageFile = new MessageFile(newMessage);
  110.                 ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("Message" + id));
  111.                 objectOutputStream.writeObject(messageFile);
  112.                 objectOutputStream.close();
  113.             }
  114.             catch (Exception ex)
  115.             {
  116.                 //Грустно
  117.             }
  118.             newMessage += "\n" + rawMessage;
  119.             newMessage = "```" + newMessage + "```";//Не работает разметка текста.
  120.             //newMessage = newMessage + "\n-----";//К Дискоррду разметку текста!
  121.             newMsg.setContent(newMessage);
  122.             for (int j = 0; j < inputList.size(); j++) {
  123.                 /*Pattern linkToMessagePattern = Pattern.compile(">[0-9]+");
  124.                 Matcher linkToMessageMatcher = linkToMessagePattern.matcher(rawMessage);
  125.                 while (linkToMessageMatcher.find()) {
  126.                     String id = rawMessage.substring(linkToMessageMatcher.start() + 1, linkToMessageMatcher.end());
  127.                     for (int i = 0; i < inputList.get(j).getHistoryBefore(event.getMessageId(), 50).complete().getRetrievedHistory().size(); i++) {
  128.                         String search = inputList.get(j).getHistoryBefore(event.getMessageId(), 50).complete().getRetrievedHistory().get(i).getContentRaw();
  129.                         Pattern idPattern = Pattern.compile("[0-9]+");
  130.                         Matcher idMatcher = idPattern.matcher(search);
  131.                         if (idMatcher.find()) {
  132.                             String idTest = search.substring(idMatcher.start(), idMatcher.end());
  133.                             if (idTest.equals(id)) {
  134.                                 EmbedBuilder linkToMessageEmbed = new EmbedBuilder();
  135.                                 linkToMessageEmbed.setTitle(id, "https://discordapp.com/channels/485056323936059392/" + inputList.get(j).getId() + "/" + jda.getTextChannelById("123").getHistoryBefore(event.getMessageId(), 50).complete().getRetrievedHistory().get(i).getId());
  136.                                 newMsg.setEmbed(linkToMessageEmbed.build());
  137.  
  138.                                 break;
  139.                             }
  140.                         }
  141.  
  142.                     }
  143.                 }*/
  144.                 jda.getTextChannelById(inputList.get(j).getId()).sendMessage(newMsg.build()).queue();
  145.             }
  146.             jda.getTextChannelsByName("output", true).get(0).sendMessage(newMsg.build()).queue();
  147.             event.getMessage().delete().queue();
  148.         }
  149.     }
  150.  
  151.     @Override
  152.     public void onGuildMemberJoin(@Nonnull GuildMemberJoinEvent event) {
  153.         event.getGuild().createTextChannel("input").setParent(event.getGuild().getCategoriesByName("rpg", true).get(0)).addPermissionOverride(event.getMember(), Collections.singleton(Permission.MESSAGE_READ), null).addPermissionOverride(event.getGuild().getPublicRole(), null, Collections.singleton(Permission.MESSAGE_READ)).queue();
  154.     }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement