net.minecraft.screen.slot.SlotActionType Java Examples

The following examples show how to use net.minecraft.screen.slot.SlotActionType. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ContainerScreen54Mixin.java    From Wurst7 with GNU General Public License v3.0 6 votes vote down vote up
private void shiftClickSlots(int from, int to, int mode)
{
	this.mode = mode;
	
	for(int i = from; i < to; i++)
	{
		Slot slot = handler.slots.get(i);
		if(slot.getStack().isEmpty())
			continue;
		
		waitForDelay();
		if(this.mode != mode || client.currentScreen == null)
			break;
		
		onMouseClick(slot, slot.id, 0, SlotActionType.QUICK_MOVE);
	}
}
 
Example #2
Source File: MixinMerchantContainer.java    From multiconnect with MIT License 6 votes vote down vote up
@Unique
private void autofill(ClientPlayerInteractionManager interactionManager, ClientPlayerEntity player,
                      int inputSlot, ItemStack stackNeeded) {
    if (stackNeeded.isEmpty())
        return;

    int slot;
    for (slot = 3; slot < 39; slot++) {
        ItemStack stack = slots.get(slot).getStack();
        if (stack.getItem() == stackNeeded.getItem() && ItemStack.areTagsEqual(stack, stackNeeded)) {
            break;
        }
    }
    if (slot == 39)
        return;

    boolean wasHoldingItem = !player.inventory.getCursorStack().isEmpty();
    interactionManager.clickSlot(syncId, slot, 0, SlotActionType.PICKUP, player);
    interactionManager.clickSlot(syncId, slot, 0, SlotActionType.PICKUP_ALL, player);
    interactionManager.clickSlot(syncId, inputSlot, 0, SlotActionType.PICKUP, player);
    if (wasHoldingItem)
        interactionManager.clickSlot(syncId, slot, 0, SlotActionType.PICKUP, player);
}
 
Example #3
Source File: AutoTotem.java    From bleachhack-1.14 with GNU General Public License v3.0 6 votes vote down vote up
@Subscribe
public void onTick(EventTick event) {
	if (mc.player.getOffHandStack().getItem() == Items.TOTEM_OF_UNDYING) return;
	
	/* Inventory */
	for (int i = 9; i < 44; i++) {
		if (mc.player.inventory.getStack(i).getItem() == Items.TOTEM_OF_UNDYING) {
			mc.interactionManager.clickSlot(0, 0, i, SlotActionType.PICKUP, mc.player);
			mc.interactionManager.clickSlot(1, 0, 45, SlotActionType.PICKUP, mc.player);
			return;
		}
	}
	
	/* Hotbar */
	for (int i = 0; i < 8; i++) {
		if (mc.player.inventory.getStack(i).getItem() == Items.TOTEM_OF_UNDYING) {
			//int oldSlot = mc.player.inventory.currentItem;
			mc.player.inventory.selectedSlot = i;
			mc.player.networkHandler.sendPacket(new PlayerActionC2SPacket(
					Action.SWAP_ITEM_WITH_OFFHAND, BlockPos.ORIGIN, Direction.DOWN));
			//mc.player.inventory.currentItem = oldSlot;
			return;
		}
	}
}
 
Example #4
Source File: WItemSlot.java    From LibGui with MIT License 5 votes vote down vote up
@Environment(EnvType.CLIENT)
@Override
public void onKeyPressed(int ch, int key, int modifiers) {
	if (isActivationKey(ch) && host instanceof ScreenHandler && focusedSlot >= 0) {
		ScreenHandler handler = (ScreenHandler) host;
		MinecraftClient client = MinecraftClient.getInstance();

		ValidatedSlot peer = peers.get(focusedSlot);
		client.interactionManager.clickSlot(handler.syncId, peer.id, 0, SlotActionType.PICKUP, client.player);
	}
}
 
Example #5
Source File: ClientPlayerInteractionManagerMixin.java    From Wurst7 with GNU General Public License v3.0 4 votes vote down vote up
@Override
public ItemStack windowClick_PICKUP(int slot)
{
	return clickSlot(0, slot, 0, SlotActionType.PICKUP, client.player);
}
 
Example #6
Source File: ClientPlayerInteractionManagerMixin.java    From Wurst7 with GNU General Public License v3.0 4 votes vote down vote up
@Override
public ItemStack windowClick_QUICK_MOVE(int slot)
{
	return clickSlot(0, slot, 0, SlotActionType.QUICK_MOVE, client.player);
}
 
Example #7
Source File: ClientPlayerInteractionManagerMixin.java    From Wurst7 with GNU General Public License v3.0 4 votes vote down vote up
@Override
public ItemStack windowClick_THROW(int slot)
{
	return clickSlot(0, slot, 1, SlotActionType.THROW, client.player);
}
 
Example #8
Source File: ClientPlayerInteractionManagerMixin.java    From Wurst7 with GNU General Public License v3.0 4 votes vote down vote up
@Shadow
public abstract ItemStack clickSlot(int int_1, int int_2, int int_3,
	SlotActionType slotActionType_1, PlayerEntity playerEntity_1);
 
Example #9
Source File: SyncedGuiDescription.java    From LibGui with MIT License 4 votes vote down vote up
@Override
public ItemStack onSlotClick(int slotNumber, int button, SlotActionType action, PlayerEntity player) {
	if (action==SlotActionType.QUICK_MOVE) {
		
		if (slotNumber < 0) {
			return ItemStack.EMPTY;
		}
		
		if (slotNumber>=this.slots.size()) return ItemStack.EMPTY;
		Slot slot = this.slots.get(slotNumber);
		if (slot == null || !slot.canTakeItems(player)) {
			return ItemStack.EMPTY;
		}
		
		ItemStack remaining = ItemStack.EMPTY;
		if (slot != null && slot.hasStack()) {
			ItemStack toTransfer = slot.getStack();
			remaining = toTransfer.copy();
			//if (slot.inventory==blockInventory) {
			if (blockInventory!=null) {
				if (slot.inventory==blockInventory) {
					//Try to transfer the item from the block into the player's inventory
					if (!this.insertItem(toTransfer, this.playerInventory, true, player)) {
						return ItemStack.EMPTY;
					}
				} else if (!this.insertItem(toTransfer, this.blockInventory, false, player)) { //Try to transfer the item from the player to the block
					return ItemStack.EMPTY;
				}
			} else {
				//There's no block, just swap between the player's storage and their hotbar
				if (!swapHotbar(toTransfer, slotNumber, this.playerInventory, player)) {
					return ItemStack.EMPTY;
				}
			}
			
			if (toTransfer.isEmpty()) {
				slot.setStack(ItemStack.EMPTY);
			} else {
				slot.markDirty();
			}
		}
		
		return remaining;
	} else {
		return super.onSlotClick(slotNumber, button, action, player);
	}
}