Advertisement
Vaerys_Dawn

RateLimit Reporting

Mar 3rd, 2018
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.43 KB | None | 0 0
  1. private static void reportHandling(GuildObject task) {
  2.         List<UserRateObject> offenders = task.getRateLimiting();
  3.  
  4.         IRole muteRole = task.getRoleByID(task.config.getMutedRoleID());
  5.         if (muteRole == null) return;
  6.  
  7.         IChannel admin = task.getChannelByType(ChannelSetting.ADMIN);
  8.  
  9.         for (UserRateObject u : offenders) {
  10.             if (u.counter - 3 > task.config.messageLimit) {
  11.                 List<IChannel> channels = u.getChannels(task);
  12.                 if (admin == null && !channels.isEmpty()) {
  13.                     admin = channels.get(channels.size() - 1);
  14.                 }
  15.                 StringHandler output = new StringHandler();
  16.                 StringHandler modNote = new StringHandler();
  17.                 IUser offender = u.getUser(task);
  18.  
  19.                 long rate = u.counter - task.config.messageLimit;
  20.  
  21.                 String formattedChannels = String.join(", ", channels.stream().map(channel -> channel.mention()).collect(Collectors.toList()));
  22.  
  23.                 //Admin Message output
  24.                 output.append("> ").append(offender.mention());
  25.                 output.append(" Has Been muted for breaking the guild rate limit (");
  26.                 output.append(rate);
  27.                 output.append(" Over Rate)");
  28.                 if (channels.size() == 1) {
  29.                     output.append(" in ").append(channels.get(0).mention());
  30.                 } else if (channels.size() > 1) {
  31.                     output.append(" in channels: ");
  32.                     output.append(formattedChannels);
  33.                 }
  34.                 output.append(".");
  35.  
  36.                 //modNote Output
  37.                 modNote.append("> Muted by Rate Limiter, ");
  38.                 modNote.append(rate).append(" Over Rate, ");
  39.                 modNote.append("Channel");
  40.                 if (channels.size() > 1) modNote.append("s");
  41.                 modNote.append(": ").append(formattedChannels);
  42.  
  43.                 //logging
  44.                 if (task.config.deleteLogging) {
  45.                     Utility.sendLog("> **@" + offender.getName() + "#" + offender.getDiscriminator() + "** was muted for breaking rate limit.", task, false);
  46.                 }
  47.  
  48.                 ProfileObject profile = task.users.getUserByID(u.getID());
  49.                 profile.addSailModNote(modNote.toString(), u.timeStamp, false);
  50.                 RequestHandler.sendMessage(output.toString(), admin);
  51.             }
  52.         }
  53.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement