Fix: 未处理不支持的版本

This commit is contained in:
SerendipityR 2024-02-02 01:21:10 +08:00 committed by GitHub
parent 79cf68e4cc
commit 28a1953cd8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 129 additions and 6 deletions

View File

@ -94,7 +94,15 @@ public class BotManager {
moveToLocation(client, loc); moveToLocation(client, loc);
break; break;
case "goToLobby": case "goToLobby":
if (protocolVersion > 498) {
LogUtil.doLog(0, "[" + userName + "] [DEBUG] [行动] 无法移动到NPC所处位置: 当前版本不支持。", "BotAttack");
return;
}
Object npc = getNpc(); Object npc = getNpc();
if (npc == null) {
return;
}
Double[] npcLoc = packetHandler.getSpawnPlayerLocation(npc); Double[] npcLoc = packetHandler.getSpawnPlayerLocation(npc);
if (npcLoc == null) { if (npcLoc == null) {
return; return;
@ -361,9 +369,18 @@ public class BotManager {
case "goToLobby": case "goToLobby":
String[] lobbyArgs = _action[1].split("_"); String[] lobbyArgs = _action[1].split("_");
String lobbyFlag = lobbyArgs[0]; String lobbyFlag = lobbyArgs[0];
if (protocolVersion > 498) {
LogUtil.doLog(0, "[" + userName + "] [行动] 无法移动到NPC所处位置: 当前版本不支持。", "BotAttack");
return;
}
if ("none".equals(lobbyFlag) || botHandler.hasClientFlag(client, lobbyFlag)) { if ("none".equals(lobbyFlag) || botHandler.hasClientFlag(client, lobbyFlag)) {
// 必须禁用默认处理方式 // 必须禁用默认处理方式
Object npc = getNpc(); Object npc = getNpc();
if (npc == null) {
return;
}
Double[] npcLoc = packetHandler.getSpawnPlayerLocation(npc); Double[] npcLoc = packetHandler.getSpawnPlayerLocation(npc);
if (npcLoc == null) { if (npcLoc == null) {
return; return;

View File

@ -28,8 +28,13 @@ public interface PacketHandler {
void handleServerPlayerHealthPacket(Object client, Object packet, String username); void handleServerPlayerHealthPacket(Object client, Object packet, String username);
boolean checkServerSpawnPlayerPacket(Object packet); boolean checkServerSpawnPlayerPacket(Object packet);
boolean checkSpawnPlayerName(Object packet, String checkName); boolean checkSpawnPlayerName(Object packet, String checkName);
List<String> getSpawnPlayerMetadata(Object packet);
Double[] getSpawnPlayerLocation(Object packet); Double[] getSpawnPlayerLocation(Object packet);
int getSpawnPlayerEntityId(Object packet); int getSpawnPlayerEntityId(Object packet);
void moveToLocation(Object client, Double[] targetLocation, double moveSpeed); void moveToLocation(Object client, Double[] targetLocation, double moveSpeed);

View File

@ -196,6 +196,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
List<String> metaData = new ArrayList<>();
for (EntityMetadata metadata:playerPacket.getMetadata()) {
metaData.add((String) metadata.getValue());
}
return metaData;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -192,6 +192,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
List<String> metaData = new ArrayList<>();
for (EntityMetadata metadata:playerPacket.getMetadata()) {
metaData.add((String) metadata.getValue());
}
return metaData;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -185,6 +185,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
List<String> metaData = new ArrayList<>();
for (EntityMetadata metadata:playerPacket.getMetadata()) {
metaData.add((String) metadata.getValue());
}
return metaData;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -9,6 +9,7 @@ import cn.serendipityr.EndMinecraftPlusV2.Tools.ConfigUtil;
import cn.serendipityr.EndMinecraftPlusV2.Tools.LogUtil; import cn.serendipityr.EndMinecraftPlusV2.Tools.LogUtil;
import cn.serendipityr.EndMinecraftPlusV2.Tools.OtherUtils; import cn.serendipityr.EndMinecraftPlusV2.Tools.OtherUtils;
import com.github.steveice10.mc.protocol.data.game.ClientRequest; import com.github.steveice10.mc.protocol.data.game.ClientRequest;
import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata;
import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack;
import com.github.steveice10.mc.protocol.data.game.entity.player.Hand; import com.github.steveice10.mc.protocol.data.game.entity.player.Hand;
import com.github.steveice10.mc.protocol.data.game.entity.player.InteractAction; import com.github.steveice10.mc.protocol.data.game.entity.player.InteractAction;
@ -174,6 +175,11 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -170,6 +170,11 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -171,6 +171,11 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -174,6 +174,11 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ClientboundAddPlayerPacket playerPacket = (ClientboundAddPlayerPacket) packet; ClientboundAddPlayerPacket playerPacket = (ClientboundAddPlayerPacket) packet;

View File

@ -174,6 +174,11 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ClientboundAddPlayerPacket playerPacket = (ClientboundAddPlayerPacket) packet; ClientboundAddPlayerPacket playerPacket = (ClientboundAddPlayerPacket) packet;

View File

@ -174,6 +174,11 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ClientboundAddPlayerPacket playerPacket = (ClientboundAddPlayerPacket) packet; ClientboundAddPlayerPacket playerPacket = (ClientboundAddPlayerPacket) packet;

View File

@ -174,6 +174,11 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ClientboundAddPlayerPacket playerPacket = (ClientboundAddPlayerPacket) packet; ClientboundAddPlayerPacket playerPacket = (ClientboundAddPlayerPacket) packet;

View File

@ -181,6 +181,11 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ClientboundAddEntityPacket playerPacket = (ClientboundAddEntityPacket) packet; ClientboundAddEntityPacket playerPacket = (ClientboundAddEntityPacket) packet;

View File

@ -182,6 +182,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
List<String> metaData = new ArrayList<>();
for (EntityMetadata metadata : playerPacket.getMetadata()) {
metaData.add((String) metadata.getValue());
}
return metaData;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -191,6 +191,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
List<String> metaData = new ArrayList<>();
for (EntityMetadata metadata:playerPacket.getMetadata()) {
metaData.add((String) metadata.getValue());
}
return metaData;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -196,6 +196,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
return false; return false;
} }
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
List<String> metaData = new ArrayList<>();
for (EntityMetadata metadata:playerPacket.getMetadata()) {
metaData.add((String) metadata.getValue());
}
return metaData;
}
@Override @Override
public Double[] getSpawnPlayerLocation(Object packet) { public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet; ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;