diff --git a/connector/src/main/java/org/geysermc/connector/network/session/cache/ChunkCache.java b/connector/src/main/java/org/geysermc/connector/network/session/cache/ChunkCache.java index e8396e06e..a4c466973 100644 --- a/connector/src/main/java/org/geysermc/connector/network/session/cache/ChunkCache.java +++ b/connector/src/main/java/org/geysermc/connector/network/session/cache/ChunkCache.java @@ -79,7 +79,7 @@ public class ChunkCache { Position blockPosition = chunkPosition.getChunkBlock(position.getX(), position.getY(), position.getZ()); if (chunk != null) { BlockState blockState = chunk.getBlocks().get(blockPosition.getX(), blockPosition.getY(), blockPosition.getZ()); - return TranslatorsInit.getItemTranslator().getBedrockBlock(blockState); + return TranslatorsInit.getBlockTranslator().getBedrockBlock(blockState); } return BedrockItem.AIR; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java b/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java index 9f791d272..e7150acc3 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java @@ -73,6 +73,7 @@ import org.geysermc.connector.network.translators.bedrock.BedrockCommandRequestT import org.geysermc.connector.network.translators.bedrock.BedrockMobEquipmentTranslator; import org.geysermc.connector.network.translators.bedrock.BedrockMovePlayerTranslator; import org.geysermc.connector.network.translators.bedrock.BedrockTextTranslator; +import org.geysermc.connector.network.translators.block.BlockTranslator; import org.geysermc.connector.network.translators.inventory.GenericInventoryTranslator; import org.geysermc.connector.network.translators.inventory.InventoryTranslator; import org.geysermc.connector.network.translators.item.ItemTranslator; @@ -117,6 +118,9 @@ public class TranslatorsInit { @Getter private static ItemTranslator itemTranslator; + @Getter + private static BlockTranslator blockTranslator; + @Getter private static Map<WindowType, InventoryTranslator> inventoryTranslators = new HashMap<WindowType, InventoryTranslator>(); @@ -186,6 +190,7 @@ public class TranslatorsInit { Registry.registerBedrock(MovePlayerPacket.class, new BedrockMovePlayerTranslator()); itemTranslator = new ItemTranslator(); + blockTranslator = new BlockTranslator(); registerInventoryTranslators(); } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/block/BlockTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/block/BlockTranslator.java new file mode 100644 index 000000000..fe4accf56 --- /dev/null +++ b/connector/src/main/java/org/geysermc/connector/network/translators/block/BlockTranslator.java @@ -0,0 +1,20 @@ +package org.geysermc.connector.network.translators.block; + +import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; +import com.github.steveice10.mc.protocol.data.game.world.block.BlockState; +import org.geysermc.connector.network.translators.item.BedrockItem; +import org.geysermc.connector.utils.Remapper; + +// Class for future expansion +public class BlockTranslator { + + public BedrockItem getBedrockBlock(BlockState state) { + BedrockItem bedrockItem = Remapper.BLOCK_REMAPPER.convertToBedrockB(new ItemStack(state.getId())); + if (bedrockItem == null) { + // GeyserLogger.DEFAULT.debug("Missing mapping for java block " + state.getId()); + return BedrockItem.AIR; + } + + return bedrockItem; + } +} diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/block/ColoredBlock.java b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/ColoredBlock.java similarity index 95% rename from connector/src/main/java/org/geysermc/connector/network/translators/item/block/ColoredBlock.java rename to connector/src/main/java/org/geysermc/connector/network/translators/block/type/ColoredBlock.java index c1686eae3..ec869fa0e 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/block/ColoredBlock.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/ColoredBlock.java @@ -23,7 +23,7 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.connector.network.translators.item.block; +package org.geysermc.connector.network.translators.block.type; public enum ColoredBlock { diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/type/DyeColor.java b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/DyeColor.java similarity index 96% rename from connector/src/main/java/org/geysermc/connector/network/translators/item/type/DyeColor.java rename to connector/src/main/java/org/geysermc/connector/network/translators/block/type/DyeColor.java index 1d794d718..4ba713d5e 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/type/DyeColor.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/DyeColor.java @@ -23,7 +23,7 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.connector.network.translators.item.type; +package org.geysermc.connector.network.translators.block.type; import lombok.Getter; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/type/StoneType.java b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/StoneType.java similarity index 95% rename from connector/src/main/java/org/geysermc/connector/network/translators/item/type/StoneType.java rename to connector/src/main/java/org/geysermc/connector/network/translators/block/type/StoneType.java index 7888bd607..db66eac82 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/type/StoneType.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/StoneType.java @@ -23,7 +23,7 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.connector.network.translators.item.type; +package org.geysermc.connector.network.translators.block.type; import lombok.Getter; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/block/WoodBlock.java b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/WoodBlock.java similarity index 95% rename from connector/src/main/java/org/geysermc/connector/network/translators/item/block/WoodBlock.java rename to connector/src/main/java/org/geysermc/connector/network/translators/block/type/WoodBlock.java index 0684cf3fa..f4b9d0f73 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/block/WoodBlock.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/WoodBlock.java @@ -23,7 +23,7 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.connector.network.translators.item.block; +package org.geysermc.connector.network.translators.block.type; public enum WoodBlock { diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/type/WoodType.java b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/WoodType.java similarity index 95% rename from connector/src/main/java/org/geysermc/connector/network/translators/item/type/WoodType.java rename to connector/src/main/java/org/geysermc/connector/network/translators/block/type/WoodType.java index d490f3f5f..a2cdce730 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/type/WoodType.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/block/type/WoodType.java @@ -23,7 +23,7 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.connector.network.translators.item.type; +package org.geysermc.connector.network.translators.block.type; import lombok.Getter; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/CommonItem.java b/connector/src/main/java/org/geysermc/connector/network/translators/item/CommonItem.java deleted file mode 100644 index fdcbaceef..000000000 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/CommonItem.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.geysermc.connector.network.translators.item; - -import lombok.Getter; - -@Getter -public class CommonItem { - - private JavaItem java; - private BedrockItem bedrock; -} diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/ItemTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/item/ItemTranslator.java index 01d2fcf28..ec047c834 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/ItemTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/item/ItemTranslator.java @@ -26,7 +26,6 @@ package org.geysermc.connector.network.translators.item; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; -import com.github.steveice10.mc.protocol.data.game.world.block.BlockState; import com.github.steveice10.mc.protocol.data.message.Message; import com.github.steveice10.opennbt.tag.builtin.ByteArrayTag; import com.github.steveice10.opennbt.tag.builtin.ByteTag; @@ -85,7 +84,6 @@ public class ItemTranslator { return bedrockItem; } - public JavaItem getJavaItem(ItemData data) { JavaItem javaItem = Remapper.ITEM_REMAPPER.convertToJava(data); if (javaItem == null) { @@ -96,16 +94,6 @@ public class ItemTranslator { return javaItem; } - public BedrockItem getBedrockBlock(BlockState state) { - BedrockItem bedrockItem = Remapper.BLOCK_REMAPPER.convertToBedrockB(new ItemStack(state.getId())); - if (bedrockItem == null) { - // GeyserLogger.DEFAULT.debug("Missing mapping for java block " + state.getId()); - return BedrockItem.AIR; - } - - return bedrockItem; - } - private CompoundTag translateToJavaNBT(com.nukkitx.nbt.tag.CompoundTag tag) { CompoundTag javaTag = new CompoundTag(tag.getName()); Map<String, Tag> javaValue = javaTag.getValue(); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaBlockChangeTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaBlockChangeTranslator.java index 417ac9ee3..63d1b927d 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaBlockChangeTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaBlockChangeTranslator.java @@ -21,7 +21,7 @@ public class JavaBlockChangeTranslator extends PacketTranslator<ServerBlockChang record.getPosition().getY(), record.getPosition().getZ())); - BedrockItem bedrockItem = TranslatorsInit.getItemTranslator().getBedrockBlock(record.getBlock()); + BedrockItem bedrockItem = TranslatorsInit.getBlockTranslator().getBedrockBlock(record.getBlock()); updateBlockPacket.setRuntimeId(GlobalBlockPalette.getOrCreateRuntimeId(bedrockItem.hashCode())); session.getUpstream().sendPacket(updateBlockPacket); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaMultiBlockChangeTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaMultiBlockChangeTranslator.java index ec8748bd4..8dd28dea6 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaMultiBlockChangeTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaMultiBlockChangeTranslator.java @@ -47,7 +47,7 @@ public class JavaMultiBlockChangeTranslator extends PacketTranslator<ServerMulti record.getPosition().getY(), record.getPosition().getZ())); - BedrockItem bedrockItem = TranslatorsInit.getItemTranslator().getBedrockBlock(record.getBlock()); + BedrockItem bedrockItem = TranslatorsInit.getBlockTranslator().getBedrockBlock(record.getBlock()); updateBlockPacket.setRuntimeId(GlobalBlockPalette.getOrCreateRuntimeId(bedrockItem.hashCode())); session.getUpstream().sendPacket(updateBlockPacket); diff --git a/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java b/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java index b4b20e699..770cc50ba 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java +++ b/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java @@ -34,7 +34,7 @@ public class ChunkUtils { for (int y = 0; y < 16; y++) { for (int z = 0; z < 16; z++) { BlockState block = storage.get(x, y, z); - BedrockItem bedrockBlock = TranslatorsInit.getItemTranslator().getBedrockBlock(block); + BedrockItem bedrockBlock = TranslatorsInit.getBlockTranslator().getBedrockBlock(block); section.getBlockStorageArray()[0].setFullBlock(ChunkSection.blockPosition(x, y, z), bedrockBlock.getId() << 4 | bedrockBlock.getData()); diff --git a/connector/src/main/java/org/geysermc/connector/utils/Remapper.java b/connector/src/main/java/org/geysermc/connector/utils/Remapper.java index 98d6faa1f..39182d37c 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/Remapper.java +++ b/connector/src/main/java/org/geysermc/connector/utils/Remapper.java @@ -4,11 +4,11 @@ import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; import com.nukkitx.protocol.bedrock.data.ItemData; import org.geysermc.connector.network.translators.item.BedrockItem; import org.geysermc.connector.network.translators.item.JavaItem; -import org.geysermc.connector.network.translators.item.block.ColoredBlock; -import org.geysermc.connector.network.translators.item.type.DyeColor; -import org.geysermc.connector.network.translators.item.type.StoneType; -import org.geysermc.connector.network.translators.item.block.WoodBlock; -import org.geysermc.connector.network.translators.item.type.WoodType; +import org.geysermc.connector.network.translators.block.type.ColoredBlock; +import org.geysermc.connector.network.translators.block.type.DyeColor; +import org.geysermc.connector.network.translators.block.type.StoneType; +import org.geysermc.connector.network.translators.block.type.WoodBlock; +import org.geysermc.connector.network.translators.block.type.WoodType; import java.util.HashMap; import java.util.Map;