1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Открытие виртуальной книги с пером

Тема в разделе "Разработка плагинов для новичков", создана пользователем NN_KOF3STx, 16 июн 2019.

Статус темы:
Закрыта.
  1. Автор темы
    NN_KOF3STx

    NN_KOF3STx Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    kof3st
    Всем привет. Я делаю плагин на паспорт, и чтобы изменить данные там, я решил использовать книгу с пером. Вкратце работает так: игрок нажимает в паспорте на "изменить данные чего-то", открывается книга с пером, и после нажатия на "готово" данные изменяются. Я сделал всё, кроме автоматического открытия книги с пером.
    Сколько я способов не перепробовал: вызвать интеракт-ивент, отослать пакет
    Код:
    PacketPlayOutCustomPayload packet = new PacketPlayOutCustomPayload("MC|BOpen", new PacketDataSerializer(buf));
    , отослать другой пакет
    Код:
    PacketPlayOutCustomPayload packet = new PacketPlayOutCustomPayload("MC|BEdit", new PacketDataSerializer(buf)); 
    Все эти способы мне не помогают. Может, я что-то не так написал, или есть какие-то другие способы?
     
  2. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Попробуй перед отправкой пакета установить в основную руку стак книги.
    Так работает если не с редактированием, то как минимум с открытием уже законченной книги
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Книгу в руки игроку не выдал.
     
  4. Автор темы
    NN_KOF3STx

    NN_KOF3STx Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    kof3st
    Код:
    public static void openEditBook(Player player, ItemStack book) {
            int slot = player.getInventory().getHeldItemSlot();
            ItemStack item = player.getInventory().getItem(slot);
            player.getInventory().setItem(slot, book);
            //Открытие книги
            player.getInventory().setItem(slot, item);
        }
     
  5. Автор темы
    NN_KOF3STx

    NN_KOF3STx Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    kof3st
    В этом и проблема, что открыть паспорт ввиде законченной книги я могу, а просто книгу не могу
     
  6. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Да, вижу. Сам проверил сейчас - такая же ситуация.
    Выяснил, что CustomPayload даже не отправляется при начале редактирования книги.
    А это значит, что эта функция вызывается исключительно по желанию клиента, а не по команде сервере.
    Короче говоря, думаю, без модификации клиента нет возможности открыть меню редактирования книги.

    А вот команду от клиента о завершении редактирования книги вполне можно отловить.
    Поэтому можешь сделать так:
    1) Выдаёшь в руку книгу, а прошлый предмет куда-то сохраняешь
    2) Выводишь тайтл с просьбой нажать ПКМ и заполнить нужную информацию
    3) Ожидаешь завершения редактирования
    4) Забираешь книгу и возвращаешь оригинальный предмет
    Во время всего того процесса запрещаешь менять предмет в руке.
    Костыль, конечно, но других вариантов без использования модов я сейчас не вижу.

    Возможно ещё сгодится вариант с табличкой - ей точно можно открыть со стороны сервера.
     
    Последнее редактирование: 16 июн 2019
  7. Автор темы
    NN_KOF3STx

    NN_KOF3STx Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    kof3st
    Спасибо за помощь и идеи. Что-нибудь из этого возьму в разработку. Тема закрыта.
     
Статус темы:
Закрыта.

Поделиться этой страницей