case 1:
if (Objects.equal(getValue().getSecond(), RIGHT)) {
List<TextPair> buffer = new ArrayList<TextPair>();
for (TextPair next : msgs) {
buffer.add(new TextPair(next.getFirst(), next.getSecond()));
}
if (buffer.size() > 0) {
Random random = new Random(System.currentTimeMillis());
TextPair luckyMsg = buffer.get(RandomUtils.nextInt(random,
buffer.size()));
sendMessage(luckyMsg.getFirst(), getNewMessage());
}
}
break;
case 2:
if (Objects.equal(getValue().getSecond(), LEFT)) {
List<TextPair> buffer = new ArrayList<TextPair>();
for (TextPair next : msgs) {
buffer.add(new TextPair(next.getFirst(), next.getSecond()));
}
if (buffer.size() > 0) {
Random random = new Random(System.currentTimeMillis());
TextPair luckyMsg = buffer.get(RandomUtils.nextInt(random,
buffer.size()));
getValue().setFirst(luckyMsg.getFirst());
sendMessage(luckyMsg.getFirst(), getNewMessage());
}
}
break;
case 3:
if (Objects.equal(getValue().getSecond(), RIGHT)) {
Iterator<TextPair> messages = msgs.iterator();
if (messages.hasNext()) {
TextPair next = messages.next();
getValue().setFirst(next.getFirst());
}
}
break;
}
}