Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Стартап Создание книги и открытие ее по комманде

Метки:
Теги Теги
гуи книга стартап

TheSkiffSailor

Новичок
Пользователь
Баллы
21
Имя в Minecraft
TheSkiffSailor
Здраствуйте форумчане!
Этот стартап научит вас делать Book Gui а так - же открывать их по комманде!

Что я получу нового в этом стартапе?

  • Я смогу создать интерфейс книги
  • Я смогу ткрыть этот интерфейс по комманде
  • Я смогу добавлять текст и страницы в этот интерфейс
Ну что-же, приступим!
Попробуем создать открыть книгу коммандой /opentestbook

Что происходит в коде вообще:
  1. Происходит получение игрока, а именно того кто отправил комманду.
  2. Создаётся книга и ее хранитель Nbt-тэгов
  3. Добавляем значения в хранитель данных
  4. Добавление описания
  5. Добавление страницы книге
  6. Устанавливаем ранее созданой книге мету и тэги
  7. Ложим игроку книгу в руки
  8. Открываем ее
  9. Возвращаем в руку то что в ней и было до открытия книги
Код:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
//Получаем игрока
Player p = (Player) sender;
HumanEntity he = (HumanEntity) p;
CraftHumanEntity che = (CraftHumanEntity) he;
EntityHuman eh = che.getHandle();
//Создаём ItemStack и NBTTagCompound
ItemStack book = new ItemStack(Item.getById(387));
NBTTagCompound tag = new NBTTagCompound();
tag.setString("author", "Notch"); //Автор книги
tag.setString("title", "My Dairy"); //Заставка
tag.set("display", new NBTTagCompound());
//Добавляем значения в tag "display" (название и описание)
NBTTagCompound display = tag.getCompound("display");
display.setString("Name", ChatColor.translateAlternateColorCodes('&', "&cCustom Book GUI"));

NBTTagList lore = new NBTTagList(); //Описание...
lore.add(new NBTTagString("Hello World!"));
display.set("Lore", lore); //Установка описания книге
//Создаем страницу в книге и добавляем на нее текст
NBTTagList pages = new NBTTagList();
pages.add(new NBTTagString("How Are you? I'm the first page and I have nothing on special!")); //Добавляем страницу и текст на неё
//Устанавливаем книге мету и теги
book.setTag(tag);
//Ставим книгу игроку в руку
org.*********ventory.ItemStack hand = p.getItemInHand();
p.setItemInHand(CraftItemStack.asBukkitCopy(book));
//Открываем гуи книги
eh.openBook(book);
//Возвращаем игроку предмет в руки (тот что у него и был)
p.setItemInHand(hand);
//Добавляем статистику, будто это обычная книга и перо.
eh.b(StatisticList.USE_ITEM_COUNT[387]);
return true;
}

 
Здраствуйте форумчане!
Этот стартап научит вас делать Book Gui а так - же открывать их по комманде!

Что я получу нового в этом стартапе?

  • Я смогу создать интерфейс книги
  • Я смогу ткрыть этот интерфейс по комманде
  • Я смогу добавлять текст и страницы в этот интерфейс
Ну что-же, приступим!
Попробуем создать открыть книгу коммандой /opentestbook
Что происходит в коде вообще:
  1. Происходит получение игрока, а именно того кто отправил комманду.
  2. Создаётся книга и ее хранитель Nbt-тэгов
  3. Добавляем значения в хранитель данных
  4. Добавление описания
  5. Добавление страницы книге
  6. Устанавливаем ранее созданой книге мету и тэги
  7. Ложим игроку книгу в руки
  8. Открываем ее
  9. Возвращаем в руку то что в ней и было до открытия книги
Код:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
//Получаем игрока
Player p = (Player) sender;
HumanEntity he = (HumanEntity) p;
CraftHumanEntity che = (CraftHumanEntity) he;
EntityHuman eh = che.getHandle();
//Создаём ItemStack и NBTTagCompound
ItemStack book = new ItemStack(Item.getById(387));
NBTTagCompound tag = new NBTTagCompound();
tag.setString("author", "Notch"); //Автор книги
tag.setString("title", "My Dairy"); //Заставка
tag.set("display", new NBTTagCompound());
//Добавляем значения в tag "display" (название и описание)
NBTTagCompound display = tag.getCompound("display");
display.setString("Name", ChatColor.translateAlternateColorCodes('&', "&cCustom Book GUI"));

NBTTagList lore = new NBTTagList(); //Описание...
lore.add(new NBTTagString("Hello World!"));
display.set("Lore", lore); //Установка описания книге
//Создаем страницу в книге и добавляем на нее текст
NBTTagList pages = new NBTTagList();
pages.add(new NBTTagString("How Are you? I'm the first page and I have nothing on special!")); //Добавляем страницу и текст на неё
//Устанавливаем книге мету и теги
book.setTag(tag);
//Ставим книгу игроку в руку
org.*********ventory.ItemStack hand = p.getItemInHand();
p.setItemInHand(CraftItemStack.asBukkitCopy(book));
//Открываем гуи книги
eh.openBook(book);
//Возвращаем игроку предмет в руки (тот что у него и был)
p.setItemInHand(hand);
//Добавляем статистику, будто это обычная книга и перо.
eh.b(StatisticList.USE_ITEM_COUNT[387]);
return true;
}
Жесть, чем тебя BookMeta не устроила?
 
BookMeta + WrapperPlayServerCustomPayload
 
Книгу не так и сложно самому создать, старт ап бесполезный.
 
Что там не так? Серьезно, если скажешь буду очень благодарен (просто думаю использовать его или нет) :)
 

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

Назад
Верх