Fix bug where leveling up while Smelting would consume ores. (#473)

* Fix bug where leveling up while Smelting would consume ores.

* Making sending message before adding skill xp more consistent.
If you level up while smelting iron, playerSkillProp[13] gets cleared and getItemName will fallback to Unarmed
This commit is contained in:
Nick Gal
2021-02-03 17:32:34 -08:00
committed by GitHub
parent fa167bacd3
commit 15ab625349
2 changed files with 10 additions and 12 deletions
@@ -63,8 +63,8 @@ public class SkillHandler {
player.isSmithing = false;
} else if (isSkilling[12]) {// crafting
isSkilling[12] = false;
} else if (player.isSmelting) {
player.isSmelting = false;
} else if (player.isSmelting || player.playerSkilling[13]) {// smelting
Smelting.resetSmelting(player);
} else if (player.isCrafting) {
player.isCrafting = false;
} else if (player.isPotionMaking) {// herblore
@@ -77,8 +77,6 @@ public class SkillHandler {
player.isPotCrafting = false;
} else if (player.playerIsCooking) {// cooking
Cooking.setCooking(player, false);
} else if (player.playerSkilling[13]) {// smelting
Smelting.resetSmelting(player);
}
}
@@ -96,8 +94,8 @@ public class SkillHandler {
player.isSmithing = false;
} else if (isSkilling[12]) {// crafting
isSkilling[12] = false;
} else if (player.isSmelting) {
player.isSmelting = false;
} else if (player.isSmelting || player.playerSkilling[13]) {// smelting
Smelting.resetSmelting(player);
} else if (player.isCrafting) {
player.isCrafting = false;
} else if (player.isPotionMaking) {// herblore
@@ -127,27 +127,27 @@ public class Smelting extends SkillHandler {
if (c.playerSkillProp[13][3] == IRON && c.playerSkillProp[13][4] == -1 && c.isSmelting) {
// Ring of forging
if (c.playerEquipment[c.playerRing] == 2568) {
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
} else {
if (Misc.random(100) >= 50) {
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
} else {
c.getPacketSender().sendMessage("You failed to smelt the iron bar.");
}
}
} else if (c.playerSkillProp[13][3] == GOLD && c.playerEquipment[c.playerHands] == 776 && c.isSmelting) {
c.getPacketSender().sendMessage("You receive a " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
c.getPlayerAssistant().addSkillXP(56.2, c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPlayerAssistant().addSkillXP(56.2, c.playerSmithing);
} else if (c.isSmelting){
c.getPacketSender().sendMessage("You receive a " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
}
////////////////////// CHECKING //////////////////////