if (tileEntity != null) {
IItemHandler inventory = tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, direction);
if (inventory != null) {
int size = (inventory).getSlots(); // вот здесь не уверен, так как на это заменил getSizeInventory, вследствии его отсутствия у IItemHandler
for (int i = 0; i < size; i++) {
ItemStack item = (inventory).getStackInSlot(i);
if (!stack.isEmpty()) {
System.out.println(item);
}
}
}
}
TileEntity te = world.getTileEntity(x, y, z);
if (te instanceof IInventory) {
int size = ((IInventory)te).getInventorySize();
for (int i = 0; i < size; i++) {
ItemStack stack = ((IInventory)te).getStackInSlot(i); // может быть другое название метода, забыл :)
if (!stack.isEmpty()) {
System.out.println(stack);
}
}
}
Эх, ты опередил меня..Дополнение к ответу)
// x, y, z - позиции твоего блока
int x = 1;
int y = 17;
int z = 3;
BlockPos pos = new BlockPos(x, y, z);
TileEntity te = world.getTileEntity(pos);
if(te == null)
{
// если на этих координатах нету Tile Entity
} else {
if (te instanceof IInventory) {
int size = ((IInventory)te).getSizeInventory();
for (int i = 0; i <= size; i++) {
ItemStack stack = ((IInventory)te).getStackInSlot(i);
if (!stack.isEmpty()) {
System.out.println(stack);
}
}
}
}
Господи, не позорься пожалуйста...а ещё, ты в цикле указал <, тоесть последний элемент массива не будет учтён. надо писать <=
и не запилил саму проверку на то, что в мире есть тайл энтити на этих координатах
Такого метода нет, разве у тебя в IDE не подчеркивается?а вот getInventorySize выдаёт
Ага. Но я думал, возможно тс нужно что-то делать, если блок на определенных кордах равен нулл, я специально комментарий оставил, чтобы что-то делать.. (эм, честно говоря это уже твои придирки)instanceof сам проверяет на нулл, проверка не нужна.
IItemHandler inventory = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, <side>)
Грубоватенькоэти двое
Я пишу вообще на 1.16.4. Я уже забыл как в 1.7.10 это делается.решили подсказать под 1.7.10
Есть же ISidedInventory.С разных сторон блока могут быть разные инвентари
Вопрос по 1.12.2Я уже забыл как в 1.7.10 это делается
Капабилити стремится заменить и егоЕсть же ISidedInventory.
if (tileEntity != null) {
IItemHandler inventory = tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, direction);
if (inventory != null) {
int size = (inventory).getSlots(); // вот здесь не уверен, так как на это заменил getSizeInventory, вследствии его отсутствия у IItemHandler
for (int i = 0; i < size; i++) {
ItemStack item = (inventory).getStackInSlot(i);
if (!stack.isEmpty()) {
System.out.println(item);
}
}
}
}