mirror of
https://github.com/PikaMug/Quests.git
synced 2024-11-12 13:43:57 +01:00
Give reason when delivery items do not match
This commit is contained in:
parent
bbfbc6a98b
commit
90511df08f
@ -62,8 +62,10 @@ public class NpcListener implements Listener {
|
|||||||
if (quester.containsObjective(quest, "deliverItem") && player.getItemInHand() != null) {
|
if (quester.containsObjective(quest, "deliverItem") && player.getItemInHand() != null) {
|
||||||
ItemStack hand = player.getItemInHand();
|
ItemStack hand = player.getItemInHand();
|
||||||
ItemStack found = null;
|
ItemStack found = null;
|
||||||
|
int reasonCode = 0;
|
||||||
for (ItemStack is : quester.getCurrentStage(quest).itemsToDeliver) {
|
for (ItemStack is : quester.getCurrentStage(quest).itemsToDeliver) {
|
||||||
if (ItemUtil.compareItems(is, hand, true) == 0) {
|
reasonCode = ItemUtil.compareItems(is, hand, true);
|
||||||
|
if (reasonCode == 0) {
|
||||||
found = is;
|
found = is;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -90,7 +92,30 @@ public class NpcListener implements Listener {
|
|||||||
text += (hand.getItemMeta().hasDisplayName() ? ")" : "");
|
text += (hand.getItemMeta().hasDisplayName() ? ")" : "");
|
||||||
}
|
}
|
||||||
text += " x " + ChatColor.DARK_AQUA + hand.getAmount() + ChatColor.GRAY;
|
text += " x " + ChatColor.DARK_AQUA + hand.getAmount() + ChatColor.GRAY;
|
||||||
plugin.query.sendMessage(player, Lang.get(player, "questInvalidDeliveryItem").replace("<item>", text), hand.getType(), hand.getDurability());
|
plugin.query.sendMessage(player, Lang.get(player, "difference").replace("<item>", text), hand.getType(), hand.getDurability());
|
||||||
|
switch(reasonCode) {
|
||||||
|
case 1:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "one item is null"));
|
||||||
|
case 0:
|
||||||
|
// Should never happen
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "ERROR"));
|
||||||
|
case -1:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "name"));
|
||||||
|
case -2:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "amount"));
|
||||||
|
case -3:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "durability"));
|
||||||
|
case -4:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "display name or lore"));
|
||||||
|
case -5:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "enchantments"));
|
||||||
|
case -6:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "stored enchants"));
|
||||||
|
case -7:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "item flags"));
|
||||||
|
default:
|
||||||
|
player.sendMessage(Lang.get(player, "difference").replace("<data>", "unknown"));
|
||||||
|
}
|
||||||
if (hand.hasItemMeta()) {
|
if (hand.hasItemMeta()) {
|
||||||
if (hand.getType().equals(Material.ENCHANTED_BOOK)) {
|
if (hand.getType().equals(Material.ENCHANTED_BOOK)) {
|
||||||
EnchantmentStorageMeta esmeta = (EnchantmentStorageMeta) hand.getItemMeta();
|
EnchantmentStorageMeta esmeta = (EnchantmentStorageMeta) hand.getItemMeta();
|
||||||
|
@ -50,6 +50,7 @@ public class ItemUtil {
|
|||||||
* -4 if stack display name/lore is unequal<br>
|
* -4 if stack display name/lore is unequal<br>
|
||||||
* -5 if stack enchantments are unequal<br>
|
* -5 if stack enchantments are unequal<br>
|
||||||
* -6 if stack stored enchants are unequal
|
* -6 if stack stored enchants are unequal
|
||||||
|
* -7 if stack item flags are unequal
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public static int compareItems(ItemStack one, ItemStack two, boolean ignoreAmount) {
|
public static int compareItems(ItemStack one, ItemStack two, boolean ignoreAmount) {
|
||||||
@ -83,7 +84,7 @@ public class ItemUtil {
|
|||||||
}
|
}
|
||||||
for (ItemFlag flag : ItemFlag.values()) {
|
for (ItemFlag flag : ItemFlag.values()) {
|
||||||
if (one.getItemMeta().hasItemFlag(flag) == false && two.getItemMeta().hasItemFlag(flag)) {
|
if (one.getItemMeta().hasItemFlag(flag) == false && two.getItemMeta().hasItemFlag(flag)) {
|
||||||
return -4;
|
return -7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -185,7 +185,7 @@ stageEditorCustomPrompt: "Enter the name of a custom objective to add, <clear>,
|
|||||||
stageEditorCustomAlreadyAdded: "That custom objective has already been added!"
|
stageEditorCustomAlreadyAdded: "That custom objective has already been added!"
|
||||||
stageEditorCustomCleared: "Custom objectives cleared."
|
stageEditorCustomCleared: "Custom objectives cleared."
|
||||||
stageEditorCustomDataPrompt: "Enter value for <data>:"
|
stageEditorCustomDataPrompt: "Enter value for <data>:"
|
||||||
stageEditorEnterBlockNames: "Enter block names (or IDs), <space>, <cancel>"
|
stageEditorEnterBlockNames: "Enter block names, <space>, <cancel>"
|
||||||
stageEditorBreakBlocksPrompt: "Enter break amounts (numbers), <space>, <cancel>"
|
stageEditorBreakBlocksPrompt: "Enter break amounts (numbers), <space>, <cancel>"
|
||||||
stageEditorDamageBlocksPrompt: "Enter damage amounts (numbers), <space>, <cancel>"
|
stageEditorDamageBlocksPrompt: "Enter damage amounts (numbers), <space>, <cancel>"
|
||||||
stageEditorPlaceBlocksPrompt: "Enter place amounts (numbers), <space>, <cancel>"
|
stageEditorPlaceBlocksPrompt: "Enter place amounts (numbers), <space>, <cancel>"
|
||||||
@ -540,7 +540,7 @@ itemCreateLoadHand: "Load item in hand"
|
|||||||
itemCreateSetName: "Set name"
|
itemCreateSetName: "Set name"
|
||||||
itemCreateSetAmount: "Set amount"
|
itemCreateSetAmount: "Set amount"
|
||||||
itemCreateSetDurab: "Set durability"
|
itemCreateSetDurab: "Set durability"
|
||||||
itemCreateSetEnchs: "Add/clear enchantments"
|
itemCreateSetEnchs: "Set enchantments"
|
||||||
itemCreateSetDisplay: "Set display name"
|
itemCreateSetDisplay: "Set display name"
|
||||||
itemCreateSetLore: "Set lore"
|
itemCreateSetLore: "Set lore"
|
||||||
itemCreateSetClearMeta: "Clear extra data"
|
itemCreateSetClearMeta: "Clear extra data"
|
||||||
@ -855,3 +855,4 @@ timerStart: "%green%You have%red% <time> seconds%green% to finish this quest/sta
|
|||||||
questErrorReadingFile: "Error reading Quests file."
|
questErrorReadingFile: "Error reading Quests file."
|
||||||
questSaveError: "An error occurred while saving."
|
questSaveError: "An error occurred while saving."
|
||||||
noPermission: "You do not have permission to do that."
|
noPermission: "You do not have permission to do that."
|
||||||
|
difference: "The difference is '<data>'."
|
Loading…
Reference in New Issue
Block a user