From 2db149067d30e6f94dfb0dc8ab1cfb27acfb6be3 Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Fri, 1 Apr 2022 04:07:49 -0400 Subject: [PATCH] Default to Quests Journal without item --- core/pom.xml | 16 ++++-- .../java/me/blackvein/quests/Settings.java | 7 +++ .../subcommands/QuestsJournalCommand.java | 52 +++++++++++-------- 3 files changed, 49 insertions(+), 26 deletions(-) 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"))); + } } } }