.

Статус
Закрыто для дальнейших ответов.
Доктора в белых халатах, тут поциенту плохо, он два раза эвент кидает..
 
Потому что клиент шлёт интеракт 2 раза, по одному за каждую руку.
 
А ты проверяй в начале эвента, не равна ли какая нибудь переменная нулю, если равна, то продолжаешь, и в конце присваивай ей 1 и таймером в 1-5 миллисекунд присваивай 0.
 
Потому что клиент шлёт интеракт 2 раза, по одному за каждую руку.
Не совсем понял...
"Клиент шлет интеракт 2 раза, по одному за каждую руку"...
Но ведь я кликаю правой рукой один раз - одна рука - один раз, и всегда получаю два эвента,
а когда кликаю левой рукой один раз - так же само одна рука, но получаю один эвент..
А ты проверяй в начале эвента, не равна ли какая нибудь переменная нулю, если равна, то продолжаешь, и в конце присваивай ей 1 и таймером в 1-5 миллисекунд присваивай 0.
Гавнокод. Лучше уж отменять эвент, а в заголовок поставить ignoreCancelled = true..
 
Не совсем понял...
"Клиент шлет интеракт 2 раза, по одному за каждую руку"...
Но ведь я кликаю правой рукой один раз - одна рука - один раз, и всегда получаю два эвента,
а когда кликаю левой рукой один раз - так же само одна рука, но получаю один эвент..

Гавнокод. Лучше уж отменять эвент, а в заголовок поставить ignoreCancelled = true..
2 ивента бросает не всегда, только когда в руке воздух, или не блок.
 
"Клиент шлет интеракт 2 раза, по одному за каждую руку"...
Так теперь 2 руки ведь. Просто игнорируй это, одна рука тупо отсеется после проверки на null, или проверки на материал.
 
Может просто PlayerInteractEvent.getHand()?
EquipmentSlot.HAND и
EquipmentSlot.OFF_HAND - очень удобно, как мне кажется.
Причём можно ещё и предметы из инвентаря получать по EquipmentSlot, если память не изменяет.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх