From ed70ecc579da331f997c0074ad95e162eca9207b Mon Sep 17 00:00:00 2001 From: AlexProgrammerDE <40795980+AlexProgrammerDE@users.noreply.github.com> Date: Tue, 27 Feb 2024 22:07:34 +0100 Subject: [PATCH] Fix a few things as well as enable forwarding for now --- gradle/libs.versions.toml | 2 +- .../com/soulfiremc/server/plugins/POVServer.java | 13 ++++++++++--- .../server/protocol/bot/SessionDataManager.java | 7 +++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 755d8cdb4..55761af11 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -51,7 +51,7 @@ flatlaf-fonts-inter = { module = "com.formdev:flatlaf-fonts-inter", version.ref flatlaf-fonts-jetbrains-mono = { module = "com.formdev:flatlaf-fonts-jetbrains-mono", version.ref = "flatlaf-jetbrains-mono-version" } xchart = "org.knowm.xchart:xchart:3.8.7" miglayout-swing = "com.miglayout:miglayout-swing:11.3" -mcprotocollib = "com.github.GeyserMC:MCProtocolLib:2a76b37" +mcprotocollib = "com.github.GeyserMC:MCProtocolLib:eacfb2d" velocity-native = "com.velocitypowered:velocity-native:3.1.2-SNAPSHOT" netty-raknet = "org.cloudburstmc.netty:netty-transport-raknet:1.0.0.CR1-SNAPSHOT" via-version = { module = "com.viaversion:viaversion-common", version.ref = "via-version" } diff --git a/src/main/java/com/soulfiremc/server/plugins/POVServer.java b/src/main/java/com/soulfiremc/server/plugins/POVServer.java index a637d1be4..e6c79db49 100644 --- a/src/main/java/com/soulfiremc/server/plugins/POVServer.java +++ b/src/main/java/com/soulfiremc/server/plugins/POVServer.java @@ -49,6 +49,7 @@ import com.github.steveice10.mc.protocol.packet.common.clientbound.ClientboundKeepAlivePacket; import com.github.steveice10.mc.protocol.packet.common.clientbound.ClientboundPingPacket; import com.github.steveice10.mc.protocol.packet.common.clientbound.ClientboundUpdateTagsPacket; +import com.github.steveice10.mc.protocol.packet.common.serverbound.ServerboundKeepAlivePacket; import com.github.steveice10.mc.protocol.packet.common.serverbound.ServerboundPongPacket; import com.github.steveice10.mc.protocol.packet.configuration.clientbound.ClientboundFinishConfigurationPacket; import com.github.steveice10.mc.protocol.packet.configuration.clientbound.ClientboundRegistryDataPacket; @@ -108,6 +109,7 @@ import com.soulfiremc.server.settings.lib.property.BooleanProperty; import com.soulfiremc.server.settings.lib.property.IntProperty; import com.soulfiremc.server.settings.lib.property.Property; +import com.soulfiremc.server.util.TimeUtil; import com.soulfiremc.util.PortHelper; import io.netty.buffer.Unpooled; import java.util.ArrayList; @@ -132,6 +134,7 @@ public class POVServer implements InternalPlugin { private static final List> NOT_SYNCED = List.of( ClientboundKeepAlivePacket.class, + ServerboundKeepAlivePacket.class, ClientboundPingPacket.class, ServerboundPongPacket.class, ClientboundCustomPayloadPacket.class, @@ -255,7 +258,7 @@ public POVServerInstance(int port, AttackManager attackManager) { for (var i = 0; i < sectionCount; i++) { var chunk = DataPalette.createForChunk(); chunk.set(0, 0, 0, 0); - var biome = DataPalette.createForBiome(6); + var biome = DataPalette.createForBiome(); biome.set(0, 0, 0, 0); SessionDataManager.writeChunkSection( buf, @@ -381,6 +384,7 @@ public void packetReceived(Session session, Packet packet) { }); } } else if (!NOT_SYNCED.contains(packet.getClass()) && enableForwarding) { + System.out.println(packet); // MC Client -> Server of the bot botConnection.session().send(packet); } @@ -669,7 +673,7 @@ private void syncBotAndUser() { session.send( new ClientboundContainerSetContentPacket( container.id(), - ++stateIndex, + stateIndex++, Arrays.stream( sessionDataManager .inventoryManager() @@ -791,7 +795,10 @@ private void syncBotAndUser() { .toList())); } - // enableForwarding = true; + // Give the client a few moments to process the packets + TimeUtil.waitTime(2, TimeUnit.SECONDS); + + enableForwarding = true; } }); } diff --git a/src/main/java/com/soulfiremc/server/protocol/bot/SessionDataManager.java b/src/main/java/com/soulfiremc/server/protocol/bot/SessionDataManager.java index 4b356063e..4c9367c05 100644 --- a/src/main/java/com/soulfiremc/server/protocol/bot/SessionDataManager.java +++ b/src/main/java/com/soulfiremc/server/protocol/bot/SessionDataManager.java @@ -117,7 +117,6 @@ import com.soulfiremc.server.data.EntityType; import com.soulfiremc.server.data.ModifierOperation; import com.soulfiremc.server.protocol.BotConnection; -import com.soulfiremc.server.protocol.bot.block.GlobalBlockPalette; import com.soulfiremc.server.protocol.bot.container.InventoryManager; import com.soulfiremc.server.protocol.bot.container.SFItemStack; import com.soulfiremc.server.protocol.bot.container.WindowContainer; @@ -726,7 +725,7 @@ public void onChunkData(ClientboundChunksBiomesPacket packet) { try { for (var i = 0; chunkData.getSectionCount() > i; i++) { var section = chunkData.getSection(i); - var biomePalette = codec.readDataPalette(buf, PaletteType.BIOME, biomesEntryBitsSize); + var biomePalette = codec.readDataPalette(buf, PaletteType.BIOME); chunkData.setSection( i, new ChunkSection(section.getBlockCount(), section.getChunkData(), biomePalette)); } @@ -1125,8 +1124,8 @@ public ChunkSection readChunkSection(ByteBuf buf, MinecraftCodecHelper codec) th var chunkPalette = codec.readDataPalette( - buf, PaletteType.CHUNK, GlobalBlockPalette.INSTANCE.blockBitsPerEntry()); - var biomePalette = codec.readDataPalette(buf, PaletteType.BIOME, biomesEntryBitsSize); + buf, PaletteType.CHUNK); + var biomePalette = codec.readDataPalette(buf, PaletteType.BIOME); return new ChunkSection(blockCount, chunkPalette, biomePalette); }