- Баллы
- 21
- Имя в Minecraft
- TheSkiffSailor
Здраствуйте форумчане!
Этот стартап научит вас делать Book Gui а так - же открывать их по комманде!
Что я получу нового в этом стартапе?
Попробуем создать открыть книгу коммандой /opentestbook
Этот стартап научит вас делать Book Gui а так - же открывать их по комманде!
Что я получу нового в этом стартапе?
- Я смогу создать интерфейс книги
- Я смогу ткрыть этот интерфейс по комманде
- Я смогу добавлять текст и страницы в этот интерфейс
Попробуем создать открыть книгу коммандой /opentestbook
Что происходит в коде вообще:
- Происходит получение игрока, а именно того кто отправил комманду.
- Создаётся книга и ее хранитель Nbt-тэгов
- Добавляем значения в хранитель данных
- Добавление описания
- Добавление страницы книге
- Устанавливаем ранее созданой книге мету и тэги
- Ложим игроку книгу в руки
- Открываем ее
- Возвращаем в руку то что в ней и было до открытия книги
Код:
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;
}
