Выполняется 2 раза

Версия Minecraft
1.16.5
API
Forge
public void onKey(InputEvent.KeyInputEvent e) выполняется 2 раза, какая есть альтернатива или как можно исправить
 
В зависимости от контекста твоего кода, любое действие написаное тобой модет выполниться 4 раза
Почему?
Код выполняется
1 раз для сервера и для левой руки
1 раз для сервера и правой руки
1 раз для клиента и левой руки
1 раз для клиента и правой руки

Пропиши в коде проверку является ли мир серверным, или клиентским, если нужно на клиенте реакция
 
1,369
112
241
Пропиши в коде проверку является ли мир серверным, или клиентским, если нужно на клиенте реакция
Вместо подобной фигни мог бы сначала разузнать что за ивент использует автор темы.
И да, решение этой же проблемы где-то было на форуме (полгода-год назад).
 
Вместо подобной фигни мог бы сначала разузнать что за ивент использует автор темы.
И да, решение этой же проблемы где-то было на форуме (полгода-год назад).
Чел ты чо блять? Накурен? Он написал какой он ивент используе
 
На сервере? KeyInputEvent? Интересно конечно, но ладно.
не, разумеется KeyInputEvent это клиентский
но общие рекомендации Пропиши в коде проверку является ли мир серверным, или клиентским, если нужно на клиенте реакция
является вполне корректной, забыл только сказать что руку тоже проверять надо
перестаньте уже разочаровывать меня, своей некомпетентностью
вполне логично предположить что он может отправить пакет по KeyInputEvent
и там не указать проверку на сервер/клиент и код у него выполнится два раза
либо не указать проверку на майн ханд и офф хенд, и код у него так же выполнится два раза

хватит блестать своей не дальновидностью
 
345
25
94
но общие рекомендации Пропиши в коде проверку является ли мир серверным, или клиентским, если нужно на клиенте реакция
является вполне корректной
Зачем мне в клиентском коде может быть понадобится делать проверку на сторону?
 
Зачем мне в клиентском коде может быть понадобится делать проверку на сторону?
при отправки пакета, он же не показал тебе весь код, а только событие, человек возможно предпологает что у него именно KeyInputEvent происходит два раза а не сам код, понимаешь? давай давай мозги включай

пусть даже там про серверную сторону неактуально, но руку надо проверять
 
345
25
94
при отправки пакета
Откуда в теме что-то вообще про пакет нарисовалось?
он же не показал тебе весь код
Тебе вроде тоже.
а только событие
Раз ты ответил по поводу руки, значит этого достаточно. Да и я очень сомневаюсь, что событие нажатия клавиши вызывается дважды для левой и правой руки. Как минимум - глупо так работать с ивентами, надеюсь Forge на новых версиях до такого не скатился.
интересно, если вы так шарите, почему спустя 3 месяца, в этой теме ответ даю я, а не вы?
Не увидел правильного ответа с твоей стороны. Ладно, раз мы так шарим, то дам ответ: KeyInputEvent срабатывает дважды, потому-что автор вероятно не проверил KeyInputEvent#getAction, который сообщает, что было сделано с кнопкой, нажата/отпущена/зажата. Предполагаю, что первый ивент - нажата, второй - отжата. Не знаю при каких условиях она может быть зажата, но на старых версиях обработка repeat ивента просто так не вызывается, нужно сначала это активировать/включить в классе KeyBoard, например, так делает наковальня в initGui.
 
Последнее редактирование:
ты не берешь во внимание один факт, тут подобные вещи спрашивают новички,
и лично я пишу то с чем сам сталкивался, у меня лично у меня, код по кнопки выполнялся 4 раза а не два в свое время
только потому что, я по кнопке запускал код, который был прописан в другом месте
и так получилось, что этот код выполнялся именно так как я описал для всех рук и для всех сторон

и беря во внимание данное описание, человек в будущем будет строить логику своего кода исключая данные моменты
Не знаю при каких условиях она может быть зажата, но на старых версиях обработка repeat ивента просто так не вызывается, нужно сначала это активировать, например, так делает наковальня в initGui.
1.16.5 версия, куда ты смотришь?
 
345
25
94
1.16.5 версия, куда ты смотришь?
но на старых версиях обработка repeat ивента просто так не вызывается
Специально указал, что это на старых версиях, есть вероятность, что на новых нет различия, несмотря на сильное различие в версии LWJGL.
ты не берешь во внимание один факт, тут подобные вещи спрашивают новички
Ничего такого я не сказал. Прямым текстом указал на проблемное место, которое судя по описании поведения очень даже уместно. А мог ответить иначе, послать учиться пользоваться дебагом в IDEA, такое продебажить очень легко, сразу можно увидеть отличие в объектах события и посмотреть откуда оно вызвано.
 

jopi

Попрошайка
1,421
30
260
интересно, если вы так шарите, почему спустя 3 месяца, в этой теме ответ даю я, а не вы?
Занятие некрофилией и спам бесполезными сообщениями это не помощь, ни один из твоих ответов не близок к реальному ответу на вопрос ТС.
В то время как @_SupCM_ копать начал в верном направлении, ты его обосрал буквально забив на правила форума.
Мне интересно на что ты надеешься, что оскорбление кого-то в теме магически решит проблему ТС'а который не заходил на форум с 28 февраля?
 
Сверху