下面列出了怎么用net.minecraft.inventory.container.ClickType的API类实例代码及写法,或者点击链接到github查看源代码。
public void onUpdate() {
if (this.isToggled()) {
if (mc.player.getHeldItemOffhand().getItem() == Items.TOTEM_OF_UNDYING) return;
/*Inventory*/
for (int i = 9; i < 44; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TOTEM_OF_UNDYING) {
mc.playerController.windowClick(0, i, 0, ClickType.PICKUP, mc.player);
mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player);
return;
}
}
/*Hotbar*/
for (int i = 0; i < 8; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TOTEM_OF_UNDYING) {
//int oldSlot = mc.player.inventory.currentItem;
mc.player.inventory.currentItem = i;
mc.player.connection.sendPacket(new CPlayerDiggingPacket(
Action.SWAP_HELD_ITEMS, BlockPos.ZERO, Direction.DOWN));
//mc.player.inventory.currentItem = oldSlot;
return;
}
}
}
}
@Override
public ItemStack slotClick(ContainerExtended container, PlayerEntity player, int button, ClickType clickType) {
ItemStack held = player.inventory.getItemStack();
boolean shift = clickType == ClickType.QUICK_MOVE;
slotClick(held, button, shift);
return ItemStack.EMPTY;
}
@Override
protected void handleMouseClick(Slot slotIn, int slotId, int mouseButton, ClickType type)
{
super.handleMouseClick(slotIn, slotId, mouseButton, type);
this.recipeGui.slotClicked(slotIn);
}
public abstract ItemStack slotClick(ContainerExtended container, PlayerEntity player, int button, ClickType clickType);