diff --git a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotPingPassthrough.java b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotPingPassthrough.java index c34d96db2..23e9554dc 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotPingPassthrough.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotPingPassthrough.java @@ -25,13 +25,13 @@ package org.geysermc.platform.spigot; -import com.github.steveice10.mc.protocol.MinecraftConstants; import lombok.AllArgsConstructor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.util.CachedServerIcon; import org.geysermc.connector.common.ping.GeyserPingInfo; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.ping.IGeyserPingPassthrough; import javax.annotation.Nonnull; @@ -52,7 +52,7 @@ public class GeyserSpigotPingPassthrough implements IGeyserPingPassthrough { Bukkit.getPluginManager().callEvent(event); GeyserPingInfo geyserPingInfo = new GeyserPingInfo(event.getMotd(), new GeyserPingInfo.Players(event.getMaxPlayers(), event.getNumPlayers()), - new GeyserPingInfo.Version(Bukkit.getVersion(), MinecraftConstants.PROTOCOL_VERSION) // thanks Spigot for not exposing this, just default to latest + new GeyserPingInfo.Version(Bukkit.getVersion(), MinecraftProtocol.getJavaProtocolVersion()) // thanks Spigot for not exposing this, just default to latest ); Bukkit.getOnlinePlayers().stream().map(Player::getName).forEach(geyserPingInfo.getPlayerList()::add); return geyserPingInfo; diff --git a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotPlugin.java b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotPlugin.java index 38d3fb6c6..c7b732fe9 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotPlugin.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotPlugin.java @@ -25,7 +25,6 @@ package org.geysermc.platform.spigot; -import com.github.steveice10.mc.protocol.MinecraftConstants; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.data.MappingData; import com.viaversion.viaversion.api.protocol.ProtocolPathEntry; @@ -39,6 +38,7 @@ import org.geysermc.connector.command.CommandManager; import org.geysermc.connector.common.AuthType; import org.geysermc.connector.configuration.GeyserConfiguration; import org.geysermc.connector.dump.BootstrapDumpInfo; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.translators.world.WorldManager; import org.geysermc.connector.ping.GeyserLegacyPingPassthrough; import org.geysermc.connector.ping.IGeyserPingPassthrough; @@ -342,7 +342,7 @@ public class GeyserSpigotPlugin extends JavaPlugin implements GeyserBootstrap { */ private boolean isViaVersionNeeded() { ProtocolVersion serverVersion = getServerProtocolVersion(); - List protocolList = Via.getManager().getProtocolManager().getProtocolPath(MinecraftConstants.PROTOCOL_VERSION, + List protocolList = Via.getManager().getProtocolManager().getProtocolPath(MinecraftProtocol.getJavaProtocolVersion(), serverVersion.getVersion()); if (protocolList == null) { // No translation needed! diff --git a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserSpigot1_11CraftingListener.java b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserSpigot1_11CraftingListener.java index 1fa5ef87b..726ffa66a 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserSpigot1_11CraftingListener.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserSpigot1_11CraftingListener.java @@ -25,7 +25,6 @@ package org.geysermc.platform.spigot.world; -import com.github.steveice10.mc.protocol.MinecraftConstants; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; import com.github.steveice10.mc.protocol.data.game.recipe.Ingredient; import com.github.steveice10.mc.protocol.data.game.recipe.RecipeType; @@ -48,6 +47,7 @@ import org.bukkit.inventory.Recipe; import org.bukkit.inventory.ShapedRecipe; import org.bukkit.inventory.ShapelessRecipe; import org.geysermc.connector.GeyserConnector; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.item.ItemTranslator; import org.geysermc.connector.utils.InventoryUtils; @@ -73,7 +73,7 @@ public class GeyserSpigot1_11CraftingListener implements Listener { public GeyserSpigot1_11CraftingListener(GeyserConnector connector) { this.connector = connector; this.mappingData1_12to1_13 = Via.getManager().getProtocolManager().getProtocol(Protocol1_13To1_12_2.class).getMappingData(); - this.protocolList = Via.getManager().getProtocolManager().getProtocolPath(MinecraftConstants.PROTOCOL_VERSION, + this.protocolList = Via.getManager().getProtocolManager().getProtocolPath(MinecraftProtocol.getJavaProtocolVersion(), ProtocolVersion.v1_13.getVersion()); } diff --git a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/manager/GeyserSpigotLegacyNativeWorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/manager/GeyserSpigotLegacyNativeWorldManager.java index 253caf670..b187ab358 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/manager/GeyserSpigotLegacyNativeWorldManager.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/manager/GeyserSpigotLegacyNativeWorldManager.java @@ -25,7 +25,6 @@ package org.geysermc.platform.spigot.world.manager; -import com.github.steveice10.mc.protocol.MinecraftConstants; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.data.MappingData; import com.viaversion.viaversion.api.protocol.ProtocolPathEntry; @@ -33,6 +32,7 @@ import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; import it.unimi.dsi.fastutil.ints.Int2IntMap; import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; import it.unimi.dsi.fastutil.ints.IntList; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.platform.spigot.GeyserSpigotPlugin; @@ -50,7 +50,7 @@ public class GeyserSpigotLegacyNativeWorldManager extends GeyserSpigotNativeWorl IntList allBlockStates = adapter.getAllBlockStates(); oldToNewBlockId = new Int2IntOpenHashMap(allBlockStates.size()); ProtocolVersion serverVersion = plugin.getServerProtocolVersion(); - List protocolList = Via.getManager().getProtocolManager().getProtocolPath(MinecraftConstants.PROTOCOL_VERSION, + List protocolList = Via.getManager().getProtocolManager().getProtocolPath(MinecraftProtocol.getJavaProtocolVersion(), serverVersion.getVersion()); for (int oldBlockId : allBlockStates) { int newBlockId = oldBlockId; diff --git a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/manager/GeyserSpigotWorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/manager/GeyserSpigotWorldManager.java index a0e97c51a..70ee86530 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/manager/GeyserSpigotWorldManager.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/manager/GeyserSpigotWorldManager.java @@ -25,7 +25,6 @@ package org.geysermc.platform.spigot.world.manager; -import com.github.steveice10.mc.protocol.MinecraftConstants; import com.nukkitx.math.vector.Vector3i; import com.nukkitx.nbt.NbtMap; import com.nukkitx.nbt.NbtMapBuilder; @@ -39,6 +38,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BookMeta; import org.bukkit.plugin.Plugin; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.inventory.translators.LecternInventoryTranslator; import org.geysermc.connector.network.translators.world.GeyserWorldManager; @@ -57,7 +57,7 @@ public class GeyserSpigotWorldManager extends GeyserWorldManager { /** * The current client protocol version for ViaVersion usage. */ - protected static final int CLIENT_PROTOCOL_VERSION = MinecraftConstants.PROTOCOL_VERSION; + protected static final int CLIENT_PROTOCOL_VERSION = MinecraftProtocol.getJavaProtocolVersion(); private final Plugin plugin; diff --git a/bootstrap/sponge/src/main/java/org/geysermc/platform/sponge/GeyserSpongePingPassthrough.java b/bootstrap/sponge/src/main/java/org/geysermc/platform/sponge/GeyserSpongePingPassthrough.java index 8d63fca6e..a516bff8c 100644 --- a/bootstrap/sponge/src/main/java/org/geysermc/platform/sponge/GeyserSpongePingPassthrough.java +++ b/bootstrap/sponge/src/main/java/org/geysermc/platform/sponge/GeyserSpongePingPassthrough.java @@ -25,8 +25,8 @@ package org.geysermc.platform.sponge; -import com.github.steveice10.mc.protocol.MinecraftConstants; import org.geysermc.connector.common.ping.GeyserPingInfo; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.ping.IGeyserPingPassthrough; import org.spongepowered.api.MinecraftVersion; import org.spongepowered.api.Sponge; @@ -73,7 +73,7 @@ public class GeyserSpongePingPassthrough implements IGeyserPingPassthrough { ), new GeyserPingInfo.Version( event.getResponse().getVersion().getName(), - MinecraftConstants.PROTOCOL_VERSION) // thanks for also not exposing this sponge + MinecraftProtocol.getJavaProtocolVersion()) // thanks for also not exposing this sponge ); event.getResponse().getPlayers().get().getProfiles().stream() .map(GameProfile::getName) diff --git a/connector/src/main/java/org/geysermc/connector/GeyserConnector.java b/connector/src/main/java/org/geysermc/connector/GeyserConnector.java index 21f457a62..fd2432a4c 100644 --- a/connector/src/main/java/org/geysermc/connector/GeyserConnector.java +++ b/connector/src/main/java/org/geysermc/connector/GeyserConnector.java @@ -28,7 +28,6 @@ package org.geysermc.connector; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import com.github.steveice10.mc.protocol.MinecraftConstants; import com.github.steveice10.packetlib.tcp.TcpSession; import com.nukkitx.network.raknet.RakNetConstants; import com.nukkitx.network.util.EventLoops; @@ -93,7 +92,6 @@ public class GeyserConnector { public static final String NAME = "Geyser"; public static final String GIT_VERSION = "DEV"; // A fallback for running in IDEs public static final String VERSION = "DEV"; // A fallback for running in IDEs - public static final String MINECRAFT_VERSION = MinecraftConstants.GAME_VERSION; // Change if multiple version strings are supported /** * Oauth client ID for Microsoft authentication diff --git a/connector/src/main/java/org/geysermc/connector/command/defaults/StatisticsCommand.java b/connector/src/main/java/org/geysermc/connector/command/defaults/StatisticsCommand.java index 7c2c13816..f458e3003 100644 --- a/connector/src/main/java/org/geysermc/connector/command/defaults/StatisticsCommand.java +++ b/connector/src/main/java/org/geysermc/connector/command/defaults/StatisticsCommand.java @@ -25,7 +25,7 @@ package org.geysermc.connector.command.defaults; -import com.github.steveice10.mc.protocol.data.game.ClientRequest; +import com.github.steveice10.mc.protocol.data.game.ClientCommand; import com.github.steveice10.mc.protocol.packet.ingame.serverbound.ServerboundClientCommandPacket; import org.geysermc.connector.GeyserConnector; import org.geysermc.connector.command.CommandSender; @@ -43,7 +43,7 @@ public class StatisticsCommand extends GeyserCommand { if (session == null) return; session.setWaitingForStatistics(true); - ServerboundClientCommandPacket ServerboundClientCommandPacket = new ServerboundClientCommandPacket(ClientRequest.STATS); + ServerboundClientCommandPacket ServerboundClientCommandPacket = new ServerboundClientCommandPacket(ClientCommand.STATS); session.sendDownstreamPacket(ServerboundClientCommandPacket); } diff --git a/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java b/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java index c85759154..ab979ccff 100644 --- a/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java +++ b/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java @@ -31,7 +31,7 @@ import org.geysermc.connector.GeyserConnector; import org.geysermc.connector.command.CommandSender; import org.geysermc.connector.command.GeyserCommand; import org.geysermc.connector.common.ChatColor; -import org.geysermc.connector.network.BedrockProtocol; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.utils.FileUtils; import org.geysermc.connector.utils.LanguageUtils; @@ -56,15 +56,15 @@ public class VersionCommand extends GeyserCommand { @Override public void execute(GeyserSession session, CommandSender sender, String[] args) { String bedrockVersions; - List supportedCodecs = BedrockProtocol.SUPPORTED_BEDROCK_CODECS; + List supportedCodecs = MinecraftProtocol.SUPPORTED_BEDROCK_CODECS; if (supportedCodecs.size() > 1) { bedrockVersions = supportedCodecs.get(0).getMinecraftVersion() + " - " + supportedCodecs.get(supportedCodecs.size() - 1).getMinecraftVersion(); } else { - bedrockVersions = BedrockProtocol.SUPPORTED_BEDROCK_CODECS.get(0).getMinecraftVersion(); + bedrockVersions = MinecraftProtocol.SUPPORTED_BEDROCK_CODECS.get(0).getMinecraftVersion(); } sender.sendMessage(LanguageUtils.getPlayerLocaleString("geyser.commands.version.version", sender.getLocale(), - GeyserConnector.NAME, GeyserConnector.VERSION, GeyserConnector.MINECRAFT_VERSION, bedrockVersions)); + GeyserConnector.NAME, GeyserConnector.VERSION, MinecraftProtocol.getJavaVersion(), bedrockVersions)); // Disable update checking in dev mode and for players in Geyser Standalone if (GeyserConnector.getInstance().isProductionEnvironment() && !(!sender.isConsole() && connector.getPlatformType() == PlatformType.STANDALONE)) { diff --git a/connector/src/main/java/org/geysermc/connector/dump/DumpInfo.java b/connector/src/main/java/org/geysermc/connector/dump/DumpInfo.java index 4d8eeefaf..c65bbbc51 100644 --- a/connector/src/main/java/org/geysermc/connector/dump/DumpInfo.java +++ b/connector/src/main/java/org/geysermc/connector/dump/DumpInfo.java @@ -27,7 +27,6 @@ package org.geysermc.connector.dump; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.JsonNode; -import com.github.steveice10.mc.protocol.MinecraftConstants; import com.google.common.hash.Hashing; import com.google.common.io.ByteSource; import com.google.common.io.Files; @@ -39,7 +38,7 @@ import lombok.Getter; import org.geysermc.connector.GeyserConnector; import org.geysermc.connector.common.serializer.AsteriskSerializer; import org.geysermc.connector.configuration.GeyserConfiguration; -import org.geysermc.connector.network.BedrockProtocol; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.utils.DockerCheck; import org.geysermc.connector.utils.FileUtils; @@ -191,11 +190,11 @@ public class DumpInfo { private final int javaProtocol; MCInfo() { - this.bedrockVersions = BedrockProtocol.SUPPORTED_BEDROCK_CODECS.stream().map(BedrockPacketCodec::getMinecraftVersion).toList(); - this.bedrockProtocols = BedrockProtocol.SUPPORTED_BEDROCK_CODECS.stream().map(BedrockPacketCodec::getProtocolVersion).toList(); - this.defaultBedrockProtocol = BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion(); - this.javaVersion = MinecraftConstants.GAME_VERSION; - this.javaProtocol = MinecraftConstants.PROTOCOL_VERSION; + this.bedrockVersions = MinecraftProtocol.SUPPORTED_BEDROCK_CODECS.stream().map(BedrockPacketCodec::getMinecraftVersion).toList(); + this.bedrockProtocols = MinecraftProtocol.SUPPORTED_BEDROCK_CODECS.stream().map(BedrockPacketCodec::getProtocolVersion).toList(); + this.defaultBedrockProtocol = MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion(); + this.javaVersion = MinecraftProtocol.getJavaVersion(); + this.javaProtocol = MinecraftProtocol.getJavaProtocolVersion(); } } diff --git a/connector/src/main/java/org/geysermc/connector/inventory/AnvilContainer.java b/connector/src/main/java/org/geysermc/connector/inventory/AnvilContainer.java index 71b5cbda9..cc9ebb2e8 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/AnvilContainer.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/AnvilContainer.java @@ -25,13 +25,13 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; /** * Used to determine if rename packets should be sent. */ public class AnvilContainer extends Container { - public AnvilContainer(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType, playerInventory); + public AnvilContainer(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/inventory/BeaconContainer.java b/connector/src/main/java/org/geysermc/connector/inventory/BeaconContainer.java index 3798d9009..7f6463714 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/BeaconContainer.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/BeaconContainer.java @@ -25,7 +25,7 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import lombok.Getter; import lombok.Setter; @@ -35,7 +35,7 @@ public class BeaconContainer extends Container { private int primaryId; private int secondaryId; - public BeaconContainer(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType, playerInventory); + public BeaconContainer(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/inventory/CartographyContainer.java b/connector/src/main/java/org/geysermc/connector/inventory/CartographyContainer.java index 0ac93b431..6743cd0c9 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/CartographyContainer.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/CartographyContainer.java @@ -25,10 +25,10 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; public class CartographyContainer extends Container { - public CartographyContainer(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType, playerInventory); + public CartographyContainer(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/inventory/Container.java b/connector/src/main/java/org/geysermc/connector/inventory/Container.java index d61b2b71d..d992ba224 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/Container.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/Container.java @@ -25,7 +25,7 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import lombok.Getter; import lombok.NonNull; import org.geysermc.connector.network.session.GeyserSession; @@ -44,8 +44,8 @@ public class Container extends Inventory { */ private boolean isUsingRealBlock = false; - public Container(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType); + public Container(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType); this.playerInventory = playerInventory; this.containerSize = this.size + InventoryTranslator.PLAYER_INVENTORY_SIZE; } diff --git a/connector/src/main/java/org/geysermc/connector/inventory/EnchantingContainer.java b/connector/src/main/java/org/geysermc/connector/inventory/EnchantingContainer.java index e8c935649..985f293ac 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/EnchantingContainer.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/EnchantingContainer.java @@ -25,7 +25,7 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.EnchantOptionData; import lombok.Getter; @@ -41,8 +41,8 @@ public class EnchantingContainer extends Container { @Getter private final GeyserEnchantOption[] geyserEnchantOptions; - public EnchantingContainer(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType, playerInventory); + public EnchantingContainer(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType, playerInventory); enchantOptions = new EnchantOptionData[3]; geyserEnchantOptions = new GeyserEnchantOption[3]; diff --git a/connector/src/main/java/org/geysermc/connector/inventory/Generic3X3Container.java b/connector/src/main/java/org/geysermc/connector/inventory/Generic3X3Container.java index 080e11982..f709ad998 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/Generic3X3Container.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/Generic3X3Container.java @@ -25,7 +25,7 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import lombok.Getter; import org.geysermc.connector.network.session.GeyserSession; @@ -38,8 +38,8 @@ public class Generic3X3Container extends Container { @Getter private boolean isDropper = false; - public Generic3X3Container(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType, playerInventory); + public Generic3X3Container(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType, playerInventory); } @Override diff --git a/connector/src/main/java/org/geysermc/connector/inventory/Inventory.java b/connector/src/main/java/org/geysermc/connector/inventory/Inventory.java index a9c8029a9..545585335 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/Inventory.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/Inventory.java @@ -25,7 +25,7 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import com.github.steveice10.opennbt.tag.builtin.ByteTag; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.Tag; @@ -58,7 +58,7 @@ public class Inventory { * Used for smooth transitions between two windows of the same type. */ @Getter - protected final WindowType windowType; + protected final ContainerType containerType; @Getter @Setter @@ -81,15 +81,15 @@ public class Inventory { @Setter private boolean pending = false; - protected Inventory(int id, int size, WindowType windowType) { - this("Inventory", id, size, windowType); + protected Inventory(int id, int size, ContainerType containerType) { + this("Inventory", id, size, containerType); } - protected Inventory(String title, int id, int size, WindowType windowType) { + protected Inventory(String title, int id, int size, ContainerType containerType) { this.title = title; this.id = id; this.size = size; - this.windowType = windowType; + this.containerType = containerType; this.items = new GeyserItemStack[size]; Arrays.fill(items, GeyserItemStack.EMPTY); } diff --git a/connector/src/main/java/org/geysermc/connector/inventory/LecternContainer.java b/connector/src/main/java/org/geysermc/connector/inventory/LecternContainer.java index be1b8b34b..1a5ac635e 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/LecternContainer.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/LecternContainer.java @@ -25,7 +25,7 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import com.nukkitx.math.vector.Vector3i; import com.nukkitx.nbt.NbtMap; import lombok.Getter; @@ -39,7 +39,7 @@ public class LecternContainer extends Container { @Getter @Setter private Vector3i position; - public LecternContainer(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType, playerInventory); + public LecternContainer(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/inventory/MerchantContainer.java b/connector/src/main/java/org/geysermc/connector/inventory/MerchantContainer.java index 5941b2a7d..fd3be0bd2 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/MerchantContainer.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/MerchantContainer.java @@ -25,8 +25,8 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.VillagerTrade; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.VillagerTrade; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import lombok.Getter; import lombok.Setter; import org.geysermc.connector.entity.Entity; @@ -37,7 +37,7 @@ public class MerchantContainer extends Container { private Entity villager; private VillagerTrade[] villagerTrades; - public MerchantContainer(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType, playerInventory); + public MerchantContainer(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/inventory/StonecutterContainer.java b/connector/src/main/java/org/geysermc/connector/inventory/StonecutterContainer.java index d558fab34..b818fe77d 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/StonecutterContainer.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/StonecutterContainer.java @@ -25,7 +25,7 @@ package org.geysermc.connector.inventory; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import lombok.Getter; import lombok.NonNull; import lombok.Setter; @@ -39,8 +39,8 @@ public class StonecutterContainer extends Container { @Setter private int stonecutterButton = -1; - public StonecutterContainer(String title, int id, int size, WindowType windowType, PlayerInventory playerInventory) { - super(title, id, size, windowType, playerInventory); + public StonecutterContainer(String title, int id, int size, ContainerType containerType, PlayerInventory playerInventory) { + super(title, id, size, containerType, playerInventory); } @Override diff --git a/connector/src/main/java/org/geysermc/connector/network/ConnectorServerEventHandler.java b/connector/src/main/java/org/geysermc/connector/network/ConnectorServerEventHandler.java index 65f1d8d7d..bf7153319 100644 --- a/connector/src/main/java/org/geysermc/connector/network/ConnectorServerEventHandler.java +++ b/connector/src/main/java/org/geysermc/connector/network/ConnectorServerEventHandler.java @@ -50,7 +50,7 @@ public class ConnectorServerEventHandler implements BedrockServerEventHandler { /* The following constants are all used to ensure the ping does not reach a length where it is unparsable by the Bedrock client */ - private static final int MINECRAFT_VERSION_BYTES_LENGTH = BedrockProtocol.DEFAULT_BEDROCK_CODEC.getMinecraftVersion().getBytes(StandardCharsets.UTF_8).length; + private static final int MINECRAFT_VERSION_BYTES_LENGTH = MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getMinecraftVersion().getBytes(StandardCharsets.UTF_8).length; private static final int BRAND_BYTES_LENGTH = GeyserConnector.NAME.getBytes(StandardCharsets.UTF_8).length; /** * The MOTD, sub-MOTD and Minecraft version ({@link #MINECRAFT_VERSION_BYTES_LENGTH}) combined cannot reach this length. @@ -104,8 +104,8 @@ public class ConnectorServerEventHandler implements BedrockServerEventHandler { pong.setEdition("MCPE"); pong.setGameType("Survival"); // Can only be Survival or Creative as of 1.16.210.59 pong.setNintendoLimited(false); - pong.setProtocolVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()); - pong.setVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getMinecraftVersion()); // Required to not be empty as of 1.16.210.59. Can only contain . and numbers. + pong.setProtocolVersion(MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()); + pong.setVersion(MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getMinecraftVersion()); // Required to not be empty as of 1.16.210.59. Can only contain . and numbers. pong.setIpv4Port(config.getBedrock().getPort()); if (config.isPassthroughMotd() && pingInfo != null && pingInfo.getDescription() != null) { @@ -170,7 +170,7 @@ public class ConnectorServerEventHandler implements BedrockServerEventHandler { bedrockServerSession.setCompressionLevel(connector.getConfig().getBedrock().getCompressionLevel()); bedrockServerSession.setPacketHandler(new UpstreamPacketHandler(connector, new GeyserSession(connector, bedrockServerSession, eventLoopGroup.next()))); // Set the packet codec to default just in case we need to send disconnect packets. - bedrockServerSession.setPacketCodec(BedrockProtocol.DEFAULT_BEDROCK_CODEC); + bedrockServerSession.setPacketCodec(MinecraftProtocol.DEFAULT_BEDROCK_CODEC); } @Override diff --git a/connector/src/main/java/org/geysermc/connector/network/BedrockProtocol.java b/connector/src/main/java/org/geysermc/connector/network/MinecraftProtocol.java similarity index 71% rename from connector/src/main/java/org/geysermc/connector/network/BedrockProtocol.java rename to connector/src/main/java/org/geysermc/connector/network/MinecraftProtocol.java index fa95c8f37..3ef8a7bce 100644 --- a/connector/src/main/java/org/geysermc/connector/network/BedrockProtocol.java +++ b/connector/src/main/java/org/geysermc/connector/network/MinecraftProtocol.java @@ -25,6 +25,8 @@ package org.geysermc.connector.network; +import com.github.steveice10.mc.protocol.codec.MinecraftCodec; +import com.github.steveice10.mc.protocol.codec.PacketCodec; import com.nukkitx.protocol.bedrock.BedrockPacketCodec; import com.nukkitx.protocol.bedrock.v465.Bedrock_v465; import com.nukkitx.protocol.bedrock.v471.Bedrock_v471; @@ -34,9 +36,9 @@ import java.util.List; import java.util.StringJoiner; /** - * Contains information about the supported Bedrock protocols in Geyser. + * Contains information about the supported protocols in Geyser. */ -public class BedrockProtocol { +public class MinecraftProtocol { /** * Default Bedrock codec that should act as a fallback. Should represent the latest available * release of the game that Geyser supports. @@ -47,6 +49,12 @@ public class BedrockProtocol { */ public static final List SUPPORTED_BEDROCK_CODECS = new ArrayList<>(); + /** + * Java codec that is supported. We only ever support one version for + * Java Edition. + */ + private static final PacketCodec DEFAULT_JAVA_CODEC = MinecraftCodec.CODEC; + static { SUPPORTED_BEDROCK_CODECS.add(Bedrock_v465.V465_CODEC); SUPPORTED_BEDROCK_CODECS.add(DEFAULT_BEDROCK_CODEC); @@ -66,6 +74,33 @@ public class BedrockProtocol { return null; } + /** + * Gets the {@link PacketCodec} for Minecraft: Java Edition. + * + * @return the packet codec for Minecraft: Java Edition + */ + public static PacketCodec getJavaCodec() { + return DEFAULT_JAVA_CODEC; + } + + /** + * Gets the supported Minecraft: Java Edition version name. + * + * @return the supported Minecraft: Java Edition version name + */ + public static String getJavaVersion() { + return DEFAULT_JAVA_CODEC.getMinecraftVersion(); + } + + /** + * Gets the supported Minecraft: Java Edition protocol version. + * + * @return the supported Minecraft: Java Edition protocol version + */ + public static int getJavaProtocolVersion() { + return DEFAULT_JAVA_CODEC.getProtocolVersion(); + } + /** * @return a string showing all supported versions for this Geyser instance */ diff --git a/connector/src/main/java/org/geysermc/connector/network/QueryPacketHandler.java b/connector/src/main/java/org/geysermc/connector/network/QueryPacketHandler.java index 89e2669bb..7c696c36d 100644 --- a/connector/src/main/java/org/geysermc/connector/network/QueryPacketHandler.java +++ b/connector/src/main/java/org/geysermc/connector/network/QueryPacketHandler.java @@ -175,7 +175,7 @@ public class QueryPacketHandler { gameData.put("hostname", motd); gameData.put("gametype", "SMP"); gameData.put("game_id", "MINECRAFT"); - gameData.put("version", GeyserConnector.NAME + " (" + GeyserConnector.GIT_VERSION + ") " + BedrockProtocol.DEFAULT_BEDROCK_CODEC.getMinecraftVersion()); + gameData.put("version", GeyserConnector.NAME + " (" + GeyserConnector.GIT_VERSION + ") " + MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getMinecraftVersion()); gameData.put("plugins", ""); gameData.put("map", map); gameData.put("numplayers", currentPlayerCount); diff --git a/connector/src/main/java/org/geysermc/connector/network/UpstreamPacketHandler.java b/connector/src/main/java/org/geysermc/connector/network/UpstreamPacketHandler.java index 4a51c9ca5..773f2cc5c 100644 --- a/connector/src/main/java/org/geysermc/connector/network/UpstreamPacketHandler.java +++ b/connector/src/main/java/org/geysermc/connector/network/UpstreamPacketHandler.java @@ -66,15 +66,15 @@ public class UpstreamPacketHandler extends LoggingPacketHandler { return true; } - BedrockPacketCodec packetCodec = BedrockProtocol.getBedrockCodec(loginPacket.getProtocolVersion()); + BedrockPacketCodec packetCodec = MinecraftProtocol.getBedrockCodec(loginPacket.getProtocolVersion()); if (packetCodec == null) { - String supportedVersions = BedrockProtocol.getAllSupportedVersions(); - if (loginPacket.getProtocolVersion() > BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) { + String supportedVersions = MinecraftProtocol.getAllSupportedVersions(); + if (loginPacket.getProtocolVersion() > MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) { // Too early to determine session locale session.getConnector().getLogger().info(LanguageUtils.getLocaleStringLog("geyser.network.outdated.server", supportedVersions)); session.disconnect(LanguageUtils.getLocaleStringLog("geyser.network.outdated.server", supportedVersions)); return true; - } else if (loginPacket.getProtocolVersion() < BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) { + } else if (loginPacket.getProtocolVersion() < MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) { session.getConnector().getLogger().info(LanguageUtils.getLocaleStringLog("geyser.network.outdated.client", supportedVersions)); session.disconnect(LanguageUtils.getLocaleStringLog("geyser.network.outdated.client", supportedVersions)); return true; diff --git a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java index c3836b4cf..33df29f9f 100644 --- a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java +++ b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java @@ -34,7 +34,7 @@ import com.github.steveice10.mc.auth.service.MojangAuthenticationService; import com.github.steveice10.mc.auth.service.MsaAuthenticationService; import com.github.steveice10.mc.protocol.MinecraftConstants; import com.github.steveice10.mc.protocol.MinecraftProtocol; -import com.github.steveice10.mc.protocol.data.SubProtocol; +import com.github.steveice10.mc.protocol.data.ProtocolState; import com.github.steveice10.mc.protocol.data.UnexpectedEncryptionException; import com.github.steveice10.mc.protocol.data.game.entity.metadata.Pose; import com.github.steveice10.mc.protocol.data.game.entity.player.GameMode; @@ -1333,7 +1333,7 @@ public class GeyserSession implements CommandSender { } private void sendDownstreamPacket0(Packet packet) { - if (protocol.getSubProtocol().equals(SubProtocol.GAME) || packet.getClass() == ServerboundCustomQueryPacket.class) { + if (protocol.getState().equals(ProtocolState.GAME) || packet.getClass() == ServerboundCustomQueryPacket.class) { downstream.send(packet); } else { connector.getLogger().debug("Tried to send downstream packet " + packet.getClass().getSimpleName() + " before connected to the server"); diff --git a/connector/src/main/java/org/geysermc/connector/network/session/cache/AdvancementsCache.java b/connector/src/main/java/org/geysermc/connector/network/session/cache/AdvancementsCache.java index 8831e140c..e53c2cd04 100644 --- a/connector/src/main/java/org/geysermc/connector/network/session/cache/AdvancementsCache.java +++ b/connector/src/main/java/org/geysermc/connector/network/session/cache/AdvancementsCache.java @@ -26,7 +26,7 @@ package org.geysermc.connector.network.session.cache; import com.github.steveice10.mc.protocol.data.game.advancement.Advancement; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundSeenAdvancementsPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundSeenAdvancementsPacket; import lombok.Getter; import lombok.Setter; import org.geysermc.connector.network.session.GeyserSession; diff --git a/connector/src/main/java/org/geysermc/connector/network/session/cache/BookEditCache.java b/connector/src/main/java/org/geysermc/connector/network/session/cache/BookEditCache.java index 193a1d41a..69b56104c 100644 --- a/connector/src/main/java/org/geysermc/connector/network/session/cache/BookEditCache.java +++ b/connector/src/main/java/org/geysermc/connector/network/session/cache/BookEditCache.java @@ -25,7 +25,7 @@ package org.geysermc.connector.network.session.cache; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundEditBookPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundEditBookPacket; import lombok.Setter; import org.geysermc.connector.inventory.GeyserItemStack; import org.geysermc.connector.network.session.GeyserSession; 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 6154ff65f..1fd3ddd5e 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 @@ -26,19 +26,19 @@ package org.geysermc.connector.network.session.cache; import com.github.steveice10.mc.protocol.data.game.chunk.Chunk; -import com.github.steveice10.mc.protocol.data.game.chunk.Column; +import com.github.steveice10.mc.protocol.data.game.chunk.ChunkSection; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import lombok.Getter; import lombok.Setter; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.world.block.BlockStateValues; -import org.geysermc.connector.network.translators.world.chunk.GeyserColumn; +import org.geysermc.connector.network.translators.world.chunk.GeyserChunk; import org.geysermc.connector.utils.MathUtils; public class ChunkCache { private final boolean cache; - private final Long2ObjectMap chunks; + private final Long2ObjectMap chunks; @Setter private int minY; @@ -57,20 +57,20 @@ public class ChunkCache { chunks = cache ? new Long2ObjectOpenHashMap<>() : null; } - public void addToCache(Column chunk) { + public void addToCache(Chunk chunk) { if (!cache) { return; } long chunkPosition = MathUtils.chunkPositionToLong(chunk.getX(), chunk.getZ()); - GeyserColumn geyserColumn = GeyserColumn.from(this, chunk); - chunks.put(chunkPosition, geyserColumn); + GeyserChunk geyserChunk = GeyserChunk.from(this, chunk); + chunks.put(chunkPosition, geyserChunk); } /** * Doesn't check for cache enabled, so don't use this without checking that first! */ - private GeyserColumn getChunk(int chunkX, int chunkZ) { + private GeyserChunk getChunk(int chunkX, int chunkZ) { long chunkPosition = MathUtils.chunkPositionToLong(chunkX, chunkZ); return chunks.getOrDefault(chunkPosition, null); } @@ -80,31 +80,31 @@ public class ChunkCache { return; } - GeyserColumn column = this.getChunk(x >> 4, z >> 4); - if (column == null) { + GeyserChunk chunk = this.getChunk(x >> 4, z >> 4); + if (chunk == null) { return; } - if (y < minY || ((y - minY) >> 4) > column.getChunks().length - 1) { + if (y < minY || ((y - minY) >> 4) > chunk.getSections().length - 1) { // Y likely goes above or below the height limit of this world return; } - Chunk chunk = column.getChunks()[(y - minY) >> 4]; - if (chunk == null) { + ChunkSection section = chunk.getSections()[(y - minY) >> 4]; + if (section == null) { if (block != BlockStateValues.JAVA_AIR_ID) { // A previously empty chunk, which is no longer empty as a block has been added to it - chunk = new Chunk(); + section = new ChunkSection(); // Fixes the chunk assuming that all blocks is the `block` variable we are updating. /shrug - chunk.getPalette().stateToId(BlockStateValues.JAVA_AIR_ID); - column.getChunks()[(y - minY) >> 4] = chunk; + section.getPalette().stateToId(BlockStateValues.JAVA_AIR_ID); + chunk.getSections()[(y - minY) >> 4] = section; } else { // Nothing to update return; } } - chunk.set(x & 0xF, y & 0xF, z & 0xF, block); + section.set(x & 0xF, y & 0xF, z & 0xF, block); } public int getBlockAt(int x, int y, int z) { @@ -112,17 +112,17 @@ public class ChunkCache { return BlockStateValues.JAVA_AIR_ID; } - GeyserColumn column = this.getChunk(x >> 4, z >> 4); + GeyserChunk column = this.getChunk(x >> 4, z >> 4); if (column == null) { return BlockStateValues.JAVA_AIR_ID; } - if (y < minY || ((y - minY) >> 4) > column.getChunks().length - 1) { + if (y < minY || ((y - minY) >> 4) > column.getSections().length - 1) { // Y likely goes above or below the height limit of this world return BlockStateValues.JAVA_AIR_ID; } - Chunk chunk = column.getChunks()[(y - minY) >> 4]; + ChunkSection chunk = column.getSections()[(y - minY) >> 4]; if (chunk != null) { return chunk.get(x & 0xF, y & 0xF, z & 0xF); } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockBlockEntityDataTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockBlockEntityDataTranslator.java index 6f94085ae..df8ab45f8 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockBlockEntityDataTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockBlockEntityDataTranslator.java @@ -26,7 +26,7 @@ package org.geysermc.connector.network.translators.bedrock; import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundSetJigsawBlockPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundSetJigsawBlockPacket; import com.github.steveice10.mc.protocol.packet.ingame.serverbound.level.ServerboundSignUpdatePacket; import com.nukkitx.nbt.NbtMap; import com.nukkitx.protocol.bedrock.packet.BlockEntityDataPacket; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockBookEditTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockBookEditTranslator.java index 5fa6cd369..605afd0a1 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockBookEditTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockBookEditTranslator.java @@ -26,7 +26,7 @@ package org.geysermc.connector.network.translators.bedrock; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundEditBookPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundEditBookPacket; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.ListTag; import com.github.steveice10.opennbt.tag.builtin.StringTag; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockCommandBlockUpdateTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockCommandBlockUpdateTranslator.java index a64e9c784..509a7c865 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockCommandBlockUpdateTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockCommandBlockUpdateTranslator.java @@ -27,8 +27,8 @@ package org.geysermc.connector.network.translators.bedrock; import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position; import com.github.steveice10.mc.protocol.data.game.level.block.CommandBlockMode; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundSetCommandMinecartPacket; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundSetCommandBlockPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundSetCommandMinecartPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundSetCommandBlockPacket; import com.nukkitx.protocol.bedrock.packet.CommandBlockUpdatePacket; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.PacketTranslator; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockContainerCloseTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockContainerCloseTranslator.java index 3f1228b94..f08f9a4ea 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockContainerCloseTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockContainerCloseTranslator.java @@ -25,7 +25,7 @@ package org.geysermc.connector.network.translators.bedrock; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerClosePacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerClosePacket; import com.nukkitx.protocol.bedrock.packet.ContainerClosePacket; import org.geysermc.connector.inventory.Inventory; import org.geysermc.connector.inventory.MerchantContainer; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockFilterTextTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockFilterTextTranslator.java index 32051c7c6..8abff259c 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockFilterTextTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockFilterTextTranslator.java @@ -25,7 +25,7 @@ package org.geysermc.connector.network.translators.bedrock; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundRenameItemPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundRenameItemPacket; import com.nukkitx.protocol.bedrock.packet.FilterTextPacket; import org.geysermc.connector.inventory.AnvilContainer; import org.geysermc.connector.inventory.CartographyContainer; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockLecternUpdateTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockLecternUpdateTranslator.java index aeb670504..5c905dfe6 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockLecternUpdateTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockLecternUpdateTranslator.java @@ -29,8 +29,8 @@ import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position; import com.github.steveice10.mc.protocol.data.game.entity.player.Hand; import com.github.steveice10.mc.protocol.data.game.level.block.BlockFace; import com.github.steveice10.mc.protocol.packet.ingame.serverbound.player.ServerboundUseItemOnPacket; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerButtonClickPacket; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerClosePacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerButtonClickPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerClosePacket; import com.nukkitx.protocol.bedrock.packet.LecternUpdatePacket; import org.geysermc.connector.inventory.LecternContainer; import org.geysermc.connector.network.session.GeyserSession; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockRespawnTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockRespawnTranslator.java index 8a9fb5a3d..8a70ada6f 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockRespawnTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockRespawnTranslator.java @@ -25,7 +25,7 @@ package org.geysermc.connector.network.translators.bedrock; -import com.github.steveice10.mc.protocol.data.game.ClientRequest; +import com.github.steveice10.mc.protocol.data.game.ClientCommand; import com.github.steveice10.mc.protocol.packet.ingame.serverbound.ServerboundClientCommandPacket; import com.nukkitx.math.vector.Vector3f; import com.nukkitx.protocol.bedrock.packet.MovePlayerPacket; @@ -68,7 +68,7 @@ public class BedrockRespawnTranslator extends PacketTranslator { session.sendUpstreamPacket(movePlayerPacket); } - ServerboundClientCommandPacket javaRespawnPacket = new ServerboundClientCommandPacket(ClientRequest.RESPAWN); + ServerboundClientCommandPacket javaRespawnPacket = new ServerboundClientCommandPacket(ClientCommand.RESPAWN); session.sendDownstreamPacket(javaRespawnPacket); } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockShowCreditsTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockShowCreditsTranslator.java index 8feadb180..ffdfe4f35 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockShowCreditsTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockShowCreditsTranslator.java @@ -29,7 +29,7 @@ import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.PacketTranslator; import org.geysermc.connector.network.translators.Translator; -import com.github.steveice10.mc.protocol.data.game.ClientRequest; +import com.github.steveice10.mc.protocol.data.game.ClientCommand; import com.github.steveice10.mc.protocol.packet.ingame.serverbound.ServerboundClientCommandPacket; import com.nukkitx.protocol.bedrock.packet.ShowCreditsPacket; @@ -39,7 +39,7 @@ public class BedrockShowCreditsTranslator extends PacketTranslator INVENTORY_TRANSLATORS = new HashMap<>() { + public static final Map INVENTORY_TRANSLATORS = new HashMap<>() { { /* Player Inventory */ put(null, PLAYER_INVENTORY_TRANSLATOR); /* Chest UIs */ - put(WindowType.GENERIC_9X1, new SingleChestInventoryTranslator(9)); - put(WindowType.GENERIC_9X2, new SingleChestInventoryTranslator(18)); - put(WindowType.GENERIC_9X3, new SingleChestInventoryTranslator(27)); - put(WindowType.GENERIC_9X4, new DoubleChestInventoryTranslator(36)); - put(WindowType.GENERIC_9X5, new DoubleChestInventoryTranslator(45)); - put(WindowType.GENERIC_9X6, new DoubleChestInventoryTranslator(54)); + put(ContainerType.GENERIC_9X1, new SingleChestInventoryTranslator(9)); + put(ContainerType.GENERIC_9X2, new SingleChestInventoryTranslator(18)); + put(ContainerType.GENERIC_9X3, new SingleChestInventoryTranslator(27)); + put(ContainerType.GENERIC_9X4, new DoubleChestInventoryTranslator(36)); + put(ContainerType.GENERIC_9X5, new DoubleChestInventoryTranslator(45)); + put(ContainerType.GENERIC_9X6, new DoubleChestInventoryTranslator(54)); /* Furnaces */ - put(WindowType.FURNACE, new FurnaceInventoryTranslator()); - put(WindowType.BLAST_FURNACE, new BlastFurnaceInventoryTranslator()); - put(WindowType.SMOKER, new SmokerInventoryTranslator()); + put(ContainerType.FURNACE, new FurnaceInventoryTranslator()); + put(ContainerType.BLAST_FURNACE, new BlastFurnaceInventoryTranslator()); + put(ContainerType.SMOKER, new SmokerInventoryTranslator()); /* Specific Inventories */ - put(WindowType.ANVIL, new AnvilInventoryTranslator()); - put(WindowType.BEACON, new BeaconInventoryTranslator()); - put(WindowType.BREWING_STAND, new BrewingInventoryTranslator()); - put(WindowType.CARTOGRAPHY, new CartographyInventoryTranslator()); - put(WindowType.CRAFTING, new CraftingInventoryTranslator()); - put(WindowType.ENCHANTMENT, new EnchantingInventoryTranslator()); - put(WindowType.HOPPER, new HopperInventoryTranslator()); - put(WindowType.GENERIC_3X3, new Generic3X3InventoryTranslator()); - put(WindowType.GRINDSTONE, new GrindstoneInventoryTranslator()); - put(WindowType.LOOM, new LoomInventoryTranslator()); - put(WindowType.MERCHANT, new MerchantInventoryTranslator()); - put(WindowType.SHULKER_BOX, new ShulkerInventoryTranslator()); - put(WindowType.SMITHING, new SmithingInventoryTranslator()); - put(WindowType.STONECUTTER, new StonecutterInventoryTranslator()); + put(ContainerType.ANVIL, new AnvilInventoryTranslator()); + put(ContainerType.BEACON, new BeaconInventoryTranslator()); + put(ContainerType.BREWING_STAND, new BrewingInventoryTranslator()); + put(ContainerType.CARTOGRAPHY, new CartographyInventoryTranslator()); + put(ContainerType.CRAFTING, new CraftingInventoryTranslator()); + put(ContainerType.ENCHANTMENT, new EnchantingInventoryTranslator()); + put(ContainerType.HOPPER, new HopperInventoryTranslator()); + put(ContainerType.GENERIC_3X3, new Generic3X3InventoryTranslator()); + put(ContainerType.GRINDSTONE, new GrindstoneInventoryTranslator()); + put(ContainerType.LOOM, new LoomInventoryTranslator()); + put(ContainerType.MERCHANT, new MerchantInventoryTranslator()); + put(ContainerType.SHULKER_BOX, new ShulkerInventoryTranslator()); + put(ContainerType.SMITHING, new SmithingInventoryTranslator()); + put(ContainerType.STONECUTTER, new StonecutterInventoryTranslator()); /* Lectern */ - put(WindowType.LECTERN, new LecternInventoryTranslator()); + put(ContainerType.LECTERN, new LecternInventoryTranslator()); } }; @@ -118,7 +118,7 @@ public abstract class InventoryTranslator { public abstract int javaSlotToBedrock(int javaSlot); public abstract BedrockContainerSlot javaSlotToBedrockContainer(int javaSlot); public abstract SlotType getSlotType(int javaSlot); - public abstract Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory); + public abstract Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory); /** * Should be overwritten in cases where specific inventories should reject an item being in a specific spot. diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/click/Click.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/click/Click.java index d3666a9e9..4c0ea7709 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/click/Click.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/click/Click.java @@ -25,21 +25,23 @@ package org.geysermc.connector.network.translators.inventory.click; -import com.github.steveice10.mc.protocol.data.game.window.*; +import com.github.steveice10.mc.protocol.data.game.inventory.ClickItemAction; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerActionType; +import com.github.steveice10.mc.protocol.data.game.inventory.*; import lombok.AllArgsConstructor; @AllArgsConstructor public enum Click { - LEFT(WindowAction.CLICK_ITEM, ClickItemParam.LEFT_CLICK), - RIGHT(WindowAction.CLICK_ITEM, ClickItemParam.RIGHT_CLICK), - LEFT_SHIFT(WindowAction.SHIFT_CLICK_ITEM, ShiftClickItemParam.LEFT_CLICK), - DROP_ONE(WindowAction.DROP_ITEM, DropItemParam.DROP_FROM_SELECTED), - DROP_ALL(WindowAction.DROP_ITEM, DropItemParam.DROP_SELECTED_STACK), - LEFT_OUTSIDE(WindowAction.CLICK_ITEM, ClickItemParam.LEFT_CLICK), - RIGHT_OUTSIDE(WindowAction.CLICK_ITEM, ClickItemParam.RIGHT_CLICK); + LEFT(ContainerActionType.CLICK_ITEM, ClickItemAction.LEFT_CLICK), + RIGHT(ContainerActionType.CLICK_ITEM, ClickItemAction.RIGHT_CLICK), + LEFT_SHIFT(ContainerActionType.SHIFT_CLICK_ITEM, ShiftClickItemAction.LEFT_CLICK), + DROP_ONE(ContainerActionType.DROP_ITEM, DropItemAction.DROP_FROM_SELECTED), + DROP_ALL(ContainerActionType.DROP_ITEM, DropItemAction.DROP_SELECTED_STACK), + LEFT_OUTSIDE(ContainerActionType.CLICK_ITEM, ClickItemAction.LEFT_CLICK), + RIGHT_OUTSIDE(ContainerActionType.CLICK_ITEM, ClickItemAction.RIGHT_CLICK); public static final int OUTSIDE_SLOT = -999; - public final WindowAction windowAction; - public final WindowActionParam actionParam; + public final ContainerActionType actionType; + public final ContainerAction action; } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/click/ClickPlan.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/click/ClickPlan.java index 9bcdb4ed2..d6063b98d 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/click/ClickPlan.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/click/ClickPlan.java @@ -26,8 +26,8 @@ package org.geysermc.connector.network.translators.inventory.click; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; -import com.github.steveice10.mc.protocol.data.game.window.WindowAction; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerClickPacket; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerActionType; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerClickPacket; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; @@ -111,7 +111,7 @@ public class ClickPlan { ItemStack clickedItemStack; if (!planIter.hasNext() && refresh) { clickedItemStack = InventoryUtils.REFRESH_ITEM; - } else if (action.click.windowAction == WindowAction.DROP_ITEM || action.slot == Click.OUTSIDE_SLOT) { + } else if (action.click.actionType == ContainerActionType.DROP_ITEM || action.slot == Click.OUTSIDE_SLOT) { clickedItemStack = null; } else { clickedItemStack = getItem(action.slot).getItemStack(); @@ -126,8 +126,8 @@ public class ClickPlan { inventory.getId(), inventory.getStateId(), action.slot, - action.click.windowAction, - action.click.actionParam, + action.click.actionType, + action.click.action, clickedItemStack, affectedSlots ); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/AnvilInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/AnvilInventoryTranslator.java index 9aef64b36..c4d7195c6 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/AnvilInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/AnvilInventoryTranslator.java @@ -25,9 +25,8 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.ContainerSlotType; -import com.nukkitx.protocol.bedrock.data.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.StackRequestSlotInfoData; import org.geysermc.connector.inventory.AnvilContainer; import org.geysermc.connector.inventory.Inventory; @@ -37,7 +36,7 @@ import org.geysermc.connector.network.translators.inventory.updater.UIInventoryU public class AnvilInventoryTranslator extends AbstractBlockInventoryTranslator { public AnvilInventoryTranslator() { - super(3, "minecraft:anvil[facing=north]", ContainerType.ANVIL, UIInventoryUpdater.INSTANCE, + super(3, "minecraft:anvil[facing=north]", com.nukkitx.protocol.bedrock.data.inventory.ContainerType.ANVIL, UIInventoryUpdater.INSTANCE, "minecraft:chipped_anvil", "minecraft:damaged_anvil"); } @@ -72,7 +71,7 @@ public class AnvilInventoryTranslator extends AbstractBlockInventoryTranslator { } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new AnvilContainer(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new AnvilContainer(name, windowId, this.size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/BaseInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/BaseInventoryTranslator.java index 5b3be5b27..4211e9902 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/BaseInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/BaseInventoryTranslator.java @@ -25,7 +25,7 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.ContainerSlotType; import com.nukkitx.protocol.bedrock.data.inventory.StackRequestSlotInfoData; import org.geysermc.connector.inventory.Container; @@ -95,7 +95,7 @@ public abstract class BaseInventoryTranslator extends InventoryTranslator { } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new Container(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new Container(name, windowId, this.size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/BeaconInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/BeaconInventoryTranslator.java index a940e0dd9..2fb26847a 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/BeaconInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/BeaconInventoryTranslator.java @@ -25,13 +25,12 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundSetBeaconPacket; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundSetBeaconPacket; import com.nukkitx.math.vector.Vector3i; import com.nukkitx.nbt.NbtMap; import com.nukkitx.nbt.NbtMapBuilder; import com.nukkitx.protocol.bedrock.data.inventory.ContainerSlotType; -import com.nukkitx.protocol.bedrock.data.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.ItemStackRequest; import com.nukkitx.protocol.bedrock.data.inventory.StackRequestSlotInfoData; import com.nukkitx.protocol.bedrock.data.inventory.stackrequestactions.BeaconPaymentStackRequestActionData; @@ -53,7 +52,7 @@ import java.util.Collections; public class BeaconInventoryTranslator extends AbstractBlockInventoryTranslator { public BeaconInventoryTranslator() { - super(1, new BlockInventoryHolder("minecraft:beacon", ContainerType.BEACON) { + super(1, new BlockInventoryHolder("minecraft:beacon", com.nukkitx.protocol.bedrock.data.inventory.ContainerType.BEACON) { @Override protected boolean checkInteractionPosition(GeyserSession session) { // Since we can't fall back to a virtual inventory, let's make opening one easier @@ -144,7 +143,7 @@ public class BeaconInventoryTranslator extends AbstractBlockInventoryTranslator } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new BeaconContainer(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new BeaconContainer(name, windowId, this.size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/CartographyInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/CartographyInventoryTranslator.java index ef00f9343..3d9520a0a 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/CartographyInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/CartographyInventoryTranslator.java @@ -25,9 +25,8 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.ContainerSlotType; -import com.nukkitx.protocol.bedrock.data.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.StackRequestSlotInfoData; import org.geysermc.connector.inventory.CartographyContainer; import org.geysermc.connector.inventory.GeyserItemStack; @@ -39,7 +38,7 @@ import org.geysermc.connector.network.translators.inventory.updater.UIInventoryU public class CartographyInventoryTranslator extends AbstractBlockInventoryTranslator { public CartographyInventoryTranslator() { - super(3, "minecraft:cartography_table", ContainerType.CARTOGRAPHY, UIInventoryUpdater.INSTANCE); + super(3, "minecraft:cartography_table", com.nukkitx.protocol.bedrock.data.inventory.ContainerType.CARTOGRAPHY, UIInventoryUpdater.INSTANCE); } @Override @@ -88,7 +87,7 @@ public class CartographyInventoryTranslator extends AbstractBlockInventoryTransl } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new CartographyContainer(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new CartographyContainer(name, windowId, this.size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/EnchantingInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/EnchantingInventoryTranslator.java index 99bdcf204..18254dee5 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/EnchantingInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/EnchantingInventoryTranslator.java @@ -25,8 +25,8 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerButtonClickPacket; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerButtonClickPacket; import com.nukkitx.protocol.bedrock.data.inventory.*; import com.nukkitx.protocol.bedrock.data.inventory.stackrequestactions.CraftRecipeStackRequestActionData; import com.nukkitx.protocol.bedrock.data.inventory.stackrequestactions.StackRequestActionData; @@ -47,7 +47,7 @@ import java.util.Collections; public class EnchantingInventoryTranslator extends AbstractBlockInventoryTranslator { public EnchantingInventoryTranslator() { - super(2, "minecraft:enchanting_table", ContainerType.ENCHANTMENT, UIInventoryUpdater.INSTANCE); + super(2, "minecraft:enchanting_table", com.nukkitx.protocol.bedrock.data.inventory.ContainerType.ENCHANTMENT, UIInventoryUpdater.INSTANCE); } @Override @@ -167,7 +167,7 @@ public class EnchantingInventoryTranslator extends AbstractBlockInventoryTransla } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new EnchantingContainer(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new EnchantingContainer(name, windowId, this.size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/Generic3X3InventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/Generic3X3InventoryTranslator.java index ceac1b2c1..a77716c91 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/Generic3X3InventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/Generic3X3InventoryTranslator.java @@ -25,9 +25,8 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.ContainerSlotType; -import com.nukkitx.protocol.bedrock.data.inventory.ContainerType; import com.nukkitx.protocol.bedrock.packet.ContainerOpenPacket; import org.geysermc.connector.inventory.Generic3X3Container; import org.geysermc.connector.inventory.Inventory; @@ -41,13 +40,13 @@ import org.geysermc.connector.network.translators.inventory.updater.ContainerInv */ public class Generic3X3InventoryTranslator extends AbstractBlockInventoryTranslator { public Generic3X3InventoryTranslator() { - super(9, "minecraft:dispenser[facing=north,triggered=false]", ContainerType.DISPENSER, ContainerInventoryUpdater.INSTANCE, + super(9, "minecraft:dispenser[facing=north,triggered=false]", com.nukkitx.protocol.bedrock.data.inventory.ContainerType.DISPENSER, ContainerInventoryUpdater.INSTANCE, "minecraft:dropper"); } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new Generic3X3Container(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new Generic3X3Container(name, windowId, this.size, containerType, playerInventory); } @Override @@ -55,7 +54,7 @@ public class Generic3X3InventoryTranslator extends AbstractBlockInventoryTransla ContainerOpenPacket containerOpenPacket = new ContainerOpenPacket(); containerOpenPacket.setId((byte) inventory.getId()); // Required for opening the real block - otherwise, if the container type is incorrect, it refuses to open - containerOpenPacket.setType(((Generic3X3Container) inventory).isDropper() ? ContainerType.DROPPER : ContainerType.DISPENSER); + containerOpenPacket.setType(((Generic3X3Container) inventory).isDropper() ? com.nukkitx.protocol.bedrock.data.inventory.ContainerType.DROPPER : com.nukkitx.protocol.bedrock.data.inventory.ContainerType.DISPENSER); containerOpenPacket.setBlockPosition(inventory.getHolderPosition()); containerOpenPacket.setUniqueEntityId(inventory.getHolderId()); session.sendUpstreamPacket(containerOpenPacket); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/LecternInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/LecternInventoryTranslator.java index 2bdf0cd0d..cc94ffff3 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/LecternInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/LecternInventoryTranslator.java @@ -25,9 +25,9 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerButtonClickPacket; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerClosePacket; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerButtonClickPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerClosePacket; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.ListTag; import com.nukkitx.math.vector.Vector3i; @@ -158,8 +158,8 @@ public class LecternInventoryTranslator extends BaseInventoryTranslator { } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new LecternContainer(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new LecternContainer(name, windowId, this.size, containerType, playerInventory); } public static NbtMapBuilder getBaseLecternTag(int x, int y, int z, int totalPages) { diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/LoomInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/LoomInventoryTranslator.java index 5210193ee..bc2991f7f 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/LoomInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/LoomInventoryTranslator.java @@ -25,7 +25,7 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerButtonClickPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerButtonClickPacket; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.ListTag; import com.nukkitx.nbt.NbtMap; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/MerchantInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/MerchantInventoryTranslator.java index ef6e30494..5f20a9d03 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/MerchantInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/MerchantInventoryTranslator.java @@ -25,7 +25,7 @@ package org.geysermc.connector.network.translators.inventory.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; import com.nukkitx.math.vector.Vector3f; import com.nukkitx.protocol.bedrock.data.entity.EntityData; import com.nukkitx.protocol.bedrock.data.entity.EntityDataMap; @@ -149,7 +149,7 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator { } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new MerchantContainer(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new MerchantContainer(name, windowId, this.size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/PlayerInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/PlayerInventoryTranslator.java index 65bfc50cd..fa54b1223 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/PlayerInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/PlayerInventoryTranslator.java @@ -27,8 +27,8 @@ package org.geysermc.connector.network.translators.inventory.translators; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; import com.github.steveice10.mc.protocol.data.game.entity.player.GameMode; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundSetCreativeModeSlotPacket; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundSetCreativeModeSlotPacket; import com.nukkitx.protocol.bedrock.data.inventory.*; import com.nukkitx.protocol.bedrock.data.inventory.stackrequestactions.*; import com.nukkitx.protocol.bedrock.packet.InventoryContentPacket; @@ -465,7 +465,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { throw new UnsupportedOperationException(); } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/StonecutterInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/StonecutterInventoryTranslator.java index d1373b34a..3c508b851 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/StonecutterInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/translators/StonecutterInventoryTranslator.java @@ -26,10 +26,9 @@ package org.geysermc.connector.network.translators.inventory.translators; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundContainerButtonClickPacket; +import com.github.steveice10.mc.protocol.data.game.inventory.ContainerType; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundContainerButtonClickPacket; import com.nukkitx.protocol.bedrock.data.inventory.ContainerSlotType; -import com.nukkitx.protocol.bedrock.data.inventory.ContainerType; import com.nukkitx.protocol.bedrock.data.inventory.ItemStackRequest; import com.nukkitx.protocol.bedrock.data.inventory.StackRequestSlotInfoData; import com.nukkitx.protocol.bedrock.data.inventory.stackrequestactions.CraftResultsDeprecatedStackRequestActionData; @@ -49,7 +48,7 @@ import org.geysermc.connector.network.translators.item.ItemTranslator; public class StonecutterInventoryTranslator extends AbstractBlockInventoryTranslator { public StonecutterInventoryTranslator() { - super(2, "minecraft:stonecutter[facing=north]", ContainerType.STONECUTTER, UIInventoryUpdater.INSTANCE); + super(2, "minecraft:stonecutter[facing=north]", com.nukkitx.protocol.bedrock.data.inventory.ContainerType.STONECUTTER, UIInventoryUpdater.INSTANCE); } @Override @@ -131,7 +130,7 @@ public class StonecutterInventoryTranslator extends AbstractBlockInventoryTransl } @Override - public Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory) { - return new StonecutterContainer(name, windowId, this.size, windowType, playerInventory); + public Inventory createInventory(String name, int windowId, ContainerType containerType, PlayerInventory playerInventory) { + return new StonecutterContainer(name, windowId, this.size, containerType, playerInventory); } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/BannerTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/BannerTranslator.java index e85426647..d00bf9d40 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/BannerTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/BannerTranslator.java @@ -32,7 +32,7 @@ import com.nukkitx.nbt.NbtMap; import com.nukkitx.nbt.NbtMapBuilder; import com.nukkitx.nbt.NbtType; import com.nukkitx.protocol.bedrock.data.inventory.ItemData; -import org.geysermc.connector.network.BedrockProtocol; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.translators.ItemRemapper; import org.geysermc.connector.network.translators.item.ItemTranslator; import org.geysermc.connector.registry.Registries; @@ -81,7 +81,7 @@ public class BannerTranslator extends ItemTranslator { } public BannerTranslator() { - appliedItems = Registries.ITEMS.forVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) + appliedItems = Registries.ITEMS.forVersion(MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) .getItems() .values() .stream() diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/CompassTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/CompassTranslator.java index 13780ac49..cf2e90fdf 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/CompassTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/CompassTranslator.java @@ -28,7 +28,7 @@ package org.geysermc.connector.network.translators.item.translators; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; import com.github.steveice10.opennbt.tag.builtin.*; import com.nukkitx.protocol.bedrock.data.inventory.ItemData; -import org.geysermc.connector.network.BedrockProtocol; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.translators.ItemRemapper; import org.geysermc.connector.network.translators.item.ItemTranslator; import org.geysermc.connector.registry.Registries; @@ -44,7 +44,7 @@ public class CompassTranslator extends ItemTranslator { private final List appliedItems; public CompassTranslator() { - appliedItems = Registries.ITEMS.forVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) + appliedItems = Registries.ITEMS.forVersion(MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) .getItems() .values() .stream() diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/PotionTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/PotionTranslator.java index 2908754aa..82e8fb6b8 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/PotionTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/PotionTranslator.java @@ -30,7 +30,7 @@ import com.github.steveice10.opennbt.tag.builtin.StringTag; import com.github.steveice10.opennbt.tag.builtin.Tag; import com.nukkitx.protocol.bedrock.data.inventory.ItemData; import org.geysermc.connector.GeyserConnector; -import org.geysermc.connector.network.BedrockProtocol; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.translators.item.ItemTranslator; import org.geysermc.connector.network.translators.ItemRemapper; import org.geysermc.connector.network.translators.item.Potion; @@ -47,7 +47,7 @@ public class PotionTranslator extends ItemTranslator { private final List appliedItems; public PotionTranslator() { - appliedItems = Registries.ITEMS.forVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) + appliedItems = Registries.ITEMS.forVersion(MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) .getItems() .values() .stream() diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/TippedArrowTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/TippedArrowTranslator.java index ebc3936de..575f3ba74 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/TippedArrowTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/TippedArrowTranslator.java @@ -30,7 +30,7 @@ import com.github.steveice10.opennbt.tag.builtin.StringTag; import com.github.steveice10.opennbt.tag.builtin.Tag; import com.nukkitx.protocol.bedrock.data.inventory.ItemData; import org.geysermc.connector.GeyserConnector; -import org.geysermc.connector.network.BedrockProtocol; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.network.translators.ItemRemapper; import org.geysermc.connector.network.translators.item.ItemTranslator; import org.geysermc.connector.network.translators.item.TippedArrowPotion; @@ -46,12 +46,12 @@ public class TippedArrowTranslator extends ItemTranslator { private final List appliedItems; - private static final int TIPPED_ARROW_JAVA_ID = Registries.ITEMS.forVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) + private static final int TIPPED_ARROW_JAVA_ID = Registries.ITEMS.forVersion(MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) .getMapping("minecraft:tipped_arrow") .getJavaId(); public TippedArrowTranslator() { - appliedItems = Registries.ITEMS.forVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) + appliedItems = Registries.ITEMS.forVersion(MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) .getItems() .values() .stream() diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaAnimateTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaAnimateTranslator.java index 11fec73b3..68e374d37 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaAnimateTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaAnimateTranslator.java @@ -56,7 +56,7 @@ public class JavaAnimateTranslator extends PacketTranslator updateCraftingGrid(session, packet, inventory, translator), 150, TimeUnit.MILLISECONDS)); GeyserItemStack newItem = GeyserItemStack.from(packet.getItem()); - if (packet.getWindowId() == 0 && !(translator instanceof PlayerInventoryTranslator)) { + if (packet.getContainerId() == 0 && !(translator instanceof PlayerInventoryTranslator)) { // In rare cases, the window ID can still be 0 but Java treats it as valid session.getPlayerInventory().setItem(packet.getSlot(), newItem, session); InventoryTranslator.PLAYER_INVENTORY_TRANSLATOR.updateSlot(session, session.getPlayerInventory(), packet.getSlot()); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/window/JavaHorseScreenOpenTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/inventory/JavaHorseScreenOpenTranslator.java similarity index 95% rename from connector/src/main/java/org/geysermc/connector/network/translators/java/window/JavaHorseScreenOpenTranslator.java rename to connector/src/main/java/org/geysermc/connector/network/translators/java/inventory/JavaHorseScreenOpenTranslator.java index ec1b0ccb3..7eb00ea65 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/window/JavaHorseScreenOpenTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/inventory/JavaHorseScreenOpenTranslator.java @@ -23,9 +23,9 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.connector.network.translators.java.window; +package org.geysermc.connector.network.translators.java.inventory; -import com.github.steveice10.mc.protocol.packet.ingame.clientbound.window.ClientboundHorseScreenOpenPacket; +import com.github.steveice10.mc.protocol.packet.ingame.clientbound.inventory.ClientboundHorseScreenOpenPacket; import com.nukkitx.nbt.NbtMap; import com.nukkitx.nbt.NbtMapBuilder; import com.nukkitx.nbt.NbtType; @@ -105,7 +105,7 @@ public class JavaHorseScreenOpenTranslator extends PacketTranslator= 2 && + if (packet.getType() == BlockEntityType.COMMAND_BLOCK && session.getOpPermissionLevel() >= 2 && session.getGameMode() == GameMode.CREATIVE && packet.getNbt().size() > 5) { ContainerOpenPacket openPacket = new ContainerOpenPacket(); openPacket.setBlockPosition(Vector3i.from(packet.getPosition().getX(), packet.getPosition().getY(), packet.getPosition().getZ())); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaBlockUpdateTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaBlockUpdateTranslator.java index 67174434a..f0042ae00 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaBlockUpdateTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaBlockUpdateTranslator.java @@ -43,10 +43,10 @@ public class JavaBlockUpdateTranslator extends PacketTranslator { - ServerboundClientCommandPacket javaRespawnPacket = new ServerboundClientCommandPacket(ClientRequest.RESPAWN); + ServerboundClientCommandPacket javaRespawnPacket = new ServerboundClientCommandPacket(ClientCommand.RESPAWN); session.sendDownstreamPacket(javaRespawnPacket); } case FIRST_TIME -> { diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaLevelChunkTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaLevelChunkWithLightTranslator.java similarity index 85% rename from connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaLevelChunkTranslator.java rename to connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaLevelChunkWithLightTranslator.java index 7a13198a2..700742888 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaLevelChunkTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaLevelChunkWithLightTranslator.java @@ -25,8 +25,8 @@ package org.geysermc.connector.network.translators.java.level; -import com.github.steveice10.mc.protocol.data.game.chunk.Column; -import com.github.steveice10.mc.protocol.packet.ingame.clientbound.level.ClientboundLevelChunkPacket; +import com.github.steveice10.mc.protocol.data.game.chunk.Chunk; +import com.github.steveice10.mc.protocol.packet.ingame.clientbound.level.ClientboundLevelChunkWithLightPacket; import com.nukkitx.nbt.NBTOutputStream; import com.nukkitx.nbt.NbtMap; import com.nukkitx.nbt.NbtUtils; @@ -35,12 +35,11 @@ import com.nukkitx.protocol.bedrock.packet.LevelChunkPacket; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufAllocator; import io.netty.buffer.ByteBufOutputStream; -import org.geysermc.connector.GeyserConnector; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.PacketTranslator; import org.geysermc.connector.network.translators.Translator; import org.geysermc.connector.network.translators.world.BiomeTranslator; -import org.geysermc.connector.network.translators.world.chunk.ChunkSection; +import org.geysermc.connector.network.translators.world.chunk.GeyserChunkSection; import org.geysermc.connector.utils.ChunkUtils; import java.io.IOException; @@ -48,23 +47,23 @@ import java.io.IOException; import static org.geysermc.connector.utils.ChunkUtils.MINIMUM_ACCEPTED_HEIGHT; import static org.geysermc.connector.utils.ChunkUtils.MINIMUM_ACCEPTED_HEIGHT_OVERWORLD; -@Translator(packet = ClientboundLevelChunkPacket.class) -public class JavaLevelChunkTranslator extends PacketTranslator { +@Translator(packet = ClientboundLevelChunkWithLightPacket.class) +public class JavaLevelChunkWithLightTranslator extends PacketTranslator { @Override - public void translate(GeyserSession session, ClientboundLevelChunkPacket packet) { + public void translate(GeyserSession session, ClientboundLevelChunkWithLightPacket packet) { if (session.isSpawned()) { ChunkUtils.updateChunkPosition(session, session.getPlayerEntity().getPosition().toInt()); } - session.getChunkCache().addToCache(packet.getColumn()); - Column column = packet.getColumn(); + session.getChunkCache().addToCache(packet.getChunk()); + Chunk chunk = packet.getChunk(); // Ensure that, if the player is using lower world heights, the position is not offset int yOffset = session.getChunkCache().getChunkMinY(); - ChunkUtils.ChunkData chunkData = ChunkUtils.translateToBedrock(session, column, yOffset); - ChunkSection[] sections = chunkData.sections(); + ChunkUtils.ChunkData chunkData = ChunkUtils.translateToBedrock(session, chunk, yOffset); + GeyserChunkSection[] sections = chunkData.sections(); // Find highest section int sectionCount = sections.length - 1; @@ -76,7 +75,7 @@ public class JavaLevelChunkTranslator extends PacketTranslator { effectPacket.setType(LevelEventType.PARTICLE_CROP_GROWTH); - ComposterEffectData composterEffectData = (ComposterEffectData) packet.getData(); + ComposterEventData composterEventData = (ComposterEventData) packet.getData(); LevelSoundEventPacket soundEventPacket = new LevelSoundEventPacket(); - switch (composterEffectData) { + switch (composterEventData) { case FILL -> soundEventPacket.setSound(SoundEvent.COMPOSTER_FILL); case FILL_SUCCESS -> soundEventPacket.setSound(SoundEvent.COMPOSTER_FILL_LAYER); } @@ -153,9 +160,9 @@ public class JavaLevelEventTranslator extends PacketTranslator { effectPacket.setType(LevelEventType.PARTICLE_SHOOT); - SmokeEffectData smokeEffectData = (SmokeEffectData) packet.getData(); + SmokeEventData smokeEventData = (SmokeEventData) packet.getData(); int data = 0; - switch (smokeEffectData) { + switch (smokeEventData) { case DOWN -> { data = 4; pos = pos.add(0, -0.9f, 0); @@ -189,14 +196,14 @@ public class JavaLevelEventTranslator extends PacketTranslator { effectPacket.setType(LevelEventType.PARTICLE_DESTROY_BLOCK); - BreakBlockEffectData breakBlockEffectData = (BreakBlockEffectData) packet.getData(); - effectPacket.setData(session.getBlockMappings().getBedrockBlockId(breakBlockEffectData.getBlockState())); + BreakBlockEventData breakBlockEventData = (BreakBlockEventData) packet.getData(); + effectPacket.setData(session.getBlockMappings().getBedrockBlockId(breakBlockEventData.getBlockState())); } case BREAK_SPLASH_POTION -> { effectPacket.setType(LevelEventType.PARTICLE_POTION_SPLASH); effectPacket.setPosition(pos.add(0, -0.5f, 0)); - BreakPotionEffectData splashPotionData = (BreakPotionEffectData) packet.getData(); + BreakPotionEventData splashPotionData = (BreakPotionEventData) packet.getData(); effectPacket.setData(splashPotionData.getPotionId()); LevelSoundEventPacket soundEventPacket = new LevelSoundEventPacket(); @@ -211,17 +218,17 @@ public class JavaLevelEventTranslator extends PacketTranslator effectPacket.setType(LevelEventType.PARTICLE_EYE_OF_ENDER_DEATH); case MOB_SPAWN -> effectPacket.setType(LevelEventType.PARTICLE_MOB_BLOCK_SPAWN); // TODO: Check, but I don't think I really verified this ever went into effect on Java case BONEMEAL_GROW_WITH_SOUND, BONEMEAL_GROW -> { - effectPacket.setType((particleEffect == ParticleEffect.BONEMEAL_GROW + effectPacket.setType((particleEvent == ParticleEvent.BONEMEAL_GROW && session.getUpstream().getProtocolVersion() >= Bedrock_v465.V465_CODEC.getProtocolVersion()) ? LevelEventType.PARTICLE_TURTLE_EGG : LevelEventType.PARTICLE_CROP_GROWTH); - BonemealGrowEffectData growEffectData = (BonemealGrowEffectData) packet.getData(); - effectPacket.setData(growEffectData.getParticleCount()); + BonemealGrowEventData growEventData = (BonemealGrowEventData) packet.getData(); + effectPacket.setData(growEventData.getParticleCount()); } case ENDERDRAGON_FIREBALL_EXPLODE -> { effectPacket.setType(LevelEventType.PARTICLE_EYE_OF_ENDER_DEATH); // TODO - DragonFireballEffectData fireballEffectData = (DragonFireballEffectData) packet.getData(); - if (fireballEffectData == DragonFireballEffectData.HAS_SOUND) { + DragonFireballEventData fireballEventData = (DragonFireballEventData) packet.getData(); + if (fireballEventData == DragonFireballEventData.HAS_SOUND) { LevelSoundEventPacket soundEventPacket = new LevelSoundEventPacket(); soundEventPacket.setSound(SoundEvent.EXPLODE); soundEventPacket.setPosition(pos); @@ -252,24 +259,13 @@ public class JavaLevelEventTranslator extends PacketTranslator { - effectPacket.setType(LevelEventType.PARTICLE_DRIPSTONE_DRIP); - } - case ELECTRIC_SPARK -> { - // Matches with a Bedrock server but doesn't seem to match up with Java - effectPacket.setType(LevelEventType.PARTICLE_ELECTRIC_SPARK); - } - case WAX_ON -> { - effectPacket.setType(LevelEventType.PARTICLE_WAX_ON); - } - case WAX_OFF -> { - effectPacket.setType(LevelEventType.PARTICLE_WAX_OFF); - } - case SCRAPE -> { - effectPacket.setType(LevelEventType.PARTICLE_SCRAPE); - } + case DRIPSTONE_DRIP -> effectPacket.setType(LevelEventType.PARTICLE_DRIPSTONE_DRIP); + case ELECTRIC_SPARK -> effectPacket.setType(LevelEventType.PARTICLE_ELECTRIC_SPARK); // Matches with a Bedrock server but doesn't seem to match up with Java + case WAX_ON -> effectPacket.setType(LevelEventType.PARTICLE_WAX_ON); + case WAX_OFF -> effectPacket.setType(LevelEventType.PARTICLE_WAX_OFF); + case SCRAPE -> effectPacket.setType(LevelEventType.PARTICLE_SCRAPE); default -> { - GeyserConnector.getInstance().getLogger().debug("Unhandled particle effect: " + particleEffect.name()); + GeyserConnector.getInstance().getLogger().debug("Unhandled particle event: " + particleEvent.name()); return; } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaSectionBlocksUpdateTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaSectionBlocksUpdateTranslator.java index 0a94fe1f8..11958b832 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaSectionBlocksUpdateTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/level/JavaSectionBlocksUpdateTranslator.java @@ -25,7 +25,7 @@ package org.geysermc.connector.network.translators.java.level; -import com.github.steveice10.mc.protocol.data.game.level.block.BlockChangeRecord; +import com.github.steveice10.mc.protocol.data.game.level.block.BlockChangeEntry; import com.github.steveice10.mc.protocol.packet.ingame.clientbound.level.ClientboundSectionBlocksUpdatePacket; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.PacketTranslator; @@ -37,8 +37,8 @@ public class JavaSectionBlocksUpdateTranslator extends PacketTranslator> RECIPES = VersionedRegistry.create(RegistryLoaders.empty(Int2ObjectOpenHashMap::new)); /** - * A mapped registry holding the available records, with the ID of the record being the key, and the {@link SoundEvent} + * A mapped registry holding the available records, with the ID of the record being the key, and the {@link com.nukkitx.protocol.bedrock.data.SoundEvent} * as the value. */ - public static final SimpleMappedRegistry RECORDS = SimpleMappedRegistry.create(RegistryLoaders.empty(Int2ObjectOpenHashMap::new)); + public static final SimpleMappedRegistry RECORDS = SimpleMappedRegistry.create(RegistryLoaders.empty(Int2ObjectOpenHashMap::new)); /** * A mapped registry holding sound identifiers to their corresponding {@link SoundMapping}. @@ -121,9 +120,9 @@ public class Registries { public static final SimpleMappedRegistry SOUNDS = SimpleMappedRegistry.create("mappings/sounds.json", SoundRegistryLoader::new); /** - * A mapped registry holding {@link SoundEffect}s to their corresponding {@link Effect}. + * A mapped registry holding {@link SoundEvent}s to their corresponding {@link LevelEventTransformer}. */ - public static final SimpleMappedRegistry SOUND_EFFECTS = SimpleMappedRegistry.create("mappings/effects.json", SoundEffectsRegistryLoader::new); + public static final SimpleMappedRegistry SOUND_EVENTS = SimpleMappedRegistry.create("mappings/effects.json", SoundEventsRegistryLoader::new); /** * A mapped registry holding {@link SoundHandler}s to their corresponding {@link SoundInteractionHandler}. diff --git a/connector/src/main/java/org/geysermc/connector/registry/loader/PotionMixRegistryLoader.java b/connector/src/main/java/org/geysermc/connector/registry/loader/PotionMixRegistryLoader.java index 7c43a21fd..0eff07bb2 100644 --- a/connector/src/main/java/org/geysermc/connector/registry/loader/PotionMixRegistryLoader.java +++ b/connector/src/main/java/org/geysermc/connector/registry/loader/PotionMixRegistryLoader.java @@ -26,7 +26,7 @@ package org.geysermc.connector.registry.loader; import com.nukkitx.protocol.bedrock.data.inventory.PotionMixData; -import org.geysermc.connector.network.BedrockProtocol; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.registry.Registries; import org.geysermc.connector.registry.type.ItemMapping; import org.geysermc.connector.network.translators.item.Potion; @@ -103,7 +103,7 @@ public class PotionMixRegistryLoader implements RegistryLoader> { +public class SoundEventsRegistryLoader extends EffectRegistryLoader> { @Override - public Map load(String input) { + public Map load(String input) { this.loadFile(input); Iterator> effectsIterator = this.get(input).fields(); - Map soundEffects = new Object2ObjectOpenHashMap<>(); + Map soundEffects = new Object2ObjectOpenHashMap<>(); while (effectsIterator.hasNext()) { Map.Entry entry = effectsIterator.next(); JsonNode node = entry.getValue(); try { String type = node.get("type").asText(); - SoundEffect javaEffect = null; - Effect effect = null; + SoundEvent javaEffect = null; + LevelEventTransformer transformer = null; switch (type) { case "soundLevel" -> { - javaEffect = SoundEffect.valueOf(entry.getKey()); + javaEffect = SoundEvent.valueOf(entry.getKey()); LevelEventType levelEventType = LevelEventType.valueOf(node.get("name").asText()); int data = node.has("data") ? node.get("data").intValue() : 0; - effect = new SoundLevelEffect(levelEventType, data); + transformer = new SoundLevelEventTransformer(levelEventType, data); } case "soundEvent" -> { - javaEffect = SoundEffect.valueOf(entry.getKey()); - SoundEvent soundEvent = SoundEvent.valueOf(node.get("name").asText()); + javaEffect = SoundEvent.valueOf(entry.getKey()); + com.nukkitx.protocol.bedrock.data.SoundEvent soundEvent = com.nukkitx.protocol.bedrock.data.SoundEvent.valueOf(node.get("name").asText()); String identifier = node.has("identifier") ? node.get("identifier").asText() : ""; int extraData = node.has("extraData") ? node.get("extraData").intValue() : -1; - effect = new SoundEventEffect(soundEvent, identifier, extraData); + transformer = new SoundEventEventTransformer(soundEvent, identifier, extraData); } case "playSound" -> { - javaEffect = SoundEffect.valueOf(entry.getKey()); + javaEffect = SoundEvent.valueOf(entry.getKey()); String name = node.get("name").asText(); float volume = node.has("volume") ? node.get("volume").floatValue() : 1.0f; boolean pitchSub = node.has("pitch_sub") && node.get("pitch_sub").booleanValue(); float pitchMul = node.has("pitch_mul") ? node.get("pitch_mul").floatValue() : 1.0f; float pitchAdd = node.has("pitch_add") ? node.get("pitch_add").floatValue() : 0.0f; boolean relative = !node.has("relative") || node.get("relative").booleanValue(); - effect = new PlaySoundEffect(name, volume, pitchSub, pitchMul, pitchAdd, relative); + transformer = new PlaySoundEventTransformer(name, volume, pitchSub, pitchMul, pitchAdd, relative); } } if (javaEffect != null) { - soundEffects.put(javaEffect, effect); + soundEffects.put(javaEffect, transformer); } } catch (Exception e) { GeyserConnector.getInstance().getLogger().warning("Failed to map sound effect " + entry.getKey() + " : " + e.toString()); diff --git a/connector/src/main/java/org/geysermc/connector/registry/populator/BlockRegistryPopulator.java b/connector/src/main/java/org/geysermc/connector/registry/populator/BlockRegistryPopulator.java index 30cd7c1cc..a4388388a 100644 --- a/connector/src/main/java/org/geysermc/connector/registry/populator/BlockRegistryPopulator.java +++ b/connector/src/main/java/org/geysermc/connector/registry/populator/BlockRegistryPopulator.java @@ -39,7 +39,7 @@ import it.unimi.dsi.fastutil.objects.ObjectIntPair; import org.geysermc.connector.GeyserConnector; import org.geysermc.connector.network.translators.world.block.BlockStateValues; import org.geysermc.connector.network.translators.world.chunk.BlockStorage; -import org.geysermc.connector.network.translators.world.chunk.ChunkSection; +import org.geysermc.connector.network.translators.world.chunk.GeyserChunkSection; import org.geysermc.connector.registry.BlockRegistries; import org.geysermc.connector.registry.type.BlockMapping; import org.geysermc.connector.registry.type.BlockMappings; @@ -200,7 +200,7 @@ public class BlockRegistryPopulator { builder.bedrockBlockStates(blocksTag); BlockRegistries.BLOCKS.register(palette.getKey().valueInt(), builder.blockStateVersion(stateVersion) - .emptyChunkSection(new ChunkSection(new BlockStorage[]{new BlockStorage(airRuntimeId)})) + .emptyChunkSection(new GeyserChunkSection(new BlockStorage[]{new BlockStorage(airRuntimeId)})) .javaToBedrockBlocks(javaToBedrockBlocks) .javaIdentifierToBedrockTag(javaIdentifierToBedrockTag) .itemFrames(itemFrames) diff --git a/connector/src/main/java/org/geysermc/connector/registry/type/BlockMappings.java b/connector/src/main/java/org/geysermc/connector/registry/type/BlockMappings.java index 0c92d6a4c..c07f2edfa 100644 --- a/connector/src/main/java/org/geysermc/connector/registry/type/BlockMappings.java +++ b/connector/src/main/java/org/geysermc/connector/registry/type/BlockMappings.java @@ -31,7 +31,7 @@ import it.unimi.dsi.fastutil.ints.IntSet; import it.unimi.dsi.fastutil.objects.Object2IntMap; import lombok.Builder; import lombok.Value; -import org.geysermc.connector.network.translators.world.chunk.ChunkSection; +import org.geysermc.connector.network.translators.world.chunk.GeyserChunkSection; import java.util.Map; @@ -44,7 +44,7 @@ public class BlockMappings { int blockStateVersion; - ChunkSection emptyChunkSection; + GeyserChunkSection emptyChunkSection; int[] javaToBedrockBlocks; diff --git a/connector/src/main/java/org/geysermc/connector/registry/type/ItemMapping.java b/connector/src/main/java/org/geysermc/connector/registry/type/ItemMapping.java index fff00950b..4da25893f 100644 --- a/connector/src/main/java/org/geysermc/connector/registry/type/ItemMapping.java +++ b/connector/src/main/java/org/geysermc/connector/registry/type/ItemMapping.java @@ -28,7 +28,7 @@ package org.geysermc.connector.registry.type; import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.Value; -import org.geysermc.connector.network.BedrockProtocol; +import org.geysermc.connector.network.MinecraftProtocol; import org.geysermc.connector.registry.BlockRegistries; @Value @@ -36,7 +36,7 @@ import org.geysermc.connector.registry.BlockRegistries; @EqualsAndHashCode public class ItemMapping { public static final ItemMapping AIR = new ItemMapping("minecraft:air", "minecraft:air", 0, 0, 0, - BlockRegistries.BLOCKS.forVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()).getBedrockAirId(), + BlockRegistries.BLOCKS.forVersion(MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()).getBedrockAirId(), 64, null, null, null); String javaIdentifier; 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 a8fc5f7f8..6532d3452 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java +++ b/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java @@ -27,7 +27,7 @@ package org.geysermc.connector.utils; import com.github.steveice10.mc.protocol.data.game.chunk.BitStorage; import com.github.steveice10.mc.protocol.data.game.chunk.Chunk; -import com.github.steveice10.mc.protocol.data.game.chunk.Column; +import com.github.steveice10.mc.protocol.data.game.chunk.ChunkSection; import com.github.steveice10.mc.protocol.data.game.chunk.palette.GlobalPalette; import com.github.steveice10.mc.protocol.data.game.chunk.palette.Palette; import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position; @@ -52,7 +52,7 @@ import org.geysermc.connector.network.translators.world.block.entity.BedrockOnly import org.geysermc.connector.network.translators.world.block.entity.BlockEntityTranslator; import org.geysermc.connector.network.translators.world.block.entity.SkullBlockEntityTranslator; import org.geysermc.connector.network.translators.world.chunk.BlockStorage; -import org.geysermc.connector.network.translators.world.chunk.ChunkSection; +import org.geysermc.connector.network.translators.world.chunk.GeyserChunkSection; import org.geysermc.connector.network.translators.world.chunk.bitarray.BitArray; import org.geysermc.connector.network.translators.world.chunk.bitarray.BitArrayVersion; import org.geysermc.connector.registry.BlockRegistries; @@ -110,9 +110,9 @@ public class ChunkUtils { return (yzx >> 8) | (yzx & 0x0F0) | ((yzx & 0x00F) << 8); } - public static ChunkData translateToBedrock(GeyserSession session, Column column, int yOffset) { - Chunk[] javaSections = column.getChunks(); - ChunkSection[] sections = new ChunkSection[javaSections.length - yOffset]; + public static ChunkData translateToBedrock(GeyserSession session, Chunk chunk, int yOffset) { + ChunkSection[] javaSections = chunk.getSections(); + GeyserChunkSection[] sections = new GeyserChunkSection[javaSections.length - yOffset]; // Temporarily stores compound tags of Bedrock-only block entities List bedrockOnlyBlockEntities = new ArrayList<>(); @@ -130,7 +130,7 @@ public class ChunkUtils { continue; } - Chunk javaSection = javaSections[sectionY]; + ChunkSection javaSection = javaSections[sectionY]; // No need to encode an empty section... if (javaSection == null || javaSection.isEmpty()) { @@ -142,7 +142,7 @@ public class ChunkUtils { if (javaPalette instanceof GlobalPalette) { // As this is the global palette, simply iterate through the whole chunk section once - ChunkSection section = new ChunkSection(session.getBlockMappings().getBedrockAirId()); + GeyserChunkSection section = new GeyserChunkSection(session.getBlockMappings().getBedrockAirId()); for (int yzx = 0; yzx < BlockStorage.SIZE; yzx++) { int javaId = javaData.get(yzx); int bedrockId = session.getBlockMappings().getBedrockBlockId(javaId); @@ -156,7 +156,7 @@ public class ChunkUtils { // Check if block is piston or flower to see if we'll need to create additional block entities, as they're only block entities in Bedrock if (BlockStateValues.getFlowerPotValues().containsKey(javaId) || BlockStateValues.getPistonValues().containsKey(javaId)) { bedrockOnlyBlockEntities.add(BedrockOnlyBlockEntity.getTag(session, - Vector3i.from((column.getX() << 4) + (yzx & 0xF), ((sectionY + yOffset) << 4) + ((yzx >> 8) & 0xF), (column.getZ() << 4) + ((yzx >> 4) & 0xF)), + Vector3i.from((chunk.getX() << 4) + (yzx & 0xF), ((sectionY + yOffset) << 4) + ((yzx >> 8) & 0xF), (chunk.getZ() << 4) + ((yzx >> 4) & 0xF)), javaId )); } @@ -192,7 +192,7 @@ public class ChunkUtils { int paletteId = javaData.get(yzx); if (pistonOrFlowerPaletteIds.get(paletteId)) { bedrockOnlyBlockEntities.add(BedrockOnlyBlockEntity.getTag(session, - Vector3i.from((column.getX() << 4) + (yzx & 0xF), ((sectionY + yOffset) << 4) + ((yzx >> 8) & 0xF), (column.getZ() << 4) + ((yzx >> 4) & 0xF)), + Vector3i.from((chunk.getX() << 4) + (yzx & 0xF), ((sectionY + yOffset) << 4) + ((yzx >> 8) & 0xF), (chunk.getZ() << 4) + ((yzx >> 4) & 0xF)), javaPalette.idToState(paletteId) )); } @@ -234,10 +234,10 @@ public class ChunkUtils { layers = new BlockStorage[]{ layer0, new BlockStorage(BitArrayVersion.V1.createArray(BlockStorage.SIZE, layer1Data), layer1Palette) }; } - sections[bedrockSectionY] = new ChunkSection(layers); + sections[bedrockSectionY] = new GeyserChunkSection(layers); } - CompoundTag[] blockEntities = column.getTileEntities(); + CompoundTag[] blockEntities = chunk.getBlockEntities(); NbtMap[] bedrockBlockEntities = new NbtMap[blockEntities.length + bedrockOnlyBlockEntities.size()]; int i = 0; while (i < blockEntities.length) { @@ -269,7 +269,7 @@ public class ChunkUtils { // Get Java blockstate ID from block entity position int blockState = 0; - Chunk section = column.getChunks()[(y >> 4) - yOffset]; + ChunkSection section = chunk.getSections()[(y >> 4) - yOffset]; if (section != null) { blockState = section.get(x & 0xF, y & 0xF, z & 0xF); } @@ -453,6 +453,6 @@ public class ChunkUtils { session.getWorldBorder().setWorldCoordinateScale(coordinateScale); } - public record ChunkData(ChunkSection[] sections, NbtMap[] blockEntities) { + public record ChunkData(GeyserChunkSection[] sections, NbtMap[] blockEntities) { } } diff --git a/connector/src/main/java/org/geysermc/connector/utils/InventoryUtils.java b/connector/src/main/java/org/geysermc/connector/utils/InventoryUtils.java index 3d61d428a..c046865f8 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/InventoryUtils.java +++ b/connector/src/main/java/org/geysermc/connector/utils/InventoryUtils.java @@ -27,8 +27,8 @@ package org.geysermc.connector.utils; import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; import com.github.steveice10.mc.protocol.data.game.entity.player.GameMode; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundPickItemPacket; -import com.github.steveice10.mc.protocol.packet.ingame.serverbound.window.ServerboundSetCreativeModeSlotPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundPickItemPacket; +import com.github.steveice10.mc.protocol.packet.ingame.serverbound.inventory.ServerboundSetCreativeModeSlotPacket; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.nukkitx.nbt.NbtMap; import com.nukkitx.nbt.NbtMapBuilder; diff --git a/connector/src/main/java/org/geysermc/connector/utils/LocaleUtils.java b/connector/src/main/java/org/geysermc/connector/utils/LocaleUtils.java index 10fb4ba85..623c4ba84 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/LocaleUtils.java +++ b/connector/src/main/java/org/geysermc/connector/utils/LocaleUtils.java @@ -28,9 +28,9 @@ package org.geysermc.connector.utils; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.JsonNode; -import com.github.steveice10.mc.protocol.MinecraftConstants; import lombok.Getter; import org.geysermc.connector.GeyserConnector; +import org.geysermc.connector.network.MinecraftProtocol; import java.io.*; import java.nio.file.Files; @@ -69,7 +69,7 @@ public class LocaleUtils { // Get the url for the latest version of the games manifest String latestInfoURL = ""; for (Version version : versionManifest.getVersions()) { - if (version.getId().equals(MinecraftConstants.GAME_VERSION)) { + if (version.getId().equals(MinecraftProtocol.getJavaVersion())) { latestInfoURL = version.getUrl(); break; }