mirror of
https://github.com/SerendipityR-2022/EndMinecraftPlusV2.git
synced 2024-09-19 15:23:26 +00:00
Add: 通过服务端全服喊话插件跳出登录大厅
This commit is contained in:
parent
38c97d27b2
commit
90bdfeaa51
@ -6,8 +6,8 @@ import cn.serendipityr.EndMinecraftPlusV2.Tools.LogUtil;
|
||||
import cn.serendipityr.EndMinecraftPlusV2.Tools.SetTitle;
|
||||
|
||||
public class EndMinecraftPlusV2 {
|
||||
public static String ver = "2.0.3";
|
||||
public static Integer CfgVer = 10;
|
||||
public static String ver = "2.0.4";
|
||||
public static Integer CfgVer = 11;
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("=======================-Designed by SerendipityR-=======================");
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Designed by SerendipityR #
|
||||
###############################
|
||||
|
||||
CfgVer: 10
|
||||
CfgVer: 11
|
||||
|
||||
AttackSettings:
|
||||
Address: "example.com"
|
||||
@ -117,6 +117,10 @@ BotSettings:
|
||||
- "AntiAttack"
|
||||
# 若踢出信息为空,则无条件执行重连
|
||||
EmptyMsgRejoin: true
|
||||
# 检测可交互聊天信息包含的命令
|
||||
# 针对特定服务器,利用全服喊话跳出登录大厅
|
||||
ServerShoutDetect:
|
||||
- "tpserver"
|
||||
# 若聊天信息中检测到以下字段,则尝试进行点击验证
|
||||
ClickVerifiesDetect:
|
||||
- "点击验证"
|
||||
|
@ -48,6 +48,7 @@ public class ConfigUtil {
|
||||
public static Integer RejoinCount;
|
||||
public static List<String> RejoinDetect;
|
||||
public static Boolean EmptyMsgRejoin;
|
||||
public static List<String> ServerShoutDetect;
|
||||
public static Long RejoinDelay;
|
||||
public static List<String> ClickVerifiesDetect;
|
||||
public static List<String> CustomChat;
|
||||
@ -111,6 +112,7 @@ public class ConfigUtil {
|
||||
RejoinCount = config.getInt("BotSettings.RejoinCount");
|
||||
RejoinDetect = config.getStringList("BotSettings.RejoinDetect");
|
||||
EmptyMsgRejoin = config.getBoolean("BotSettings.EmptyMsgRejoin");
|
||||
ServerShoutDetect = config.getStringList("BotSettings.ServerShoutDetect");
|
||||
RejoinDelay = config.getLong("BotSettings.RejoinDelay");
|
||||
ClickVerifiesDetect = config.getStringList("BotSettings.ClickVerifiesDetect");
|
||||
CustomChat = config.getStringList("BotSettings.CustomChat");
|
||||
@ -215,8 +217,9 @@ public class ConfigUtil {
|
||||
break;
|
||||
}
|
||||
|
||||
if (configFile.delete()) {
|
||||
tempConfigFile.renameTo(configFile);
|
||||
if (!configFile.delete() || !tempConfigFile.renameTo(configFile)) {
|
||||
LogUtil.doLog(1, "尝试进行配置文件转码时出现错误。", null);
|
||||
return 0;
|
||||
}
|
||||
|
||||
LogUtil.doLog(0, "任务完成。转换前编码: " + currentCharset + " | 转换后编码: " + getFileCharset(configFile) , "CFGUtil");
|
||||
|
@ -381,13 +381,18 @@ public class BotManager {
|
||||
botHandler.setClientFlag(client, "login", "");
|
||||
new Thread(() -> {
|
||||
for (String text : ConfigUtil.RegisterCommands) {
|
||||
OtherUtils.doSleep(delay);
|
||||
String cmd = text;
|
||||
cmd = cmd.replace("$pwd", password);
|
||||
cmd = cmd.replace("$userName", userName);
|
||||
cmd = cmd.replace("$rnd", OtherUtils.getRandomString(4, 6));
|
||||
LogUtil.doLog(0, "[" + userName + "] 注册信息已发送。", "BotAttack");
|
||||
packetHandler.sendChatPacket(client, cmd);
|
||||
OtherUtils.doSleep(delay);
|
||||
}
|
||||
|
||||
if (PacketManager.serverShoutCmd != null) {
|
||||
LogUtil.doLog(0, "[" + userName + "] 正在尝试跳出登录大厅: " + PacketManager.serverShoutCmd, "BotAttack");
|
||||
packetHandler.sendChatPacket(client, PacketManager.serverShoutCmd);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import cn.serendipityr.EndMinecraftPlusV2.Tools.LogUtil;
|
||||
|
||||
public class PacketManager {
|
||||
public static int clickVerifies = 0;
|
||||
public static String serverShoutCmd = null;
|
||||
|
||||
public static void handlePacket(PacketHandler packetHandler, Object client, Object packet, String username) {
|
||||
if (packetHandler.checkServerPluginMessagePacket(packet)) {
|
||||
@ -44,23 +45,33 @@ public class PacketManager {
|
||||
}
|
||||
|
||||
public static void clickVerifiesHandle(PacketHandler packetHandler, Object client, Object message, String username) {
|
||||
if (packetHandler.hasMessageClickEvent(message)) {
|
||||
boolean needClick = false;
|
||||
|
||||
if (packetHandler.hasMessageClickEvent(message)) {
|
||||
String msg = packetHandler.getMessageText(message);
|
||||
String value = packetHandler.getClickValue(message);
|
||||
|
||||
for (String clickVerifiesDetect : ConfigUtil.ClickVerifiesDetect) {
|
||||
if (packetHandler.getMessageText(message).contains(clickVerifiesDetect)) {
|
||||
if (msg.contains(clickVerifiesDetect)) {
|
||||
needClick = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (String teleportMsg : ConfigUtil.ServerShoutDetect) {
|
||||
if (value.contains(teleportMsg)) {
|
||||
serverShoutCmd = value;
|
||||
needClick = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (needClick) {
|
||||
String value = packetHandler.getClickValue(message);
|
||||
LogUtil.doLog(0, "[服务端返回验证信息] [" + username + "] " + value, "BotAttack");
|
||||
LogUtil.doLog(0, "[服务端返回可交互信息] [" + username + "] " + value, "BotAttack");
|
||||
packetHandler.sendChatPacket(client, value);
|
||||
clickVerifies++;
|
||||
}
|
||||
}
|
||||
|
||||
if (packetHandler.hasMessageExtra(message)) {
|
||||
packetHandler.handleMessageExtra(packetHandler, message, client, username);
|
||||
|
Loading…
Reference in New Issue
Block a user