AutomaticBroadcastTask.java
package dev.aura.bungeechat.task;
import dev.aura.bungeechat.api.account.BungeeChatAccount;
import dev.aura.bungeechat.api.placeholder.BungeeChatContext;
import dev.aura.bungeechat.message.MessagesService;
import dev.aura.bungeechat.message.PlaceHolderUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.function.Predicate;
public class AutomaticBroadcastTask implements Runnable {
private final Predicate<BungeeChatAccount> predicate;
private final List<String> messages;
private final int size;
private final boolean random;
private int current;
private final Random rand;
public AutomaticBroadcastTask(
Predicate<BungeeChatAccount> predicate, List<String> messages, boolean random) {
this.predicate = predicate;
this.messages = new ArrayList<>(messages);
size = messages.size();
this.random = random;
current = -1;
rand = new Random();
}
@Override
public void run() {
MessagesService.sendToMatchingPlayers(
PlaceHolderUtil.formatMessage(getMessage(), new BungeeChatContext()), predicate);
}
private String getMessage() {
if (random) {
current = rand.nextInt(size);
} else {
current = (++current >= size) ? 0 : current;
}
return messages.get(current);
}
}