Container#slotClick() - Что за третий аргумент?

Статус
В этой теме нельзя размещать новые ответы.
Версия Minecraft
1.7.10
1,159
38
542
Доброго дня, камрады. Существует в классе Container метод с говорящим названием slotClick()

Java:
public ItemStack slotClick(int slotId, int clickedButton, int mode, EntityPlayer playerIn) {

}

И все в нем понятно окромя третьего аргумента. Гугление привело к такому джавадоку
2018-07-17_07-11-12.png
2018-07-17_07-12-16.png

Только для версии 1.7.10 используется не enum, а int. Кто-то нибудь может объяснить какой mode передается в slotClick(), когда и почему?
 
Решение
0 - стандартный клик по слоту,
1 - шифт-клик для быстрого перемещения,
2 - свап итема на хотбаре на итем под курсором при нажатии соответствующей цифры,
3 - получение полного стака предмета при клике по нему средней кнопкой мыши в креативе,
4 - выбрасывание при удержании курсором и нажатии кнопки дропа,
5 - быстрый крафт шифт-кликом,
6 - сбор всех расбросаных предметов одного типа в один стак при двойном клике.

timaxa007

Модератор
5,831
409
672
Всех не помню, это нужно тестировать. Это что-то вроде какое действие происходит, типа: взят из слота по ЛКМ, или положен в слот, или Shift-Click, или нажимается на какие-либо цифры (не NUM'ы) для быстрого пересещения.
if (modifier == 2) return null;//Блокируем возможность использование игроком цифровых кнопок, чтобы не было попытки подмены
4 - дропнуть из слота.
3 - клонирование, т.е. когда на Средняя Кнопка Мыши в креативе.
 
Последнее редактирование:
1,159
38
542
243
28
201
0 - стандартный клик по слоту,
1 - шифт-клик для быстрого перемещения,
2 - свап итема на хотбаре на итем под курсором при нажатии соответствующей цифры,
3 - получение полного стака предмета при клике по нему средней кнопкой мыши в креативе,
4 - выбрасывание при удержании курсором и нажатии кнопки дропа,
5 - быстрый крафт шифт-кликом,
6 - сбор всех расбросаных предметов одного типа в один стак при двойном клике.
 
1,159
38
542
1,159
38
542
Уважаемые. Решил не разбираться в коде Container#slotClick() из-за сырого маппинга на 1.7.10, а решил просто сравнить с тем же кодом из 1.12.2. Вот и соответствие, так что я немного дополню ответ товарища @AustereTony
C-like:
+--------------+-------------------------+
| 1.7.10 (int) | 1.12.2 (ClickType enum) |
+--------------+-------------------------+
|            0 |    pickup               |
|            1 |    quick_move           |
|            2 |    swap                 |
|            3 |    clone                |
|            4 |    throw                |
|            5 |    QuickCraft           |
|            6 |    Pickup_all           |
+--------------+-------------------------+
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху