I can not talk ru :<, i use chatgpt translator
Pls help @Marusel
chesttes.zip (8,2 KB)
Нужна помощь с исправлением Chest UI / Chat UI на Aquamarine v1.1.4
Здравствуйте. Нужна помощь с очень странной проблемой в кастомном UI для старого Minecraft PE.
Мой сервер использует:
Server software: Aquamarine v1.1.4
Minecraft PE: 1.1.x
PHP: 8.3
Plugin: ChestTest
Плагин называется ChestTest. Это тестовый плагин для проверки кастомной Chest UI / Form UI.
Один разработчик уже проверил/фильтровал этот плагин, но сказал мне, что он «бесполезный» (бесполезен), то есть, по его мнению, в самом плагине нет ничего полезного/интересного. Однако проблема всё равно воспроизводится, и я хотел бы понять, связана ли она с реализацией UI, Aquamarine или особенностями старого MCPE 1.1.x.
Подробное описание проблемы
Я запускаю команду:
/chesttest
После выполнения открывается кастомное меню:
Menu Principal
Интерфейс выглядит как обычный Minecraft-инвентарь/сундук: есть сетка слотов, предметы-категории, кнопка X для закрытия и hotbar игрока.
Само меню сначала работает нормально.
1. Проблема при переключении категорий
В Menu Principal я нажимаю на категорию Comida.
После нажатия происходит странная переходная последовательность:
Menu Principal
↓
нажатие на Comida
↓
текущая Chest UI исчезает
↓
на короткое время снова становится виден мир Minecraft
↓
появляется сообщение:
"Abriendo sección Comida..."
↓
открывается новая Chest UI
↓
Comida
То есть между двумя формами действительно существует короткий момент, когда Chest UI отсутствует.
Похожее происходит при переходе:
Menu Principal
↓
Armadura
Сначала закрывается текущий интерфейс, затем появляется сообщение:
Abriendo sección Armadura...
и только после этого открывается новая форма.
Я подозреваю, что это может быть связано с тем, что текущий Form сначала полностью закрывается, а затем создаётся/отправляется новый.
2. Меню Comida
После перехода открывается:
Comida
В нём находятся различные предметы еды.
Среди них есть Золотая морковь.
При взаимодействии с ней корректно отображается tooltip:
Zanahoria dorada
После выбора система пишет:
Seleccionaste: Zanahoria dorada
Menu cerrado.
То есть обработка клика и определение предмета работают нормально.
Это важно, потому что проблема не выглядит как обычная ошибка обработки нажатий.
3. Повторное открытие Chest UI
После закрытия меню я снова выполняю:
/chesttest
Снова появляется:
Menu Principal
После этого выбираю:
Armadura
Открывается соответствующее меню с бронёй:
- кожаной;
- железной;
- алмазной.
Сама Chest UI в этот момент выглядит нормально.
4. Главный баг появляется при закрытии Chest UI
Когда Armadura открыта, я нажимаю вне окна/закрываю форму.
После этого Chest UI исчезает.
Но вместо нормального возврата к игре иногда получается:
Armadura
↓
закрытие
↓
❌ неправильное состояние экрана
Может появиться:
- полностью чёрный экран;
- чёрно-синий фон;
- однотонный фон другого цвета;
- неправильный/пустой фон вместо мира Minecraft.
То есть после закрытия формы клиент не всегда возвращается к нормальному игровому экрану.
5. Hotbar может исчезнуть
Ещё один очень заметный симптом — после закрытия Chest UI иногда пропадает hotbar.
Например, получается такое состояние:
✓ сенсорные кнопки Minecraft остаются
✓ некоторые элементы HUD остаются
❌ hotbar исчезает
❌ нормальный мир может не отображаться
❌ вместо мира может быть чёрный/цветной фон
То есть HUD восстанавливается только частично.
До открытия Chest UI всё нормально:
Мир Minecraft
+
HUD
+
Hotbar
+
сенсорные кнопки
После проблемного закрытия:
Чёрный/неправильный фон
+
сенсорные кнопки
+
часть HUD
-
Hotbar
-
нормальный рендер мира
6. Иногда появляется полностью чёрная или цветная экранная область
Проблема не всегда выглядит одинаково.
В некоторых случаях после закрытия формы получается полностью чёрный экран.
В других случаях фон может выглядеть как однотонная цветная область.
То есть вместо:
[нормальный мир Minecraft]
можно получить:
[чёрный экран]
или:
[однотонный/неправильный цвет]
При этом Minecraft не обязательно полностью зависает.
Некоторые элементы управления продолжают отображаться.
Поэтому я думаю, что это скорее проблема восстановления состояния UI/HUD/rendering, а не обычный crash.
7. Проблема также затрагивает Chat UI
После появления такого состояния я снова открываю Chat UI.
Сам чат продолжает работать.
Например, я ввожу:
hola
и сообщение успешно появляется:
Dr1xyDev: hola
То есть обработка Chat UI продолжает работать.
Но визуально Chat UI иногда открывается поверх неправильного фона.
Вместо:
Chat UI
+
мир Minecraft за ним
можно получить:
Chat UI
+
чёрный/неправильный фон
Получается, что проблема может затрагивать не только Chest UI, но и другие UI, которые открываются после неё.
8. Chest UI после этого всё равно продолжает работать
Интересно, что после возникновения визуального бага я могу снова выполнить:
/chesttest
и Menu Principal снова открывается.
Также продолжают работать:
- категории;
- предметы;
- tooltips;
- обработка нажатий;
- выбор предметов.
Например, при взаимодействии с мечом отображается:
Armas
+7 Daño de ataque
То есть логика UI продолжает работать, несмотря на то что визуальное состояние клиента иногда становится неправильным.
9. Реальные действия пользователя видны на записи
В видео присутствуют видимые индикаторы touch-нажатий.
Основная последовательность:
- Открывается Chat UI.
- Открывается клавиатура Android.
- Вводится
/chesttest. - Нажимается кнопка отправки.
- Открывается
Menu Principal. - Нажимается
Comida. - Текущая форма исчезает.
- На короткое время виден мир.
- Появляется
Abriendo sección Comida.... - Открывается
Comida. - Нажимается
Zanahoria dorada. - Появляется tooltip
Zanahoria dorada. - Предмет выбирается.
- Появляется
Seleccionaste: Zanahoria dorada. - Появляется
Menu cerrado.. - Снова выполняется
/chesttest. - Открывается
Menu Principal. - Нажимается
Armadura. - Текущая UI снова исчезает на момент перехода.
- Появляется
Abriendo sección Armadura.... - Открывается
Armadura. - Нажимается вне формы для закрытия.
После закрытия появляется неправильное состояние экрана.
Может появиться чёрный/цветной фон.
Может исчезнуть hotbar.- ✓ Сенсорные кнопки могут оставаться.
- Открывается Chat UI.
- Вводится
hola. - Сообщение успешно отправляется.
Фон Chat UI может быть неправильным.- Снова выполняется
/chesttest. - Открывается
Menu Principal. - Открывается категория оружия.
- Показывается:
Armas +7 Daño de ataque.
10. Что работает нормально
На данный момент нормально работают:
/chesttest;- Chat UI;
- ввод текста;
- автодополнение;
- открытие
Menu Principal; - открытие
Comida; - открытие
Armadura; - открытие
Armas; - отображение предметов;
- tooltip;
- обработка нажатий;
- выбор
Zanahoria dorada; - повторное открытие Chest UI.
Поэтому я не уверен, что проблема находится именно в обработчике предметов.
11. Что я подозреваю
Мне особенно подозрительно поведение:
Form A
↓
close
↓
client/game screen
↓
open Form B
Возможно, при закрытии формы Aquamarine/клиент восстанавливает игровой экран, а затем новая форма открывается уже после этого.
Это может объяснять короткое появление мира при смене категорий.
Но проблема после полного закрытия выглядит ещё серьёзнее:
Form
↓
close
↓
❌ black/color screen
❌ hotbar missing
❌ HUD partially restored
Поэтому я подозреваю проблему с lifecycle формы или с восстановлением состояния клиента после закрытия формы.
Возможно, проблема связана с:
- Form API;
- обработкой Chest UI;
- закрытием формы во время click/inventory event;
- повторным
sendForm; - немедленным открытием следующей формы после закрытия предыдущей;
- состоянием inventory;
- состоянием HUD;
- восстановлением hotbar;
- особенностями MCPE 1.1.x;
- реализацией UI в Aquamarine v1.1.4.
12. Может ли быть проблема из-за PHP 8.3?
Также хочу уточнить, может ли иметь значение то, что сервер работает на:
PHP 8.3
при использовании очень старого клиента:
Minecraft PE 1.1.x
Я понимаю, что PHP напрямую не управляет рендерингом клиента, поэтому не утверждаю, что PHP 8.3 является причиной. Просто хочу исключить возможные проблемы совместимости старого Aquamarine/API с современным PHP.
13. Важный момент про проверку ChestTest
Один разработчик уже проверил/проанализировал плагин ChestTest и сказал, что он бесполезен.
Но даже если сам плагин является всего лишь тестовым/простым плагином, проблема всё равно воспроизводится именно при работе его UI.
Поэтому я хотел бы понять:
может ли простой/тестовый плагин всё равно воспроизводить баг самого Aquamarine/Form API?
То есть я не утверждаю, что ChestTest обязательно виноват.
Возможны варианты:
ChestTest
↓
неправильно использует API
↓
Aquamarine UI bug
или:
ChestTest
↓
обычная корректная работа Form API
↓
Aquamarine v1.1.4
↓
проблема восстановления HUD/rendering
или:
ChestTest
↓
close → open
↓
особенность MCPE 1.1.x
Мне хотелось бы понять, какой из вариантов наиболее вероятен.
14. Что я хочу исправить
Я хочу добиться следующего поведения:
Menu Principal
↓
Comida
↓
закрытие
↓
сразу нормальный мир Minecraft
↓
HUD полностью восстановлена
↓
Hotbar видна
↓
сенсорные кнопки видны
И:
Menu Principal
↓
Armadura
↓
закрытие
↓
нормальный игровой экран
При открытии Chat UI:
Chat UI
+
нормальный мир Minecraft позади
Без:
❌ black screen
❌ цветного экрана
❌ пропавшей hotbar
❌ частично восстановленной HUD
❌ неправильного фона
15. Мои вопросы к разработчикам Aquamarine / старого MCPE
Буду очень благодарен, если кто-нибудь сможет подсказать:
-
Может ли
close form → immediately open another formвызывать такие проблемы в Aquamarine v1.1.4? -
Как правильно переключать содержимое Chest UI на MCPE 1.1.x?
-
Нужно ли делать задержку в один tick между закрытием одного Form и открытием следующего?
-
Нужно ли открывать новый Form через следующий tick/event вместо немедленного вызова?
-
Может ли закрытие формы во время обработки click/inventory event ломать состояние HUD?
-
Почему после закрытия формы может исчезать hotbar?
-
Есть ли в Aquamarine специальный механизм восстановления HUD после закрытия custom Form?
-
Может ли Chest UI влиять на состояние обычного inventory/hotbar клиента?
-
Может ли один Form оставлять после себя неправильный background/rendering state?
-
Может ли проблема быть связана именно с MCPE 1.1.x?
-
Есть ли известные проблемы Aquamarine v1.1.4 с Form UI?
-
Как правильно реализовать Chest UI для этой версии клиента?
-
Нужно ли полностью закрывать предыдущую форму перед открытием следующей, или существует способ обновить содержимое уже открытой формы?
-
Может ли Chat UI наследовать неправильное состояние фона после закрытия Chest UI?
-
Если проблема известна, где примерно в Aquamarine стоит искать её: Form API, Player UI, inventory/container, network packet или обработку закрытия формы?
Версии
Server: Aquamarine v1.1.4
Client: Minecraft PE 1.1.x
PHP: 8.3
Plugin: ChestTest
Command: /chesttest
UI: Custom Chest/Form UI
Главный вопрос:
Как правильно реализовать/закрывать/переключать Chest UI на Aquamarine v1.1.4 для MCPE 1.1.x, чтобы после закрытия формы полностью восстанавливались мир, HUD и hotbar и не появлялся чёрный/цветной экран?
Если кто-то сталкивался с подобным багом на старых версиях MCPE/Aquamarine, буду очень благодарен за объяснение причины и конкретный способ исправления.