[04:35:13 WARN]: TileEntity threw exception at world:-420,74,-453
[04:35:13 WARN]: java.lang.NullPointerException: Cannot invoke "org.bukkit.inventory.InventoryHolder.getInventory()" because the return value of "net.minecraft.server.v1_15_R1.TileEntity.getOwner(boolean)" is null
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.TileEntityHopper.getInventory(TileEntityHopper.java:309)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.TileEntityHopper.a(TileEntityHopper.java:474)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.TileEntityHopper.a(TileEntityHopper.java:418)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.TileEntityHopper.lambda$tick$0(TileEntityHopper.java:118)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.TileEntityHopper.a(TileEntityHopper.java:139)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.TileEntityHopper.tick(TileEntityHopper.java:117)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.World.tickBlockEntities(World.java:778)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.WorldServer.doTick(WorldServer.java:523)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.b(MinecraftServer.java:1245)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:430)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:1112)
[04:35:13 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:934)
[04:35:13 WARN]: at java.base/java.lang.Thread.run(Thread.java:832)
I was testing a sign conversion for hoppers when I noticed that this code produced that error. I am not 100% sure how to resolve it but a buddy told me it's something that i should report.
@EventHandler
public void onItemTransfer (InventoryMoveItemEvent event) {
if (event.getSource().getType() != InventoryType.HOPPER) return;
convertToSign(event.getSource().getHolder());
}
private void convertToSign (InventoryHolder holder) {
if (holder == null) return;
Block block = holder.getInventory().getLocation().getBlock();
block.breakNaturally();
block.setType(Material.DARK_OAK_SIGN);
}
(Hopper connected to a doublechest via the back left side)
Is this actually a bug or am i just doing something wrong that can be easily fixed?
git-Paper-126 (MC: 1.15.2)
Don't modify blocks which are being ticked, the server doesn't expect nor like that
Ok im abit more confused. What would be recommend way to remove/replace the hopper block or are you saying it isnt possible?
Use the scheduler and remove the block on the next tick
That's take a second to appreciate the beautiful message on the nullpointer exception. Isn't java 14 beautiful?
Most helpful comment
That's take a second to appreciate the beautiful message on the nullpointer exception. Isn't java 14 beautiful?