From 0c78ae3b9dccec45f7331ee8ca76cdd3bfa32338 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Thu, 26 Mar 2020 01:11:21 -0500 Subject: [PATCH] Can now swap all items for gold options in priest in peril --- .../withobject/PriestInPerilUsePlugin.java | 138 ++++++++++++++---- .../object/PriestInPerilOptionPlugin.java | 36 ++++- 2 files changed, 137 insertions(+), 37 deletions(-) diff --git a/Server/src/plugin/interaction/item/withobject/PriestInPerilUsePlugin.java b/Server/src/plugin/interaction/item/withobject/PriestInPerilUsePlugin.java index 3b4f79f62..686e440c2 100644 --- a/Server/src/plugin/interaction/item/withobject/PriestInPerilUsePlugin.java +++ b/Server/src/plugin/interaction/item/withobject/PriestInPerilUsePlugin.java @@ -16,11 +16,12 @@ import org.crandor.plugin.Plugin; */ @InitializablePlugin public class PriestInPerilUsePlugin extends UseWithHandler { + private int[] monumentIds = new int[] { 3499, 3493, 3494, 3497, 3495, 3498, 3496 }; /** * Constructs a new {@code PriestInPerilUsePlugin.java} {@code Object}. */ public PriestInPerilUsePlugin() { - super(2944, 1925, 2945, 2954); + super(2944, 1925, 2945, 2954, 2347, 1733, 1931, 314, 36, 590); } /** @@ -29,7 +30,9 @@ public class PriestInPerilUsePlugin extends UseWithHandler { */ @Override public Plugin newInstance(Object arg) throws Throwable { - addHandler(3499, OBJECT_TYPE, this); + for(int i = 0; i < monumentIds.length; i++){ + addHandler(monumentIds[i], OBJECT_TYPE, this); + } addHandler(3485, OBJECT_TYPE, this); addHandler(3463, OBJECT_TYPE, this); addHandler(30728, OBJECT_TYPE, this); @@ -43,38 +46,111 @@ public class PriestInPerilUsePlugin extends UseWithHandler { @Override public boolean handle(NodeUsageEvent event) { Player player = event.getPlayer(); - if (((GameObject) event.getUsedWith()).getId() == 3499) { - if (!event.getPlayer().getGameAttributes().getAttributes().containsKey("priest_in_peril:key") && event.getPlayer().getInventory().remove(new Item(2944))) { - event.getPlayer().getInventory().add(new Item(2945)); - event.getPlayer().getPacketDispatch().sendMessage("You swap the Golden key for the Iron key."); - event.getPlayer().getGameAttributes().setAttribute("/save:priest_in_peril:key", true); - } else { - return true; + int objUse = ((GameObject) event.getUsedWith()).getId(); + int itemUse = ((Item) event.getUsedItem()).getId(); + switch(objUse) { + case 3499: + if (!event.getPlayer().getGameAttributes().getAttributes().containsKey("priest_in_peril:key") && event.getPlayer().getInventory().remove(new Item(2944))) { + event.getPlayer().getInventory().add(new Item(2945)); + event.getPlayer().getPacketDispatch().sendMessage("You swap the Golden key for the Iron key."); + event.getPlayer().getGameAttributes().setAttribute("/save:priest_in_peril:key", true); + } else { + return true; + } + break; + case 3493: + if(!player.getGameAttributes().getAttributes().containsKey("priest_in_peril:tinderbox")){ + if (itemUse == 590) { + if (event.getPlayer().getInventory().remove(new Item(590))) { + event.getPlayer().getInventory().add(new Item(2946)); + event.getPlayer().getPacketDispatch().sendMessage("You swap the tinderbox for the golden tinderbox."); + event.getPlayer().getGameAttributes().setAttribute("/save:priest_in_peril:tinderbox", true); + } + } + } + break; + case 3494: + if(!player.getGameAttributes().getAttributes().containsKey("priest_in_peril:candle")){ + if (itemUse == 36) { + if (event.getPlayer().getInventory().remove(new Item(36))) { + event.getPlayer().getInventory().add(new Item(2947)); + event.getPlayer().getPacketDispatch().sendMessage("You swap the candle for the golden candle."); + event.getPlayer().getGameAttributes().setAttribute("/save:priest_in_peril:candle", true); + } + } + } + break; + case 3497: + if(!player.getGameAttributes().getAttributes().containsKey("priest_in_peril:feather")){ + if (itemUse == 314) { + if (event.getPlayer().getInventory().remove(new Item(314))) { + event.getPlayer().getInventory().add(new Item(2950)); + event.getPlayer().getPacketDispatch().sendMessage("You swap the feather for the golden feather."); + event.getPlayer().getGameAttributes().setAttribute("/save:priest_in_peril:feather", true); + } + } + } + break; + case 3495: + if(!player.getGameAttributes().getAttributes().containsKey("priest_in_peril:pot")){ + if (itemUse == 1931) { + if (event.getPlayer().getInventory().remove(new Item(1931))) { + event.getPlayer().getInventory().add(new Item(2948)); + event.getPlayer().getPacketDispatch().sendMessage("You swap the empty pot for the golden pot."); + event.getPlayer().getGameAttributes().setAttribute("/save:priest_in_peril:pot", true); + } + } + } + break; + case 3498: + if(!player.getGameAttributes().getAttributes().containsKey("priest_in_peril:needle")){ + if (itemUse == 1733) { + if (event.getPlayer().getInventory().remove(new Item(1733))) { + event.getPlayer().getInventory().add(new Item(2951)); + event.getPlayer().getPacketDispatch().sendMessage("You swap the needle for the golden needle."); + event.getPlayer().getGameAttributes().setAttribute("/save:priest_in_peril:needle", true); + } + } + } + break; + case 3496: + if(!player.getGameAttributes().getAttributes().containsKey("priest_in_peril:hammer")){ + if (itemUse == 2347) { + if (event.getPlayer().getInventory().remove(new Item(2347))) { + event.getPlayer().getInventory().add(new Item(2949)); + event.getPlayer().getPacketDispatch().sendMessage("You swap the hammer for the golden hammer."); + event.getPlayer().getGameAttributes().setAttribute("/save:priest_in_peril:hammer", true); + } + } + } + break; + case 3485: { + if (event.getPlayer().getInventory().remove(new Item(1925))) { + event.getPlayer().getInventory().add(new Item(2953)); + event.getPlayer().getPacketDispatch().sendMessage("You fill the bucket from the well."); + } } - } - if (((GameObject) event.getUsedWith()).getId() == 3485) { - if (event.getPlayer().getInventory().remove(new Item(1925))) { - event.getPlayer().getInventory().add(new Item(2953)); - event.getPlayer().getPacketDispatch().sendMessage("You fill the bucket from the well."); + break; + case 3463: { + if (player.getInventory().remove(new Item(2945))) { + Quest quest = player.getQuestRepository().getQuest("Priest in Peril"); + quest.setStage(player, 15); + player.getPacketDispatch().sendMessage("You have unlocked the cell door."); + NPC npc = NPC.create(1047, player.getLocation()); + npc.setName("Dezel"); + player.getDialogueInterpreter().sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh! Thank you! You have found the key!"); + } } - } - if (((GameObject) event.getUsedWith()).getId() == 3463) { - if (player.getInventory().remove(new Item(2945))) { - Quest quest = player.getQuestRepository().getQuest("Priest in Peril"); - quest.setStage(player, 15); - player.getPacketDispatch().sendMessage("You have unlocked the cell door."); - NPC npc = NPC.create(1047, player.getLocation()); - npc.setName("Dezel"); - player.getDialogueInterpreter().sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh! Thank you! You have found the key!"); - } - } - if (((GameObject) event.getUsedWith()).getId() == 30728) { - if (player.getInventory().remove(new Item(2954))) { - player.getInventory().add(new Item(1925)); - Quest quest = player.getQuestRepository().getQuest("Priest in Peril"); - quest.setStage(player, 16); - player.getPacketDispatch().sendMessage("You pour the blessed water over the coffin..."); + break; + case 30728: { + if (player.getInventory().remove(new Item(2954))) { + player.getInventory().add(new Item(1925)); + Quest quest = player.getQuestRepository().getQuest("Priest in Peril"); + quest.setStage(player, 16); + player.getPacketDispatch().sendMessage("You pour the blessed water over the coffin..."); + } } + break; } return true; } diff --git a/Server/src/plugin/interaction/object/PriestInPerilOptionPlugin.java b/Server/src/plugin/interaction/object/PriestInPerilOptionPlugin.java index 113d3ee30..98a5ab3b3 100644 --- a/Server/src/plugin/interaction/object/PriestInPerilOptionPlugin.java +++ b/Server/src/plugin/interaction/object/PriestInPerilOptionPlugin.java @@ -99,23 +99,43 @@ public class PriestInPerilOptionPlugin extends OptionHandler { int item = 0; String message = ""; if (id == 3496) { - item = 2949; + if (!player.getGameAttributes().getAttribute("priest_in_peril:hammer", false)) { + item = 2949; + } else { + item = 2347; + } message = "Saradomin is the hammer that crushes evil everywhere."; } if (id == 3498) { - item = 2951; + if (!player.getGameAttributes().getAttribute("priest_in_peril:needle", false)) { + item = 2951; + } else { + item = 1733; + } message = "Saradomin is the needle that binds our lives together."; } if (id == 3495) { - item = 2948; + if (!player.getGameAttributes().getAttribute("priest_in_peril:pot", false)) { + item = 2948; + } else { + item = 1931; + } message = "Saradomin is the vessle that keeps our lives from harm."; } if (id == 3497) { - item = 2950; + if (!player.getGameAttributes().getAttribute("priest_in_peril:feather", false)) { + item = 2950; + } else { + item = 314; + } message = "Saradomin is the delicate touch that brushes us with love."; } if (id == 3494) { - item = 2947; + if (!player.getGameAttributes().getAttribute("priest_in_peril:candle", false)) { + item = 2947; + } else { + item = 36; + } message = "Saradomin is the light that shines throughout our lives."; } if (id == 3499) { @@ -127,7 +147,11 @@ public class PriestInPerilOptionPlugin extends OptionHandler { message = "Saradomin is the key that unlocks the mysteries of life."; } if (id == 3493) { - item = 2946; + if (!player.getGameAttributes().getAttribute("priest_in_peril:tinderbox", false)) { + item = 2946; + } else { + item = 590; + } message = "Saradomin is the spark that lights the fire in our hearts."; } player.getPacketDispatch().sendString(message, 272, 17);