// Do not forget that we need every class to extends the abstract furnace classes or it won't work! public class TestFurnace extends AbstractFurnaceBlock { public TestFurnace(Settings settings) { super(settings); } @Override public @Nullable BlockEntity createBlockEntity(BlockView world) { return new TestFurnaceBlockEntity(); } @Override public void openScreen(World world, BlockPos pos, PlayerEntity player) { //This is called by the onUse method inside AbstractFurnaceBlock so //it is a little bit different of how you open the screen for normal container BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof TestFurnaceBlockEntity) { player.openHandledScreen((NamedScreenHandlerFactory)blockEntity); // Optional: increment player's stat player.incrementStat(Stats.INTERACT_WITH_FURNACE); } } }