Updated HairdresserCheese plugin to listener

This commit is contained in:
Byte
2022-10-26 10:37:20 +00:00
committed by Ryan
parent 4f7e07436b
commit e92a02a603
2 changed files with 37 additions and 52 deletions
@@ -1,52 +0,0 @@
package core.game.interaction.item.withobject;
import core.plugin.Initializable;
import org.rs09.consts.Items;
import core.game.interaction.NodeUsageEvent;
import core.game.interaction.UseWithHandler;
import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.diary.DiaryType;
import core.game.node.item.Item;
import core.game.system.task.Pulse;
import rs09.game.world.GameWorld;
import core.plugin.Plugin;
/**
* Fills an ectophial.
* @author afaroutdude
*/
@Initializable
public class HairdresserCheesePlugin extends UseWithHandler {
/**
* Constructs a new {@code EctophialFillPlugin} {@code Object}
*/
public HairdresserCheesePlugin() {
super(Items.CHEESE_1985);
}
@Override
public Plugin<Object> newInstance(Object arg) throws Throwable {
addHandler(11677, OBJECT_TYPE, this);
return this;
}
@Override
public boolean handle(NodeUsageEvent event) {
final Player player = event.getPlayer();
player.lock(3);
//player.animate(Animation.create(1652));
GameWorld.getPulser().submit(new Pulse(3, player) {
@Override
public boolean pulse() {
if (player.getInventory().remove(new Item(Items.CHEESE_1985))) {
player.sendMessage("You throw the cheese to Ridgeley, for which he appears grateful.");
player.getAchievementDiaryManager().finishTask(player,DiaryType.FALADOR,0, 6);
}
return true;
}
});
return true;
}
}
@@ -0,0 +1,37 @@
package rs09.game.interaction.item.withobject
import api.*
import core.game.node.entity.player.link.diary.DiaryType
import org.rs09.consts.Items
import org.rs09.consts.Scenery
import rs09.game.interaction.IntType
import rs09.game.interaction.InteractionListener
/**
* Listener for using cheese on Ridgeley on the treadmill
* @author Byte
*/
@Suppress("unused")
class HairdresserCheeseListener : InteractionListener {
override fun defineListeners() {
onUseWith(IntType.SCENERY, Items.CHEESE_1985, Scenery.TREADMILL_11677) { player, used, _ ->
lock(player, 5)
var isTaskSuccessful = false
runTask(player,3,1) {
if (!removeItem(player, used)) {
return@runTask
}
sendMessage(player,"You throw the cheese to Ridgeley, for which he appears grateful.")
player.achievementDiaryManager.finishTask(player, DiaryType.FALADOR, 0, 6)
unlock(player)
isTaskSuccessful = true
}
return@onUseWith isTaskSuccessful
}
}
}