mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-20 13:30:27 -07:00
Updated PriestInPerilUse plugin to listener
This commit is contained in:
parent
0bdd8326d9
commit
82f7d0663b
2 changed files with 127 additions and 157 deletions
|
|
@ -1,157 +0,0 @@
|
||||||
package core.game.interaction.item.withobject;
|
|
||||||
|
|
||||||
import core.game.content.dialogue.FacialExpression;
|
|
||||||
import core.game.interaction.NodeUsageEvent;
|
|
||||||
import core.game.interaction.UseWithHandler;
|
|
||||||
import core.game.node.entity.npc.NPC;
|
|
||||||
import core.game.node.entity.player.Player;
|
|
||||||
import core.game.node.entity.player.link.quest.Quest;
|
|
||||||
import core.game.node.item.Item;
|
|
||||||
import core.game.node.scenery.Scenery;
|
|
||||||
import core.plugin.Initializable;
|
|
||||||
import core.plugin.Plugin;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author 'Vexia
|
|
||||||
*/
|
|
||||||
@Initializable
|
|
||||||
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, 2347, 1733, 1931, 314, 36, 590);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (non-Javadoc)
|
|
||||||
* @see Plugin#newInstance(Object)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
|
||||||
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);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (non-Javadoc)
|
|
||||||
* @see UseWithHandler#handle(NodeUsageEvent)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean handle(NodeUsageEvent event) {
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
int objUse = ((Scenery) 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.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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(7690, player.getLocation());
|
|
||||||
npc.setName("Drezel");
|
|
||||||
player.getDialogueInterpreter().sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh! Thank you! You have found the key!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,127 @@
|
||||||
|
package rs09.game.content.quest.members.priestinperil
|
||||||
|
|
||||||
|
import api.*
|
||||||
|
import core.game.content.dialogue.FacialExpression
|
||||||
|
import core.game.node.item.Item
|
||||||
|
import org.rs09.consts.Items
|
||||||
|
import org.rs09.consts.NPCs
|
||||||
|
import org.rs09.consts.Scenery
|
||||||
|
import rs09.game.interaction.IntType
|
||||||
|
import rs09.game.interaction.InteractionListener
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listener for Priest in Peril usage interactions
|
||||||
|
* @author Byte
|
||||||
|
*/
|
||||||
|
class PriestInPerilUseListener : InteractionListener {
|
||||||
|
|
||||||
|
override fun defineListeners() {
|
||||||
|
onUseWith(IntType.SCENERY, Items.TINDERBOX_590, Scenery.MONUMENT_3493) { player, used, _ ->
|
||||||
|
if (!getAttribute(player, "priest_in_peril:tinderbox", false) && removeItem(player, used)) {
|
||||||
|
addItem(player, Items.GOLDEN_TINDERBOX_2946)
|
||||||
|
sendMessage(player, "You swap the tinderbox for the golden tinderbox.")
|
||||||
|
setAttribute(player, "/save:priest_in_peril:tinderbox", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.CANDLE_36, Scenery.MONUMENT_3494) { player, used, _ ->
|
||||||
|
if (!getAttribute(player, "priest_in_peril:candle", false) && removeItem(player, used)) {
|
||||||
|
addItem(player, Items.GOLDEN_CANDLE_2947)
|
||||||
|
sendMessage(player, "You swap the candle for the golden candle.")
|
||||||
|
setAttribute(player, "/save:priest_in_peril:candle", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.EMPTY_POT_1931, Scenery.MONUMENT_3495) { player, used, _ ->
|
||||||
|
if (!getAttribute(player, "priest_in_peril:pot", false) && removeItem(player, used)) {
|
||||||
|
addItem(player, Items.GOLDEN_POT_2948)
|
||||||
|
sendMessage(player, "You swap the pot for the golden pot.")
|
||||||
|
setAttribute(player, "/save:priest_in_peril:pot", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.HAMMER_2347, Scenery.MONUMENT_3496) { player, used, _ ->
|
||||||
|
if (!getAttribute(player, "priest_in_peril:hammer", false) && removeItem(player, used)) {
|
||||||
|
addItem(player, Items.GOLDEN_HAMMER_2949)
|
||||||
|
sendMessage(player, "You swap the hammer for the golden hammer.")
|
||||||
|
setAttribute(player, "/save:priest_in_peril:hammer", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.FEATHER_314, Scenery.MONUMENT_3497) { player, used, _ ->
|
||||||
|
if (!getAttribute(player, "priest_in_peril:feather", false) && removeItem(player, Item(used.id, 1))) {
|
||||||
|
addItem(player, Items.GOLDEN_FEATHER_2950)
|
||||||
|
sendMessage(player, "You swap the feather for the golden feather.")
|
||||||
|
setAttribute(player, "/save:priest_in_peril:feather", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.NEEDLE_1733, Scenery.MONUMENT_3498) { player, used, _ ->
|
||||||
|
if (!getAttribute(player, "priest_in_peril:needle", false) && removeItem(player, Item(used.id, 1))) {
|
||||||
|
addItem(player, Items.GOLDEN_NEEDLE_2951)
|
||||||
|
sendMessage(player, "You swap the needle for the golden needle.")
|
||||||
|
setAttribute(player, "/save:priest_in_peril:needle", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.GOLDEN_KEY_2944, Scenery.MONUMENT_3499) { player, used, _ ->
|
||||||
|
if (!getAttribute(player, "priest_in_peril:key", false) && removeItem(player, used)) {
|
||||||
|
addItem(player, Items.IRON_KEY_2945)
|
||||||
|
sendMessage(player, "You swap the golden key for the iron key.")
|
||||||
|
setAttribute(player, "/save:priest_in_peril:key", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.BUCKET_1925, Scenery.WELL_3485) { player, used, _ ->
|
||||||
|
if (!removeItem(player, used)) {
|
||||||
|
return@onUseWith false
|
||||||
|
}
|
||||||
|
|
||||||
|
addItem(player, Items.BUCKET_OF_WATER_2953)
|
||||||
|
sendMessage(player, "You fill the bucket from the well.")
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.IRON_KEY_2945, Scenery.CELL_DOOR_3463) { player, used, _ ->
|
||||||
|
if (!removeItem(player, used)) {
|
||||||
|
return@onUseWith false
|
||||||
|
}
|
||||||
|
|
||||||
|
setQuestStage(player, "Priest in Peril", 15)
|
||||||
|
sendMessage(player, "You have unlocked the cell door.")
|
||||||
|
|
||||||
|
val npc = core.game.node.entity.npc.NPC.create(NPCs.DREZEL_7690, player.location)
|
||||||
|
npc.name = "Drezel"
|
||||||
|
sendNPCDialogue(player, npc.id, "Oh! Thank you! You have found the key!", FacialExpression.HALF_GUILTY)
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
|
||||||
|
onUseWith(IntType.SCENERY, Items.BUCKET_OF_WATER_2954, Scenery.MORYTANIA_COFFIN_30728) { player, used, _ ->
|
||||||
|
if (!removeItem(player, used)) {
|
||||||
|
return@onUseWith false
|
||||||
|
}
|
||||||
|
|
||||||
|
addItem(player, Items.BUCKET_1925)
|
||||||
|
setQuestStage(player, "Priest in Peril", 16)
|
||||||
|
sendMessage(player, "You pour the blessed water over the coffin...")
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue