Нажатие в Gui'шнику

318
12
Всем привет. Есть свой гуишник(extends GuiContainer).
Надо отправить с него пакет, как это сделать знаю. Юзаю PacketPipeline. Как по мне он удобен. 
Теперь вопросы. Как получить itemStack(когда нажимаешь мышкой на слот, то получаем грубо говоря айтемстак в мышке.. Я не понимаю как его получить :C) ?
И когда мы получим - как его отправить пакетом на сервер? Ибо в буффер ведь нельзя записать ItemStack. Какие есть варианты? 
P.s надо не потерять при отправке nbt, metadata, stacksize на сервер.
 
>>Ибо в буффер ведь нельзя записать ItemStack
Ha-ha
****
ByteBufUtils.writeItemStack(buf, stack)
 
А как его получить?
p.s ща проверю:[font=Verdana, Helvetica, Arial, sans-serif]ByteBufUtils.writeItemStack(buf, stack)[/font]
[merge_posts_bbcode]Добавлено: 07.06.2016 18:18:00[/merge_posts_bbcode]

ItemStack stack = ByteBufUtils.readItemStack(stack); 
не работает :C
А запись по идеи пашет.
 
Так стоп, как прочитать айтемстак в пакете?
И да, как его отправить? Т.е как мне сам айтемстак получить в гуишнику(именно когда он находится в состоянии когда он не в слоте но в гуишнику)
 
Liahim написал(а):
Если он в гуишке и при этом не в слоте... То где же он?
[merge_posts_bbcode]Добавлено: 07.06.2016 20:31:54[/merge_posts_bbcode]

У гуишки же есть контейнер?
У гуишки есть контейнер
Ну как вам обьяснить.
Вот когда вы нажимаете на слот - у вас предмет убирается из слота, но получается этот предмет в "мышке".. И мне его надо получить при клиле на определенные корды в гуишнике.
Т.е проверку на координаты я сделал, а откуда получить этот айтемстак - хз.
 
Это уже твои проблемы: что и откуда получать. Все функции в ByteBufUtils
 
Создаёшь кнопочку, щёлкаешь... Передаёшь в пакете даже не стак, а просто номер слота, из которого хочешь забрать стак... На серваке: удаляешь из данного слота контейнера стак и даёшь его игроку...
 
Да не так, у меня не кнопочка. У меня есть есть определенная раммка, и при условии что на это место кликнуть где то яблоком - то отправится пакет и это яблоко занесется в тайл. В самом пакете уже всё сделал за время создание темы. Только еще не смог разобраться как получить чем кликаешь на область.
 
Код:
public boolean isItemValid(ItemStack stack)
Вот этот метод в Slot, stack - итем который "в мышке", сделай поиск по проекту и найди откуда берёт стак для этого аргумента.
 
Вот этот метод в Slot, stack - итем который "в мышке", сделай поиск по проекту и найди откуда берёт стак для этого аргумента.
 
Yarik написал(а):
svk2140 написал(а):
Вот этот метод в Slot, stack - итем который "в мышке", сделай поиск по проекту и найди откуда берёт стак для этого аргумента.
Либо я слепой, либо я не вижу откуда этот стак берется :(
Эмм... Ты одно и то же сказал...
 
Назад
Сверху