forked from GeyserMC/Geyser
Block changes work
This commit is contained in:
parent
3f7dc3170e
commit
77c8acefdb
2 changed files with 33 additions and 8 deletions
|
@ -54,10 +54,7 @@ import com.github.steveice10.mc.protocol.packet.ingame.server.scoreboard.ServerU
|
||||||
import com.github.steveice10.mc.protocol.packet.ingame.server.window.ServerOpenWindowPacket;
|
import com.github.steveice10.mc.protocol.packet.ingame.server.window.ServerOpenWindowPacket;
|
||||||
import com.github.steveice10.mc.protocol.packet.ingame.server.window.ServerSetSlotPacket;
|
import com.github.steveice10.mc.protocol.packet.ingame.server.window.ServerSetSlotPacket;
|
||||||
import com.github.steveice10.mc.protocol.packet.ingame.server.window.ServerWindowItemsPacket;
|
import com.github.steveice10.mc.protocol.packet.ingame.server.window.ServerWindowItemsPacket;
|
||||||
import com.github.steveice10.mc.protocol.packet.ingame.server.world.ServerChunkDataPacket;
|
import com.github.steveice10.mc.protocol.packet.ingame.server.world.*;
|
||||||
import com.github.steveice10.mc.protocol.packet.ingame.server.world.ServerNotifyClientPacket;
|
|
||||||
import com.github.steveice10.mc.protocol.packet.ingame.server.world.ServerSpawnPositionPacket;
|
|
||||||
import com.github.steveice10.mc.protocol.packet.ingame.server.world.ServerUpdateTimePacket;
|
|
||||||
import com.nukkitx.nbt.CompoundTagBuilder;
|
import com.nukkitx.nbt.CompoundTagBuilder;
|
||||||
import com.nukkitx.nbt.NbtUtils;
|
import com.nukkitx.nbt.NbtUtils;
|
||||||
import com.nukkitx.nbt.stream.NBTOutputStream;
|
import com.nukkitx.nbt.stream.NBTOutputStream;
|
||||||
|
@ -102,13 +99,10 @@ import org.geysermc.connector.network.translators.java.entity.spawn.JavaSpawnPla
|
||||||
import org.geysermc.connector.network.translators.java.scoreboard.JavaDisplayScoreboardTranslator;
|
import org.geysermc.connector.network.translators.java.scoreboard.JavaDisplayScoreboardTranslator;
|
||||||
import org.geysermc.connector.network.translators.java.scoreboard.JavaScoreboardObjectiveTranslator;
|
import org.geysermc.connector.network.translators.java.scoreboard.JavaScoreboardObjectiveTranslator;
|
||||||
import org.geysermc.connector.network.translators.java.scoreboard.JavaUpdateScoreTranslator;
|
import org.geysermc.connector.network.translators.java.scoreboard.JavaUpdateScoreTranslator;
|
||||||
import org.geysermc.connector.network.translators.java.world.JavaChunkDataTranslator;
|
import org.geysermc.connector.network.translators.java.world.*;
|
||||||
import org.geysermc.connector.network.translators.java.world.JavaNotifyClientTranslator;
|
|
||||||
import org.geysermc.connector.network.translators.java.window.JavaOpenWindowTranslator;
|
import org.geysermc.connector.network.translators.java.window.JavaOpenWindowTranslator;
|
||||||
import org.geysermc.connector.network.translators.java.window.JavaSetSlotTranslator;
|
import org.geysermc.connector.network.translators.java.window.JavaSetSlotTranslator;
|
||||||
import org.geysermc.connector.network.translators.java.JavaTitleTranslator;
|
import org.geysermc.connector.network.translators.java.JavaTitleTranslator;
|
||||||
import org.geysermc.connector.network.translators.java.world.JavaSpawnPositionTranslator;
|
|
||||||
import org.geysermc.connector.network.translators.java.world.JavaUpdateTimeTranslator;
|
|
||||||
import org.geysermc.connector.network.translators.java.window.JavaWindowItemsTranslator;
|
import org.geysermc.connector.network.translators.java.window.JavaWindowItemsTranslator;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
@ -178,6 +172,7 @@ public class TranslatorsInit {
|
||||||
Registry.registerJava(ServerScoreboardObjectivePacket.class, new JavaScoreboardObjectiveTranslator());
|
Registry.registerJava(ServerScoreboardObjectivePacket.class, new JavaScoreboardObjectiveTranslator());
|
||||||
Registry.registerJava(ServerDisplayScoreboardPacket.class, new JavaDisplayScoreboardTranslator());
|
Registry.registerJava(ServerDisplayScoreboardPacket.class, new JavaDisplayScoreboardTranslator());
|
||||||
Registry.registerJava(ServerUpdateScorePacket.class, new JavaUpdateScoreTranslator());
|
Registry.registerJava(ServerUpdateScorePacket.class, new JavaUpdateScoreTranslator());
|
||||||
|
Registry.registerJava(ServerBlockChangePacket.class, new JavaBlockChangeTranslator());
|
||||||
|
|
||||||
Registry.registerBedrock(AnimatePacket.class, new BedrockAnimateTranslator());
|
Registry.registerBedrock(AnimatePacket.class, new BedrockAnimateTranslator());
|
||||||
Registry.registerBedrock(CommandRequestPacket.class, new BedrockCommandRequestTranslator());
|
Registry.registerBedrock(CommandRequestPacket.class, new BedrockCommandRequestTranslator());
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package org.geysermc.connector.network.translators.java.world;
|
||||||
|
|
||||||
|
import com.flowpowered.math.vector.Vector3i;
|
||||||
|
import com.github.steveice10.mc.protocol.data.game.world.block.BlockChangeRecord;
|
||||||
|
import com.github.steveice10.mc.protocol.packet.ingame.server.world.ServerBlockChangePacket;
|
||||||
|
import com.nukkitx.protocol.bedrock.packet.UpdateBlockPacket;
|
||||||
|
import org.geysermc.connector.network.session.GeyserSession;
|
||||||
|
import org.geysermc.connector.network.translators.PacketTranslator;
|
||||||
|
import org.geysermc.connector.network.translators.item.BedrockItem;
|
||||||
|
import org.geysermc.connector.network.translators.item.ItemTranslator;
|
||||||
|
|
||||||
|
public class JavaBlockChangeTranslator extends PacketTranslator<ServerBlockChangePacket> {
|
||||||
|
@Override
|
||||||
|
public void translate(ServerBlockChangePacket packet, GeyserSession session) {
|
||||||
|
UpdateBlockPacket pack = new UpdateBlockPacket();
|
||||||
|
|
||||||
|
BlockChangeRecord record = packet.getRecord();
|
||||||
|
|
||||||
|
BedrockItem i = new ItemTranslator().getBedrockBlock(record.getBlock());
|
||||||
|
|
||||||
|
pack.setDataLayer(0);
|
||||||
|
pack.setRuntimeId(i.getId() >> 4 | i.getData());
|
||||||
|
pack.setBlockPosition(new Vector3i(
|
||||||
|
record.getPosition().getX()
|
||||||
|
, record.getPosition().getY()
|
||||||
|
, record.getPosition().getZ()));
|
||||||
|
|
||||||
|
session.getUpstream().sendPacket(pack);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue