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

View File

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

View File

@ -196,6 +196,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
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
public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -192,6 +192,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
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
public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

@ -185,6 +185,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
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
public Double[] getSpawnPlayerLocation(Object 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.OtherUtils;
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.player.Hand;
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;
}
@Override
public List<String> getSpawnPlayerMetadata(Object packet) {
return null;
}
@Override
public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -173,7 +173,7 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
public boolean checkSpawnPlayerName(Object packet, String checkName) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
for (EntityMetadata metadata:playerPacket.getMetadata()) {
for (EntityMetadata metadata : playerPacket.getMetadata()) {
if (metadata.getValue().toString().contains(checkName)) {
return true;
}
@ -182,6 +182,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
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
public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
@ -317,7 +327,7 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
}
List<Tag> itemLore = ((ListTag) hashMap.get("Lore")).getValue();
List<String> loreList = new ArrayList<>();
for (Tag tag:itemLore) {
for (Tag tag : itemLore) {
loreList.add((String) tag.getValue());
}
return loreList;
@ -339,7 +349,7 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
}
@Override
public void sendRightClickWindowItemPacket(Object client,int windowId, int slot, Object itemStack) {
public void sendRightClickWindowItemPacket(Object client, int windowId, int slot, Object itemStack) {
Session session = ((Client) client).getSession();
ItemStack item = (ItemStack) itemStack;
ClientWindowActionPacket windowActionPacket = new ClientWindowActionPacket(windowId, 6, slot, item, ClientWindowActionPacket.Action.CLICK_ITEM, ClientWindowActionPacket.ClickItemParam.RIGHT_CLICK);

View File

@ -182,7 +182,7 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
public boolean checkSpawnPlayerName(Object packet, String checkName) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
for (EntityMetadata metadata:playerPacket.getMetadata()) {
for (EntityMetadata metadata : playerPacket.getMetadata()) {
if (metadata.getValue().toString().contains(checkName)) {
return true;
}
@ -191,6 +191,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
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
public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;
@ -326,7 +336,7 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
}
List<Tag> itemLore = ((ListTag) hashMap.get("Lore")).getValue();
List<String> loreList = new ArrayList<>();
for (Tag tag:itemLore) {
for (Tag tag : itemLore) {
loreList.add((String) tag.getValue());
}
return loreList;
@ -348,7 +358,7 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
}
@Override
public void sendRightClickWindowItemPacket(Object client,int windowId, int slot, Object itemStack) {
public void sendRightClickWindowItemPacket(Object client, int windowId, int slot, Object itemStack) {
Session session = ((Client) client).getSession();
ItemStack item = (ItemStack) itemStack;
ClientWindowActionPacket windowActionPacket = new ClientWindowActionPacket(windowId, 6, slot, item, WindowAction.CLICK_ITEM, ClickItemParam.RIGHT_CLICK);

View File

@ -196,6 +196,16 @@ public class PacketHandler implements cn.serendipityr.EndMinecraftPlusV2.Multipl
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
public Double[] getSpawnPlayerLocation(Object packet) {
ServerSpawnPlayerPacket playerPacket = (ServerSpawnPlayerPacket) packet;