Fix: 未正确处理Action语句

This commit is contained in:
SerendipityR 2024-02-02 00:38:14 +08:00 committed by GitHub
parent 32cd3d2305
commit 79cf68e4cc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -344,32 +344,39 @@ public class BotManager {
case "moveToLocation": case "moveToLocation":
String[] moveArgs = _action[1].split("_"); String[] moveArgs = _action[1].split("_");
boolean doOnce = Boolean.parseBoolean(moveArgs[0]); boolean doOnce = Boolean.parseBoolean(moveArgs[0]);
if (doOnce && botHandler.hasClientFlag(client, "moved")) { String moveFlag = moveArgs[4];
return; if ("none".equals(moveFlag) || botHandler.hasClientFlag(client, moveFlag)) {
} else if (doOnce) { if (doOnce && botHandler.hasClientFlag(client, "moved")) {
botHandler.setClientFlag(client, "moved", true); return;
} else if (doOnce) {
botHandler.setClientFlag(client, "moved", true);
}
Double[] loc = new Double[]{Double.valueOf(moveArgs[1]), Double.valueOf(moveArgs[2]), Double.valueOf(moveArgs[3])};
if (ConfigUtil.BotActionDetails) {
LogUtil.doLog(0, "[" + userName + "] [行动] 尝试移动到指定位置: " + Arrays.toString(loc), "BotAttack");
}
moveToLocation(client, loc);
} }
Double[] loc = new Double[]{Double.valueOf(moveArgs[1]), Double.valueOf(moveArgs[2]), Double.valueOf(moveArgs[3])};
if (ConfigUtil.BotActionDetails) {
LogUtil.doLog(0, "[" + userName + "] [行动] 尝试移动到指定位置: " + Arrays.toString(loc), "BotAttack");
}
moveToLocation(client, loc);
break; break;
case "goToLobby": case "goToLobby":
// 必须禁用默认处理方式 String[] lobbyArgs = _action[1].split("_");
Object npc = getNpc(); String lobbyFlag = lobbyArgs[0];
Double[] npcLoc = packetHandler.getSpawnPlayerLocation(npc); if ("none".equals(lobbyFlag) || botHandler.hasClientFlag(client, lobbyFlag)) {
if (npcLoc == null) { // 必须禁用默认处理方式
return; Object npc = getNpc();
Double[] npcLoc = packetHandler.getSpawnPlayerLocation(npc);
if (npcLoc == null) {
return;
}
if (ConfigUtil.BotActionDetails) {
LogUtil.doLog(0, "[" + userName + "] [行动] 尝试移动到NPC所处位置: " + Arrays.toString(npcLoc), "BotAttack");
}
moveToLocation(client, npcLoc);
if (ConfigUtil.BotActionDetails) {
LogUtil.doLog(0, "[" + userName + "] [行动] 尝试与NPC交互: " + Arrays.toString(npcLoc), "BotAttack");
}
packetHandler.sendPlayerInteractEntityPacket(client, packetHandler.getSpawnPlayerEntityId(npc), new float[]{npcLoc[0].floatValue(), npcLoc[1].floatValue(), npcLoc[2].floatValue()});
} }
if (ConfigUtil.BotActionDetails) {
LogUtil.doLog(0, "[" + userName + "] [行动] 尝试移动到NPC所处位置: " + Arrays.toString(npcLoc), "BotAttack");
}
moveToLocation(client, npcLoc);
if (ConfigUtil.BotActionDetails) {
LogUtil.doLog(0, "[" + userName + "] [行动] 尝试与NPC交互: " + Arrays.toString(npcLoc), "BotAttack");
}
packetHandler.sendPlayerInteractEntityPacket(client, packetHandler.getSpawnPlayerEntityId(npc), new float[]{npcLoc[0].floatValue(), npcLoc[1].floatValue(), npcLoc[2].floatValue()});
break; break;
default: default:
LogUtil.doLog(0, "[" + userName + "] [行动] 无法识别的action语句: " + action, "BotAttack"); LogUtil.doLog(0, "[" + userName + "] [行动] 无法识别的action语句: " + action, "BotAttack");