diff --git a/core/pom.xml b/core/pom.xml
index 1d2cbfa2a..f5ad47dce 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -134,6 +134,11 @@
LocaleLib
12e12cbadc
+
+ xyz.upperlevel.spigot.book
+ spigot-book-api
+ 1.6
+
mysql
mysql-connector-java
@@ -244,9 +249,10 @@
me.*
com.github.PikaMug:LocaleLib
com.zaxxer:HikariCP
+ mysql
org.slf4j:slf4j-simple
org.slf4j:slf4j-api
- mysql
+ xyz.upperlevel.spigot.book:spigot-book-api
@@ -258,13 +264,17 @@
com.zaxxer.hikari
me.blackvein.quests.libs.hikari
+
+ com.mysql
+ me.blackvein.quests.libs.mysql
+
org.slf4j
me.blackvein.quests.libs.slf4j
- com.mysql
- me.blackvein.quests.libs.mysql
+ xyz.upperlevel.spigot.book
+ me.blackvein.quests.libs.bookutil
diff --git a/core/src/main/java/me/blackvein/quests/Settings.java b/core/src/main/java/me/blackvein/quests/Settings.java
index ddac8de57..0f861bbf2 100644
--- a/core/src/main/java/me/blackvein/quests/Settings.java
+++ b/core/src/main/java/me/blackvein/quests/Settings.java
@@ -35,6 +35,7 @@ public class Settings implements ISettings {
private int consoleLogging = 1;
private boolean disableCommandFeedback = true;
private boolean genFilesOnJoin = true;
+ private boolean giveJournalItem = false;
private boolean ignoreLockedQuests = false;
private int killDelay = 0;
private int maxQuests = 0;
@@ -134,6 +135,12 @@ public class Settings implements ISettings {
public void setGenFilesOnJoin(final boolean genFilesOnJoin) {
this.genFilesOnJoin = genFilesOnJoin;
}
+ public boolean canGiveJournalItem() {
+ return giveJournalItem;
+ }
+ public void setGiveJournalItem(final boolean giveJournalItem) {
+ this.giveJournalItem = giveJournalItem;
+ }
public boolean canIgnoreLockedQuests() {
return ignoreLockedQuests;
}
diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsJournalCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsJournalCommand.java
index c38d33472..3a92d4c93 100644
--- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsJournalCommand.java
+++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsJournalCommand.java
@@ -24,6 +24,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
+import xyz.upperlevel.spigot.book.BookUtil;
public class QuestsJournalCommand extends QuestsSubCommand {
@@ -78,31 +79,36 @@ public class QuestsJournalCommand extends QuestsSubCommand {
return;
}
- final Inventory inv = player.getInventory();
- final int index = quester.getJournalIndex();
- if (index != -1) {
- inv.setItem(index, null);
- Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalPutAway")
- .replace("", Lang.get(player, "journalTitle")));
- } else if (player.getItemInHand().getType().equals(Material.AIR)) {
+ if (!plugin.getSettings().canGiveJournalItem()) {
final QuestJournal journal = new QuestJournal(quester);
- player.setItemInHand(journal.toItemStack());
- Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalTaken")
- .replace("", Lang.get(player, "journalTitle")));
- } else if (inv.firstEmpty() != -1) {
- final ItemStack[] arr = inv.getContents();
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] == null) {
- final QuestJournal journal = new QuestJournal(quester);
- inv.setItem(i, journal.toItemStack());
- Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalTaken")
- .replace("", Lang.get(player, "journalTitle")));
- break;
- }
- }
+ BookUtil.openPlayer(player, journal.toItemStack());
} else {
- Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalNoRoom")
- .replace("", Lang.get(player, "journalTitle")));
+ final Inventory inv = player.getInventory();
+ final int index = quester.getJournalIndex();
+ if (index != -1) {
+ inv.setItem(index, null);
+ Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalPutAway")
+ .replace("", Lang.get(player, "journalTitle")));
+ } else if (player.getItemInHand().getType().equals(Material.AIR)) {
+ final QuestJournal journal = new QuestJournal(quester);
+ player.setItemInHand(journal.toItemStack());
+ Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalTaken")
+ .replace("", Lang.get(player, "journalTitle")));
+ } else if (inv.firstEmpty() != -1) {
+ final ItemStack[] arr = inv.getContents();
+ for (int i = 0; i < arr.length; i++) {
+ if (arr[i] == null) {
+ final QuestJournal journal = new QuestJournal(quester);
+ inv.setItem(i, journal.toItemStack());
+ Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalTaken")
+ .replace("", Lang.get(player, "journalTitle")));
+ break;
+ }
+ }
+ } else {
+ Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalNoRoom")
+ .replace("", Lang.get(player, "journalTitle")));
+ }
}
}
}