the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2
3/*
4class WrittenBookItem extends Item {
5
6 public static final int TITLE_LENGTH = 16;
7 public static final int PAGE_LENGTH = 256;
8 public static final int MAX_PAGES = 50;
9 public static final String TAG_TITLE = "title";
10 public static final String TAG_AUTHOR = "author";
11 public static final String TAG_PAGES = "pages";
12
13 public WrittenBookItem(int id) {
14 super(id);
15 setMaxStackSize(1);
16 }
17
18 public static boolean makeSureTagIsValid(CompoundTag bookTag) {
19
20 if (!WritingBookItem.makeSureTagIsValid(bookTag)) {
21 return false;
22 }
23
24 if (!bookTag.contains(TAG_TITLE)) {
25 return false;
26 }
27 String title = bookTag.getString(TAG_TITLE);
28 if (title == null || title.length() > TITLE_LENGTH) {
29 return false;
30 }
31
32 if (!bookTag.contains(TAG_AUTHOR)) {
33 return false;
34 }
35
36 return true;
37 }
38
39 @Override
40 public String getHoverName(ItemInstance itemInstance) {
41 if (itemInstance.hasTag()) {
42 CompoundTag itemTag = itemInstance.getTag();
43
44 StringTag titleTag = (StringTag) itemTag.get(TAG_TITLE);
45 if (titleTag != null) {
46 return titleTag.toString();
47 }
48 }
49 return super.getHoverName(itemInstance);
50 }
51
52 @Override
53 public void appendHoverText(ItemInstance itemInstance, Player player, List<String> lines, boolean advanced) {
54
55 if (itemInstance.hasTag()) {
56 CompoundTag itemTag = itemInstance.getTag();
57
58 StringTag authorTag = (StringTag) itemTag.get(TAG_AUTHOR);
59 if (authorTag != null) {
60 lines.add(ChatFormatting.GRAY + String.format(I18n.get("book.byAuthor", authorTag.data)));
61 }
62 }
63 }
64
65 @Override
66 public ItemInstance use(ItemInstance itemInstance, Level level, Player player) {
67 player.openItemInstanceGui(itemInstance);
68 return itemInstance;
69 }
70
71 @Override
72 public boolean shouldOverrideMultiplayerNBT() {
73 return true;
74 }
75
76 @Override
77 public boolean isFoil(ItemInstance itemInstance) {
78 return true;
79 }
80
81};
82*/