diff --git a/Server/src/main/content/global/skill/construction/decoration/kitchen/LarderListener.kt b/Server/src/main/content/global/skill/construction/decoration/kitchen/LarderListener.kt new file mode 100644 index 000000000..1bff6bc47 --- /dev/null +++ b/Server/src/main/content/global/skill/construction/decoration/kitchen/LarderListener.kt @@ -0,0 +1,42 @@ +package content.global.skill.construction.decoration.kitchen + +import core.api.openDialogue +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import org.rs09.consts.Items +import org.rs09.consts.Scenery + +class LarderListener : InteractionListener { + + companion object { + private val wooden_larder_items = listOf( + "Tea Leaves" to Items.TEA_LEAVES_7738, + "Bucket of Milk" to Items.BUCKET_OF_MILK_1927 + ) + private val oak_larder_items = wooden_larder_items + listOf( + "Eggs" to Items.EGG_1944, + "Pot of Flour" to Items.POT_OF_FLOUR_1933 + ) + private val teak_larder_items = oak_larder_items + listOf( + "Potatoes" to Items.POTATO_1942, + "Garlic" to Items.GARLIC_1550, + "Onions" to Items.ONION_1957, + "Cheese" to Items.CHEESE_1985 + ) + + val larders = mapOf( + Scenery.LARDER_13565 to wooden_larder_items, + Scenery.LARDER_13566 to oak_larder_items, + Scenery.LARDER_13567 to teak_larder_items + ) + } + + override fun defineListeners() { + on(larders.keys.toIntArray(), IntType.SCENERY, "Search") { player, node -> + openDialogue(player, LarderDialogue(node.id)) + return@on true + } + } + + class LarderDialogue(shelfId: Int) : AbstractContainer(shelfId, larders, "larder") +} \ No newline at end of file diff --git a/Server/src/main/content/global/skill/construction/decoration/kitchen/LarderPlugin.java b/Server/src/main/content/global/skill/construction/decoration/kitchen/LarderPlugin.java deleted file mode 100644 index 9c3289cf2..000000000 --- a/Server/src/main/content/global/skill/construction/decoration/kitchen/LarderPlugin.java +++ /dev/null @@ -1,149 +0,0 @@ -package content.global.skill.construction.decoration.kitchen; - - -import core.cache.def.impl.SceneryDefinition; -import core.plugin.Initializable; -import core.game.dialogue.DialoguePlugin; -import core.game.interaction.OptionHandler; -import core.game.node.Node; -import core.game.node.entity.player.Player; -import core.game.node.item.Item; -import core.plugin.Plugin; -import core.plugin.ClassScanner; -import org.rs09.consts.Items; - -/** - * Handles the interactions for the three Larders. - * @author Splinter - */ -@Initializable -public final class LarderPlugin extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - ClassScanner.definePlugin(new LarderDialogue()); - SceneryDefinition.forId(13565).getHandlers().put("option:search", this); - SceneryDefinition.forId(13566).getHandlers().put("option:search", this); - SceneryDefinition.forId(13567).getHandlers().put("option:search", this); - return this; - } - - @Override - public boolean handle(Player player, Node node, String option) { - player.getDialogueInterpreter().open(42048, node.getId()); - return true; - } - - /** - * Dialogue options for the Larders. - * @author Splinter - * @version 1.0 - */ - public final class LarderDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code LarderDialogue} {@code Object}. - */ - public LarderDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code LarderDialogue} {@code Object}. - * - * @param player - * the player. - */ - public LarderDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new LarderDialogue(player); - } - - @Override - public boolean open(Object... args) { - int id = (int) args[0]; - switch (id) { - case 13565: - interpreter.sendOptions("Select an Option", "Tea Leaves", "Bucket of Milk"); - stage = 1; - break; - case 13566: - interpreter.sendOptions("Select an Option", "Tea Leaves", "Bucket of Milk", "Eggs", "Pot of Flour"); - stage = 1; - break; - case 13567: - interpreter.sendOptions("Select an Option", "Tea Leaves", "Bucket of Milk", "Eggs", "Pot of Flour", "More Options"); - stage = 1; - break; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - if (player.getInventory().freeSlots() < 1) { - player.sendMessage("You need at least one free inventory space to take from the larder."); - end(); - return true; - } - switch (stage) { - case 1: - switch (buttonId) { - case 1: - player.getInventory().add(new Item(Items.TEA_LEAVES_7738, 1)); - end(); - break; - case 2: - player.getInventory().add(new Item(Items.BUCKET_OF_MILK_1927, 1)); - end(); - break; - case 3: - player.getInventory().add(new Item(Items.EGG_1944, 1)); - end(); - break; - case 4: - player.getInventory().add(new Item(Items.POT_OF_FLOUR_1933, 1)); - end(); - break; - case 5: - player.getDialogueInterpreter().sendOptions( - "Select an Option", "Potatoes", "Garlic", "Onions", "Cheese"); - stage = 2; - break; - } - break; - case 2: - switch (buttonId) { - case 1: - player.getInventory().add(new Item(Items.POTATO_1942, 1)); - end(); - break; - case 2: - player.getInventory().add(new Item(Items.GARLIC_1550, 1)); - end(); - break; - case 3: - player.getInventory().add(new Item(Items.ONION_1957, 1)); - end(); - break; - case 4: - player.getInventory().add(new Item(Items.CHEESE_1985, 1)); - end(); - break; - } - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 42048 }; - } - } -} \ No newline at end of file diff --git a/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfListener.kt b/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfListener.kt index 57761e0c6..ac407f8ad 100644 --- a/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfListener.kt +++ b/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfListener.kt @@ -82,15 +82,10 @@ class ShelfListener : InteractionListener { override fun defineListeners() { on(shelves.keys.toIntArray(), IntType.SCENERY, "Search") { player, node -> - searchShelf(player, node.id) + openDialogue(player, ShelfDialogue(node.id)) return@on true } } - private fun searchShelf(player : Player, shelfId: Int){ - openDialogue(player, ShelfDialogue(shelfId, shelves)) - } - - class ShelfDialogue(shelfId: Int, shelves : Map>>) : AbstractContainer(shelfId, shelves, "shelf") - + class ShelfDialogue(shelfId: Int) : AbstractContainer(shelfId, shelves, "shelf") } \ No newline at end of file diff --git a/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfPlugin.java b/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfPlugin.java deleted file mode 100644 index bf1523f71..000000000 --- a/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfPlugin.java +++ /dev/null @@ -1,239 +0,0 @@ -// package content.global.skill.construction.decoration.kitchen; -// -// -// import core.cache.def.impl.SceneryDefinition; -// import core.game.dialogue.DialoguePlugin; -// import core.game.interaction.OptionHandler; -// import core.game.node.Node; -// import core.game.node.entity.player.Player; -// import core.game.node.item.Item; -// import core.plugin.Initializable; -// import core.plugin.Plugin; -// import core.plugin.ClassScanner; -// import org.rs09.consts.Items; -// -// /** -// * Handles the shelves in the kitchen room. -// * @author Splinter -// */ -// @Initializable -// public final class ShelfPlugin extends OptionHandler { -// -// @Override -// public Plugin newInstance(Object arg) throws Throwable { -// ClassScanner.definePlugin(new ShelfDialogue()); -// for (int i = 13545; i < 13552; i++) { -// SceneryDefinition.forId(i).getHandlers().put("option:search", this); -// } -// return this; -// } -// -// @Override -// public boolean handle(Player player, Node node, String option) { -// player.getDialogueInterpreter().open(778341, node.getId()); -// return true; -// } -// -// /** -// * Dialogue options for the shelves, what a mess! -// * @author Splinter -// * @version 1.0 -// */ -// public final class ShelfDialogue extends DialoguePlugin { -// -// /** -// * Constructs a new {@code ShelfDialogue} {@code Object}. -// */ -// public ShelfDialogue() { -// /** -// * empty. -// */ -// } -// -// /** -// * Constructs a new {@code ShelfDialogue} {@code Object}. -// * @param player the player. -// */ -// public ShelfDialogue(Player player) { -// super(player); -// } -// -// @Override -// public DialoguePlugin newInstance(Player player) { -// return new ShelfDialogue(player); -// } -// -// @Override -// public boolean open(Object... args) { -// int id = (int) args[0]; -// switch (id) { -// case 13545:// wood 1 -// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Clay cup"); -// stage = 1; -// break; -// case 13546:// wood 2 -// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Clay cup", "Empty beer glass"); -// stage = 1; -// break; -// case 13547:// wood 3 -// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Clay cup", "Empty beer glass", "Cake tin"); -// stage = 1; -// break; -// case 13548:// oak 1 -// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Clay cup", "Empty beer glass", "Bowl"); -// stage = 2; -// break; -// case 13549:// oak 2 -// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Porcelain cup", "Empty beer glass", "More Options"); -// stage = 3; -// break; -// case 13550:// teak 1 -// case 13551: -// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Porcelain cup", "Empty beer glass", "More Options"); -// stage = 5; -// break; -// } -// return true; -// } -// -// @Override -// public boolean handle(int interfaceId, int buttonId) { -// if (player.getInventory().freeSlots() < 1) { -// player.sendMessage("You need at least one free inventory space to take from the shelves."); -// end(); -// return true; -// } -// switch (stage) { -// case 1:// all wood shelves -// switch (buttonId) { -// case 1: -// end(); -// player.getInventory().add(new Item(Items.KETTLE_7688, 1)); -// break; -// case 2: -// end(); -// player.getInventory().add(new Item(Items.TEAPOT_7702, 1)); -// break; -// case 3: -// end(); -// player.getInventory().add(new Item(Items.EMPTY_CUP_7728, 1)); -// break; -// case 4: -// end(); -// player.getInventory().add(new Item(Items.BEER_GLASS_1919, 1)); -// break; -// case 5: -// end(); -// player.getInventory().add(new Item(Items.CAKE_TIN_1887, 1)); -// break; -// } -// break; -// case 2:// Oak shelf #1 -// switch (buttonId) { -// case 1: -// end(); -// player.getInventory().add(new Item(Items.KETTLE_7688, 1)); -// break; -// case 2: -// end(); -// player.getInventory().add(new Item(Items.TEAPOT_7702, 1)); -// break; -// case 3: -// end(); -// player.getInventory().add(new Item(Items.EMPTY_CUP_7728, 1)); -// break; -// case 4: -// end(); -// player.getInventory().add(new Item(Items.BEER_GLASS_1919, 1)); -// break; -// case 5: -// end(); -// player.getInventory().add(new Item(Items.BOWL_1923, 1)); -// break; -// } -// break; -// case 3:// Oak shelves #2 only -// switch (buttonId) { -// case 1: -// end(); -// player.getInventory().add(new Item(Items.KETTLE_7688, 1)); -// break; -// case 2: -// end(); -// player.getInventory().add(new Item(Items.TEAPOT_7702, 1)); -// break; -// case 3: -// end(); -// player.getInventory().add(new Item(Items.PORCELAIN_CUP_4244, 1)); -// break; -// case 4: -// end(); -// player.getInventory().add(new Item(Items.BEER_GLASS_1919, 1)); -// break; -// case 5: -// interpreter.sendOptions("Select an Option", "Bowl", "Cake tin"); -// stage = 4; -// break; -// } -// break; -// case 4:// Oak shelves #2 only -// switch (buttonId) { -// case 1: -// end(); -// player.getInventory().add(new Item(Items.BOWL_1923, 1)); -// break; -// case 2: -// end(); -// player.getInventory().add(new Item(Items.CAKE_TIN_1887, 1)); -// break; -// } -// case 5:// teak shelves -// switch (buttonId) { -// case 1: -// end(); -// player.getInventory().add(new Item(Items.KETTLE_7688, 1)); -// break; -// case 2: -// end(); -// player.getInventory().add(new Item(Items.TEAPOT_7702, 1)); -// break; -// case 3: -// end(); -// player.getInventory().add(new Item(Items.PORCELAIN_CUP_7735, 1)); -// break; -// case 4: -// end(); -// player.getInventory().add(new Item(Items.BEER_GLASS_1919, 1)); -// break; -// case 5: -// interpreter.sendOptions("Select an Option", "Bowl", "Pie dish", "Empty pot"); -// stage = 6; -// break; -// } -// break; -// case 6:// teak shelves -// switch (buttonId) { -// case 1: -// end(); -// player.getInventory().add(new Item(Items.BOWL_1923, 1)); -// break; -// case 2: -// end(); -// player.getInventory().add(new Item(Items.PIE_DISH_2313, 1)); -// break; -// case 3: -// end(); -// player.getInventory().add(new Item(Items.EMPTY_POT_1931, 1)); -// break; -// } -// break; -// } -// return true; -// } -// -// @Override -// public int[] getIds() { -// return new int[] { 778341 }; -// } -// } -// } \ No newline at end of file