Can now swap all items for gold options in priest in peril

This commit is contained in:
Ceikry 2020-03-26 01:11:21 -05:00
parent c7858f1d18
commit 0c78ae3b9d
2 changed files with 137 additions and 37 deletions

View file

@ -16,11 +16,12 @@ import org.crandor.plugin.Plugin;
*/ */
@InitializablePlugin @InitializablePlugin
public class PriestInPerilUsePlugin extends UseWithHandler { 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}. * Constructs a new {@code PriestInPerilUsePlugin.java} {@code Object}.
*/ */
public PriestInPerilUsePlugin() { 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 @Override
public Plugin<Object> newInstance(Object arg) throws Throwable { public Plugin<Object> 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(3485, OBJECT_TYPE, this);
addHandler(3463, OBJECT_TYPE, this); addHandler(3463, OBJECT_TYPE, this);
addHandler(30728, OBJECT_TYPE, this); addHandler(30728, OBJECT_TYPE, this);
@ -43,7 +46,10 @@ public class PriestInPerilUsePlugin extends UseWithHandler {
@Override @Override
public boolean handle(NodeUsageEvent event) { public boolean handle(NodeUsageEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (((GameObject) event.getUsedWith()).getId() == 3499) { 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))) { 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().getInventory().add(new Item(2945));
event.getPlayer().getPacketDispatch().sendMessage("You swap the Golden key for the Iron key."); event.getPlayer().getPacketDispatch().sendMessage("You swap the Golden key for the Iron key.");
@ -51,14 +57,81 @@ public class PriestInPerilUsePlugin extends UseWithHandler {
} else { } else {
return true; 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);
} }
if (((GameObject) event.getUsedWith()).getId() == 3485) { }
}
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))) { if (event.getPlayer().getInventory().remove(new Item(1925))) {
event.getPlayer().getInventory().add(new Item(2953)); event.getPlayer().getInventory().add(new Item(2953));
event.getPlayer().getPacketDispatch().sendMessage("You fill the bucket from the well."); event.getPlayer().getPacketDispatch().sendMessage("You fill the bucket from the well.");
} }
} }
if (((GameObject) event.getUsedWith()).getId() == 3463) { break;
case 3463: {
if (player.getInventory().remove(new Item(2945))) { if (player.getInventory().remove(new Item(2945))) {
Quest quest = player.getQuestRepository().getQuest("Priest in Peril"); Quest quest = player.getQuestRepository().getQuest("Priest in Peril");
quest.setStage(player, 15); quest.setStage(player, 15);
@ -68,7 +141,8 @@ public class PriestInPerilUsePlugin extends UseWithHandler {
player.getDialogueInterpreter().sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh! Thank you! You have found the key!"); player.getDialogueInterpreter().sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh! Thank you! You have found the key!");
} }
} }
if (((GameObject) event.getUsedWith()).getId() == 30728) { break;
case 30728: {
if (player.getInventory().remove(new Item(2954))) { if (player.getInventory().remove(new Item(2954))) {
player.getInventory().add(new Item(1925)); player.getInventory().add(new Item(1925));
Quest quest = player.getQuestRepository().getQuest("Priest in Peril"); Quest quest = player.getQuestRepository().getQuest("Priest in Peril");
@ -76,6 +150,8 @@ public class PriestInPerilUsePlugin extends UseWithHandler {
player.getPacketDispatch().sendMessage("You pour the blessed water over the coffin..."); player.getPacketDispatch().sendMessage("You pour the blessed water over the coffin...");
} }
} }
break;
}
return true; return true;
} }
} }

View file

@ -99,23 +99,43 @@ public class PriestInPerilOptionPlugin extends OptionHandler {
int item = 0; int item = 0;
String message = ""; String message = "";
if (id == 3496) { if (id == 3496) {
if (!player.getGameAttributes().getAttribute("priest_in_peril:hammer", false)) {
item = 2949; item = 2949;
} else {
item = 2347;
}
message = "Saradomin is the hammer that crushes evil everywhere."; message = "Saradomin is the hammer that crushes evil everywhere.";
} }
if (id == 3498) { if (id == 3498) {
if (!player.getGameAttributes().getAttribute("priest_in_peril:needle", false)) {
item = 2951; item = 2951;
} else {
item = 1733;
}
message = "Saradomin is the needle that binds our lives together."; message = "Saradomin is the needle that binds our lives together.";
} }
if (id == 3495) { if (id == 3495) {
if (!player.getGameAttributes().getAttribute("priest_in_peril:pot", false)) {
item = 2948; item = 2948;
} else {
item = 1931;
}
message = "Saradomin is the vessle that keeps our lives from harm."; message = "Saradomin is the vessle that keeps our lives from harm.";
} }
if (id == 3497) { if (id == 3497) {
if (!player.getGameAttributes().getAttribute("priest_in_peril:feather", false)) {
item = 2950; item = 2950;
} else {
item = 314;
}
message = "Saradomin is the delicate touch that brushes us with love."; message = "Saradomin is the delicate touch that brushes us with love.";
} }
if (id == 3494) { if (id == 3494) {
if (!player.getGameAttributes().getAttribute("priest_in_peril:candle", false)) {
item = 2947; item = 2947;
} else {
item = 36;
}
message = "Saradomin is the light that shines throughout our lives."; message = "Saradomin is the light that shines throughout our lives.";
} }
if (id == 3499) { if (id == 3499) {
@ -127,7 +147,11 @@ public class PriestInPerilOptionPlugin extends OptionHandler {
message = "Saradomin is the key that unlocks the mysteries of life."; message = "Saradomin is the key that unlocks the mysteries of life.";
} }
if (id == 3493) { if (id == 3493) {
if (!player.getGameAttributes().getAttribute("priest_in_peril:tinderbox", false)) {
item = 2946; item = 2946;
} else {
item = 590;
}
message = "Saradomin is the spark that lights the fire in our hearts."; message = "Saradomin is the spark that lights the fire in our hearts.";
} }
player.getPacketDispatch().sendString(message, 272, 17); player.getPacketDispatch().sendString(message, 272, 17);