feat: update to 1.21.2-1.21.3 protocol

i tried compiling for 1.21.4, and it seemed to work, but most clones' viaversion is not that updated yet so i just stayed at 1.21.3
This commit is contained in:
ChomeNS
2024-12-07 14:15:46 +07:00
parent c2cdf8bcf9
commit c2bab61c09
6 changed files with 36 additions and 30 deletions

View File

@@ -12,10 +12,11 @@ import org.geysermc.mcprotocollib.network.tcp.TcpClientSession;
import org.geysermc.mcprotocollib.protocol.MinecraftProtocol;
import org.geysermc.mcprotocollib.protocol.data.game.entity.player.HandPreference;
import org.geysermc.mcprotocollib.protocol.data.game.setting.ChatVisibility;
import org.geysermc.mcprotocollib.protocol.data.game.setting.ParticleStatus;
import org.geysermc.mcprotocollib.protocol.data.game.setting.SkinPart;
import org.geysermc.mcprotocollib.protocol.packet.common.serverbound.ServerboundClientInformationPacket;
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.ClientboundLoginPacket;
import org.geysermc.mcprotocollib.protocol.packet.login.clientbound.ClientboundGameProfilePacket;
import org.geysermc.mcprotocollib.protocol.packet.login.clientbound.ClientboundLoginFinishedPacket;
import java.util.ArrayList;
import java.util.List;
@@ -204,15 +205,16 @@ public class Bot {
skinParts,
HandPreference.RIGHT_HAND,
false,
true // should this be false lol so only real players are displayed
true, // should this be false lol so only real players are displayed
ParticleStatus.ALL
)
);
if (options.creayun) chat.send("/server creative");
} else if (packet instanceof ClientboundGameProfilePacket) packetReceived((ClientboundGameProfilePacket) packet);
} else if (packet instanceof ClientboundLoginFinishedPacket) packetReceived((ClientboundLoginFinishedPacket) packet);
}
public void packetReceived(ClientboundGameProfilePacket packet) {
public void packetReceived(ClientboundLoginFinishedPacket packet) {
profile = packet.getProfile();
}

View File

@@ -1,5 +1,6 @@
package me.chayapak1.chomens_bot.plugins;
import org.cloudburstmc.math.vector.Vector3d;
import org.cloudburstmc.nbt.NbtMap;
import org.cloudburstmc.nbt.NbtMapBuilder;
import org.geysermc.mcprotocollib.network.Session;
@@ -323,15 +324,15 @@ public class CorePlugin extends PositionPlugin.Listener {
(short) 36,
new ItemStack(
bot.serverPluginsManager.hasPlugin(ServerPluginsManagerPlugin.EXTRAS) ?
514 /* repeating command block id */ :
395 /* command block id */,
528 /* repeating command block id */ :
409 /* command block id */,
64,
dataComponents
)
)
);
session.send(new ServerboundPlayerActionPacket(PlayerAction.START_DIGGING, temporaryBlockPosition, Direction.NORTH, 0));
session.send(new ServerboundUseItemOnPacket(temporaryBlockPosition, Direction.UP, Hand.MAIN_HAND, 0.5f, 0.5f, 0.5f, false, 1));
session.send(new ServerboundUseItemOnPacket(temporaryBlockPosition, Direction.UP, Hand.MAIN_HAND, 0.5f, 0.5f, 0.5f, false, false, 1));
}
public void packetReceived (ClientboundBlockUpdatePacket packet) {
@@ -418,19 +419,19 @@ public class CorePlugin extends PositionPlugin.Listener {
}
@Override
public void positionChange (Vector3i position) {
public void positionChange (Vector3d position) {
if (bot.position.isGoingDownFromHeightLimit) return;
from = Vector3i.from(
(int) (fromSize.getX() + Math.floor((double) bot.position.position.getX() / 16) * 16),
(int) (fromSize.getX() + Math.floor(bot.position.position.getX() / 16) * 16),
MathUtilities.clamp(fromSize.getY(), bot.world.minY, bot.world.maxY),
(int) (fromSize.getZ() + Math.floor((double) bot.position.position.getZ() / 16) * 16)
(int) (fromSize.getZ() + Math.floor(bot.position.position.getZ() / 16) * 16)
);
to = Vector3i.from(
(int) (toSize.getX() + Math.floor((double) bot.position.position.getX() / 16) * 16),
(int) (toSize.getX() + Math.floor(bot.position.position.getX() / 16) * 16),
MathUtilities.clamp(toSize.getY(), bot.world.minY, bot.world.maxY),
(int) (toSize.getZ() + Math.floor((double) bot.position.position.getZ() / 16) * 16)
(int) (toSize.getZ() + Math.floor(bot.position.position.getZ() / 16) * 16)
);
reset();

View File

@@ -1,5 +1,10 @@
package me.chayapak1.chomens_bot.plugins;
import me.chayapak1.chomens_bot.Bot;
import me.chayapak1.chomens_bot.data.PlayerEntry;
import me.chayapak1.chomens_bot.data.Rotation;
import org.cloudburstmc.math.vector.Vector3d;
import org.cloudburstmc.math.vector.Vector3f;
import org.geysermc.mcprotocollib.network.Session;
import org.geysermc.mcprotocollib.network.packet.Packet;
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.entity.ClientboundMoveEntityPosPacket;
@@ -10,11 +15,6 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.entity.play
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.entity.spawn.ClientboundAddEntityPacket;
import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.level.ServerboundAcceptTeleportationPacket;
import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundMovePlayerPosPacket;
import me.chayapak1.chomens_bot.Bot;
import me.chayapak1.chomens_bot.data.Rotation;
import me.chayapak1.chomens_bot.data.PlayerEntry;
import org.cloudburstmc.math.vector.Vector3f;
import org.cloudburstmc.math.vector.Vector3i;
import java.util.ArrayList;
import java.util.HashMap;
@@ -28,7 +28,7 @@ public class PositionPlugin extends Bot.Listener {
private final List<Listener> listeners = new ArrayList<>();
public Vector3i position = Vector3i.from(0, 0, 0);
public Vector3d position = Vector3d.from(0, 0, 0);
public boolean isGoingDownFromHeightLimit = false; // cool variable name
@@ -46,6 +46,7 @@ public class PositionPlugin extends Bot.Listener {
if (!bot.loggedIn || isGoingDownFromHeightLimit) return;
bot.session.send(new ServerboundMovePlayerPosPacket(
false,
false,
position.getX(),
position.getY(),
@@ -72,9 +73,10 @@ public class PositionPlugin extends Bot.Listener {
}
public void packetReceived (ClientboundPlayerPositionPacket packet) {
bot.session.send(new ServerboundAcceptTeleportationPacket(packet.getTeleportId()));
bot.session.send(new ServerboundAcceptTeleportationPacket(packet.getId()));
position = packet.getPosition();
position = Vector3i.from(packet.getX(), packet.getY(), packet.getZ());
for (Listener listener : listeners) { listener.positionChange(position); }
}
@@ -160,7 +162,7 @@ public class PositionPlugin extends Bot.Listener {
// for now this is used in CorePlugin when placing the command block
private void handleHeightLimit () {
final int y = position.getY();
final double y = position.getY();
final int minY = bot.world.minY;
final int maxY = bot.world.maxY;
@@ -176,7 +178,7 @@ public class PositionPlugin extends Bot.Listener {
isGoingDownFromHeightLimit = true;
final Vector3i newPosition = Vector3i.from(
final Vector3d newPosition = Vector3d.from(
position.getX(),
position.getY() - 2,
position.getZ()
@@ -197,6 +199,7 @@ public class PositionPlugin extends Bot.Listener {
}
bot.session.send(new ServerboundMovePlayerPosPacket(
false,
false,
newPosition.getX(),
newPosition.getY(),
@@ -237,7 +240,7 @@ public class PositionPlugin extends Bot.Listener {
public void addListener (Listener listener) { listeners.add(listener); }
public static class Listener {
public void positionChange (Vector3i position) {}
public void positionChange (Vector3d position) {}
public void playerMoved (PlayerEntry player, Vector3f position, Rotation rotation) {}
}
}

View File

@@ -1,5 +1,9 @@
package me.chayapak1.chomens_bot.plugins;
import me.chayapak1.chomens_bot.Bot;
import me.chayapak1.chomens_bot.Configuration;
import net.kyori.adventure.text.Component;
import org.cloudburstmc.math.vector.Vector3d;
import org.geysermc.mcprotocollib.network.Session;
import org.geysermc.mcprotocollib.network.event.session.DisconnectedEvent;
import org.geysermc.mcprotocollib.network.packet.Packet;
@@ -14,10 +18,6 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.inventory.C
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.level.ClientboundGameEventPacket;
import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundClientCommandPacket;
import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundContainerClosePacket;
import me.chayapak1.chomens_bot.Bot;
import me.chayapak1.chomens_bot.Configuration;
import net.kyori.adventure.text.Component;
import org.cloudburstmc.math.vector.Vector3i;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
@@ -81,7 +81,7 @@ public class SelfCarePlugin extends Bot.Listener {
bot.position.addListener(new PositionPlugin.Listener() {
@Override
public void positionChange(Vector3i position) {
public void positionChange(Vector3d position) {
SelfCarePlugin.this.positionChange();
}
});