- 16
- 2
- 0
у меня есть методы:
но в инвентаре(сундуке) который нашёл метод getInventoryAt ничего не появляется,
Java:
@Nullable
private static Inventory getInventoryAt(World world, double x, double y, double z) {
List<Entity> list;
BlockEntity blockEntity;
Inventory inventory = null;
BlockPos blockPos = BlockPos.ofFloored(x, y, z);
BlockState blockState = world.getBlockState(blockPos);
Block block = blockState.getBlock();
if (block instanceof InventoryProvider) {
inventory = ((InventoryProvider)((Object)block)).getInventory(blockState, world, blockPos);
} else if (blockState.hasBlockEntity() && (blockEntity = world.getBlockEntity(blockPos)) instanceof Inventory && (inventory = (Inventory)((Object)blockEntity)) instanceof ChestBlockEntity && block instanceof ChestBlock) {
inventory = ChestBlock.getInventory((ChestBlock)block, blockState, world, blockPos, true);
}
if (inventory == null && !(list = world.getOtherEntities(null, new Box(x - 0.5, y - 0.5, z - 0.5, x + 0.5, y + 0.5, z + 0.5), EntityPredicates.VALID_INVENTORIES)).isEmpty()) {
inventory = (Inventory)((Object)list.get(world.random.nextInt(list.size())));
}
return inventory;
}
Java:
public void Insert(ItemStack itemStack, World world, BlockPos pos){
Inventory inventory1 = getInventoryAt(world, pos);
Autosorter.LOGGER.info("инвентарь: " + inventory1);
if (inventory1 != null){
for (int e = 0; e < inventory1.size(); ++e){
if(inventory1.getStack(e).isEmpty()){
ThisPlayerEntity.equipStack(EquipmentSlot.MAINHAND, ItemStack.EMPTY);
inventory1.setStack(e, itemStack);
Autosorter.LOGGER.info("стак (" + itemStack + ") сложен в слот №" + e);
break;
}
}
inventory1.markDirty();
}
}
но в инвентаре(сундуке) который нашёл метод getInventoryAt ничего не появляется,