Skip to content

Commit 268f3e2

Browse files
committed
Item progress may not exceed 64, fixes #2278
1 parent 007270f commit 268f3e2

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

core/src/main/java/me/pikamug/quests/player/BukkitQuester.java

+13-15
Original file line numberDiff line numberDiff line change
@@ -2245,7 +2245,7 @@ public void craftItem(final Quest quest, final ItemStack crafted) {
22452245
new BukkitObjective(type, null, amount, goal));
22462246
plugin.getServer().getPluginManager().callEvent(preEvent);
22472247

2248-
final int progress = crafted.getAmount() + amount;
2248+
final int progress = Math.min(crafted.getAmount() + amount, 64);
22492249
bukkitQuestProgress.itemsCrafted.set(match, progress);
22502250
if (progress >= goal.getAmount()) {
22512251
finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null,
@@ -2294,7 +2294,7 @@ public void smeltItem(final Quest quest, final ItemStack smelted) {
22942294
new BukkitObjective(type, null, amount, goal));
22952295
plugin.getServer().getPluginManager().callEvent(preEvent);
22962296

2297-
final int progress = smelted.getAmount() + amount;
2297+
final int progress = Math.min(smelted.getAmount() + amount, 64);
22982298
bukkitQuestProgress.itemsSmelted.set(match, progress);
22992299
if (progress >= goal.getAmount()) {
23002300
finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null,
@@ -2346,7 +2346,7 @@ public void enchantBook(final Quest quest, final ItemStack enchantedBook,
23462346
new BukkitObjective(type, null, amount, goal));
23472347
plugin.getServer().getPluginManager().callEvent(preEvent);
23482348

2349-
final int progress = enchantedBook.getAmount() + amount;
2349+
final int progress = Math.min(enchantedBook.getAmount() + amount, 64);
23502350
bukkitQuestProgress.itemsEnchanted.set(match, progress);
23512351
if (progress >= goal.getAmount()) {
23522352
finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null,
@@ -2403,7 +2403,7 @@ public void enchantItem(final Quest quest, final ItemStack enchanted) {
24032403
new BukkitObjective(type, null, amount, goal));
24042404
plugin.getServer().getPluginManager().callEvent(preEvent);
24052405

2406-
final int progress = enchanted.getAmount() + amount;
2406+
final int progress = Math.min(enchanted.getAmount() + amount, 64);
24072407
bukkitQuestProgress.itemsEnchanted.set(match, progress);
24082408
if (progress >= goal.getAmount()) {
24092409
finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null,
@@ -2452,7 +2452,7 @@ public void brewItem(final Quest quest, final ItemStack brewed) {
24522452
new BukkitObjective(type, null, amount, goal));
24532453
plugin.getServer().getPluginManager().callEvent(preEvent);
24542454

2455-
final int progress = brewed.getAmount() + amount;
2455+
final int progress = Math.min(brewed.getAmount() + amount, 64);
24562456
bukkitQuestProgress.itemsBrewed.set(match, progress);
24572457
if (progress >= goal.getAmount()) {
24582458
finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null,
@@ -2501,7 +2501,7 @@ public void consumeItem(final Quest quest, final ItemStack consumed) {
25012501
new BukkitObjective(type, null, amount, goal));
25022502
plugin.getServer().getPluginManager().callEvent(preEvent);
25032503

2504-
final int progress = consumed.getAmount() + amount;
2504+
final int progress = Math.min(consumed.getAmount() + amount, 64);
25052505
bukkitQuestProgress.itemsConsumed.set(match, progress);
25062506
if (progress >= goal.getAmount()) {
25072507
finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null,
@@ -2560,22 +2560,20 @@ public void deliverToNPC(final Quest quest, final UUID npc, final ItemStack deli
25602560
new BukkitObjective(type, null, amount, goal));
25612561
plugin.getServer().getPluginManager().callEvent(preEvent);
25622562

2563-
final int progress = delivered.getAmount() + amount;
25642563
final int index = player.getInventory().first(delivered);
25652564
if (index == -1) {
25662565
// Already delivered in previous loop
25672566
return;
25682567
}
2568+
2569+
final int progress = Math.min(delivered.getAmount() + amount, 64);
25692570
bukkitQuestProgress.itemsDelivered.set(match, progress);
25702571
if (progress >= goal.getAmount()) {
2571-
if ((delivered.getAmount() + amount) >= goal.getAmount()) {
2572-
// Take away remaining amount to be delivered
2573-
final ItemStack clone = delivered.clone();
2574-
clone.setAmount(delivered.getAmount() - (goal.getAmount() - amount));
2575-
player.getInventory().setItem(index, clone);
2576-
} else {
2577-
player.getInventory().setItem(index, null);
2578-
}
2572+
// Take away remaining amount to be delivered
2573+
final ItemStack clone = delivered.clone();
2574+
int newAmount = clone.getAmount() - (goal.getAmount() - amount);
2575+
clone.setAmount(newAmount);
2576+
player.getInventory().setItem(index, clone);
25792577
player.updateInventory();
25802578
finishObjective(quest, new BukkitObjective(type, null, progress, goal), null, null, null, null,
25812579
null, null, null);

0 commit comments

Comments
 (0)