From 79cf68e4ccb5c2469f04faf96d4b96e3baf90674 Mon Sep 17 00:00:00 2001 From: SerendipityR <48401197+SerendipityR-2022@users.noreply.github.com> Date: Fri, 2 Feb 2024 00:38:14 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=E6=9C=AA=E6=AD=A3=E7=A1=AE=E5=A4=84?= =?UTF-8?q?=E7=90=86Action=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MultipleVersion/Bot/BotManager.java | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/VersionFactory/src/cn/serendipityr/EndMinecraftPlusV2/MultipleVersion/Bot/BotManager.java b/VersionFactory/src/cn/serendipityr/EndMinecraftPlusV2/MultipleVersion/Bot/BotManager.java index b61caea..4f743ac 100644 --- a/VersionFactory/src/cn/serendipityr/EndMinecraftPlusV2/MultipleVersion/Bot/BotManager.java +++ b/VersionFactory/src/cn/serendipityr/EndMinecraftPlusV2/MultipleVersion/Bot/BotManager.java @@ -344,32 +344,39 @@ public class BotManager { case "moveToLocation": String[] moveArgs = _action[1].split("_"); boolean doOnce = Boolean.parseBoolean(moveArgs[0]); - if (doOnce && botHandler.hasClientFlag(client, "moved")) { - return; - } else if (doOnce) { - botHandler.setClientFlag(client, "moved", true); + String moveFlag = moveArgs[4]; + if ("none".equals(moveFlag) || botHandler.hasClientFlag(client, moveFlag)) { + if (doOnce && botHandler.hasClientFlag(client, "moved")) { + 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; case "goToLobby": - // 必须禁用默认处理方式 - Object npc = getNpc(); - Double[] npcLoc = packetHandler.getSpawnPlayerLocation(npc); - if (npcLoc == null) { - return; + String[] lobbyArgs = _action[1].split("_"); + String lobbyFlag = lobbyArgs[0]; + if ("none".equals(lobbyFlag) || botHandler.hasClientFlag(client, lobbyFlag)) { + // 必须禁用默认处理方式 + 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; default: LogUtil.doLog(0, "[" + userName + "] [行动] 无法识别的action语句: " + action, "BotAttack");