Advertisement
deadfire19

Bot Code Fragment

Jan 10th, 2015
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.67 KB | None | 0 0
  1. import java.util.LinkedList;
  2.  
  3. public class MessageSender implements Runnable {
  4.  
  5.     private int messageLimit = 100;
  6.     private int messageTime = 31;
  7.  
  8.     private LinkedList<String> messageList;
  9.     private LinkedList<Integer> timeList;
  10.     private MyBot bot;
  11.     private String channel;
  12.  
  13.     public MessageSender(MyBot bot, String channel) {
  14.         this.bot = bot;
  15.         this.channel = channel;
  16.         messageList = new LinkedList<String>();
  17.         timeList = new LinkedList<Integer>();
  18.     }
  19.  
  20.     @Override
  21.     public void run() {
  22.         while (true) {
  23.             if (messageList.isEmpty() == false) {
  24.                 while (timeList.isEmpty() == false && timeList.getFirst() < ((int) (System.currentTimeMillis() / 1000) - messageTime)) {
  25.                     timeList.removeFirst();
  26.                 }
  27.  
  28.                 while ((timeList.size() < messageLimit)
  29.                         && (messageList.isEmpty() == false)) {
  30.                     bot.sendMessage(channel, messageList.removeFirst());
  31.                     timeList.addLast((int) (System.currentTimeMillis() / 1000));
  32.                 }
  33.  
  34.                 try {
  35.                     Thread.sleep(35);
  36.                 } catch (InterruptedException ex) {
  37.                     System.err.println("Thread can/'t sleep.");
  38.                 }
  39.             } else {
  40.                 try {
  41.                     Thread.sleep(250);
  42.                 } catch (InterruptedException ex) {
  43.                     System.err.println("Thread can/'t sleep.");
  44.                 }
  45.             }
  46.         }
  47.     }
  48.  
  49.     public void sendMessage(String message) {
  50.         if (timeList.size() < messageLimit) {
  51.             bot.sendMessage(channel, message);
  52.             timeList.addLast((int) (System.currentTimeMillis() / 1000));
  53.         } else {
  54.             if (messageList.contains(message) == false) {
  55.                 messageList.addLast(message);
  56.                 System.out.println("Current message queue: "
  57.                         + messageList.size());
  58.             } else{
  59.                 System.out.println("Not sending repeated message.");
  60.             }
  61.         }
  62.     }
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement