--- a/net/minecraft/world/level/block/entity/TileEntityTypes.java
+++ b/net/minecraft/world/level/block/entity/TileEntityTypes.java
@@ -66,7 +66,7 @@
     public static final TileEntityTypes<CrafterBlockEntity> CRAFTER = register("crafter", CrafterBlockEntity::new, Blocks.CRAFTER);
     public static final TileEntityTypes<TrialSpawnerBlockEntity> TRIAL_SPAWNER = register("trial_spawner", TrialSpawnerBlockEntity::new, Blocks.TRIAL_SPAWNER);
     public static final TileEntityTypes<VaultBlockEntity> VAULT = register("vault", VaultBlockEntity::new, Blocks.VAULT);
-    private static final Set<TileEntityTypes<?>> OP_ONLY_CUSTOM_DATA = Set.of(TileEntityTypes.COMMAND_BLOCK, TileEntityTypes.LECTERN, TileEntityTypes.SIGN, TileEntityTypes.HANGING_SIGN, TileEntityTypes.MOB_SPAWNER, TileEntityTypes.TRIAL_SPAWNER);
+    private static final Set<TileEntityTypes<?>> OP_ONLY_CUSTOM_DATA = Set.of(TileEntityTypes.COMMAND_BLOCK, TileEntityTypes.LECTERN, TileEntityTypes.SIGN, TileEntityTypes.HANGING_SIGN, TileEntityTypes.MOB_SPAWNER, TileEntityTypes.TRIAL_SPAWNER, TileEntityTypes.CHEST); // CraftBukkit
     private final TileEntityTypes.a<? extends T> factory;
     private final Set<Block> validBlocks;
     private final Holder.c<TileEntityTypes<?>> builtInRegistryHolder;
@@ -110,7 +110,7 @@
     public T getBlockEntity(IBlockAccess iblockaccess, BlockPosition blockposition) {
         TileEntity tileentity = iblockaccess.getBlockEntity(blockposition);
 
-        return tileentity != null && tileentity.getType() == this ? tileentity : null;
+        return tileentity != null && tileentity.getType() == this ? (T) tileentity : null; // CraftBukkit - decompile error
     }
 
     public boolean onlyOpCanSetNbt() {
