package tterrag.tppibot.runnables; import java.util.LinkedList; import java.util.Queue; import org.pircbotx.PircBotX; import tterrag.tppibot.Main; import tterrag.tppibot.util.Message; import tterrag.tppibot.util.ThreadUtils; import tterrag.tppibot.util.Message.MessageType; public enum MessageSender implements Runnable { INSTANCE; public final Queue<Message> toSend = new LinkedList<Message>(); @Override public void run() { while (!Main.bot.isConnected()) { ThreadUtils.sleep(1000); } while (true) { ThreadUtils.sleep(100); Message send = toSend.poll(); if (send != null) { send.send(); } } } public void enqueue(PircBotX bot, String to, String message) { this.toSend.add(new Message(bot, to, message, MessageType.MESSAGE)); } public void enqueueNotice(PircBotX bot, String to, String message) { this.toSend.add(new Message(bot, to, message, MessageType.NOTICE)); } public void enqueueAction(PircBotX bot, String to, String message) { this.toSend.add(new Message(bot, to, message, MessageType.ACTION)); } }