Added order mode to Spammer and close #820

This commit is contained in:
Bella 2020-05-16 21:26:24 -04:00
parent 77b0e8989c
commit fbf7d1e20c
No known key found for this signature in database
GPG Key ID: DBD4A6030080C8B3
1 changed files with 26 additions and 5 deletions

View File

@ -4,12 +4,14 @@ import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings; import me.zeroeightsix.kami.setting.Settings;
import javax.management.monitor.StringMonitor;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
@ -25,10 +27,13 @@ import static me.zeroeightsix.kami.util.MessageSendHelper.*;
category = Module.Category.CHAT category = Module.Category.CHAT
) )
public class Spammer extends Module { public class Spammer extends Module {
private Setting<Mode> modeSetting = register(Settings.e("Order", Mode.RANDOM_ORDER));
private Setting<Integer> timeoutTime = register(Settings.integerBuilder().withName("Timeout (s)").withMinimum(1).withMaximum(240).withValue(10).build()); private Setting<Integer> timeoutTime = register(Settings.integerBuilder().withName("Timeout (s)").withMinimum(1).withMaximum(240).withValue(10).build());
List<String> tempLines = new ArrayList<>(); private List<String> tempLines = new ArrayList<>();
String[] spammer; private String[] spammer;
private static int currentLine = 0;
private enum Mode { IN_ORDER, RANDOM_ORDER }
public void onEnable() { public void onEnable() {
BufferedReader bufferedReader; BufferedReader bufferedReader;
@ -55,19 +60,35 @@ public class Spammer extends Module {
} }
public void onUpdate() { public void onUpdate() {
sendMsg(getRandom(spammer)); sendMsg();
} }
private static long startTime = 0; private static long startTime = 0;
private void sendMsg(String message) { private void sendMsg() {
String message = "";
if (startTime == 0) startTime = System.currentTimeMillis(); if (startTime == 0) startTime = System.currentTimeMillis();
if (startTime + (timeoutTime.getValue() * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms if (startTime + (timeoutTime.getValue() * 1000) <= System.currentTimeMillis()) { // 1 timeout = 1 second = 1000 ms
startTime = System.currentTimeMillis(); startTime = System.currentTimeMillis();
switch (modeSetting.getValue()) {
case IN_ORDER:
message = getOrdered(spammer);
break;
case RANDOM_ORDER:
message = getRandom(spammer);
break;
}
sendServerMessage(message); sendServerMessage(message);
} }
} }
public static String getRandom(String[] array) { private static String getOrdered(String[] array) {
currentLine++;
if (currentLine > array.length - 1) currentLine = 0;
return array[currentLine];
}
private static String getRandom(String[] array) {
int rand = new Random().nextInt(array.length); int rand = new Random().nextInt(array.length);
while (array[rand].isEmpty() || array[rand].equals(" ")) { while (array[rand].isEmpty() || array[rand].equals(" ")) {
rand = new Random().nextInt(array.length); // big meme to try to avoid sending empty messages rand = new Random().nextInt(array.length); // big meme to try to avoid sending empty messages