From 4991b07ff81fc5cbcd8088f7559915fc821f599d Mon Sep 17 00:00:00 2001 From: randy Date: Fri, 21 Mar 2025 14:59:52 -0600 Subject: [PATCH] Changes to Gold Satchel Only coal will be used from the satchel when smelting, the other ores must be in the inventory (to prevent smelting more than you can carry). Bars and gems (cut and uncut) can now also be stored in the satchel. --- .../global/handlers/item/SnowscapeSatchelListener.kt | 4 ++-- .../global/skill/smithing/smelting/SmeltingPulse.java | 10 ++++++---- .../core/game/node/entity/npc/drop/NPCDropTables.java | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Server/src/main/content/global/handlers/item/SnowscapeSatchelListener.kt b/Server/src/main/content/global/handlers/item/SnowscapeSatchelListener.kt index 7df3b7d74..d2fb6fbac 100755 --- a/Server/src/main/content/global/handlers/item/SnowscapeSatchelListener.kt +++ b/Server/src/main/content/global/handlers/item/SnowscapeSatchelListener.kt @@ -138,9 +138,9 @@ class SnowscapeSatchelListener : InteractionListener { when (satchelId) { plainSatchelId -> return itemId !in satchelIds greenSatchelId -> return (Item(itemId).getName().contains(" seed") || Item(itemId).getName().contains("Grimy") || Item(itemId).getName().contains("Clean ")) - redSatchelId -> return itemId in intArrayOf(12158,12159,12160,12161,12162,12163,12164,12165,12166,12167,12168) || Item(itemId).getName().equals("Clue scroll") + redSatchelId -> return itemId in intArrayOf(*(12158..12168).toList().toIntArray()) || Item(itemId).getName().equals("Clue scroll") blackSatchelId -> return itemId in intArrayOf(995) - goldSatchelId -> return itemId in intArrayOf(436,438,440,442,444,446,447,449,451,453,668,2892) + goldSatchelId -> return itemId in intArrayOf(436,438,440,442,444,446,447,449,451,453,668,2892,2349,2351,2353,2355,2357,2359,2361,2363,2365,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,6571,6573) runeSatchelId -> return itemId in intArrayOf(558,559,564,562,9075,561,563,560,565,566) || (getAttribute(player,"snowscape:boostedmode",false) && itemId in intArrayOf(556,555,557,554,4694,4695,4696,4697,4698,4699)) } return false diff --git a/Server/src/main/content/global/skill/smithing/smelting/SmeltingPulse.java b/Server/src/main/content/global/skill/smithing/smelting/SmeltingPulse.java index e3e06df64..fc5e01696 100644 --- a/Server/src/main/content/global/skill/smithing/smelting/SmeltingPulse.java +++ b/Server/src/main/content/global/skill/smithing/smelting/SmeltingPulse.java @@ -99,10 +99,12 @@ public class SmeltingPulse extends SkillPulse { return false; } for (Item item : bar.getOres()) { - //Snowscape modification: check gold satchel for ores as well, if carried - if (!player.getInventory().contains(item.getId(), item.getAmount()) && !(inEquipmentOrInventory(player, 10881, 1) && player.goldSatchel.contains(item.getId(), item.getAmount()))) { - player.getPacketDispatch().sendMessage("You do not have the required ores to make this bar."); - return false; + //Snowscape modification: check gold satchel for coal as well, if carried + if (!player.getInventory().contains(item.getId(), item.getAmount())) { + if (!(item.getId() == Items.COAL_453 && inEquipmentOrInventory(player, 10881, 1) && player.goldSatchel.contains(item.getId(), item.getAmount()))) { + player.getPacketDispatch().sendMessage("You do not have the required ores to make this bar."); + return false; + } } } return true; diff --git a/Server/src/main/core/game/node/entity/npc/drop/NPCDropTables.java b/Server/src/main/core/game/node/entity/npc/drop/NPCDropTables.java index 07a58af70..4f55c9bd1 100644 --- a/Server/src/main/core/game/node/entity/npc/drop/NPCDropTables.java +++ b/Server/src/main/core/game/node/entity/npc/drop/NPCDropTables.java @@ -274,7 +274,7 @@ public final class NPCDropTables { //Snowscape modification: loot certain items into the satchels if carried private boolean handleSatchel(Player player, Item item) { for (int satchelId = 10877; satchelId <= 10882; satchelId++) { - if (inEquipmentOrInventory(player,satchelId,1) && SnowscapeSatchelListener.Companion.isAllowed(player,satchelId,item.getId())){ + if (inEquipmentOrInventory(player,satchelId,1) && SnowscapeSatchelListener.Companion.isAllowed(player,satchelId,unnote(item).getId())){ if (satchelId == 10877 && !player.plainSatchel.contains(item.getId(),1)) { continue; }