mirror of
https://github.com/PikaMug/Quests.git
synced 2024-11-22 18:45:27 +01:00
Fix delivering same item to diff NPCs in a single stage, fixes #85
This commit is contained in:
parent
bf3bcf0588
commit
c51fd3394f
@ -495,10 +495,12 @@ public class Quester {
|
|||||||
finishedObjectives.add(ChatColor.GRAY + Lang.get("killPlayer") + ChatColor.GRAY + ": " + getQuestData(quest).getPlayersKilled() + "/" + getCurrentStage(quest).playersToKill);
|
finishedObjectives.add(ChatColor.GRAY + Lang.get("killPlayer") + ChatColor.GRAY + ": " + getQuestData(quest).getPlayersKilled() + "/" + getCurrentStage(quest).playersToKill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
int index2 = 0;
|
||||||
for (ItemStack is : getCurrentStage(quest).itemsToDeliver) {
|
for (ItemStack is : getCurrentStage(quest).itemsToDeliver) {
|
||||||
int delivered = getQuestData(quest).itemsDelivered.get(is);
|
int delivered = getQuestData(quest).itemsDelivered.get(is);
|
||||||
int amt = is.getAmount();
|
int amt = is.getAmount();
|
||||||
Integer npc = getCurrentStage(quest).itemDeliveryTargets.get(getCurrentStage(quest).itemsToDeliver.indexOf(is));
|
Integer npc = getCurrentStage(quest).itemDeliveryTargets.get(index2);
|
||||||
|
index2++;
|
||||||
if (delivered < amt) {
|
if (delivered < amt) {
|
||||||
String obj = Lang.get("deliver");
|
String obj = Lang.get("deliver");
|
||||||
obj = obj.replaceAll("<item>", ItemUtil.getName(is));
|
obj = obj.replaceAll("<item>", ItemUtil.getName(is));
|
||||||
@ -2203,18 +2205,18 @@ public class Quester {
|
|||||||
|
|
||||||
public static ConfigurationSection getLegacyQuestData(FileConfiguration questSec, String questName) {
|
public static ConfigurationSection getLegacyQuestData(FileConfiguration questSec, String questName) {
|
||||||
ConfigurationSection newData = questSec.createSection("questData");
|
ConfigurationSection newData = questSec.createSection("questData");
|
||||||
if (questSec.contains("blocks-damaged-names")) {
|
|
||||||
List<String> names = questSec.getStringList("blocks-damaged-names");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("blocks-damaged-amounts");
|
|
||||||
newData.set(questName + ".blocks-damaged-names", names);
|
|
||||||
newData.set(questName + ".blocks-damaged-amounts", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("blocks-broken-names")) {
|
if (questSec.contains("blocks-broken-names")) {
|
||||||
List<String> names = questSec.getStringList("blocks-broken-names");
|
List<String> names = questSec.getStringList("blocks-broken-names");
|
||||||
List<Integer> amounts = questSec.getIntegerList("blocks-broken-amounts");
|
List<Integer> amounts = questSec.getIntegerList("blocks-broken-amounts");
|
||||||
newData.set(questName + ".blocks-broken-names", names);
|
newData.set(questName + ".blocks-broken-names", names);
|
||||||
newData.set(questName + ".blocks-broken-amounts", amounts);
|
newData.set(questName + ".blocks-broken-amounts", amounts);
|
||||||
}
|
}
|
||||||
|
if (questSec.contains("blocks-damaged-names")) {
|
||||||
|
List<String> names = questSec.getStringList("blocks-damaged-names");
|
||||||
|
List<Integer> amounts = questSec.getIntegerList("blocks-damaged-amounts");
|
||||||
|
newData.set(questName + ".blocks-damaged-names", names);
|
||||||
|
newData.set(questName + ".blocks-damaged-amounts", amounts);
|
||||||
|
}
|
||||||
if (questSec.contains("blocks-placed-names")) {
|
if (questSec.contains("blocks-placed-names")) {
|
||||||
List<String> names = questSec.getStringList("blocks-placed-names");
|
List<String> names = questSec.getStringList("blocks-placed-names");
|
||||||
List<Integer> amounts = questSec.getIntegerList("blocks-placed-amounts");
|
List<Integer> amounts = questSec.getIntegerList("blocks-placed-amounts");
|
||||||
|
@ -2780,10 +2780,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
itemsToDeliver = config.getStringList("quests." + questName + ".stages.ordered." + s2 + ".items-to-deliver");
|
itemsToDeliver = config.getStringList("quests." + questName + ".stages.ordered." + s2 + ".items-to-deliver");
|
||||||
itemDeliveryTargetIds = config.getIntegerList("quests." + questName + ".stages.ordered." + s2 + ".npc-delivery-ids");
|
itemDeliveryTargetIds = config.getIntegerList("quests." + questName + ".stages.ordered." + s2 + ".npc-delivery-ids");
|
||||||
deliveryMessages.addAll(config.getStringList("quests." + questName + ".stages.ordered." + s2 + ".delivery-messages"));
|
deliveryMessages.addAll(config.getStringList("quests." + questName + ".stages.ordered." + s2 + ".delivery-messages"));
|
||||||
|
int index = 0;
|
||||||
for (String item : itemsToDeliver) {
|
for (String item : itemsToDeliver) {
|
||||||
ItemStack is = ItemUtil.readItemStack("" + item);
|
ItemStack is = ItemUtil.readItemStack("" + item);
|
||||||
|
int npcId = itemDeliveryTargetIds.get(index);
|
||||||
|
index++;
|
||||||
if (is != null) {
|
if (is != null) {
|
||||||
int npcId = itemDeliveryTargetIds.get(itemsToDeliver.indexOf(item));
|
|
||||||
NPC npc = CitizensAPI.getNPCRegistry().getById(npcId);
|
NPC npc = CitizensAPI.getNPCRegistry().getById(npcId);
|
||||||
if (npc != null) {
|
if (npc != null) {
|
||||||
oStage.itemsToDeliver.add(is);
|
oStage.itemsToDeliver.add(is);
|
||||||
|
Loading…
Reference in New Issue
Block a user