mirror of
https://github.com/PikaMug/Quests.git
synced 2024-09-26 22:22:37 +02:00
Rework code for displaying objectives, part 2 for #575
This commit is contained in:
parent
40ac77261e
commit
b482e9a0bf
@ -1895,63 +1895,102 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
String serial = sbegin.substring(0, sbegin.indexOf(ChatColor.GREEN.toString()));
|
String serial = sbegin.substring(0, sbegin.indexOf(ChatColor.GREEN.toString()));
|
||||||
|
|
||||||
Stage stage = quester.getCurrentStage(quest);
|
Stage stage = quester.getCurrentStage(quest);
|
||||||
|
System.out.println("obj= " + obj);
|
||||||
if (obj.contains(Lang.get(quester.getPlayer(), "break"))) {
|
if (obj.contains(Lang.get(quester.getPlayer(), "break"))) {
|
||||||
for (ItemStack is : stage.blocksToBreak) {
|
for (ItemStack is : stage.blocksToBreak) {
|
||||||
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
if (Material.matchMaterial(serial) != null) {
|
||||||
|
if (Material.matchMaterial(serial).equals(is.getType())) {
|
||||||
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if (obj.contains(Lang.get(quester.getPlayer(), "damage"))) {
|
||||||
if (obj.contains(Lang.get(quester.getPlayer(), "damage"))) {
|
|
||||||
for (ItemStack is : stage.blocksToDamage) {
|
for (ItemStack is : stage.blocksToDamage) {
|
||||||
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
if (Material.matchMaterial(serial) != null) {
|
||||||
|
if (Material.matchMaterial(serial).equals(is.getType())) {
|
||||||
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if (obj.contains(Lang.get(quester.getPlayer(), "place"))) {
|
||||||
if (obj.contains(Lang.get(quester.getPlayer(), "place"))) {
|
|
||||||
for (ItemStack is : stage.blocksToPlace) {
|
for (ItemStack is : stage.blocksToPlace) {
|
||||||
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
if (Material.matchMaterial(serial) != null) {
|
||||||
|
if (Material.matchMaterial(serial).equals(is.getType())) {
|
||||||
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if (obj.contains(Lang.get(quester.getPlayer(), "use"))) {
|
||||||
if (obj.contains(Lang.get(quester.getPlayer(), "use"))) {
|
|
||||||
for (ItemStack is : stage.blocksToUse) {
|
for (ItemStack is : stage.blocksToUse) {
|
||||||
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
if (Material.matchMaterial(serial) != null) {
|
||||||
|
if (Material.matchMaterial(serial).equals(is.getType())) {
|
||||||
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if (obj.contains(Lang.get(quester.getPlayer(), "cut"))) {
|
||||||
if (obj.contains(Lang.get(quester.getPlayer(), "cut"))) {
|
|
||||||
for (ItemStack is : stage.blocksToCut) {
|
for (ItemStack is : stage.blocksToCut) {
|
||||||
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
if (Material.matchMaterial(serial) != null) {
|
||||||
}
|
if (Material.matchMaterial(serial).equals(is.getType())) {
|
||||||
}
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
||||||
// TODO change in Quester.java to use ItemStack instead of Material
|
break;
|
||||||
/*if (s.contains(Lang.get(quester.getPlayer(), "enchantItem"))) {
|
}
|
||||||
for (Entry<Map<Enchantment, Material>, Integer> e : stage.itemsToEnchant.entrySet()) {
|
|
||||||
Map<Enchantment, Material> set = e.getKey();
|
|
||||||
Collection<Material> matSet = set.values();
|
|
||||||
for (Object o : matSet.toArray()) {
|
|
||||||
stacksWithPossibleEnchants.add((ItemStack)o));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
if (obj.contains(Lang.get(quester.getPlayer(), "deliver"))) {
|
//TODO find a better way to detect a deliver objective
|
||||||
|
else if (obj.contains(Lang.get(quester.getPlayer(), "deliver").split(" ")[0])) {
|
||||||
|
System.out.println("1");
|
||||||
for (ItemStack is : stage.itemsToDeliver) {
|
for (ItemStack is : stage.itemsToDeliver) {
|
||||||
String enchant = "";
|
if (Material.matchMaterial(serial) != null) {
|
||||||
if (!is.getEnchantments().isEmpty()) {
|
if (Material.matchMaterial(serial).equals(is.getType())) {
|
||||||
//TODO parse multiple enchantments?
|
System.out.println("2");
|
||||||
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>").replace(enchant, "<enchantment>"),
|
String enchant = "";
|
||||||
is.getType(), is.getDurability(), is.getEnchantments().entrySet().iterator().next().getKey());
|
if (!is.getEnchantments().isEmpty()) {
|
||||||
|
System.out.println("3");
|
||||||
|
//TODO parse multiple enchantments?
|
||||||
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>").replace(enchant, "<enchantment>"),
|
||||||
|
is.getType(), is.getDurability(), is.getEnchantments().entrySet().iterator().next().getKey());
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<item>"), is.getType(), is.getDurability());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if (obj.contains(Lang.get(quester.getPlayer(), "kill"))) {
|
||||||
if (obj.contains(Lang.get(quester.getPlayer(), "kill"))) {
|
|
||||||
for (EntityType type : stage.mobsToKill) {
|
for (EntityType type : stage.mobsToKill) {
|
||||||
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<mob>"), type);
|
try {
|
||||||
|
EntityType et = EntityType.valueOf(serial.toUpperCase().replace(" ", "_"));
|
||||||
|
if (et.equals(type)) {
|
||||||
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<mob>"), type);
|
||||||
|
}
|
||||||
|
} catch (IllegalArgumentException iae) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
} else if (obj.contains(Lang.get(quester.getPlayer(), "tame"))) {
|
||||||
if (obj.contains(Lang.get(quester.getPlayer(), "tame"))) {
|
|
||||||
for (Entry<EntityType, Integer> e : stage.mobsToTame.entrySet()) {
|
for (Entry<EntityType, Integer> e : stage.mobsToTame.entrySet()) {
|
||||||
EntityType type = e.getKey();
|
try {
|
||||||
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<mob>"), type);
|
EntityType type = e.getKey();
|
||||||
|
EntityType et = EntityType.valueOf(serial.toUpperCase().replace(" ", "_"));
|
||||||
|
if (et.equals(type)) {
|
||||||
|
query.sendMessage(quester.getPlayer(), obj.replace(serial, "<mob>"), type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (IllegalArgumentException iae) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
quester.getPlayer().sendMessage(obj);
|
||||||
}
|
}
|
||||||
quester.getPlayer().sendMessage(obj);
|
|
||||||
} catch (IndexOutOfBoundsException e) {
|
} catch (IndexOutOfBoundsException e) {
|
||||||
quester.getPlayer().sendMessage(obj);
|
quester.getPlayer().sendMessage(obj);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user