I have a Cup block in my mod (1.16), and the player should be able to right-click it to "pick it up" in item form. I currently do this by getting the block's drops, with the following code:
if (!worldIn.isRemote) {
MinecraftServer server = worldIn.getServer();
List<ItemStack> drops = getDrops(state, server.getWorld(worldIn.getDimensionKey()), pos, tileEntity);
if (!drops.isEmpty()) {
ItemStack drop = drops.get(0);
// if the cup is the same as the cup you're holding, increase the stack by 1
// if it isn't, try adding the cup to the inventory if there's room for it
if (stack.isEmpty() || stack.getItem() == drop.getItem()) {
drop.grow(stack.getCount());
player.setHeldItem(handIn, drop);
}
else if (!player.addItemStackToInventory(drop)) return ActionResultType.FAIL;
// send the update to clients and remove the block
((ServerPlayerEntity) player).sendContainerToPlayer(player.container);
worldIn.removeBlock(pos, false);
}
}
else player.playSound(SoundEvents.ITEM_ARMOR_EQUIP_GENERIC, 1, 1);
It seems to work perfectly, but IDEA keeps giving me not one, but two warnings that this code can cause NullPointerExceptions.
Would this actually cause a crash? And is there a better way to go about this? This is my first "successful" attempt at mod making, so I'm not sure what would be best practice here.
[full code for reference].java