Don't attempt to re-request structure size

This commit is contained in:
onebeastchris 2024-03-24 13:02:21 +01:00
parent c9d4b9a797
commit 76a5608851
3 changed files with 11 additions and 8 deletions

View File

@ -36,11 +36,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
import org.cloudburstmc.math.vector.Vector3i;
import org.cloudburstmc.nbt.NbtMap;
import org.cloudburstmc.nbt.NbtMapBuilder;
import org.geysermc.erosion.packet.backendbound.BackendboundBatchBlockEntityPacket;
import org.geysermc.erosion.packet.backendbound.BackendboundBatchBlockRequestPacket;
import org.geysermc.erosion.packet.backendbound.BackendboundBlockEntityPacket;
import org.geysermc.erosion.packet.backendbound.BackendboundBlockRequestPacket;
import org.geysermc.erosion.packet.backendbound.BackendboundPickBlockPacket;
import org.geysermc.erosion.packet.backendbound.*;
import org.geysermc.erosion.util.BlockPositionIterator;
import org.geysermc.erosion.util.LecternUtils;
import org.geysermc.geyser.session.GeyserSession;

View File

@ -30,6 +30,7 @@ import com.github.steveice10.mc.protocol.data.game.inventory.UpdateStructureBloc
import com.github.steveice10.mc.protocol.data.game.level.block.StructureMirror;
import com.github.steveice10.mc.protocol.data.game.level.block.StructureRotation;
import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundSetStructureBlockPacket;
import org.cloudburstmc.math.vector.Vector3i;
import org.cloudburstmc.nbt.NbtList;
import org.cloudburstmc.nbt.NbtMap;
import org.cloudburstmc.nbt.NbtMapBuilder;
@ -38,7 +39,6 @@ import org.cloudburstmc.protocol.bedrock.data.structure.StructureTemplateRequest
import org.cloudburstmc.protocol.bedrock.data.structure.StructureTemplateResponseType;
import org.cloudburstmc.protocol.bedrock.packet.StructureTemplateDataRequestPacket;
import org.cloudburstmc.protocol.bedrock.packet.StructureTemplateDataResponsePacket;
import org.geysermc.geyser.GeyserImpl;
import org.geysermc.geyser.session.GeyserSession;
import org.geysermc.geyser.translator.protocol.PacketTranslator;
import org.geysermc.geyser.translator.protocol.Translator;
@ -67,8 +67,11 @@ public class BedrockStructureTemplateDataRequestTranslator extends PacketTransla
@Override
public void translate(GeyserSession session, StructureTemplateDataRequestPacket packet) {
GeyserImpl.getInstance().getLogger().error(packet.toString());
if (packet.getOperation().equals(StructureTemplateRequestOperation.QUERY_SAVED_STRUCTURE)) {
// If we send a load packet to the Java server when the structure size is known, we place the structure.
if (!packet.getSettings().getSize().equals(Vector3i.ZERO)) {
return;
}
session.setCurrentStructureBlock(packet.getPosition());
// Request a "load" from Java server so it sends us the structures size :p

View File

@ -130,11 +130,15 @@ public class JavaBlockEntityDataTranslator extends PacketTranslator<ClientboundB
return;
}
int x = (int) map.get("sizeX").getValue();
int y = (int) map.get("sizeY").getValue();
int z = (int) map.get("sizeZ").getValue();
StructureTemplateDataResponsePacket responsePacket = new StructureTemplateDataResponsePacket();
responsePacket.setName((String) map.get("name").getValue());
responsePacket.setSave(true);
responsePacket.setTag(EMPTY_STRUCTURE_DATA.toBuilder()
.putList("size", NbtType.INT, (int) map.get("sizeX").getValue(), (int) map.get("sizeY").getValue(), (int) map.get("sizeZ").getValue())
.putList("size", NbtType.INT, x, y, z)
.build());
responsePacket.setType(StructureTemplateResponseType.QUERY);
GeyserImpl.getInstance().getLogger().info(responsePacket.toString());