How to fix this? | mcpe 1.1.5 Aquamarine Last version

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-нажатий.

Основная последовательность:

  1. Открывается Chat UI.
  2. Открывается клавиатура Android.
  3. Вводится /chesttest.
  4. Нажимается кнопка отправки.
  5. Открывается Menu Principal.
  6. Нажимается Comida.
  7. Текущая форма исчезает.
  8. На короткое время виден мир.
  9. Появляется Abriendo sección Comida....
  10. Открывается Comida.
  11. Нажимается Zanahoria dorada.
  12. Появляется tooltip Zanahoria dorada.
  13. Предмет выбирается.
  14. Появляется Seleccionaste: Zanahoria dorada.
  15. Появляется Menu cerrado..
  16. Снова выполняется /chesttest.
  17. Открывается Menu Principal.
  18. Нажимается Armadura.
  19. Текущая UI снова исчезает на момент перехода.
  20. Появляется Abriendo sección Armadura....
  21. Открывается Armadura.
  22. Нажимается вне формы для закрытия.
  23. :cross_mark: После закрытия появляется неправильное состояние экрана.
  24. :cross_mark: Может появиться чёрный/цветной фон.
  25. :cross_mark: Может исчезнуть hotbar.
  26. ✓ Сенсорные кнопки могут оставаться.
  27. Открывается Chat UI.
  28. Вводится hola.
  29. Сообщение успешно отправляется.
  30. :cross_mark: Фон Chat UI может быть неправильным.
  31. Снова выполняется /chesttest.
  32. Открывается Menu Principal.
  33. Открывается категория оружия.
  34. Показывается: 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

Буду очень благодарен, если кто-нибудь сможет подсказать:

  1. Может ли close form → immediately open another form вызывать такие проблемы в Aquamarine v1.1.4?

  2. Как правильно переключать содержимое Chest UI на MCPE 1.1.x?

  3. Нужно ли делать задержку в один tick между закрытием одного Form и открытием следующего?

  4. Нужно ли открывать новый Form через следующий tick/event вместо немедленного вызова?

  5. Может ли закрытие формы во время обработки click/inventory event ломать состояние HUD?

  6. Почему после закрытия формы может исчезать hotbar?

  7. Есть ли в Aquamarine специальный механизм восстановления HUD после закрытия custom Form?

  8. Может ли Chest UI влиять на состояние обычного inventory/hotbar клиента?

  9. Может ли один Form оставлять после себя неправильный background/rendering state?

  10. Может ли проблема быть связана именно с MCPE 1.1.x?

  11. Есть ли известные проблемы Aquamarine v1.1.4 с Form UI?

  12. Как правильно реализовать Chest UI для этой версии клиента?

  13. Нужно ли полностью закрывать предыдущую форму перед открытием следующей, или существует способ обновить содержимое уже открытой формы?

  14. Может ли Chat UI наследовать неправильное состояние фона после закрытия Chest UI?

  15. Если проблема известна, где примерно в 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, буду очень благодарен за объяснение причины и конкретный способ исправления.

нбать

Pls help bro

If I remember correctly, that happens when the server removes the fake chest tile before the client closes fake inventory.

Since you’re using ai anyway, just tell it to check that the server never: removes/closes fake chest tile before closing fake inventory; teleports player while they have fake inventory open; opens new fake inventory without properly and fully closing the previous one

And what’s the point of reopening windows just to show different layout? Just use single window.

1 лайк

Thanks brother :slight_smile: , your help is always useful to me

1 лайк

Мда, через чур много лишней информации