Container#windowId - зачем оно нужно?

RareScrap

Каменная лига
Сообщения
637
Лучшие ответы
20
Симпатии
151
#1
Версия Minecraft
1.7.10
Подтверждение
Я максимально подробно описал проблему, включая исходный код файлов, краш лог, изображения и другую информацию, которая может помочь пользователям форума решить мой вопрос!
Собственно, вопрос в сабже. В моем понимании это нужно чтобы различать открытые контейнера, но ведь в один момент времени player может открыть лишь один контейнер! Пробовал поискать использование в коде, но не могу составить ясную картину зачем нужно это поле. Объясните плз
 

Dahaka

Золотая лига
Сообщения
2,411
Лучшие ответы
82
Симпатии
306
#2
Это нужно, чтобы отбрасывать пакеты, которые не принадлежат открытому контейнеру.
 

RareScrap

Каменная лига
Сообщения
637
Лучшие ответы
20
Симпатии
151
#3
Это нужно, чтобы отбрасывать пакеты, которые не принадлежат открытому контейнеру.
Почему бы тогда не делать instanceof проверку вместо проверки windowId? Все равно только один контейнер может быть открыт.
 

timaxa007

Команда форума
Сообщения
5,500
Лучшие ответы
360
Симпатии
517
#4
Открыт один для игрока, а существовать несколько может. id это int тип, его легче отправлять по пакету для синхронизации информации между контейнерами сервер<->клиент.
 

Dahaka

Золотая лига
Сообщения
2,411
Лучшие ответы
82
Симпатии
306
#5
Почему бы тогда не делать instanceof проверку вместо проверки windowId? Все равно только один контейнер может быть открыт.
Id идентифицирует конкретный объект контейнера. Например, закрыл гуи сундука и резко открыл новый. Но что-то пошло не так и пришел пакет от старого сундука. Его нужно отбросить.
А instanceof'ом не получится отбрасывать общие пакеты на подобии "установить предмет в слот". Да и вообще это костыль.
 

RareScrap

Каменная лига
Сообщения
637
Лучшие ответы
20
Симпатии
151
#6
Всем спасибо, все прояснилось
 
Сверху