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
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<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(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;
}

View file

@ -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);