Track progress through int, part 2. Fixes #2246

This commit is contained in:
PikaMug 2024-07-12 13:57:13 -04:00
parent 10880e8a2e
commit 0d79f5fbc1
6 changed files with 1074 additions and 1151 deletions

View File

@ -13,27 +13,27 @@ package me.pikamug.quests.player;
import java.util.LinkedList; import java.util.LinkedList;
public interface QuestProgress { public interface QuestProgress {
LinkedList<?> getBlocksBroken(); LinkedList<Integer> getBlocksBroken();
LinkedList<?> getBlocksDamaged(); LinkedList<Integer> getBlocksDamaged();
LinkedList<?> getBlocksPlaced(); LinkedList<Integer> getBlocksPlaced();
LinkedList<?> getBlocksUsed(); LinkedList<Integer> getBlocksUsed();
LinkedList<?> getBlocksCut(); LinkedList<Integer> getBlocksCut();
LinkedList<?> getItemsCrafted(); LinkedList<Integer> getItemsCrafted();
LinkedList<?> getItemsSmelted(); LinkedList<Integer> getItemsSmelted();
LinkedList<?> getItemsEnchanted(); LinkedList<Integer> getItemsEnchanted();
LinkedList<?> getItemsBrewed(); LinkedList<Integer> getItemsBrewed();
LinkedList<?> getItemsConsumed(); LinkedList<Integer> getItemsConsumed();
LinkedList<?> getItemsDelivered(); LinkedList<Integer> getItemsDelivered();
LinkedList<Boolean> getNpcsInteracted(); LinkedList<Boolean> getNpcsInteracted();

View File

@ -102,7 +102,12 @@ public class BukkitBlockListener implements Listener {
if (quest.getOptions().canIgnoreBlockReplace()) { if (quest.getOptions().canIgnoreBlockReplace()) {
// Ignore blocks broken once replaced (self) // Ignore blocks broken once replaced (self)
if (currentStage.containsObjective(placeType)) { if (currentStage.containsObjective(placeType)) {
for (final ItemStack is : questData.blocksPlaced) { for (int i = 0; i < questData.blocksPlaced.size(); i++) {
final int progress = questData.blocksPlaced.get(i) - 1;
if (progress < 0) {
break;
}
final ItemStack is = currentStage.getBlocksToBreak().get(i);
if (event.getBlock().getType().equals(is.getType()) && is.getAmount() > 0) { if (event.getBlock().getType().equals(is.getType()) && is.getAmount() > 0) {
ItemStack goal = new ItemStack(is.getType(), 64); ItemStack goal = new ItemStack(is.getType(), 64);
for (final ItemStack stack : currentStage.getBlocksToPlace()) { for (final ItemStack stack : currentStage.getBlocksToPlace()) {
@ -116,14 +121,11 @@ public class BukkitBlockListener implements Listener {
new BukkitObjective(placeType, null, is.getAmount(), goal.getAmount())); new BukkitObjective(placeType, null, is.getAmount(), goal.getAmount()));
plugin.getServer().getPluginManager().callEvent(preEvent); plugin.getServer().getPluginManager().callEvent(preEvent);
final int index = questData.blocksPlaced.indexOf(is); questData.blocksPlaced.set(i, progress);
final int newAmount = is.getAmount() - 1;
is.setAmount(newAmount);
questData.blocksPlaced.set(index, is);
final BukkitQuesterPostUpdateObjectiveEvent postEvent final BukkitQuesterPostUpdateObjectiveEvent postEvent
= new BukkitQuesterPostUpdateObjectiveEvent(quester, quest, = new BukkitQuesterPostUpdateObjectiveEvent(quester, quest,
new BukkitObjective(placeType, null, newAmount, goal.getAmount())); new BukkitObjective(placeType, null, progress, goal.getAmount()));
plugin.getServer().getPluginManager().callEvent(postEvent); plugin.getServer().getPluginManager().callEvent(postEvent);
} }
} }
@ -133,7 +135,12 @@ public class BukkitBlockListener implements Listener {
(final Quester q, final Quest cq) -> { (final Quester q, final Quest cq) -> {
if (!dispatchedPlaceQuestIDs.contains(cq.getId())) { if (!dispatchedPlaceQuestIDs.contains(cq.getId())) {
final BukkitQuestProgress qQuestData = (BukkitQuestProgress) q.getQuestDataOrDefault(cq); final BukkitQuestProgress qQuestData = (BukkitQuestProgress) q.getQuestDataOrDefault(cq);
for (final ItemStack is : qQuestData.blocksPlaced) { for (int i = 0; i < qQuestData.blocksPlaced.size(); i++) {
final int progress = qQuestData.blocksPlaced.get(i) - 1;
if (progress < 0) {
break;
}
final ItemStack is = currentStage.getBlocksToBreak().get(i);
if (event.getBlock().getType().equals(is.getType()) && is.getAmount() > 0) { if (event.getBlock().getType().equals(is.getType()) && is.getAmount() > 0) {
ItemStack goal = new ItemStack(is.getType(), 64); ItemStack goal = new ItemStack(is.getType(), 64);
for (final ItemStack stack : ((BukkitStage) quester.getCurrentStage(cq)).getBlocksToPlace()) { for (final ItemStack stack : ((BukkitStage) quester.getCurrentStage(cq)).getBlocksToPlace()) {
@ -147,14 +154,11 @@ public class BukkitBlockListener implements Listener {
new BukkitObjective(placeType, null, is.getAmount(), goal.getAmount())); new BukkitObjective(placeType, null, is.getAmount(), goal.getAmount()));
plugin.getServer().getPluginManager().callEvent(preEvent); plugin.getServer().getPluginManager().callEvent(preEvent);
final int index = qQuestData.blocksPlaced.indexOf(is); qQuestData.blocksPlaced.set(i, progress);
final int newAmount = is.getAmount() - 1;
is.setAmount(newAmount);
qQuestData.blocksPlaced.set(index, is);
final BukkitQuesterPostUpdateObjectiveEvent postEvent final BukkitQuesterPostUpdateObjectiveEvent postEvent
= new BukkitQuesterPostUpdateObjectiveEvent((BukkitQuester) q, cq, = new BukkitQuesterPostUpdateObjectiveEvent((BukkitQuester) q, cq,
new BukkitObjective(placeType, null, newAmount, goal.getAmount())); new BukkitObjective(placeType, null, progress, goal.getAmount()));
plugin.getServer().getPluginManager().callEvent(postEvent); plugin.getServer().getPluginManager().callEvent(postEvent);
} }
} }

View File

@ -10,8 +10,6 @@
package me.pikamug.quests.player; package me.pikamug.quests.player;
import org.bukkit.inventory.ItemStack;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedList; import java.util.LinkedList;
@ -25,7 +23,7 @@ public class BukkitQuestProgress implements QuestProgress {
public BukkitQuestProgress(final Quester quester) { public BukkitQuestProgress(final Quester quester) {
this.quester = quester; this.quester = quester;
} }
// TODO increase serial id
public LinkedList<Integer> blocksBroken = new LinkedList<Integer>() { public LinkedList<Integer> blocksBroken = new LinkedList<Integer>() {
private static final long serialVersionUID = -6071822509475270169L; private static final long serialVersionUID = -6071822509475270169L;
@ -93,32 +91,39 @@ public class BukkitQuestProgress implements QuestProgress {
} }
}; };
public LinkedList<ItemStack> blocksDamaged = new LinkedList<ItemStack>() { public LinkedList<Integer> blocksDamaged = new LinkedList<Integer>() {
private static final long serialVersionUID = -4211891633163257743L; private static final long serialVersionUID = -4211891633163257744L;
@Override @Override
public ItemStack set(final int index, final ItemStack key) { public boolean add(final Integer e) {
final ItemStack data = super.set(index, key); final boolean b = super.add(e);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data; return b;
} }
@Override @Override
public boolean add(final ItemStack key) { public void add(final int index, final Integer element) {
final boolean data = super.add(key); super.add(index, element);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data;
} }
@Override @Override
public boolean remove(final Object key) { public boolean addAll(final Collection<? extends Integer> c) {
final boolean i = super.remove(key); final boolean b = super.addAll(c);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
} }
@Override @Override
@ -129,40 +134,63 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public boolean addAll(final Collection<? extends ItemStack> m) { public boolean remove(final Object o) {
final boolean i = super.addAll(m); final boolean b = super.remove(o);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
} }
}; };
public LinkedList<ItemStack> blocksPlaced = new LinkedList<ItemStack>() { public LinkedList<Integer> blocksPlaced = new LinkedList<Integer>() {
private static final long serialVersionUID = 4226366446050903433L; private static final long serialVersionUID = 4226366446050903434L;
@Override @Override
public ItemStack set(final int index, final ItemStack key) { public boolean add(final Integer e) {
final ItemStack data = super.set(index, key); final boolean b = super.add(e);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data; return b;
} }
@Override @Override
public boolean add(final ItemStack key) { public void add(final int index, final Integer element) {
final boolean data = super.add(key); super.add(index, element);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data;
} }
@Override @Override
public boolean remove(final Object key) { public boolean addAll(final Collection<? extends Integer> c) {
final boolean i = super.remove(key); final boolean b = super.addAll(c);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
} }
@Override @Override
@ -173,40 +201,63 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public boolean addAll(final Collection<? extends ItemStack> m) { public boolean remove(final Object o) {
final boolean i = super.addAll(m); final boolean b = super.remove(o);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
} }
}; };
public LinkedList<ItemStack> blocksUsed = new LinkedList<ItemStack>() { public LinkedList<Integer> blocksUsed = new LinkedList<Integer>() {
private static final long serialVersionUID = -9057864863810306890L; private static final long serialVersionUID = -9057864863810306891L;
@Override @Override
public ItemStack set(final int index, final ItemStack key) { public boolean add(final Integer e) {
final ItemStack data = super.set(index, key); final boolean b = super.add(e);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data; return b;
} }
@Override @Override
public boolean add(final ItemStack key) { public void add(final int index, final Integer element) {
final boolean data = super.add(key); super.add(index, element);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data;
} }
@Override @Override
public boolean remove(final Object key) { public boolean addAll(final Collection<? extends Integer> c) {
final boolean i = super.remove(key); final boolean b = super.addAll(c);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
} }
@Override @Override
@ -217,40 +268,63 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public boolean addAll(final Collection<? extends ItemStack> m) { public boolean remove(final Object o) {
final boolean i = super.addAll(m); final boolean b = super.remove(o);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
} }
}; };
public LinkedList<ItemStack> blocksCut = new LinkedList<ItemStack>() { public LinkedList<Integer> blocksCut = new LinkedList<Integer>() {
private static final long serialVersionUID = -8204359763290995080L; private static final long serialVersionUID = -8204359763290995081L;
@Override @Override
public ItemStack set(final int index, final ItemStack key) { public boolean add(final Integer e) {
final ItemStack data = super.set(index, key); final boolean b = super.add(e);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data; return b;
} }
@Override @Override
public boolean add(final ItemStack key) { public void add(final int index, final Integer element) {
final boolean data = super.add(key); super.add(index, element);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data;
} }
@Override @Override
public boolean remove(final Object key) { public boolean addAll(final Collection<? extends Integer> c) {
final boolean i = super.remove(key); final boolean b = super.addAll(c);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
} }
@Override @Override
@ -261,40 +335,63 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public boolean addAll(final Collection<? extends ItemStack> m) { public boolean remove(final Object o) {
final boolean i = super.addAll(m); final boolean b = super.remove(o);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
} }
}; };
public LinkedList<ItemStack> itemsCrafted = new LinkedList<ItemStack>() { public LinkedList<Integer> itemsCrafted = new LinkedList<Integer>() {
private static final long serialVersionUID = 2774356294049526105L; private static final long serialVersionUID = 2774356294049526106L;
@Override @Override
public ItemStack set(final int index, final ItemStack key) { public boolean add(final Integer e) {
final ItemStack data = super.set(index, key); final boolean b = super.add(e);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data; return b;
} }
@Override @Override
public boolean add(final ItemStack key) { public void add(final int index, final Integer element) {
final boolean data = super.add(key); super.add(index, element);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data;
} }
@Override @Override
public boolean remove(final Object key) { public boolean addAll(final Collection<? extends Integer> c) {
final boolean i = super.remove(key); final boolean b = super.addAll(c);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
} }
@Override @Override
@ -305,128 +402,63 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public boolean addAll(final Collection<? extends ItemStack> m) { public boolean remove(final Object o) {
final boolean i = super.addAll(m); final boolean b = super.remove(o);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
} }
}; };
public LinkedList<ItemStack> itemsSmelted = new LinkedList<ItemStack>() { public LinkedList<Integer> itemsSmelted = new LinkedList<Integer>() {
private static final long serialVersionUID = 2774356235274526106L;
@Override
public ItemStack set(final int index, final ItemStack key) {
final ItemStack data = super.set(index, key);
if (doJournalUpdate)
quester.updateJournal();
return data;
}
@Override
public boolean add(final ItemStack key) {
final boolean data = super.add(key);
if (doJournalUpdate)
quester.updateJournal();
return data;
}
@Override
public boolean remove(final Object key) {
final boolean i = super.remove(key);
if (doJournalUpdate)
quester.updateJournal();
return i;
}
@Override
public void clear() {
super.clear();
if (doJournalUpdate)
quester.updateJournal();
}
@Override
public boolean addAll(final Collection<? extends ItemStack> m) {
final boolean i = super.addAll(m);
if (doJournalUpdate)
quester.updateJournal();
return i;
}
};
public LinkedList<ItemStack> itemsEnchanted = new LinkedList<ItemStack>() {
private static final long serialVersionUID = 416869352279205852L;
@Override
public ItemStack set(final int index, final ItemStack key) {
final ItemStack data = super.set(index, key);
if (doJournalUpdate)
quester.updateJournal();
return data;
}
@Override
public boolean add(final ItemStack key) {
final boolean data = super.add(key);
if (doJournalUpdate)
quester.updateJournal();
return data;
}
@Override
public boolean remove(final Object key) {
final boolean i = super.remove(key);
if (doJournalUpdate)
quester.updateJournal();
return i;
}
@Override
public void clear() {
super.clear();
if (doJournalUpdate)
quester.updateJournal();
}
@Override
public boolean addAll(final Collection<? extends ItemStack> m) {
final boolean i = super.addAll(m);
if (doJournalUpdate)
quester.updateJournal();
return i;
}
};
public LinkedList<ItemStack> itemsBrewed = new LinkedList<ItemStack>() {
private static final long serialVersionUID = 2774356235274526107L; private static final long serialVersionUID = 2774356235274526107L;
@Override @Override
public ItemStack set(final int index, final ItemStack key) { public boolean add(final Integer e) {
final ItemStack data = super.set(index, key); final boolean b = super.add(e);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data; return b;
} }
@Override @Override
public boolean add(final ItemStack key) { public void add(final int index, final Integer element) {
final boolean data = super.add(key); super.add(index, element);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data;
} }
@Override @Override
public boolean remove(final Object key) { public boolean addAll(final Collection<? extends Integer> c) {
final boolean i = super.remove(key); final boolean b = super.addAll(c);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
} }
@Override @Override
@ -437,40 +469,63 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public boolean addAll(final Collection<? extends ItemStack> m) { public boolean remove(final Object o) {
final boolean i = super.addAll(m); final boolean b = super.remove(o);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
} }
}; };
public LinkedList<ItemStack> itemsConsumed = new LinkedList<ItemStack>() { public LinkedList<Integer> itemsEnchanted = new LinkedList<Integer>() {
private static final long serialVersionUID = 416869352279205853L;
private static final long serialVersionUID = -5475073316902757883L;
@Override @Override
public ItemStack set(final int index, final ItemStack key) { public boolean add(final Integer e) {
final ItemStack data = super.set(index, key); final boolean b = super.add(e);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data; return b;
} }
@Override @Override
public boolean add(final ItemStack key) { public void add(final int index, final Integer element) {
final boolean data = super.add(key); super.add(index, element);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data;
} }
@Override @Override
public boolean remove(final Object key) { public boolean addAll(final Collection<? extends Integer> c) {
final boolean i = super.remove(key); final boolean b = super.addAll(c);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
} }
@Override @Override
@ -481,40 +536,63 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public boolean addAll(final Collection<? extends ItemStack> m) { public boolean remove(final Object o) {
final boolean i = super.addAll(m); final boolean b = super.remove(o);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
} }
}; };
public LinkedList<ItemStack> itemsDelivered = new LinkedList<ItemStack>() { public LinkedList<Integer> itemsBrewed = new LinkedList<Integer>() {
private static final long serialVersionUID = 2712497347022734646L; private static final long serialVersionUID = 2774356235274526108L;
@Override @Override
public ItemStack set(final int index, final ItemStack key) { public boolean add(final Integer e) {
final ItemStack data = super.set(index, key); final boolean b = super.add(e);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data; return b;
} }
@Override @Override
public boolean add(final ItemStack key) { public void add(final int index, final Integer element) {
final boolean data = super.add(key); super.add(index, element);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return data;
} }
@Override @Override
public boolean remove(final Object key) { public boolean addAll(final Collection<? extends Integer> c) {
final boolean i = super.remove(key); final boolean b = super.addAll(c);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
} }
@Override @Override
@ -525,11 +603,161 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public boolean addAll(final Collection<? extends ItemStack> m) { public boolean remove(final Object o) {
final boolean i = super.addAll(m); final boolean b = super.remove(o);
if (doJournalUpdate) if (doJournalUpdate)
quester.updateJournal(); quester.updateJournal();
return i; return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
};
public LinkedList<Integer> itemsConsumed = new LinkedList<Integer>() {
private static final long serialVersionUID = -5475073316902757884L;
@Override
public boolean add(final Integer e) {
final boolean b = super.add(e);
if (doJournalUpdate)
quester.updateJournal();
return b;
}
@Override
public void add(final int index, final Integer element) {
super.add(index, element);
if (doJournalUpdate)
quester.updateJournal();
}
@Override
public boolean addAll(final Collection<? extends Integer> c) {
final boolean b = super.addAll(c);
if (doJournalUpdate)
quester.updateJournal();
return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
}
@Override
public void clear() {
super.clear();
if (doJournalUpdate)
quester.updateJournal();
}
@Override
public boolean remove(final Object o) {
final boolean b = super.remove(o);
if (doJournalUpdate)
quester.updateJournal();
return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
};
public LinkedList<Integer> itemsDelivered = new LinkedList<Integer>() {
private static final long serialVersionUID = 2712497347022734647L;
@Override
public boolean add(final Integer e) {
final boolean b = super.add(e);
if (doJournalUpdate)
quester.updateJournal();
return b;
}
@Override
public void add(final int index, final Integer element) {
super.add(index, element);
if (doJournalUpdate)
quester.updateJournal();
}
@Override
public boolean addAll(final Collection<? extends Integer> c) {
final boolean b = super.addAll(c);
if (doJournalUpdate)
quester.updateJournal();
return b;
}
@Override
public boolean addAll(final int index, final Collection<? extends Integer> c) {
final boolean b = super.addAll(index, c);
if (doJournalUpdate)
quester.updateJournal();
return b;
}
@Override
public void clear() {
super.clear();
if (doJournalUpdate)
quester.updateJournal();
}
@Override
public boolean remove(final Object o) {
final boolean b = super.remove(o);
if (doJournalUpdate)
quester.updateJournal();
return b;
}
@Override
public Integer remove(final int index) {
final Integer s = super.remove(index);
if (doJournalUpdate)
quester.updateJournal();
return s;
}
@Override
public Integer set(final int index, final Integer element) {
final Integer s = super.set(index, element);
if (doJournalUpdate)
quester.updateJournal();
return s;
} }
}; };
@ -1092,11 +1320,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getBlocksDamaged() { public LinkedList<Integer> getBlocksDamaged() {
return blocksDamaged; return blocksDamaged;
} }
public void setBlocksDamaged(final LinkedList<ItemStack> blocksDamaged) { public void setBlocksDamaged(final LinkedList<Integer> blocksDamaged) {
this.blocksDamaged = blocksDamaged; this.blocksDamaged = blocksDamaged;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1104,11 +1332,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getBlocksPlaced() { public LinkedList<Integer> getBlocksPlaced() {
return blocksPlaced; return blocksPlaced;
} }
public void setBlocksPlaced(final LinkedList<ItemStack> blocksPlaced) { public void setBlocksPlaced(final LinkedList<Integer> blocksPlaced) {
this.blocksPlaced = blocksPlaced; this.blocksPlaced = blocksPlaced;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1116,11 +1344,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getBlocksUsed() { public LinkedList<Integer> getBlocksUsed() {
return blocksUsed; return blocksUsed;
} }
public void setBlocksUsed(final LinkedList<ItemStack> blocksUsed) { public void setBlocksUsed(final LinkedList<Integer> blocksUsed) {
this.blocksUsed = blocksUsed; this.blocksUsed = blocksUsed;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1128,11 +1356,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getBlocksCut() { public LinkedList<Integer> getBlocksCut() {
return blocksCut; return blocksCut;
} }
public void setBlocksCut(final LinkedList<ItemStack> blocksCut) { public void setBlocksCut(final LinkedList<Integer> blocksCut) {
this.blocksCut = blocksCut; this.blocksCut = blocksCut;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1140,11 +1368,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getItemsCrafted() { public LinkedList<Integer> getItemsCrafted() {
return itemsCrafted; return itemsCrafted;
} }
public void setItemsCrafted(final LinkedList<ItemStack> itemsCrafted) { public void setItemsCrafted(final LinkedList<Integer> itemsCrafted) {
this.itemsCrafted = itemsCrafted; this.itemsCrafted = itemsCrafted;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1152,11 +1380,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getItemsSmelted() { public LinkedList<Integer> getItemsSmelted() {
return itemsSmelted; return itemsSmelted;
} }
public void setItemsSmelted(final LinkedList<ItemStack> itemsSmelted) { public void setItemsSmelted(final LinkedList<Integer> itemsSmelted) {
this.itemsSmelted = itemsSmelted; this.itemsSmelted = itemsSmelted;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1164,11 +1392,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getItemsEnchanted() { public LinkedList<Integer> getItemsEnchanted() {
return itemsEnchanted; return itemsEnchanted;
} }
public void setItemsEnchanted(final LinkedList<ItemStack> itemsEnchanted) { public void setItemsEnchanted(final LinkedList<Integer> itemsEnchanted) {
this.itemsEnchanted = itemsEnchanted; this.itemsEnchanted = itemsEnchanted;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1176,11 +1404,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getItemsBrewed() { public LinkedList<Integer> getItemsBrewed() {
return itemsBrewed; return itemsBrewed;
} }
public void setItemsBrewed(final LinkedList<ItemStack> itemsBrewed) { public void setItemsBrewed(final LinkedList<Integer> itemsBrewed) {
this.itemsBrewed = itemsBrewed; this.itemsBrewed = itemsBrewed;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1188,11 +1416,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getItemsConsumed() { public LinkedList<Integer> getItemsConsumed() {
return itemsConsumed; return itemsConsumed;
} }
public void setItemsConsumed(final LinkedList<ItemStack> itemsConsumed) { public void setItemsConsumed(final LinkedList<Integer> itemsConsumed) {
this.itemsConsumed = itemsConsumed; this.itemsConsumed = itemsConsumed;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();
@ -1200,11 +1428,11 @@ public class BukkitQuestProgress implements QuestProgress {
} }
@Override @Override
public LinkedList<ItemStack> getItemsDelivered() { public LinkedList<Integer> getItemsDelivered() {
return itemsDelivered; return itemsDelivered;
} }
public void setItemsDelivered(final LinkedList<ItemStack> itemsDelivered) { public void setItemsDelivered(final LinkedList<Integer> itemsDelivered) {
this.itemsDelivered = itemsDelivered; this.itemsDelivered = itemsDelivered;
if (doJournalUpdate) { if (doJournalUpdate) {
quester.updateJournal(); quester.updateJournal();

File diff suppressed because it is too large Load Diff

View File

@ -14,15 +14,14 @@ import me.pikamug.quests.BukkitQuestsPlugin;
import me.pikamug.quests.player.BukkitQuestProgress; import me.pikamug.quests.player.BukkitQuestProgress;
import me.pikamug.quests.player.BukkitQuester; import me.pikamug.quests.player.BukkitQuester;
import me.pikamug.quests.player.Quester; import me.pikamug.quests.player.Quester;
import me.pikamug.quests.quests.components.BukkitStage;
import me.pikamug.quests.quests.Quest; import me.pikamug.quests.quests.Quest;
import me.pikamug.quests.quests.components.BukkitStage;
import me.pikamug.quests.storage.implementation.QuesterStorageImpl; import me.pikamug.quests.storage.implementation.QuesterStorageImpl;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.inventory.ItemStack;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -60,7 +59,6 @@ public class BukkitQuesterYamlStorage implements QuesterStorageImpl {
public void close() { public void close() {
} }
@SuppressWarnings("deprecation")
@Override @Override
public Quester loadQuester(final UUID uniqueId) throws IOException, InvalidConfigurationException { public Quester loadQuester(final UUID uniqueId) throws IOException, InvalidConfigurationException {
final FileConfiguration data = new YamlConfiguration(); final FileConfiguration data = new YamlConfiguration();
@ -182,134 +180,62 @@ public class BukkitQuesterYamlStorage implements QuesterStorageImpl {
} }
if (questSec.contains("blocks-damaged-amounts")) { if (questSec.contains("blocks-damaged-amounts")) {
final List<Integer> damagedAmounts = questSec.getIntegerList("blocks-damaged-amounts"); final List<Integer> damagedAmounts = questSec.getIntegerList("blocks-damaged-amounts");
int index = 0; for (int i = 0; i < damagedAmounts.size(); i++) {
for (final int amt : damagedAmounts) { bukkitQuestData.blocksDamaged.set(i, damagedAmounts.get(i));
final ItemStack is = stage.getBlocksToDamage().get(index);
final ItemStack temp = is.clone();
temp.setAmount(amt);
if (bukkitQuestData.getBlocksDamaged().size() > 0) {
bukkitQuestData.blocksDamaged.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("blocks-placed-amounts")) { if (questSec.contains("blocks-placed-amounts")) {
final List<Integer> placedAmounts = questSec.getIntegerList("blocks-placed-amounts"); final List<Integer> placedAmounts = questSec.getIntegerList("blocks-placed-amounts");
int index = 0; for (int i = 0; i < placedAmounts.size(); i++) {
for (final int amt : placedAmounts) { bukkitQuestData.blocksPlaced.set(i, placedAmounts.get(i));
final ItemStack is = stage.getBlocksToPlace().get(index);
final ItemStack temp = is.clone();
temp.setAmount(amt);
if (bukkitQuestData.getBlocksPlaced().size() > 0) {
bukkitQuestData.blocksPlaced.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("blocks-used-amounts")) { if (questSec.contains("blocks-used-amounts")) {
final List<Integer> usedAmounts = questSec.getIntegerList("blocks-used-amounts"); final List<Integer> usedAmounts = questSec.getIntegerList("blocks-used-amounts");
int index = 0; for (int i = 0; i < usedAmounts.size(); i++) {
for (final int amt : usedAmounts) { bukkitQuestData.blocksUsed.set(i, usedAmounts.get(i));
final ItemStack is = stage.getBlocksToUse().get(index);
final ItemStack temp = is.clone();
temp.setAmount(amt);
if (bukkitQuestData.getBlocksUsed().size() > 0) {
bukkitQuestData.blocksUsed.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("blocks-cut-amounts")) { if (questSec.contains("blocks-cut-amounts")) {
final List<Integer> cutAmounts = questSec.getIntegerList("blocks-cut-amounts"); final List<Integer> cutAmounts = questSec.getIntegerList("blocks-cut-amounts");
int index = 0; for (int i = 0; i < cutAmounts.size(); i++) {
for (final int amt : cutAmounts) { bukkitQuestData.blocksCut.set(i, cutAmounts.get(i));
final ItemStack is = stage.getBlocksToCut().get(index);
final ItemStack temp = is.clone();
temp.setAmount(amt);
if (bukkitQuestData.getBlocksCut().size() > 0) {
bukkitQuestData.blocksCut.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("item-craft-amounts")) { if (questSec.contains("item-craft-amounts")) {
final List<Integer> craftAmounts = questSec.getIntegerList("item-craft-amounts"); final List<Integer> craftAmounts = questSec.getIntegerList("item-craft-amounts");
int index = 0; for (int i = 0; i < craftAmounts.size(); i++) {
for (final int amt : craftAmounts) { bukkitQuestData.itemsCrafted.set(i, craftAmounts.get(i));
final ItemStack is = stage.getItemsToCraft().get(index);
final ItemStack temp = new ItemStack(is.clone());
temp.setAmount(amt);
if (bukkitQuestData.getItemsCrafted().size() > 0) {
bukkitQuestData.itemsCrafted.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("item-smelt-amounts")) { if (questSec.contains("item-smelt-amounts")) {
final List<Integer> smeltAmounts = questSec.getIntegerList("item-smelt-amounts"); final List<Integer> smeltAmounts = questSec.getIntegerList("item-smelt-amounts");
int index = 0; for (int i = 0; i < smeltAmounts.size(); i++) {
for (final int amt : smeltAmounts) { bukkitQuestData.itemsSmelted.set(i, smeltAmounts.get(i));
final ItemStack is = stage.getItemsToSmelt().get(index);
final ItemStack temp = new ItemStack(is.clone());
temp.setAmount(amt);
if (bukkitQuestData.getItemsSmelted().size() > 0) {
bukkitQuestData.itemsSmelted.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("item-enchant-amounts")) { if (questSec.contains("item-enchant-amounts")) {
final List<Integer> enchantAmounts = questSec.getIntegerList("item-enchant-amounts"); final List<Integer> enchantAmounts = questSec.getIntegerList("item-enchant-amounts");
int index = 0; for (int i = 0; i < enchantAmounts.size(); i++) {
for (final int amt : enchantAmounts) { bukkitQuestData.itemsEnchanted.set(i, enchantAmounts.get(i));
final ItemStack is = stage.getItemsToEnchant().get(index);
final ItemStack temp = new ItemStack(is.clone());
temp.setAmount(amt);
if (bukkitQuestData.getItemsEnchanted().size() > 0) {
bukkitQuestData.itemsEnchanted.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("item-brew-amounts")) { if (questSec.contains("item-brew-amounts")) {
final List<Integer> brewAmounts = questSec.getIntegerList("item-brew-amounts"); final List<Integer> brewAmounts = questSec.getIntegerList("item-brew-amounts");
int index = 0; for (int i = 0; i < brewAmounts.size(); i++) {
for (final int amt : brewAmounts) { bukkitQuestData.itemsBrewed.set(i, brewAmounts.get(i));
final ItemStack is = stage.getItemsToBrew().get(index);
final ItemStack temp = new ItemStack(is.clone());
temp.setAmount(amt);
if (bukkitQuestData.getItemsBrewed().size() > 0) {
bukkitQuestData.itemsBrewed.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("item-consume-amounts")) { if (questSec.contains("item-consume-amounts")) {
final List<Integer> consumeAmounts = questSec.getIntegerList("item-consume-amounts"); final List<Integer> consumeAmounts = questSec.getIntegerList("item-consume-amounts");
int index = 0; for (int i = 0; i < consumeAmounts.size(); i++) {
for (final int amt : consumeAmounts) { bukkitQuestData.itemsConsumed.set(i, consumeAmounts.get(i));
final ItemStack is = stage.getItemsToConsume().get(index);
final ItemStack temp = new ItemStack(is.clone());
temp.setAmount(amt);
if (bukkitQuestData.getItemsConsumed().size() > 0) {
bukkitQuestData.itemsConsumed.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("item-delivery-amounts")) { if (questSec.contains("item-delivery-amounts")) {
final List<Integer> deliveryAmounts = questSec.getIntegerList("item-delivery-amounts"); final List<Integer> deliveryAmounts = questSec.getIntegerList("item-delivery-amounts");
int index = 0; for (int i = 0; i < deliveryAmounts.size(); i++) {
for (final int amt : deliveryAmounts) { bukkitQuestData.itemsDelivered.set(i, deliveryAmounts.get(i));
final ItemStack is = stage.getItemsToDeliver().get(index);
final ItemStack temp = new ItemStack(is.getType(), amt, is.getDurability());
temp.addUnsafeEnchantments(is.getEnchantments());
temp.setItemMeta(is.getItemMeta());
if (bukkitQuestData.getItemsDelivered().size() > 0) {
bukkitQuestData.itemsDelivered.set(index, temp);
}
index++;
} }
} }
if (questSec.contains("has-talked-to")) { if (questSec.contains("has-talked-to")) {
@ -320,7 +246,7 @@ public class BukkitQuesterYamlStorage implements QuesterStorageImpl {
final List<Integer> npcAmounts = questSec.getIntegerList("npc-killed-amounts"); final List<Integer> npcAmounts = questSec.getIntegerList("npc-killed-amounts");
int index = 0; int index = 0;
for (final int amt : npcAmounts) { for (final int amt : npcAmounts) {
if (bukkitQuestData.getNpcsNumKilled().size() > 0) { if (!bukkitQuestData.getNpcsNumKilled().isEmpty()) {
bukkitQuestData.npcsNumKilled.set(index, amt); bukkitQuestData.npcsNumKilled.set(index, amt);
} }
index++; index++;
@ -330,7 +256,7 @@ public class BukkitQuesterYamlStorage implements QuesterStorageImpl {
final List<Integer> npcAmounts = questSec.getIntegerList("citizen-amounts-killed"); final List<Integer> npcAmounts = questSec.getIntegerList("citizen-amounts-killed");
int index = 0; int index = 0;
for (final int amt : npcAmounts) { for (final int amt : npcAmounts) {
if (bukkitQuestData.getNpcsNumKilled().size() > 0) { if (!bukkitQuestData.getNpcsNumKilled().isEmpty()) {
bukkitQuestData.npcsNumKilled.set(index, amt); bukkitQuestData.npcsNumKilled.set(index, amt);
} }
index++; index++;
@ -349,7 +275,7 @@ public class BukkitQuesterYamlStorage implements QuesterStorageImpl {
final List<Integer> mobAmounts = questSec.getIntegerList("mobs-killed-amounts"); final List<Integer> mobAmounts = questSec.getIntegerList("mobs-killed-amounts");
int index = 0; int index = 0;
for (final int amt : mobAmounts) { for (final int amt : mobAmounts) {
if (quester.getQuestDataOrDefault(quest).getMobNumKilled().size() > 0) { if (!quester.getQuestDataOrDefault(quest).getMobNumKilled().isEmpty()) {
bukkitQuestData.mobNumKilled.set(index, amt); bukkitQuestData.mobNumKilled.set(index, amt);
} }
index++; index++;

View File

@ -361,16 +361,16 @@ public class BukkitQuesterSqlStorage implements QuesterStorageImpl {
ps.setString(1, uniqueId.toString()); ps.setString(1, uniqueId.toString());
ps.setString(2, entry.getKey().getId()); ps.setString(2, entry.getKey().getId());
ps.setString(3, serializeProgress(entry.getValue().getBlocksBroken())); ps.setString(3, serializeProgress(entry.getValue().getBlocksBroken()));
ps.setString(4, serializeItemStackProgress(entry.getValue().getBlocksDamaged())); ps.setString(4, serializeProgress(entry.getValue().getBlocksDamaged()));
ps.setString(5, serializeItemStackProgress(entry.getValue().getBlocksPlaced())); ps.setString(5, serializeProgress(entry.getValue().getBlocksPlaced()));
ps.setString(6, serializeItemStackProgress(entry.getValue().getBlocksUsed())); ps.setString(6, serializeProgress(entry.getValue().getBlocksUsed()));
ps.setString(7, serializeItemStackProgress(entry.getValue().getBlocksCut())); ps.setString(7, serializeProgress(entry.getValue().getBlocksCut()));
ps.setString(8, serializeItemStackProgress(entry.getValue().getItemsCrafted())); ps.setString(8, serializeProgress(entry.getValue().getItemsCrafted()));
ps.setString(9, serializeItemStackProgress(entry.getValue().getItemsSmelted())); ps.setString(9, serializeProgress(entry.getValue().getItemsSmelted()));
ps.setString(10, serializeItemStackProgress(entry.getValue().getItemsEnchanted())); ps.setString(10, serializeProgress(entry.getValue().getItemsEnchanted()));
ps.setString(11, serializeItemStackProgress(entry.getValue().getItemsBrewed())); ps.setString(11, serializeProgress(entry.getValue().getItemsBrewed()));
ps.setString(12, serializeItemStackProgress(entry.getValue().getItemsConsumed())); ps.setString(12, serializeProgress(entry.getValue().getItemsConsumed()));
ps.setString(13, serializeItemStackProgress(entry.getValue().getItemsDelivered())); ps.setString(13, serializeProgress(entry.getValue().getItemsDelivered()));
ps.setString(14, serializeProgress(entry.getValue().getNpcsInteracted())); ps.setString(14, serializeProgress(entry.getValue().getNpcsInteracted()));
ps.setString(15, serializeProgress(entry.getValue().getNpcsNumKilled())); ps.setString(15, serializeProgress(entry.getValue().getNpcsNumKilled()));
ps.setString(16, serializeProgress(entry.getValue().getMobNumKilled())); ps.setString(16, serializeProgress(entry.getValue().getMobNumKilled()));
@ -463,26 +463,16 @@ public class BukkitQuesterSqlStorage implements QuesterStorageImpl {
if (quest != null && quester.getCurrentStage(quest) != null) { if (quest != null && quester.getCurrentStage(quest) != null) {
final BukkitStage stage = (BukkitStage) quester.getCurrentStage(quest); final BukkitStage stage = (BukkitStage) quester.getCurrentStage(quest);
data.blocksBroken.addAll(deserializeIntProgress(rs.getString("blocks_broken"))); data.blocksBroken.addAll(deserializeIntProgress(rs.getString("blocks_broken")));
data.blocksDamaged.addAll(deserializeItemStackProgress(rs.getString("blocks_damaged"), data.blocksDamaged.addAll(deserializeIntProgress(rs.getString("blocks_damaged")));
stage.getBlocksToDamage())); data.blocksPlaced.addAll(deserializeIntProgress(rs.getString("blocks_placed")));
data.blocksPlaced.addAll(deserializeItemStackProgress(rs.getString("blocks_placed"), data.blocksUsed.addAll(deserializeIntProgress(rs.getString("blocks_used")));
stage.getBlocksToPlace())); data.blocksCut.addAll(deserializeIntProgress(rs.getString("blocks_cut")));
data.blocksUsed.addAll(deserializeItemStackProgress(rs.getString("blocks_used"), data.itemsCrafted.addAll(deserializeIntProgress(rs.getString("items_crafted")));
stage.getBlocksToUse())); data.itemsSmelted.addAll(deserializeIntProgress(rs.getString("items_smelted")));
data.blocksCut.addAll(deserializeItemStackProgress(rs.getString("blocks_cut"), data.itemsEnchanted.addAll(deserializeIntProgress(rs.getString("items_enchanted")));
stage.getBlocksToCut())); data.itemsBrewed.addAll(deserializeIntProgress(rs.getString("items_brewed")));
data.itemsCrafted.addAll(deserializeItemStackProgress(rs.getString("items_crafted"), data.itemsConsumed.addAll(deserializeIntProgress(rs.getString("items_consumed")));
stage.getItemsToCraft())); data.itemsDelivered.addAll(deserializeIntProgress(rs.getString("items_delivered")));
data.itemsSmelted.addAll(deserializeItemStackProgress(rs.getString("items_smelted"),
stage.getItemsToSmelt()));
data.itemsEnchanted.addAll(deserializeItemStackProgress(rs.getString("items_enchanted"),
stage.getItemsToEnchant()));
data.itemsBrewed.addAll(deserializeItemStackProgress(rs.getString("items_brewed"),
stage.getItemsToBrew()));
data.itemsConsumed.addAll(deserializeItemStackProgress(rs.getString("items_consumed"),
stage.getItemsToConsume()));
data.itemsDelivered.addAll(deserializeItemStackProgress(rs.getString("items_delivered"),
stage.getItemsToDeliver()));
data.npcsInteracted.addAll(deserializeBooleanProgress(rs.getString("npcs_interacted"))); data.npcsInteracted.addAll(deserializeBooleanProgress(rs.getString("npcs_interacted")));
data.npcsNumKilled.addAll(deserializeIntProgress(rs.getString("npcs_killed"))); data.npcsNumKilled.addAll(deserializeIntProgress(rs.getString("npcs_killed")));
data.mobNumKilled.addAll(deserializeIntProgress(rs.getString("mobs_killed"))); data.mobNumKilled.addAll(deserializeIntProgress(rs.getString("mobs_killed")));