From 07c7b2f7f8166fd1adde6551c2e1ab7cbc0c2501 Mon Sep 17 00:00:00 2001
From: Camotoy <20743703+Camotoy@users.noreply.github.com>
Date: Mon, 3 Oct 2022 13:33:24 -0400
Subject: [PATCH] Clean up on legacy code that will no longer trigger

---
 .../platform/spigot/GeyserSpigotPlugin.java   |  30 +----
 .../spigot/command/SpigotCommandSource.java   |  61 +--------
 .../spigot/world/GeyserPistonListener.java    |   7 +-
 .../GeyserSpigot1_12NativeWorldManager.java   |  61 ---------
 .../manager/GeyserSpigot1_12WorldManager.java | 125 ------------------
 .../GeyserSpigotFallbackWorldManager.java     |  56 --------
 .../manager/GeyserSpigotWorldManager.java     |  13 +-
 7 files changed, 13 insertions(+), 340 deletions(-)
 delete mode 100644 bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigot1_12NativeWorldManager.java
 delete mode 100644 bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigot1_12WorldManager.java
 delete mode 100644 bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotFallbackWorldManager.java

diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPlugin.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPlugin.java
index d7a4da7c8..5f0061382 100644
--- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPlugin.java
+++ b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPlugin.java
@@ -60,7 +60,6 @@ import org.geysermc.geyser.ping.IGeyserPingPassthrough;
 import org.geysermc.geyser.platform.spigot.command.GeyserBrigadierSupport;
 import org.geysermc.geyser.platform.spigot.command.GeyserSpigotCommandExecutor;
 import org.geysermc.geyser.platform.spigot.command.GeyserSpigotCommandManager;
-import org.geysermc.geyser.platform.spigot.command.SpigotCommandSource;
 import org.geysermc.geyser.platform.spigot.world.GeyserPistonListener;
 import org.geysermc.geyser.platform.spigot.world.GeyserSpigotBlockPlaceListener;
 import org.geysermc.geyser.platform.spigot.world.manager.*;
@@ -269,14 +268,6 @@ public class GeyserSpigotPlugin extends JavaPlugin implements GeyserBootstrap {
                 }
             }
         }
-        // Used to determine if Block.getBlockData() is present.
-        boolean isLegacy = !isCompatible(Bukkit.getServer().getVersion(), "1.13.0");
-        if (isLegacy)
-            geyserLogger.debug("Legacy version of Minecraft (1.12.2 or older) detected; falling back to ViaVersion for block state retrieval.");
-
-        boolean isPre1_12 = !isCompatible(Bukkit.getServer().getVersion(), "1.12.0");
-        // Set if we need to use a different method for getting a player's locale
-        SpigotCommandSource.setUseLegacyLocaleMethod(isPre1_12);
 
         // We want to do this late in the server startup process to allow plugins such as ViaVersion and ProtocolLib
         // To do their job injecting, then connect into *that*
@@ -289,13 +280,7 @@ public class GeyserSpigotPlugin extends JavaPlugin implements GeyserBootstrap {
                 String nmsVersion = name.substring(name.lastIndexOf('.') + 1);
                 SpigotAdapters.registerWorldAdapter(nmsVersion);
                 if (isViaVersion && isViaVersionNeeded()) {
-                    if (isLegacy) {
-                        // Pre-1.13
-                        this.geyserWorldManager = new GeyserSpigot1_12NativeWorldManager(this);
-                    } else {
-                        // Post-1.13
-                        this.geyserWorldManager = new GeyserSpigotLegacyNativeWorldManager(this);
-                    }
+                    this.geyserWorldManager = new GeyserSpigotLegacyNativeWorldManager(this);
                 } else {
                     // No ViaVersion
                     this.geyserWorldManager = new GeyserSpigotNativeWorldManager(this);
@@ -312,17 +297,8 @@ public class GeyserSpigotPlugin extends JavaPlugin implements GeyserBootstrap {
         }
         if (this.geyserWorldManager == null) {
             // No NMS adapter
-            if (isLegacy && isViaVersion) {
-                // Use ViaVersion for converting pre-1.13 block states
-                this.geyserWorldManager = new GeyserSpigot1_12WorldManager(this);
-            } else if (isLegacy) {
-                // Not sure how this happens - without ViaVersion, we don't know any block states, so just assume everything is air
-                this.geyserWorldManager = new GeyserSpigotFallbackWorldManager(this);
-            } else {
-                // Post-1.13
-                this.geyserWorldManager = new GeyserSpigotWorldManager(this);
-            }
-            geyserLogger.debug("Using default world manager: " + this.geyserWorldManager.getClass());
+            this.geyserWorldManager = new GeyserSpigotWorldManager(this);
+            geyserLogger.debug("Using default world manager.");
         }
 
         PluginCommand geyserCommand = this.getCommand("geyser");
diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/command/SpigotCommandSource.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/command/SpigotCommandSource.java
index 8deddd8e6..95fba707f 100644
--- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/command/SpigotCommandSource.java
+++ b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/command/SpigotCommandSource.java
@@ -29,31 +29,17 @@ import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer;
 import org.bukkit.command.ConsoleCommandSender;
 import org.bukkit.entity.Player;
-import org.geysermc.geyser.GeyserImpl;
 import org.geysermc.geyser.command.GeyserCommandSource;
 import org.geysermc.geyser.platform.spigot.PaperAdventure;
 import org.geysermc.geyser.text.GeyserLocale;
 
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
 public class SpigotCommandSource implements GeyserCommandSource {
-
-    /**
-     * Whether to use {@code Player.getLocale()} or {@code Player.spigot().getLocale()}, depending on version.
-     * 1.12 or greater should not use the legacy method.
-     */
-    private static boolean USE_LEGACY_METHOD = false;
-    private static Method LOCALE_METHOD;
-
     private final org.bukkit.command.CommandSender handle;
-    private final String locale;
 
     public SpigotCommandSource(org.bukkit.command.CommandSender handle) {
         this.handle = handle;
-        this.locale = getSpigotLocale();
         // Ensure even Java players' languages are loaded
-        GeyserLocale.loadGeyserLocale(locale);
+        GeyserLocale.loadGeyserLocale(locale());
     }
 
     @Override
@@ -84,50 +70,15 @@ public class SpigotCommandSource implements GeyserCommandSource {
 
     @Override
     public String locale() {
-        return locale;
+        if (this.handle instanceof Player player) {
+            return player.getLocale();
+        }
+
+        return GeyserLocale.getDefaultLocale();
     }
 
     @Override
     public boolean hasPermission(String permission) {
         return handle.hasPermission(permission);
     }
-
-    /**
-     * Set if we are on pre-1.12, and therefore {@code player.getLocale()} doesn't exist and we have to get
-     * {@code player.spigot().getLocale()}.
-     *
-     * @param useLegacyMethod if we are running pre-1.12 and therefore need to use reflection to get the player locale
-     */
-    public static void setUseLegacyLocaleMethod(boolean useLegacyMethod) {
-        USE_LEGACY_METHOD = useLegacyMethod;
-        if (USE_LEGACY_METHOD) {
-            try {
-                //noinspection JavaReflectionMemberAccess - of course it doesn't exist; that's why we're doing it
-                LOCALE_METHOD = Player.Spigot.class.getMethod("getLocale");
-            } catch (NoSuchMethodException e) {
-                GeyserImpl.getInstance().getLogger().debug("Player.Spigot.getLocale() doesn't exist? Not a big deal but if you're seeing this please report it to the developers!");
-            }
-        }
-    }
-
-    /**
-     * So we only have to do nasty reflection stuff once per command
-     *
-     * @return the locale of the Spigot player
-     */
-    private String getSpigotLocale() {
-        if (handle instanceof Player player) {
-            if (USE_LEGACY_METHOD) {
-                try {
-                    // sigh
-                    // This was the only option on older Spigot instances and now it's gone
-                    return (String) LOCALE_METHOD.invoke(player.spigot());
-                } catch (IllegalAccessException | InvocationTargetException ignored) {
-                }
-            } else {
-                return player.getLocale();
-            }
-        }
-        return GeyserLocale.getDefaultLocale();
-    }
 }
diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/GeyserPistonListener.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/GeyserPistonListener.java
index 8be1cb84e..5eb99e10c 100644
--- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/GeyserPistonListener.java
+++ b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/GeyserPistonListener.java
@@ -105,13 +105,10 @@ public class GeyserPistonListener implements Listener {
             // Trying to grab the blocks from the world like other platforms would result in the moving piston block
             // being returned instead.
             if (!blocksFilled) {
-                // Blocks currently require a player for 1.12, so let's just leech off one player to get all blocks
-                // and call it a day for the rest of the sessions (mostly to save on execution time)
                 List<Block> blocks = isExtend ? ((BlockPistonExtendEvent) event).getBlocks() : ((BlockPistonRetractEvent) event).getBlocks();
                 for (Block block : blocks) {
                     Location attachedLocation = block.getLocation();
-                    int blockId = worldManager.getBlockNetworkId(player, block,
-                            attachedLocation.getBlockX(), attachedLocation.getBlockY(), attachedLocation.getBlockZ());
+                    int blockId = worldManager.getBlockNetworkId(block);
                     // Ignore blocks that will be destroyed
                     if (BlockStateValues.canPistonMoveBlock(blockId, isExtend)) {
                         attachedBlocks.put(getVector(attachedLocation), blockId);
@@ -120,7 +117,7 @@ public class GeyserPistonListener implements Listener {
                 blocksFilled = true;
             }
 
-            int pistonBlockId = worldManager.getBlockNetworkId(player, event.getBlock(), location.getBlockX(), location.getBlockY(), location.getBlockZ());
+            int pistonBlockId = worldManager.getBlockNetworkId(event.getBlock());
             // event.getDirection() is unreliable
             Direction orientation = BlockStateValues.getPistonOrientation(pistonBlockId);
 
diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigot1_12NativeWorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigot1_12NativeWorldManager.java
deleted file mode 100644
index 0ac8d6856..000000000
--- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigot1_12NativeWorldManager.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2019-2022 GeyserMC. http://geysermc.org
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * @author GeyserMC
- * @link https://github.com/GeyserMC/Geyser
- */
-
-package org.geysermc.geyser.platform.spigot.world.manager;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.storage.BlockStorage;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-import org.geysermc.geyser.adapters.spigot.SpigotAdapters;
-import org.geysermc.geyser.adapters.spigot.SpigotWorldAdapter;
-import org.geysermc.geyser.level.block.BlockStateValues;
-import org.geysermc.geyser.session.GeyserSession;
-
-/**
- * Used with ViaVersion and pre-1.13.
- */
-public class GeyserSpigot1_12NativeWorldManager extends GeyserSpigot1_12WorldManager {
-    private final SpigotWorldAdapter adapter;
-
-    public GeyserSpigot1_12NativeWorldManager(Plugin plugin) {
-        super(plugin);
-        this.adapter = SpigotAdapters.getWorldAdapter();
-        // Unlike post-1.13, we can't build up a cache of block states, because block entities need some special conversion
-    }
-
-    @Override
-    public int getBlockAt(GeyserSession session, int x, int y, int z) {
-        Player player = Bukkit.getPlayer(session.getPlayerEntity().getUsername());
-        if (player == null) {
-            return BlockStateValues.JAVA_AIR_ID;
-        }
-        // Get block entity storage
-        BlockStorage storage = Via.getManager().getConnectionManager().getConnectedClient(player.getUniqueId()).get(BlockStorage.class);
-        int blockId = adapter.getBlockAt(player.getWorld(), x, y, z);
-        return getLegacyBlock(storage, blockId, x, y, z);
-    }
-}
diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigot1_12WorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigot1_12WorldManager.java
deleted file mode 100644
index 2ca024abf..000000000
--- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigot1_12WorldManager.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2019-2022 GeyserMC. http://geysermc.org
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * @author GeyserMC
- * @link https://github.com/GeyserMC/Geyser
- */
-
-package org.geysermc.geyser.platform.spigot.world.manager;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.api.data.MappingData;
-import com.viaversion.viaversion.api.minecraft.Position;
-import com.viaversion.viaversion.api.protocol.ProtocolPathEntry;
-import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
-import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2;
-import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.storage.BlockStorage;
-import org.bukkit.Bukkit;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-import org.geysermc.geyser.level.block.BlockStateValues;
-import org.geysermc.geyser.session.GeyserSession;
-
-import java.util.List;
-
-/**
- * Should be used when ViaVersion is present, no NMS adapter is being used, and we are pre-1.13.
- *
- * You need ViaVersion to connect to an older server with the Geyser-Spigot plugin.
- */
-public class GeyserSpigot1_12WorldManager extends GeyserSpigotWorldManager {
-    /**
-     * Specific mapping data for 1.12 to 1.13. Used to convert the 1.12 block into the 1.13 block state.
-     * (Block IDs did not change between server versions until 1.13 and after)
-     */
-    private final MappingData mappingData1_12to1_13;
-
-    /**
-     * The list of all protocols from the client's version to 1.13.
-     */
-    private final List<ProtocolPathEntry> protocolList;
-
-    public GeyserSpigot1_12WorldManager(Plugin plugin) {
-        super(plugin);
-        this.mappingData1_12to1_13 = Via.getManager().getProtocolManager().getProtocol(Protocol1_13To1_12_2.class).getMappingData();
-        this.protocolList = Via.getManager().getProtocolManager().getProtocolPath(CLIENT_PROTOCOL_VERSION,
-                ProtocolVersion.v1_13.getVersion());
-    }
-
-    @Override
-    public int getBlockAt(GeyserSession session, int x, int y, int z) {
-        Player player = Bukkit.getPlayer(session.getPlayerEntity().getUsername());
-        if (player == null) {
-            return BlockStateValues.JAVA_AIR_ID;
-        }
-        if (!player.getWorld().isChunkLoaded(x >> 4, z >> 4)) {
-            // Prevent nasty async errors if a player is loading in
-            return BlockStateValues.JAVA_AIR_ID;
-        }
-
-        Block block = player.getWorld().getBlockAt(x, y, z);
-        return getBlockNetworkId(player, block, x, y, z);
-    }
-
-    @Override
-    @SuppressWarnings("deprecation")
-    public int getBlockNetworkId(Player player, Block block, int x, int y, int z) {
-        // Get block entity storage
-        BlockStorage storage = Via.getManager().getConnectionManager().getConnectedClient(player.getUniqueId()).get(BlockStorage.class);
-        // Black magic that gets the old block state ID
-        int oldBlockId = (block.getType().getId() << 4) | (block.getData() & 0xF);
-        return getLegacyBlock(storage, oldBlockId, x, y, z);
-    }
-
-    /**
-     *
-     * @param storage ViaVersion's block entity storage (used to fix block entity state differences)
-     * @param blockId the pre-1.13 block id
-     * @param x X coordinate of block
-     * @param y Y coordinate of block
-     * @param z Z coordinate of block
-     * @return the block state updated to the latest Minecraft version
-     */
-    public int getLegacyBlock(BlockStorage storage, int blockId, int x, int y, int z) {
-        // Convert block state from old version (1.12.2) -> 1.13 -> 1.13.1 -> 1.14 -> 1.15 -> 1.16 -> 1.16.2
-        blockId = mappingData1_12to1_13.getNewBlockId(blockId);
-        // Translate block entity differences - some information was stored in block tags and not block states
-        if (storage.isWelcome(blockId)) { // No getOrDefault method
-            BlockStorage.ReplacementData data = storage.get(new Position(x, (short) y, z));
-            if (data != null && data.getReplacement() != -1) {
-                blockId = data.getReplacement();
-            }
-        }
-        for (int i = protocolList.size() - 1; i >= 0; i--) {
-            MappingData mappingData = protocolList.get(i).getProtocol().getMappingData();
-            if (mappingData != null) {
-                blockId = mappingData.getNewBlockStateId(blockId);
-            }
-        }
-        return blockId;
-    }
-
-    @Override
-    public boolean isLegacy() {
-        return true;
-    }
-}
diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotFallbackWorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotFallbackWorldManager.java
deleted file mode 100644
index fa78a671c..000000000
--- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotFallbackWorldManager.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2019-2022 GeyserMC. http://geysermc.org
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * @author GeyserMC
- * @link https://github.com/GeyserMC/Geyser
- */
-
-package org.geysermc.geyser.platform.spigot.world.manager;
-
-import org.bukkit.plugin.Plugin;
-import org.geysermc.geyser.level.block.BlockStateValues;
-import org.geysermc.geyser.session.GeyserSession;
-
-/**
- * Should only be used when we know {@link GeyserSpigotWorldManager#getBlockAt(GeyserSession, int, int, int)}
- * cannot be accurate. Typically, this is when ViaVersion is not installed but a client still manages to connect.
- * If this occurs to you somehow, please let us know!!
- */
-public class GeyserSpigotFallbackWorldManager extends GeyserSpigotWorldManager {
-    public GeyserSpigotFallbackWorldManager(Plugin plugin) {
-        super(plugin);
-    }
-
-    @Override
-    public int getBlockAt(GeyserSession session, int x, int y, int z) {
-        return BlockStateValues.JAVA_AIR_ID;
-    }
-
-    @Override
-    public boolean hasOwnChunkCache() {
-        return false;
-    }
-
-    @Override
-    public boolean isLegacy() {
-        return true;
-    }
-}
diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotWorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotWorldManager.java
index 093e28794..7bb8f1666 100644
--- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotWorldManager.java
+++ b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotWorldManager.java
@@ -33,7 +33,6 @@ import org.bukkit.Bukkit;
 import org.bukkit.World;
 import org.bukkit.block.Block;
 import org.bukkit.block.Lectern;
-import org.bukkit.block.data.BlockData;
 import org.bukkit.entity.Player;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.BookMeta;
@@ -41,7 +40,6 @@ import org.bukkit.plugin.Plugin;
 import org.geysermc.geyser.level.GameRule;
 import org.geysermc.geyser.level.GeyserWorldManager;
 import org.geysermc.geyser.level.block.BlockStateValues;
-import org.geysermc.geyser.network.GameProtocol;
 import org.geysermc.geyser.registry.BlockRegistries;
 import org.geysermc.geyser.session.GeyserSession;
 import org.geysermc.geyser.translator.inventory.LecternInventoryTranslator;
@@ -54,11 +52,6 @@ import java.util.List;
  * The base world manager to use when there is no supported NMS revision
  */
 public class GeyserSpigotWorldManager extends GeyserWorldManager {
-    /**
-     * The current client protocol version for ViaVersion usage.
-     */
-    protected static final int CLIENT_PROTOCOL_VERSION = GameProtocol.getJavaProtocolVersion();
-
     private final Plugin plugin;
 
     public GeyserSpigotWorldManager(Plugin plugin) {
@@ -77,10 +70,10 @@ public class GeyserSpigotWorldManager extends GeyserWorldManager {
             return BlockStateValues.JAVA_AIR_ID;
         }
 
-        return getBlockNetworkId(bukkitPlayer, world.getBlockAt(x, y, z), x, y, z);
+        return getBlockNetworkId(world.getBlockAt(x, y, z));
     }
 
-    public int getBlockNetworkId(Player player, Block block, int x, int y, int z) {
+    public int getBlockNetworkId(Block block) {
         return BlockRegistries.JAVA_IDENTIFIERS.getOrDefault(block.getBlockData().getAsString(), BlockStateValues.JAVA_AIR_ID);
     }
 
@@ -181,8 +174,6 @@ public class GeyserSpigotWorldManager extends GeyserWorldManager {
     }
 
     /**
-     * This must be set to true if we are pre-1.13, and {@link BlockData#getAsString() does not exist}.
-     *
      * This should be set to true if we are post-1.13 but before the latest version, and we should convert the old block state id
      * to the current one.
      *