diff --git a/core/src/main/java/me/pikamug/quests/player/BukkitQuester.java b/core/src/main/java/me/pikamug/quests/player/BukkitQuester.java index 7d98629cb..c3e07ed6d 100644 --- a/core/src/main/java/me/pikamug/quests/player/BukkitQuester.java +++ b/core/src/main/java/me/pikamug/quests/player/BukkitQuester.java @@ -1162,7 +1162,6 @@ public class BukkitQuester implements Quester { * @param formatNames Whether to format item/entity names, if applicable * @return List of detailed objectives */ - @SuppressWarnings("deprecation") public LinkedList getCurrentObjectives(final Quest quest, final boolean ignoreOverrides, final boolean formatNames) { if (quest == null) { @@ -2155,7 +2154,7 @@ public class BukkitQuester implements Quester { } for (final Integer match : matches) { final int amount = bukkitQuestData.itemsCrafted.get(match); - final int goal = ((BukkitStage) getCurrentStage(quest)).getItemsToCraft().get(match).getAmount(); + final ItemStack goal = ((BukkitStage) getCurrentStage(quest)).getItemsToCraft().get(match); final ObjectiveType type = ObjectiveType.CRAFT_ITEM; final BukkitQuesterPreUpdateObjectiveEvent preEvent = new BukkitQuesterPreUpdateObjectiveEvent(this, quest, @@ -2164,8 +2163,7 @@ public class BukkitQuester implements Quester { final int progress = crafted.getAmount() + amount; bukkitQuestData.itemsCrafted.set(match, progress); - final Material m = crafted.getType(); - if (progress >= goal) { + if (progress >= goal.getAmount()) { finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null, null, null, null); @@ -2205,7 +2203,7 @@ public class BukkitQuester implements Quester { } for (final Integer match : matches) { final int amount = bukkitQuestData.itemsSmelted.get(match); - final int goal = ((BukkitStage) getCurrentStage(quest)).getItemsToSmelt().get(match).getAmount(); + final ItemStack goal = ((BukkitStage) getCurrentStage(quest)).getItemsToSmelt().get(match); final ObjectiveType type = ObjectiveType.SMELT_ITEM; final BukkitQuesterPreUpdateObjectiveEvent preEvent = new BukkitQuesterPreUpdateObjectiveEvent(this, quest, @@ -2214,8 +2212,7 @@ public class BukkitQuester implements Quester { final int progress = smelted.getAmount() + amount; bukkitQuestData.itemsSmelted.set(match, progress); - final Material m = smelted.getType(); - if (progress >= goal) { + if (progress >= goal.getAmount()) { finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null, null, null, null); @@ -2258,7 +2255,7 @@ public class BukkitQuester implements Quester { } for (final Integer match : matches) { final int amount = bukkitQuestData.itemsEnchanted.get(match); - final int goal = ((BukkitStage) getCurrentStage(quest)).getItemsToEnchant().get(match).getAmount(); + final ItemStack goal = ((BukkitStage) getCurrentStage(quest)).getItemsToEnchant().get(match); final ObjectiveType type = ObjectiveType.ENCHANT_ITEM; final BukkitQuesterPreUpdateObjectiveEvent preEvent = new BukkitQuesterPreUpdateObjectiveEvent(this, quest, @@ -2267,8 +2264,7 @@ public class BukkitQuester implements Quester { final int progress = enchantedBook.getAmount() + amount; bukkitQuestData.itemsEnchanted.set(match, progress); - final Material m = enchantedBook.getType(); - if (progress >= goal) { + if (progress >= goal.getAmount()) { finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null, null, null, null); @@ -2316,7 +2312,7 @@ public class BukkitQuester implements Quester { } for (final Integer match : matches) { final int amount = bukkitQuestData.itemsEnchanted.get(match); - final int goal = ((BukkitStage) getCurrentStage(quest)).getItemsToEnchant().get(match).getAmount(); + final ItemStack goal = ((BukkitStage) getCurrentStage(quest)).getItemsToEnchant().get(match); final ObjectiveType type = ObjectiveType.ENCHANT_ITEM; final BukkitQuesterPreUpdateObjectiveEvent preEvent = new BukkitQuesterPreUpdateObjectiveEvent(this, quest, @@ -2325,8 +2321,7 @@ public class BukkitQuester implements Quester { final int progress = enchanted.getAmount() + amount; bukkitQuestData.itemsEnchanted.set(match, progress); - final Material m = enchanted.getType(); - if (progress >= goal) { + if (progress >= goal.getAmount()) { finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null, null, null, null); @@ -2366,7 +2361,7 @@ public class BukkitQuester implements Quester { } for (final Integer match : matches) { final int amount = bukkitQuestData.itemsBrewed.get(match); - final int goal = ((BukkitStage) getCurrentStage(quest)).getItemsToBrew().get(match).getAmount(); + final ItemStack goal = ((BukkitStage) getCurrentStage(quest)).getItemsToBrew().get(match); final ObjectiveType type = ObjectiveType.BREW_ITEM; final BukkitQuesterPreUpdateObjectiveEvent preEvent = new BukkitQuesterPreUpdateObjectiveEvent(this, quest, @@ -2375,8 +2370,7 @@ public class BukkitQuester implements Quester { final int progress = brewed.getAmount() + amount; bukkitQuestData.itemsBrewed.set(match, progress); - final Material m = brewed.getType(); - if (progress >= goal) { + if (progress >= goal.getAmount()) { finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null, null, null, null); @@ -2416,7 +2410,7 @@ public class BukkitQuester implements Quester { } for (final Integer match : matches) { final int amount = bukkitQuestData.itemsConsumed.get(match); - final int goal = ((BukkitStage) getCurrentStage(quest)).getItemsToConsume().get(match).getAmount(); + final ItemStack goal = ((BukkitStage) getCurrentStage(quest)).getItemsToConsume().get(match); final ObjectiveType type = ObjectiveType.CONSUME_ITEM; final BukkitQuesterPreUpdateObjectiveEvent preEvent = new BukkitQuesterPreUpdateObjectiveEvent(this, quest, @@ -2425,8 +2419,7 @@ public class BukkitQuester implements Quester { final int progress = consumed.getAmount() + amount; bukkitQuestData.itemsConsumed.set(match, progress); - final Material m = consumed.getType(); - if (progress >= goal) { + if (progress >= goal.getAmount()) { finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null, null, null, null); @@ -2475,7 +2468,7 @@ public class BukkitQuester implements Quester { continue; } final int amount = bukkitQuestData.itemsDelivered.get(match); - final int goal = ((BukkitStage) getCurrentStage(quest)).getItemsToDeliver().get(match).getAmount(); + final ItemStack goal = ((BukkitStage) getCurrentStage(quest)).getItemsToDeliver().get(match); final ObjectiveType type = ObjectiveType.DELIVER_ITEM; final Set dispatchedQuestIDs = new HashSet<>(); @@ -2484,18 +2477,17 @@ public class BukkitQuester implements Quester { plugin.getServer().getPluginManager().callEvent(preEvent); final int progress = delivered.getAmount() + amount; - final Material m = delivered.getType(); final int index = player.getInventory().first(delivered); if (index == -1) { // Already delivered in previous loop return; } bukkitQuestData.itemsDelivered.set(match, progress); - if (progress >= goal) { - if ((delivered.getAmount() + amount) >= goal) { + if (progress >= goal.getAmount()) { + if ((delivered.getAmount() + amount) >= goal.getAmount()) { // Take away remaining amount to be delivered final ItemStack clone = delivered.clone(); - clone.setAmount(delivered.getAmount() - (goal - amount)); + clone.setAmount(delivered.getAmount() - (goal.getAmount() - amount)); player.getInventory().setItem(index, clone); } else { player.getInventory().setItem(index, null); @@ -2509,7 +2501,7 @@ public class BukkitQuester implements Quester { final String[] message = BukkitConfigUtil.parseStringWithPossibleLineBreaks(getCurrentStage(quest) .getDeliverMessages().get(new Random().nextInt(getCurrentStage(quest) .getDeliverMessages().size())), getCurrentStage(quest).getItemDeliveryTargets() - .get(match), goal - progress); + .get(match), goal.getAmount() - progress); player.sendMessage(message); } @@ -3417,23 +3409,6 @@ public class BukkitQuester implements Quester { } return true; } - - /** - * Gets an item with 0 amount (ideal), unless server is on certain builds of Paper - * server software, in which case gets an item with 1 amount (not ideal) - * - * @param type Material of item - * @param durability Durability of item - * @return item with 0 or 1 amount - */ - @SuppressWarnings("deprecation") - private ItemStack getLowItemStack(final Material type, final short durability) { - try { - return new ItemStack(type, 0, durability); - } catch (IllegalArgumentException e) { - return new ItemStack(type, 1, durability); - } - } /** * Add empty map values per Quest stage @@ -3441,7 +3416,6 @@ public class BukkitQuester implements Quester { * @param quest Quest with at least one stage * @param stage Where first stage is '0' */ - @SuppressWarnings("deprecation") public void addEmptiesFor(final Quest quest, final int stage) { final BukkitQuestProgress data = new BukkitQuestProgress(this); data.setDoJournalUpdate(false); @@ -3491,7 +3465,7 @@ public class BukkitQuester implements Quester { } if (!bukkitStage.getItemsToEnchant().isEmpty()) { for (final ItemStack ignored : bukkitStage.getItemsToEnchant()) { - data.blocksUsed.add(0); + data.itemsEnchanted.add(0); } } if (!bukkitStage.getItemsToBrew().isEmpty()) { diff --git a/core/src/main/java/me/pikamug/quests/storage/implementation/file/BukkitQuesterYamlStorage.java b/core/src/main/java/me/pikamug/quests/storage/implementation/file/BukkitQuesterYamlStorage.java index df6c42bfc..5cd90b38f 100644 --- a/core/src/main/java/me/pikamug/quests/storage/implementation/file/BukkitQuesterYamlStorage.java +++ b/core/src/main/java/me/pikamug/quests/storage/implementation/file/BukkitQuesterYamlStorage.java @@ -175,95 +175,95 @@ public class BukkitQuesterYamlStorage implements QuesterStorageImpl { final BukkitQuestProgress bukkitQuestData = (BukkitQuestProgress) quester.getQuestDataOrDefault(quest); if (questSec.contains("blocks-broken-amounts")) { final List brokenAmounts = questSec.getIntegerList("blocks-broken-amounts"); - quester.getQuestDataOrDefault(quest).setBlocksBroken(new LinkedList<>(brokenAmounts)); + bukkitQuestData.setBlocksBroken(new LinkedList<>(brokenAmounts)); } if (questSec.contains("blocks-damaged-amounts")) { final List damagedAmounts = questSec.getIntegerList("blocks-damaged-amounts"); - quester.getQuestDataOrDefault(quest).setBlocksDamaged(new LinkedList<>(damagedAmounts)); + bukkitQuestData.setBlocksDamaged(new LinkedList<>(damagedAmounts)); } if (questSec.contains("blocks-placed-amounts")) { final List placedAmounts = questSec.getIntegerList("blocks-placed-amounts"); - quester.getQuestDataOrDefault(quest).setBlocksPlaced(new LinkedList<>(placedAmounts)); + bukkitQuestData.setBlocksPlaced(new LinkedList<>(placedAmounts)); } if (questSec.contains("blocks-used-amounts")) { final List usedAmounts = questSec.getIntegerList("blocks-used-amounts"); - quester.getQuestDataOrDefault(quest).setBlocksUsed(new LinkedList<>(usedAmounts)); + bukkitQuestData.setBlocksUsed(new LinkedList<>(usedAmounts)); } if (questSec.contains("blocks-cut-amounts")) { final List cutAmounts = questSec.getIntegerList("blocks-cut-amounts"); - quester.getQuestDataOrDefault(quest).setBlocksCut(new LinkedList<>(cutAmounts)); + bukkitQuestData.setBlocksCut(new LinkedList<>(cutAmounts)); } if (questSec.contains("item-craft-amounts")) { final List craftAmounts = questSec.getIntegerList("item-craft-amounts"); - quester.getQuestDataOrDefault(quest).setItemsCrafted(new LinkedList<>(craftAmounts)); + bukkitQuestData.setItemsCrafted(new LinkedList<>(craftAmounts)); } if (questSec.contains("item-smelt-amounts")) { final List smeltAmounts = questSec.getIntegerList("item-smelt-amounts"); - quester.getQuestDataOrDefault(quest).setItemsSmelted(new LinkedList<>(smeltAmounts)); + bukkitQuestData.setItemsSmelted(new LinkedList<>(smeltAmounts)); } if (questSec.contains("item-enchant-amounts")) { final List enchantAmounts = questSec.getIntegerList("item-enchant-amounts"); - quester.getQuestDataOrDefault(quest).setItemsEnchanted(new LinkedList<>(enchantAmounts)); + bukkitQuestData.setItemsEnchanted(new LinkedList<>(enchantAmounts)); } if (questSec.contains("item-brew-amounts")) { final List brewAmounts = questSec.getIntegerList("item-brew-amounts"); - quester.getQuestDataOrDefault(quest).setItemsBrewed(new LinkedList<>(brewAmounts)); + bukkitQuestData.setItemsBrewed(new LinkedList<>(brewAmounts)); } if (questSec.contains("item-consume-amounts")) { final List consumeAmounts = questSec.getIntegerList("item-consume-amounts"); - quester.getQuestDataOrDefault(quest).setItemsConsumed(new LinkedList<>(consumeAmounts)); + bukkitQuestData.setItemsConsumed(new LinkedList<>(consumeAmounts)); } if (questSec.contains("item-delivery-amounts")) { final List deliveryAmounts = questSec.getIntegerList("item-delivery-amounts"); - quester.getQuestDataOrDefault(quest).setItemsDelivered(new LinkedList<>(deliveryAmounts)); + bukkitQuestData.setItemsDelivered(new LinkedList<>(deliveryAmounts)); } if (questSec.contains("has-talked-to")) { final List talkAmount = questSec.getBooleanList("has-talked-to"); - quester.getQuestDataOrDefault(quest).setNpcsInteracted(new LinkedList<>(talkAmount)); + bukkitQuestData.setNpcsInteracted(new LinkedList<>(talkAmount)); } if (questSec.contains("npc-killed-amounts")) { final List npcAmounts = questSec.getIntegerList("npc-killed-amounts"); - quester.getQuestDataOrDefault(quest).setNpcsNumKilled(new LinkedList<>(npcAmounts)); + bukkitQuestData.setNpcsNumKilled(new LinkedList<>(npcAmounts)); } else if (questSec.contains("citizen-amounts-killed")) { // Legacy final List npcAmounts = questSec.getIntegerList("citizen-amounts-killed"); - quester.getQuestDataOrDefault(quest).setNpcsNumKilled(new LinkedList<>(npcAmounts)); + bukkitQuestData.setNpcsNumKilled(new LinkedList<>(npcAmounts)); } if (questSec.contains("cows-milked")) { - quester.getQuestDataOrDefault(quest).setCowsMilked(questSec.getInt("cows-milked")); + bukkitQuestData.setCowsMilked(questSec.getInt("cows-milked")); } if (questSec.contains("fish-caught")) { - quester.getQuestDataOrDefault(quest).setFishCaught(questSec.getInt("fish-caught")); + bukkitQuestData.setFishCaught(questSec.getInt("fish-caught")); } if (questSec.contains("players-killed")) { - quester.getQuestDataOrDefault(quest).setPlayersKilled(questSec.getInt("players-killed")); + bukkitQuestData.setPlayersKilled(questSec.getInt("players-killed")); } if (questSec.contains("mobs-killed-amounts")) { final List mobAmounts = questSec.getIntegerList("mobs-killed-amounts"); - quester.getQuestDataOrDefault(quest).setMobNumKilled(new LinkedList<>(mobAmounts)); + bukkitQuestData.setMobNumKilled(new LinkedList<>(mobAmounts)); } if (questSec.contains("has-reached-location")) { final List hasReached = questSec.getBooleanList("has-reached-location"); - quester.getQuestDataOrDefault(quest).setLocationsReached(new LinkedList<>(hasReached)); + bukkitQuestData.setLocationsReached(new LinkedList<>(hasReached)); } if (questSec.contains("mob-tame-amounts")) { final List tameAmounts = questSec.getIntegerList("mob-tame-amounts"); - quester.getQuestDataOrDefault(quest).setMobsTamed(new LinkedList<>(tameAmounts)); + bukkitQuestData.setMobsTamed(new LinkedList<>(tameAmounts)); } if (questSec.contains("sheep-sheared")) { final List sheepAmounts = questSec.getIntegerList("sheep-sheared"); - quester.getQuestDataOrDefault(quest).setSheepSheared(new LinkedList<>(sheepAmounts)); + bukkitQuestData.setSheepSheared(new LinkedList<>(sheepAmounts)); } if (questSec.contains("passwords-said")) { final List passAmounts = questSec.getBooleanList("passwords-said"); - quester.getQuestDataOrDefault(quest).setPasswordsSaid(new LinkedList<>(passAmounts)); + bukkitQuestData.setPasswordsSaid(new LinkedList<>(passAmounts)); } if (questSec.contains("custom-objective-counts")) { final List customObjCounts = questSec.getIntegerList("custom-objective-counts"); - quester.getQuestDataOrDefault(quest).setCustomObjectiveCounts(new LinkedList<>(customObjCounts)); + bukkitQuestData.setCustomObjectiveCounts(new LinkedList<>(customObjCounts)); } if (questSec.contains("stage-delay")) { - quester.getQuestDataOrDefault(quest).setDelayTimeLeft(questSec.getLong("stage-delay")); + bukkitQuestData.setDelayTimeLeft(questSec.getLong("stage-delay")); } questProgress.put(quest, bukkitQuestData); }