As part of my AutoMod plugin I check the owner of the first few blocks that a player breaks, it seems that some of the time an NPE is thrown. Code: 2012-01-01 14:39:46 [SEVERE] at de.diddiz.LogBlock.QueryParams.getTable(QueryParams.java:120) 2012-01-01 14:39:46 [SEVERE] at de.diddiz.LogBlock.QueryParams.getQuery(QueryParams.java:105) 2012-01-01 14:39:46 [SEVERE] at de.diddiz.LogBlock.LogBlock.getBlockChanges(LogBlock.java:285) 2012-01-01 14:39:46 [SEVERE] at uk.co.jacekk.bukkit.automod.listener.AutoModBlockListener.onBlockBreak(AutoModBlockListener.java:132) 2012-01-01 14:39:46 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$40.execute(JavaPluginLoader.java:542) 2012-01-01 14:39:46 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 2012-01-01 14:39:46 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:201) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:165) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:501) 2012-01-01 14:39:46 [SEVERE] at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:208) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.Packet14BlockDig.a(SourceFile:43) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:93) 2012-01-01 14:39:46 [SEVERE] at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:550) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.NetworkListenThread.a(SourceFile:108) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:527) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425) 2012-01-01 14:39:46 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:457) I have seen this in my server.log file but don't seem to be able to reproduce it locally, the coe involved is Code: try{ QueryParams params = new QueryParams(plugin.logblock); params.loc = event.getBlock().getLocation(); params.bct = BlockChangeType.CREATED; params.order = Order.DESC; params.limit = 1; params.needType = true; params.needPlayer = true; for (BlockChange bc : plugin.logblock.getBlockChanges(params)){ if (bc.type == blockId && bc.playerName != playerName){ plugin.buildDeniedList.addPlayer(player); this.notifyPlayer(player, "Breaking a block not placed by you"); break; } } }catch (Exception e){ plugin.log.warn("LogBlock lookup failed."); e.printStackTrace(); } I can't really think of the cause for this, other than there not being a table for the world the player is in. Any ideas ? Rather oddly, this seemed to fix it Code: QueryParams params = new QueryParams(plugin.logblock); params.loc = event.getBlock().getLocation(); params.world = params.loc.getWorld(); params.bct = BlockChangeType.CREATED; params.order = Order.DESC; params.limit = 1; params.needType = true; params.needPlayer = true; BlockChange change = plugin.logblock.getBlockChanges(params).get(0); if (change.type == blockId && change.playerName != playerName){ plugin.buildDeniedList.addPlayer(player); this.notifyPlayer(player, "Breaking a block not placed by you"); } I guess the world is not taken from the location :s EDIT by Moderator: merged posts, please use the edit button instead of double posting.