Skip to content

Commit c332752

Browse files
committed
Fixes Book Material problem in 1.12.2 or below
1 parent 663ab9c commit c332752

File tree

3 files changed

+30
-13
lines changed

3 files changed

+30
-13
lines changed

pom.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@
3131
<groupId>org.apache.maven.plugins</groupId>
3232
<artifactId>maven-shade-plugin</artifactId>
3333
<version>3.1.0</version>
34+
<configuration>
35+
<relocations>
36+
<relocation>
37+
<pattern>com.cryptomorin.xseries</pattern>
38+
<shadedPattern>com.loohp.interactivechat.Utils</shadedPattern>
39+
</relocation>
40+
</relocations>
41+
</configuration>
3442
<executions>
3543
<execution>
3644
<phase>package</phase>
@@ -78,6 +86,12 @@
7886
</repositories>
7987

8088
<dependencies>
89+
<dependency>
90+
<groupId>com.github.cryptomorin</groupId>
91+
<artifactId>XSeries</artifactId>
92+
<version>7.2.1.2</version>
93+
<scope>compile</scope>
94+
</dependency>
8195
<dependency>
8296
<groupId>org.apache.commons</groupId>
8397
<artifactId>commons-lang3</artifactId>

src/com/loohp/interactivechat/Listeners/ChatPackets.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ public void onPacketSending(PacketEvent event) {
211211
Bukkit.getScheduler().runTaskLater(InteractiveChat.plugin, () -> {
212212
InteractiveChat.keyTime.remove(rawMessageKey);
213213
InteractiveChat.keyPlayer.remove(rawMessageKey);
214-
}, 5);
214+
}, 10);
215215
debug++;
216216
if (postEvent.isCancelled()) {
217217
event.setReadOnly(false);

src/com/loohp/interactivechat/Listeners/Events.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.util.UUID;
1010

1111
import org.bukkit.Bukkit;
12-
import org.bukkit.Material;
1312
import org.bukkit.entity.Player;
1413
import org.bukkit.event.EventHandler;
1514
import org.bukkit.event.EventPriority;
@@ -23,6 +22,7 @@
2322
import org.bukkit.inventory.ItemStack;
2423
import org.bukkit.inventory.meta.BookMeta;
2524

25+
import com.cryptomorin.xseries.XMaterial;
2626
import com.loohp.interactivechat.InteractiveChat;
2727
import com.loohp.interactivechat.ObjectHolders.CommandPlaceholderInfo;
2828
import com.loohp.interactivechat.ObjectHolders.ICPlaceholder;
@@ -290,18 +290,21 @@ public void onInventoryClick(InventoryClickEvent event) {
290290
}
291291
if (block && event.getRawSlot() < event.getView().getTopInventory().getSize()) {
292292
if (event.getCurrentItem() != null) {
293-
if (event.getCurrentItem().getType().equals(Material.WRITTEN_BOOK)) {
293+
XMaterial xmaterial = XMaterial.matchXMaterial(event.getCurrentItem());
294+
if (xmaterial.equals(XMaterial.WRITTEN_BOOK)) {
294295
((Player) event.getWhoClicked()).openBook(event.getCurrentItem().clone());
295-
} else if (event.getCurrentItem().getType().equals(Material.WRITABLE_BOOK)) {
296-
ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
297-
BookMeta ori = (BookMeta) event.getCurrentItem().getItemMeta();
298-
BookMeta dis = (BookMeta) book.getItemMeta();
299-
List<BaseComponent[]> pages = new ArrayList<>(ori.spigot().getPages());
300-
dis.spigot().setPages(pages);
301-
dis.setTitle("Temp Book");
302-
dis.setAuthor("InteractiveChat");
303-
book.setItemMeta(dis);
304-
((Player) event.getWhoClicked()).openBook(book);
296+
} else if (xmaterial.equals(XMaterial.WRITABLE_BOOK)) {
297+
ItemStack book = XMaterial.WRITTEN_BOOK.parseItem();
298+
if (book != null && book.getItemMeta() instanceof BookMeta) {
299+
BookMeta ori = (BookMeta) event.getCurrentItem().getItemMeta();
300+
BookMeta dis = (BookMeta) book.getItemMeta();
301+
List<BaseComponent[]> pages = new ArrayList<>(ori.spigot().getPages());
302+
dis.spigot().setPages(pages);
303+
dis.setTitle("Temp Book");
304+
dis.setAuthor("InteractiveChat");
305+
book.setItemMeta(dis);
306+
((Player) event.getWhoClicked()).openBook(book);
307+
}
305308
}
306309
}
307310
}

0 commit comments

Comments
 (0)