Finished Crafting Quest Items

This commit is contained in:
Blackvein 2012-11-07 15:26:58 -08:00
parent 5803acdba9
commit 51e545e26a
3 changed files with 20 additions and 16 deletions

View File

@ -274,9 +274,10 @@ public class PlayerListener implements Listener {
}else if(quester.hasObjective("craftItem")){ }else if(quester.hasObjective("craftItem")){
final int amntBefore = Quests.countInv(evt.getInventory(), evt.getCurrentItem().getType()); final int amntBefore = Quests.countInv(evt.getInventory(), evt.getCurrentItem().getType(), evt.getCurrentItem().getAmount());
System.out.println("Amount before: " + amntBefore);
final Material mat = evt.getCurrentItem().getType(); final Material mat = evt.getCurrentItem().getType();
final Inventory inv = evt.getInventory(); final Inventory inv = evt.getWhoClicked().getInventory();
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){ plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
@Override @Override
@ -284,7 +285,8 @@ public class PlayerListener implements Listener {
if(evt.isCancelled() == false){ if(evt.isCancelled() == false){
int amntAfter = Quests.countInv(inv, mat); int amntAfter = Quests.countInv(inv, mat, 0);
System.out.println("Amount after: " + amntAfter);
quester.craftItem(new ItemStack(mat, amntAfter - amntBefore)); quester.craftItem(new ItemStack(mat, amntAfter - amntBefore));
} }
@ -392,7 +394,7 @@ public class PlayerListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onInventoryClick(InventoryClickEvent evt) { public void onInventoryClick(InventoryClickEvent evt) {
System.out.println("Click fired.");
Player player = null; Player player = null;
if (evt.getWhoClicked() instanceof Player) { if (evt.getWhoClicked() instanceof Player) {
player = (Player) evt.getWhoClicked(); player = (Player) evt.getWhoClicked();
@ -516,16 +518,15 @@ public class PlayerListener implements Listener {
} else { } else {
if (evt.getCurrentItem() != null) { if (evt.getCurrentItem() != null) {
Quester quester = plugin.getQuester(evt.getWhoClicked().getName()); Quester quester = plugin.getQuester(evt.getWhoClicked().getName());
Material mat = evt.getCurrentItem().getType(); Material mat = evt.getCurrentItem().getType();
if (quester.currentQuest != null) { if (quester.currentQuest != null) {
if (quester.currentQuest.questItems.containsKey(mat)) { if (quester.currentQuest.questItems.containsKey(mat)) {
System.out.println(evt.getInventory().getType());
if(evt.getInventory().getType().equals(InventoryType.CRAFTING) && evt.getRawSlot() == 0) if((evt.getInventory().getType().equals(InventoryType.WORKBENCH) && evt.getRawSlot() == 0) || (evt.getInventory().getType().equals(InventoryType.CRAFTING) && evt.getRawSlot() == 0)){
return; return;
}
List<Integer> changedSlots = Quester.getChangedSlots(evt.getInventory(), evt.getCurrentItem()); List<Integer> changedSlots = Quester.getChangedSlots(evt.getInventory(), evt.getCurrentItem());
boolean can = true; boolean can = true;

View File

@ -444,18 +444,21 @@ public class Quester {
for (Entry e : currentStage.itemsToCraft.entrySet()) { for (Entry e : currentStage.itemsToCraft.entrySet()) {
System.out.println("Entry."); Entry entry = null;
for(Object o : ((Map) e.getKey()).entrySet())
entry = (Entry) o;
for (Entry e2 : itemsCrafted.entrySet()) { for (Entry e2 : itemsCrafted.entrySet()) {
if (e.getKey().equals(e2.getKey())) { if (entry.getKey().equals(e2.getKey())) {
if ((Integer) e2.getValue() < (Integer) e.getValue()) { if ((Integer) e2.getValue() < (Integer) entry.getValue()) {
unfinishedObjectives.add(ChatColor.GREEN + "Craft " + prettyItemString(((Material) e.getKey()).getId()) + ": " + ((Integer) e2.getValue()) + "/" + ((Integer) e.getValue())); unfinishedObjectives.add(ChatColor.GREEN + "Craft " + prettyItemString(((Material) entry.getKey()).getId()) + ": " + ((Integer) e2.getValue()) + "/" + ((Integer) entry.getValue()));
} else { } else {
finishedObjectives.add(ChatColor.GRAY + "Craft " + prettyItemString(((Material) e.getKey()).getId()) + ": " + ((Integer) e2.getValue()) + "/" + ((Integer) e.getValue())); finishedObjectives.add(ChatColor.GRAY + "Craft " + prettyItemString(((Material) entry.getKey()).getId()) + ": " + ((Integer) e2.getValue()) + "/" + ((Integer) entry.getValue()));
} }
@ -976,7 +979,7 @@ public class Quester {
} }
if (itemsCrafted.get(i.getType()).equals((Integer) m.get(i.getType()))) { if (itemsCrafted.get(i.getType()).equals((Integer) m.get(i.getType()))) {
finishObjective("craftItem", null, i, null, null, null, null, null, null, 0); finishObjective("craftItem", i.getType(), null, null, null, null, null, null, null, 0);
} }
} }

View File

@ -3802,7 +3802,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
return null; return null;
} }
public static int countInv(Inventory inv, Material m){ public static int countInv(Inventory inv, Material m, int subtract){
int count = 0; int count = 0;
@ -3815,7 +3815,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
} }
return count; return count - subtract;
} }
} }