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