/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package gcb.bot;
import gcb.GCBConfig;
import gcb.Main;
import gcb.GarenaInterface;
import gcb.GChatBot;
import java.util.Vector;
/**
*
* @author GG.Dragon
*/
public class AnnounceThread extends Thread {
private GarenaInterface garena;
private GChatBot bot;
private ChatThread chatthread;
private Vector<String> messages; //contains the auto announcements
private int interval; //interval in milliseconds between each announcement
private int index;
public AnnounceThread(GarenaInterface garena, GChatBot bot, ChatThread chatthread) {
this.garena = garena;
this.bot = bot;
this.chatthread = chatthread;
messages = new Vector<String>();
//configuration
interval = GCBConfig.configuration.getInt("gcb_bot_auto_ann_interval", 20) * 1000; //convert seconds to milliseconds
}
public void setInterval(int newInterval) {
interval = newInterval;
}
public int getInterval() {
return interval;
}
public boolean addMessage(String message) {
int currentSize = messages.size(); //get current size of messages
messages.add(message);
if(messages.size() > currentSize) { //if new size is greater
return true;
} else {
return false; //messages stayed the same size
}
}
public boolean removeMessage(String message) {
int currentSize = messages.size(); //get current size of messages
messages.remove(message);
if(messages.size() < currentSize) { //if new size is less than
return true;
} else {
return false; //messages stayed the same size
}
}
public int getMessageSize() {
return messages.size();
}
public void clear() {
messages.clear();
}
public void run() {
while(true) {
if(messages.size() != 0) { //if there is at least one message
chatthread.queueChat(garena.id, messages.get(index), bot.ANNOUNCEMENT);
//set next index location
index++; //go to next index
index = index % messages.size(); //if index is the same as number of messages, go back to 0
}
try {
Thread.sleep(interval);
} catch(InterruptedException e) {
Main.println(11, "[AnnounceThread] Run sleep was interrupted: " + e.getLocalizedMessage());
}
}
}
}