Помогите Открыть GUI таблички 1.16.2

Статус
Закрыто для дальнейших ответов.

Vlad_007WOLFYATINA

Активный участник
Пользователь
Баллы
66
qq форум!
Из шапки и так думаю всё ясно.
Пытался сделать через SignGUI, чей код лежит на спиготе - не работает.
Пришел к такому коду:

Код:
TileEntitySign sign = new TileEntitySign();
              World w = ((CraftWorld)event.getBlock().getWorld()).getHandle();
              BlockPosition pos = ((CraftBlock)event.getBlock()).getPosition();
              sign.setLocation(w, pos);

              ((CraftPlayer)event.getPlayer()).getHandle().openSign(sign);
              System.out.println("OPENED");

Проблема в том, что табличка появлятся на долю секунды и исчезает.
event.getBlock() - ставящийся игроком любой блок. Если ставится - вызывается код, написанный выше.
Если возможно - сразу же готовый пример, если просьба не офигевшая. Всё перерыл, на 1.16.2 НИЧЕГО нет(
Спасибо!
 
qq форум!
Из шапки и так думаю всё ясно.
Пытался сделать через SignGUI, чей код лежит на спиготе - не работает.
Пришел к такому коду:

Код:
TileEntitySign sign = new TileEntitySign();
              World w = ((CraftWorld)event.getBlock().getWorld()).getHandle();
              BlockPosition pos = ((CraftBlock)event.getBlock()).getPosition();
              sign.setLocation(w, pos);

              ((CraftPlayer)event.getPlayer()).getHandle().openSign(sign);
              System.out.println("OPENED");

Проблема в том, что табличка появлятся на долю секунды и исчезает.
event.getBlock() - ставящийся игроком любой блок. Если ставится - вызывается код, написанный выше.
Если возможно - сразу же готовый пример, если просьба не офигевшая. Всё перерыл, на 1.16.2 НИЧЕГО нет(
Спасибо!
Если тебе надо просто открыть меню редактирования таблички, то вот
PHP:
    public void openSignEditor(Player p) {
        BlockPosition position = new BlockPosition(0, 0, 0);
        PacketPlayOutOpenSignEditor signEditor = new PacketPlayOutOpenSignEditor(position);
        ((CraftPlayer)p).getHandle().playerConnection.sendPacket(signEditor);
    }
 
Если тебе надо просто открыть меню редактирования таблички, то вот
PHP:
    public void openSignEditor(Player p) {
        BlockPosition position = new BlockPosition(0, 0, 0);
        PacketPlayOutOpenSignEditor signEditor = new PacketPlayOutOpenSignEditor(position);
        ((CraftPlayer)p).getHandle().playerConnection.sendPacket(signEditor);
    }
Правильно ли я понимаю, что я не смогу отследить эвент изменения надписи таблички?
Как мне отследить ввод текста пользователя?
Где-то вычитал, что например через ProtocolLib нужно отправить какой-то пакет, но к сожалению не смог понять что это за пакет (0х12).
 
Правильно ли я понимаю, что я не смогу отследить эвент изменения надписи таблички?
Как мне отследить ввод текста пользователя?
Где-то вычитал, что например через ProtocolLib нужно отправить какой-то пакет, но к сожалению не смог понять что это за пакет (0х12).
Можно как-то еще и без него вроде, но тут я уже помочь не смогу.
 
Если еще актуально, то вот:
https://github.com/flaweoff/SignGUI
Делал на версии 1.16.4, но думаю, что на 1.16.2 тоже будет работать. Просто поменяй импорты и все.
 
блин, только сейчас понял что добавили новую версию нмс(( ужас
 
Совершенно забыл сказать:
Всё решено, использовал NMS.
Разобрался как сделать и в NMS, и в ProtocolLib.
Кому интересно отпишитесь vk.com/misterchoose
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх