From 5678f446939bd1019137f8e055431aab2413287c Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sat, 13 Mar 2021 00:29:55 -0600 Subject: [PATCH] moved bone on loader usewithhandler to BoneGrinderListener.kt --- .../content/zone/phasmatys/PhasmatysZone.java | 54 ++----------------- .../bonegrinder/BoneGrinderListener.kt | 10 ++++ .../kotlin/rs09/game/interaction/Listeners.kt | 2 +- 3 files changed, 14 insertions(+), 52 deletions(-) diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java b/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java index 32eab541a..094519b67 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java +++ b/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java @@ -2,15 +2,13 @@ package core.game.content.zone.phasmatys; import core.game.content.global.Bones; import core.game.content.global.action.ClimbActionHandler; -import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; -import core.game.interaction.NodeUsageEvent; import core.game.interaction.Option; -import core.game.interaction.UseWithHandler; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; +import core.game.node.entity.skill.Skills; +import core.game.node.entity.skill.agility.AgilityHandler; import core.game.node.item.Item; import core.game.node.object.GameObject; import core.game.node.object.ObjectBuilder; @@ -21,12 +19,10 @@ import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.game.world.update.flag.context.Animation; -import core.plugin.Plugin; import core.plugin.Initializable; +import core.plugin.Plugin; import rs09.plugin.PluginManager; -import static java.lang.Thread.sleep; - /** * Handles the phasmatyz zone area. * @@ -52,7 +48,6 @@ public final class PhasmatysZone extends MapZone implements Plugin { public Plugin newInstance(Object arg) throws Throwable { ZoneBuilder.configure(this); PluginManager.definePlugin(new GravingasNPC()); - PluginManager.definePlugin(new BoneLoaderHandler()); PluginManager.definePlugin(new NecrovarusDialogue()); PluginManager.definePlugin(new GhostSailorDialogue()); PluginManager.definePlugin(new EctoplasmFillPlugin()); @@ -383,49 +378,6 @@ public final class PhasmatysZone extends MapZone implements Plugin { } } - /** - * Handles the bone loader. - * - * @author Vexia - */ - public static final class BoneLoaderHandler extends UseWithHandler { - - /** - * Constructs a new {@code BoneLoaderHandler} {@code Object}. - */ - public BoneLoaderHandler() { - super(Bones.getArray()); - } - - @Override - public Plugin newInstance(Object arg) throws Throwable { - addHandler(11162, OBJECT_TYPE, this); - return this; - } - - @Override - public boolean handle(NodeUsageEvent event) { - final Player player = event.getPlayer(); - final GameObject object = (GameObject) event.getUsedWith(); - final Bones bone = Bones.forId(event.getUsedItem().getId()); - if (hasBones(player, object, true)) { - player.sendMessage("There are already some bones in the grinder's hopper."); - return true; - } else if (hasBones(player, object, false)) { - player.sendMessage("You need to empty the grinder's bin before you put more bones in it."); - return true; - } - if (player.getInventory().remove(event.getUsedItem())) { - player.lock(2); - player.animate(Animation.create(1649)); - player.getConfigManager().set(408, bone.getConfigValue(true), true); - player.sendMessage("You put some bones in the grinder's hopper.", 1); - } - return true; - } - - } - @Override public Object fireEvent(String identifier, Object... args) { return null; diff --git a/Server/src/main/kotlin/rs09/game/content/zone/phasmatys/bonegrinder/BoneGrinderListener.kt b/Server/src/main/kotlin/rs09/game/content/zone/phasmatys/bonegrinder/BoneGrinderListener.kt index e76378e1c..e51f6d6e3 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/phasmatys/bonegrinder/BoneGrinderListener.kt +++ b/Server/src/main/kotlin/rs09/game/content/zone/phasmatys/bonegrinder/BoneGrinderListener.kt @@ -22,6 +22,8 @@ private val SCOOP_ANIM = Animation(1650) class BoneGrinderListener : InteractionListener() { + val boneIDs = Bones.values().map { it.itemId }.toIntArray() + override fun defineListeners() { /** @@ -52,6 +54,14 @@ class BoneGrinderListener : InteractionListener() { handleEmpty(player) } + /** + * Handle Bone -> Hopper + */ + on(OBJECT,LOADER,*boneIDs){player,_,_ -> + handleFill(player) + return@on true + } + } fun handleFill(player: Player): Boolean{ diff --git a/Server/src/main/kotlin/rs09/game/interaction/Listeners.kt b/Server/src/main/kotlin/rs09/game/interaction/Listeners.kt index dad3cd7b4..550d52aa3 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/Listeners.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/Listeners.kt @@ -45,7 +45,7 @@ object Listeners { @JvmStatic fun add(type: Int, used: Int, with: IntArray, method: (Player, Node, Node) -> Boolean){ for(id in with){ - useWithListeners["$used:$with:$type"] = method + useWithListeners["$used:$id:$type"] = method } }