Originally Posted by
lare96
Post the code to your first click item packet.
ClickItem code:
Code:
public class ClickItem implements PacketType {
@Override
public void processPacket(Client c, int packetType, int packetSize) {
c.getInStream().readSignedWordBigEndianA();
int itemSlot = c.getInStream().readUnsignedWordA();
int itemId = c.getInStream().readUnsignedWordBigEndian();
c.printPacketLog("Player clicked item " + ItemAssistant.getItemName(itemId) + " in item slot " + itemSlot);
if (itemId != c.playerItems[itemSlot] - 1) {
return;
}
if (Prayer.IsABone(c, itemId)) {
Prayer.buryBone(c, itemId);
}
if (c.getPotions().isPotion(itemId)) {
c.getPotions().handlePotion(itemId,itemSlot);
}
if(Herblore.isHerb(itemId)) {
Herblore.cleanTheHerb(c, itemId);
}
if (c.getFood().isFood(itemId)) {
c.getFood().eat(itemId,itemSlot);
}
if (c.getPotions().isPotion(itemId)) {
c.getPotions().handlePotion(itemId,itemSlot);
}
Herblore cleanTheHerb code:
Code:
public static void cleanTheHerb(Client c, int itemId) {
for(int i = 0; i < CLEAN_DATA.length; i++) {
if(itemId == CLEAN_DATA[i][0]) {
if(c.playerLevel[c.playerHerblore] < CLEAN_DATA[i][2]) {
c.sendMessage("You haven't got high enough Herblore level to clean this herb!");
c.sendMessage("You need the Herblore level of "+ CLEAN_DATA[i][2] +" to clean this herb.");
// PlayerAssistant.sendStatement(c, "You need the herblore level of "+ CLEAN_DATA[i][2] +" to clean this herb.");
resetHerblore(c);
return;
}
// PlayerAssistant.addSkillXP(c, CLEAN_DATA[i][3], c.playerHerblore);
c.isGainingExp = true;
c.getPA().addSkillXP(CLEAN_DATA[i][3] * Config.HERBLORE_EXPERIENCE, c.playerHerblore);
c.isGainingExp = false;
c.getItems().deleteItem(CLEAN_DATA[i][0], c.getItems().getItemSlot(CLEAN_DATA[i][0]), 1);
c.getItems().addItem(CLEAN_DATA[i][1], 1);
c.sendMessage("You clean the herb.");
}
}
}