Buggy code:
public class PoreWorld extends PoreWrapper < World > implements org . bukkit . World { public static PoreWorld of ( World handle ) { } public static PoreWorld of ( Extent handle ) { } protected PoreWorld ( World handle ) { } @ Override public Block getBlockAt ( int x , int y , int z ) { <START_BUG> return PoreBlock . of ( getHandle ( ) . getBlock ( x , y , z ) ) ; <END_BUG> } @ Override public Block getBlockAt ( Location location ) { } @ Override public int getBlockTypeIdAt ( int x , int y , int z ) { } @ Override public int getBlockTypeIdAt ( Location location ) { } @ Override public int getHighestBlockYAt ( int x , int z ) { } @ Override public int getHighestBlockYAt ( Location location ) { } @ Override public Block getHighestBlockAt ( int x , int z ) { } @ Override public Block getHighestBlockAt ( Location location ) { } @ Override public Chunk getChunkAt ( int x , int z ) { } @ Override public Chunk getChunkAt ( Location location ) { } @ Override public Chunk getChunkAt ( Block block ) { } @ Override public Chunk [ ] getLoadedChunks ( ) { } @ Override public boolean isChunkLoaded ( Chunk chunk ) { } @ Override public boolean isChunkLoaded ( int x , int z ) { } @ Override public boolean isChunkInUse ( int x , int z ) { } @ Override public void loadChunk ( Chunk chunk ) { } @ Override public void loadChunk ( int x , int z ) { } @ Override public boolean loadChunk ( int x , int z , boolean generate ) { } @ Override public boolean unloadChunk ( Chunk chunk ) { } @ Override public boolean unloadChunk ( int x , int z ) { } @ Override public boolean unloadChunk ( int x , int z , boolean save ) { } @ Override public boolean unloadChunk ( int x , int z , boolean save , boolean safe ) { } @ Override public boolean unloadChunkRequest ( int x , int z ) { } @ Override public boolean unloadChunkRequest ( int x , int z , boolean safe ) { } @ Override public boolean regenerateChunk ( int x , int z ) { } @ Override public boolean refreshChunk ( int x , int z ) { } @ Override public Item dropItem ( Location location , ItemStack item ) { } @ Override public Item dropItemNaturally ( Location location , ItemStack item ) { } @ Override public Arrow spawnArrow ( Location location , Vector direction , float speed , float spread ) { } @ Override public boolean generateTree ( Location location , TreeType type ) { } @ Override public boolean generateTree ( Location loc , TreeType type , BlockChangeDelegate delegate ) { } @ Override public Entity spawnEntity ( Location loc , EntityType type ) { } @ Override public LivingEntity spawnCreature ( Location loc , EntityType type ) { } @ Override public LivingEntity spawnCreature ( Location loc , CreatureType type ) { } @ Override public LightningStrike strikeLightning ( Location loc ) { } @ Override public LightningStrike strikeLightningEffect ( Location loc ) { } @ Override public List < Entity > getEntities ( ) { } @ Override public List < LivingEntity > getLivingEntities ( ) { } @ Override @ SuppressWarnings ( "unchecked" ) public < T extends Entity > Collection < T > getEntitiesByClass ( Class < T > cls ) { } @ Override @ SuppressWarnings ( "unchecked" ) @ Deprecated public < T extends Entity > Collection < T > getEntitiesByClass ( final Class < T > ... classes ) { } @ Override @ SuppressWarnings ( "unchecked" ) public Collection < Entity > getEntitiesByClasses ( final Class < ? > ... classes ) { } @ Override public List < Player > getPlayers ( ) { } @ Override public String getName ( ) { } @ Override public UUID getUID ( ) { } @ Override public Location getSpawnLocation ( ) { } @ Override public boolean setSpawnLocation ( int x , int y , int z ) { } @ Override public long getTime ( ) { } @ Override public void setTime ( long time ) { } @ Override public long getFullTime ( ) { } @ Override public void setFullTime ( long time ) { } @ Override public boolean hasStorm ( ) { } @ Override public void setStorm ( boolean hasStorm ) { } @ Override public int getWeatherDuration ( ) { } @ Override public void setWeatherDuration ( int duration ) { } @ Override public boolean isThundering ( ) { } @ Override public void setThundering ( boolean thundering ) { } @ Override public int getThunderDuration ( ) { } @ Override public void setThunderDuration ( int duration ) { } @ Override public boolean createExplosion ( double x , double y , double z , float power ) { } @ Override public boolean createExplosion ( double x , double y , double z , float power , boolean setFire ) { } @ Override public boolean createExplosion ( double x , double y , double z , float power , boolean setFire , boolean breakBlocks ) { } @ Override public boolean createExplosion ( Location loc , float power ) { } @ Override public boolean createExplosion ( Location loc , float power , boolean setFire ) { } @ Override public Environment getEnvironment ( ) { } @ Override public long getSeed ( ) { } @ Override public boolean getPVP ( ) { } @ Override public void setPVP ( boolean pvp ) { } @ Override public ChunkGenerator getGenerator ( ) { } @ Override public void save ( ) { }

Fix:
return PoreBlock . of ( getHandle ( ) . getFullBlock ( x , y , z ) ) ;