Thank you! I did notice AbstractContainerMenu#getCarried and was able use that.
Sorry, I am maintaining my mods in 1.16.5, 1.17.1 and 1.18 right now, and I just noticed that PlayerInventory#getItemStack does indeed exist in 1.16.5 but not 1.17.1 which doesn't have PlayerInventory at all, just Inventory which does not have getItemStack.
My title should have said 1.17.1+. Sorry for the confusion.
I find in both BlockBed and BlockDoor , i only find one method in commen that use SetBlock() (which i assme? is how you set a block)
when i override setPlacedBy() in my custom_block, it never gets called. the custom_block does extend three classes(that don't have setPlacedBy() ) before Block class, but that wasn't a problem in 1.16
I hope im making sense
Okay, the problem is I'm old and forgetful. It runs fine. I thought I did a fresh install but didn't do it right, so the problem is with GDLauncher. This explains the different exit code. I'll go bother them about it.
Thanks for the fresh eyes to poke me back to reality