fixed, ill give you the before and after so you can see the mistake you made
before
Code:
package server.model.players.packets;
import server.Config;
import server.Server;
import server.model.players.Client;
import server.model.players.PacketType;
/**
* Drop Item
**/
public class DropItem implements PacketType {
@Override
public void processPacket(Client c, int packetType, int packetSize) {
int itemId = c.getInStream().readUnsignedWordA();
c.getInStream().readUnsignedByte();
c.getInStream().readUnsignedByte();
int slot = c.getInStream().readUnsignedWordA();
if (System.currentTimeMillis() - c.alchDelay < 1800) {
return;
}
if (c.arenas()) {
c.sendMessage("You can't drop items inside the arena!");
return;
}
if (c.inTrade) {
c.sendMessage("You can't drop items while trading!");
return;
}
boolean droppable = true;
for (int i : Config.UNDROPPABLE_ITEMS) {
if (i == itemId) {
droppable = false;
break;
}
}
if (itemId == 4045) {
int explosiveHit = 15;
c.startAnimation(827);
c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
c.handleHitMask(explosiveHit);
c.dealDamage(explosiveHit);
c.getPA().refreshSkill(3);
c.forcedText = "Ow! That really hurt!";
c.forcedChatUpdateRequired = true;
c.updateRequired = true;
// ORDERING OF BRACKETS IS IMPORTANT!!!! WITH THIS CODE IT WILL ONLY DROP THE ITEM IF THE ID IS 4045
if (itemId == 2379) {
int rockCakeDamage = 50;
c.startAnimation(827);
c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
c.handleHitMask(rockCakeDamage);
c.dealDamage(rockCakeDamage);
c.getPA().refreshSkill(3);
c.forcedChatUpdateRequired = true;
c.updateRequired = true;
}
if (c.playerItemsN[slot] != 0 && itemId != -1
&& c.playerItems[slot] == itemId + 1) {
if (droppable) {
if (c.underAttackBy > 0) {
if (c.getShops().getItemShopValue(itemId) > 1000) {
c.sendMessage("You may not drop items worth more than 1000 while in combat.");
return;
}
}
Server.itemHandler.createGroundItem(c, itemId, c.getX(),
c.getY(), c.playerItemsN[slot], c.getId());
c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
} else {
c.sendMessage("This items cannot be dropped.");
}
}
}
}
after
Code:
package server.model.players.packets;
import server.Config;
import server.Server;
import server.model.players.Client;
import server.model.players.PacketType;
/**
* Drop Item
**/
public class DropItem implements PacketType {
@Override
public void processPacket(Client c, int packetType, int packetSize) {
int itemId = c.getInStream().readUnsignedWordA();
c.getInStream().readUnsignedByte();
c.getInStream().readUnsignedByte();
int slot = c.getInStream().readUnsignedWordA();
if (System.currentTimeMillis() - c.alchDelay < 1800) {
return;
}
if (c.arenas()) {
c.sendMessage("You can't drop items inside the arena!");
return;
}
if (c.inTrade) {
c.sendMessage("You can't drop items while trading!");
return;
}
boolean droppable = true;
for (int i : Config.UNDROPPABLE_ITEMS) {
if (i == itemId) {
droppable = false;
break;
}
}
if (itemId == 4045) {
int explosiveHit = 15;
c.startAnimation(827);
c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
c.handleHitMask(explosiveHit);
c.dealDamage(explosiveHit);
c.getPA().refreshSkill(3);
c.forcedText = "Ow! That really hurt!";
c.forcedChatUpdateRequired = true;
c.updateRequired = true;
}
if (itemId == 2379) {
int rockCakeDamage = 50;
c.startAnimation(827);
c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
c.handleHitMask(rockCakeDamage);
c.dealDamage(rockCakeDamage);
c.getPA().refreshSkill(3);
c.forcedChatUpdateRequired = true;
c.updateRequired = true;
}
if (c.playerItemsN[slot] != 0 && itemId != -1
&& c.playerItems[slot] == itemId + 1) {
if (droppable) {
if (c.underAttackBy > 0) {
if (c.getShops().getItemShopValue(itemId) > 1000) {
c.sendMessage("You may not drop items worth more than 1000 while in combat.");
return;
}
}
Server.itemHandler.createGroundItem(c, itemId, c.getX(),
c.getY(), c.playerItemsN[slot], c.getId());
c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
} else {
c.sendMessage("This items cannot be dropped.");
}
}
}