From ec5bbcb44a7c338e9fa8adc08a048774223421e8 Mon Sep 17 00:00:00 2001 From: Zino Date: Wed, 31 Jul 2013 09:50:11 +0200 Subject: [PATCH] +Added quests that block other quests. --- items.txt | 215 ++++++++++++++++++ src/me/blackvein/quests/Quest.java | 14 +- src/me/blackvein/quests/QuestFactory.java | 6 +- src/me/blackvein/quests/Quests.java | 59 +++++ .../quests/prompts/ItemStackPrompt.java | 1 - 5 files changed, 292 insertions(+), 3 deletions(-) create mode 100644 items.txt diff --git a/items.txt b/items.txt new file mode 100644 index 000000000..a5f3aaf92 --- /dev/null +++ b/items.txt @@ -0,0 +1,215 @@ +Stone=1 +Grass=2 +Dirt=3 +Cobblestone,Cobble=4 +WoodenPlank=5,0 +RedwoodPlank=5,1 +BirchPlank=5,2 +Sapling=6 +Bedrock=7 +Water=8 +StationaryWater=9 +Lava=10 +StationaryLava=11 +Sand=12 +Gravel=13 +GoldOre=14 +IronOre=15 +CoalOre=16 +Wood=17 +Leaves=18,0 +RedwoodLeaves=18,1 +BirchLeaves=18,2 +Sponge=19 +Glass=20 +LapisLazuliOre=21 +LapisLazuliBlock=22 +Dispenser=23 +Sandstone=24 +NoteBlock=25 +Wool=35,0 +OrangeWool=35,1 +MagentaWool=35,2 +LightBlueWool=35,3 +YellowWool=35,4 +LightGreenWool=35,5 +PinkWool=35,6 +GrayWool=35,7 +LightGrayWool=35,8 +CyanWool=35,9 +PurpleWool=35,10 +BlueWool=35,11 +BrownWool=35,12 +DarkGreenWool=35,13 +RedWool=35,14 +BlackWool=35,15 +YellowFlower=37 +RedRose=38 +BrownMushroom=39 +RedMushroom=40 +GoldBlock=41 +IronBlock=42 +DoubleSlab=43 +StoneSlab=44,0 +SandstoneSlab=44,1 +WoodenSlab=44,2 +CobblestoneSlab=44,3 +BrickBlock=45 +TNT=46 +Bookshelf=47 +MossStone=48 +Obsidian=49 +Torch=50 +MonsterSpawner=52 +WoodenStairs=53 +Chest=54 +DiamondOre=56 +DiamondBlock=57 +CraftingTable=58 +Crops=59 +Farmland=60 +Furnace=61 +Ladder=65 +Rails=66 +CobblestoneStairs=67 +Lever=69 +StonePressurePlate=70 +WoodenPressurePlate=72 +RedstoneOre=73 +GlowingRedstoneOre=74 +RedstoneTorch=76 +StoneButton=77 +Snow=78 +Ice=79 +SnowBlock=80 +Cactus=81 +ClayBlock=82 +Jukebox=84 +Fence=85 +Pumpkin=86 +Netherrack=87 +SoulSand=88 +GlowstoneBlock=89 +Portal=90 +Jack-O-Lantern=91 +CakeBlock=92 +IronShovel=256 +IronPickaxe=257 +IronAxe=258 +FlintandSteel=259 +Apple=260 +Bow=261 +Arrow=262 +Coal=263,0 +Charcoal=263,1 +Diamond=264 +IronIngot=265 +GoldIngot=266 +IronSword=267 +WoodenSword=268 +WoodenShovel=269 +WoodenPickaxe=270 +WoodenAxe=271 +StoneSword=272 +StoneShovel=273 +StonePickaxe=274 +StoneAxe=275 +DiamondSword=276 +DiamondShovel=277 +DiamondPickaxe=278 +DiamondAxe=279 +Stick=280 +Bowl=281 +MushroomSoup=282 +GoldSword=283 +GoldShovel=284 +GoldPickaxe=285 +GoldAxe=286 +String=287 +Feather=288 +Gunpowder=289 +WoodenHoe=290 +StoneHoe=291 +IronHoe=292 +DiamondHoe=293 +GoldHoe=294 +Seeds=295 +Wheat=296 +Bread=297 +LeatherHelmet=298 +LeatherChestplate=299 +LeatherLeggings=300 +LeatherBoots=301 +ChainmailHelmet=302 +ChainmailChestplate=303 +ChainmailLeggings=304 +ChainmailBoots=305 +IronHelmet=306 +IronChestplate=307 +IronLeggings=308 +IronBoots=309 +DiamondHelmet=310 +DiamondChestplate=311 +DiamondLeggings=312 +DiamondBoots=313 +GoldHelmet=314 +GoldChestplate=315 +GoldLeggings=316 +GoldBoots=317 +Flint=318 +RawPorkchop=319 +CookedPorkchop=320 +Paintings=321 +Goldenapple=322 +Sign=323 +Woodendoor=324 +Bucket=325 +Waterbucket=326 +Lavabucket=327 +Minecart=328 +Saddle=329 +Irondoor=330 +Redstone=331 +Snowball=332 +Boat=333 +Leather=334 +Milk=335 +ClayBrick=336 +ClayBalls=337 +SugarCane=338 +Paper=339 +Book=340 +Slimeball=341 +StorageMinecart=342 +PoweredMinecart=343 +Egg=344 +Compass=345 +FishingRod=346 +Clock=347 +GlowstoneDust=348 +RawFish=349 +CookedFish=350 +InkSac=351,0 +RoseRed=351,1 +CactusGreen=351,2 +CocoaBeans=351,3 +LapisLazuliDye=351,4 +PurpleDye=351,5 +CyanDye=351,6 +LightGrayDye=351,7 +GrayDye=351,8 +PinkDye=351,9 +LimeDye=351,10 +DandelionYellow=351,11 +LightBlueDye=351,12 +MagentaDye=351,13 +OrangeDye=351,14 +BoneMeal=351,15 +Bone=352 +Sugar=353 +Cake=354 +Bed=355 +RedstoneRepeater=356 +Cookie=357 +GoldMusicDisc=2256 +GreenMusicDisc=2257 \ No newline at end of file diff --git a/src/me/blackvein/quests/Quest.java b/src/me/blackvein/quests/Quest.java index fef0e7151..78dce07ef 100644 --- a/src/me/blackvein/quests/Quest.java +++ b/src/me/blackvein/quests/Quest.java @@ -1,5 +1,6 @@ package me.blackvein.quests; +import java.util.Collections; import java.util.LinkedList; import java.util.List; import me.blackvein.quests.util.ItemUtil; @@ -10,6 +11,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import com.comphenix.net.sf.cglib.core.CollectionUtils; import com.gmail.nossr50.datatypes.player.McMMOPlayer; public class Quest { @@ -33,6 +35,7 @@ public class Quest { List removeItems = new LinkedList(); List neededQuests = new LinkedList(); + List blockQuests = new LinkedList(); List permissionReqs = new LinkedList(); @@ -146,7 +149,13 @@ public class Quest { if(quester.completedQuests.containsAll(neededQuests) == false) return false; - + + for (String q : blockQuests) { + if (quester.completedQuests.contains(q)) { + return false; + } + } + return true; } @@ -318,6 +327,9 @@ public class Quest { if(other.neededQuests.equals(neededQuests) == false) return false; + + if (other.blockQuests.equals(blockQuests) == false) + return false; if(other.npcStart != null && npcStart != null){ if(other.npcStart.equals(npcStart) == false) diff --git a/src/me/blackvein/quests/QuestFactory.java b/src/me/blackvein/quests/QuestFactory.java index e7e9662cb..e26ee4793 100644 --- a/src/me/blackvein/quests/QuestFactory.java +++ b/src/me/blackvein/quests/QuestFactory.java @@ -1305,6 +1305,10 @@ public class QuestFactory implements ConversationAbandonedListener, ColorUtil { if (q.neededQuests.isEmpty() == false) { cc.setSessionData("questReqs", q.neededQuests); } + + if (q.blockQuests.isEmpty() == false) { + cc.setSessionData("questBlocks", q.blockQuests); + } if (q.permissionReqs.isEmpty() == false) { cc.setSessionData("permissionReqs", q.permissionReqs); @@ -1650,7 +1654,7 @@ public class QuestFactory implements ConversationAbandonedListener, ColorUtil { for (Quest q : quests.quests) { - if (q.neededQuests.contains(q.name)) { + if (q.neededQuests.contains(q.name) || q.blockQuests.contains(q.name)) { used.add(q.name); } diff --git a/src/me/blackvein/quests/Quests.java b/src/me/blackvein/quests/Quests.java index e8791b277..0c31b918e 100644 --- a/src/me/blackvein/quests/Quests.java +++ b/src/me/blackvein/quests/Quests.java @@ -572,6 +572,20 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener, } } + + if (quest.blockQuests.isEmpty() == false) { + + for (String s : quest.blockQuests) { + + if (quester.completedQuests.contains(s)) { + cs.sendMessage(GRAY + "- " + RED + "You have already Completed " + ITALIC + s); + } else { + cs.sendMessage(GRAY + "- " + GREEN + "Still able to complete " + ITALIC + s); + } + + } + + } } @@ -2018,6 +2032,49 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener, } + if (config.contains("quests." + s + ".requirements.noQuests")) { + + if (Quests.checkList(config.getList("quests." + s + ".requirements.noQuests"), String.class)) { + + List names = config.getStringList("quests." + s + ".requirements.noQuests"); + + boolean failed = false; + String failedQuest = "NULL"; + + for (String name : names) { + + boolean done = false; + for (String string : section1.getKeys(false)) { + + if (config.getString("quests." + string + ".name").equalsIgnoreCase(name)) { + quest.blockQuests.add(name); + done = true; + break; + } + + } + + if (!done) { + failed = true; + failedQuest = name; + break; + } + + } + + if (failed) { + printSevere(GOLD + "[Quests] " + PINK + failedQuest + GOLD + " inside " + RED + "quests: " + YELLOW + "Requirement " + GOLD + "for Quest " + PURPLE + quest.name + GOLD + " is not a valid Quest name!"); + printSevere(RED + "Make sure you are using the Quest " + DARKRED + "name: " + RED + "value, and not the block name."); + continue; + } + + } else { + printSevere(GOLD + "[Quests] " + RED + "quests: " + YELLOW + "Requirement " + GOLD + "for Quest " + PURPLE + quest.name + GOLD + " is not a list of Quest names!"); + continue; + } + + } + if (config.contains("quests." + s + ".requirements.quests")) { if (Quests.checkList(config.getList("quests." + s + ".requirements.quests"), String.class)) { @@ -2061,6 +2118,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener, } + if (config.contains("quests." + s + ".requirements.permissions")) { if (Quests.checkList(config.getList("quests." + s + ".requirements.permissions"), String.class)) { @@ -3450,6 +3508,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener, parsed = parsed.replaceAll("", UNDERLINE.toString()); parsed = parsed.replaceAll("", STRIKETHROUGH.toString()); parsed = parsed.replaceAll("", RESET.toString()); + parsed = ChatColor.translateAlternateColorCodes('&', parsed); return parsed; diff --git a/src/me/blackvein/quests/prompts/ItemStackPrompt.java b/src/me/blackvein/quests/prompts/ItemStackPrompt.java index 9f12938b3..b3be9e9fd 100644 --- a/src/me/blackvein/quests/prompts/ItemStackPrompt.java +++ b/src/me/blackvein/quests/prompts/ItemStackPrompt.java @@ -242,7 +242,6 @@ public class ItemStackPrompt extends FixedSetPrompt implements ColorUtil{ }catch(Exception e){ try { Data data = ItemData.getInstance().getItem(input); - Bukkit.broadcastMessage(input + ":" + data); if (data == null) { cc.getForWhom().sendRawMessage(RED + "Invalid item ID!"); return new IDPrompt();