Натягивание стрелы в определенном слоте

Версия Minecraft
1.7.10
516
11
39
Помогите убрать код,который запрещает луку стрелять если стрел нет в определенном слоте.
Вот код:
Java:
public class ContainerPlayerRpg extends Container{

    private final EntityPlayer thePlayer;
    private final RpgPlayer rpgPlayer;
    public final InventoryBasic inventoryBackpack;

    public ContainerPlayerRpg(InventoryPlayer inventory, EntityPlayer player){
        thePlayer = player;
        rpgPlayer = RpgPlayer.forPlayer(player);
        inventoryBackpack = new InventoryBasic("Backpack", true, 16);

        for(int i = 0; i < 4; ++i){
            addSlotToContainer(new SlotArmor(inventory, thePlayer, inventory.getSizeInventory() - 1 - i, 10, 8 + i * 17, i));
        }

        for(int i = 0; i < 4; ++i){
            for(int j = 0; j < 5; ++j){
                addSlotToContainer(new Slot(inventory, j + (i + 1) * 5 + 4, 82 + j * 18, 9 + i * 18));
            }
        }

        for(int i = 0; i < 9; ++i){
            addSlotToContainer(new Slot(inventory, i, 10 + i * 18, 95));
        }

        addSlotToContainer(new SlotBauble(this, player, rpgPlayer.baublesInventory, 0, 61, 8, EnumBaubleType.AMULET));
        addSlotToContainer(new SlotBauble(this, player, rpgPlayer.baublesInventory, 1, 61, 25, EnumBaubleType.RING));
        addSlotToContainer(new SlotBauble(this, player, rpgPlayer.baublesInventory, 2, 61, 42, EnumBaubleType.RING));
        addSlotToContainer(new SlotBauble(this, player, rpgPlayer.baublesInventory, 3, 61, 59, EnumBaubleType.BACKPACK));
        addSlotToContainer(new SlotBauble(this, player, rpgPlayer.baublesInventory, 5, 27, 76, EnumBaubleType.SHOULDER));
        addSlotToContainer(new SlotBauble(this, player, rpgPlayer.baublesInventory, 6, 44, 76, EnumBaubleType.GLOVE));
        addSlotToContainer(new Slot(rpgPlayer.baublesInventory, 4, 61, 76){
            public boolean isItemValid(ItemStack itemStack){
                return itemStack != null && itemStack.getItem() == Items.arrow;
            }
        });
        
        for(int i = 0; i < 4; ++i){
            for(int j = 0; j < 4; ++j){
                addSlotToContainer(new Slot(inventoryBackpack, j + i * 4, Integer.MAX_VALUE, Integer.MAX_VALUE));
            }
        }
        
        ItemBackpack.loadItems(player, inventorySlots.subList(40, 40 + 16), inventoryBackpack, rpgPlayer.baublesInventory.getStackInSlot(3));
    }

    public boolean canInteractWith(EntityPlayer p_75145_1_){
        return true;
    }

    public void onContainerClosed(EntityPlayer player){
        super.onContainerClosed(player);
        ItemBackpack.saveItems(player, null, inventoryBackpack, rpgPlayer.baublesInventory.getStackInSlot(3), true);
    }
    
    public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex){
        ItemStack itemStack = null;
        Slot slot = getSlot(slotIndex);

        if(slot != null && slot.getHasStack()){
            ItemStack slotStack = slot.getStack();
            itemStack = slotStack.copy();

            if(slotIndex >= 0 && slotIndex < 4){
                if(!mergeItemStack(slotStack, 4, 33, false)){
                    return null;
                }
            }else if(slotIndex >= 33 && slotIndex < 40){
                if(!mergeItemStack(slotStack, 4, 33, false)){
                    return null;
                }
            }else if(itemStack.getItem() == Items.arrow){
                if(!mergeItemStack(slotStack, 39, 40, false)){
                    return null;
                }
            }else if(itemStack.getItem() instanceof ItemArmor){
                ItemArmor armor = (ItemArmor)itemStack.getItem();
                Slot armorSlot = getSlot(armor.armorType);
                if(!armorSlot.getHasStack()){
                    if(!mergeItemStack(slotStack, armor.armorType, armor.armorType + 1, false)){
                        return null;
                    }
                }
            }else if(itemStack.getItem() instanceof IBauble){
                IBauble armor = (IBauble)itemStack.getItem();
                int index = -1;
                for(int i = 33; i < 39; i++){
                    SlotBauble baubleSlot = (SlotBauble)getSlot(i);
                    if(!baubleSlot.getHasStack() && armor.getType(itemStack) == baubleSlot.getType()){
                        index = i;
                        break;
                    }
                }
                if(index != -1){
                    Slot armorSlot = getSlot(index);
                    if(!armorSlot.getHasStack()){
                        if(!mergeItemStack(slotStack, index, index + 1, false)){
                            return null;
                        }
                    }
                }
            }else if(slotIndex >= 4 && slotIndex < 24){
                if(!mergeItemStack(slotStack, 24, 33, false)){
                    return null;
                }
            }else if(slotIndex >= 24 && slotIndex < 33){
                if(!mergeItemStack(slotStack, 4, 24, false)){
                    return null;
                }
            }else if(!mergeItemStack(slotStack, 4, 33, false)){
                return null;
            }

            // if(slotIndex > 3){
            // if(!mergeItemStack(slotStack, 4, 33, false)){
            // return null;
            // }
            // }

            if(slotStack.stackSize == 0){
                slot.putStack(null);
            }else{
                slot.onSlotChanged();
            }

            if(slotStack.stackSize == itemStack.stackSize){
                return null;
            }

            slot.onPickupFromSlot(player, slotStack);
        }

        return itemStack;
    }
 

timaxa007

Модератор
5,831
409
672
@fane4qa, ванильный лук, который стреляет стрелами, если стрелы есть в ванильном инвентаре.
А ему надо, чтобы ванильный лук стрелял стрелами, если эти стрелы находятся в своём слоте, не в ванильном инвентаре.
 
7,099
324
1,510
  • Like
Реакции: lnti
Сверху