Buggy code:
public class PortalStickEntityListener implements Listener { private final PortalStick plugin ; private final Material [ ] gelBlacklist = new Material [ ] { Material . ANVIL , Material . CHEST , Material . FENCE , Material . FENCE_GATE , Material . NETHER_FENCE , Material . IRON_FENCE , Material . GLASS , Material . THIN_GLASS , Material . BED_BLOCK , Material . TRAP_DOOR , Material . IRON_DOOR_BLOCK , Material . WOODEN_DOOR , Material . STONE_PLATE , Material . WOOD_PLATE , Material . DISPENSER , Material . NOTE_BLOCK , Material . WORKBENCH , Material . FURNACE , Material . PISTON_BASE , Material . PISTON_EXTENSION , Material . PISTON_MOVING_PIECE , Material . PISTON_STICKY_BASE , Material . BEACON , Material . GLOWSTONE , Material . REDSTONE_LAMP_OFF , Material . REDSTONE_LAMP_ON , Material . BEDROCK , Material . BURNING_FURNACE , Material . COMMAND , Material . DRAGON_EGG , Material . ENDER_CHEST , Material . JACK_O_LANTERN , Material . JUKEBOX , Material . CAKE_BLOCK , Material . ENCHANTMENT_TABLE , Material . BREWING_STAND , Material . WALL_SIGN , Material . SIGN_POST } ; public PortalStickEntityListener ( PortalStick plugin ) { } @ EventHandler public void gelCollide ( FrozenSandCollideWithBlockEvent evt ) { V10Location from = evt . getFallingSand ( ) . < V10Location > getData ( "dispenser" ) ; if ( from != null ) { if ( plugin . entityManager . teleportFallingFunnel ( evt . getFallingSand ( ) , new V10Location ( evt . getBlock ( ) ) ) ) return ; Location loc = evt . getFallingSand ( ) . getLocation ( ) ; V10Location vloc = new V10Location ( loc . getWorld ( ) , ( ( int ) ( loc . getX ( ) ) ) , ( ( int ) ( loc . getY ( ) ) ) , ( ( int ) ( loc . getZ ( ) ) ) ) ; ArrayList < BlockStorage > blocks ; if ( plugin . gelManager . gels . containsKey ( from ) ) blocks = plugin . gelManager . gels . get ( from ) ; else { blocks = new ArrayList < BlockStorage > ( ) ; plugin . gelManager . gels . put ( from , blocks ) ; } Block b = loc . getBlock ( ) ; int mat = evt . getFallingSand ( ) . blockId ; byte data = ( ( byte ) ( evt . getFallingSand ( ) . blockData ) ) ; BlockStorage bh ; Block b2 ; boolean bl ; for ( BlockFace face : new BlockFace [ ] { BlockFace . DOWN , BlockFace . NORTH , BlockFace . EAST , BlockFace . SOUTH , BlockFace . WEST , BlockFace . UP } ) { b2 = b . getRelative ( face ) ; if ( ( ( ( b2 . getType ( ) ) != ( Material . AIR ) ) && ( ! ( b2 . isLiquid ( ) ) ) ) && ( b2 . getType ( ) . isSolid ( ) ) ) { bl = false ; for ( Material mat3 : gelBlacklist ) if ( ( b2 . getType ( ) ) == mat3 ) { bl = true ; break ; } if ( bl ) continue ; vloc = new V10Location ( b2 ) ; if ( ( ( ( ( ( plugin . portalManager . insideBlocks . containsKey ( vloc ) ) || ( plugin . portalManager . behindBlocks . containsKey ( vloc ) ) ) || ( plugin . grillManager . borderBlocks . containsKey ( vloc ) ) ) || ( plugin . grillManager . insideBlocks . containsKey ( vloc ) ) ) || ( plugin . funnelBridgeManager . bridgeBlocks . containsKey ( vloc ) ) ) || ( plugin . funnelBridgeManager . bridgeMachineBlocks . containsKey ( vloc ) ) ) continue ; bh = new BlockStorage ( b2 ) ; boolean contains = false ; for ( BlockStorage bs : blocks ) { if ( bh . getLocation ( ) . equals ( bs . getLocation ( ) ) ) { contains = true ; break ; } } if ( ! contains ) { if ( plugin . gelManager . gelMap . containsKey ( vloc ) ) bh = plugin . gelManager . gelMap . get ( vloc ) ; else plugin . gelManager . gelMap . put ( vloc , bh ) ; blocks . add ( bh ) ; b2 . setTypeIdAndData ( mat , data , true ) ; } } } <START_BUG> evt . getFallingSand ( ) . remove ( ) ; <END_BUG> } } @ EventHandler ( ignoreCancelled = true ) public void onEntityDamage ( EntityDamageEvent event ) { } @ EventHandler ( ignoreCancelled = true ) public void onEntityExplode ( EntityExplodeEvent event ) { } @ EventHandler public void spawn ( EntitySpawnEvent evt ) { } @ EventHandler ( ignoreCancelled = true ) public void blockLand ( EntityChangeBlockEvent event ) { } @ EventHandler public void despawn ( EntityDespawnEvent evt ) { } @ EventHandler public void onItemSpawn ( ItemSpawnEvent event ) { } @ EventHandler public void entityMove ( EntityMoveEvent evt ) { } @ EventHandler public void tp ( EntityTeleportEvent event ) { } @ EventHandler public void cubeGroundTick ( CubeGroundTickEvent evt ) { } }

Fix:
plugin . util . nmsUtil . frozenSandManager . remove ( evt . getFallingSand ( ) ) ;