Untitled
unknown
java
4 years ago
50 kB
13
Indexable
package com.rs.game.player;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import com.rs.cache.loaders.ItemDefinitions;
import com.rs.game.Animation;
import com.rs.game.Entity;
import com.rs.game.Graphics;
import com.rs.game.WorldTile;
import com.rs.game.activites.duel.ArenaControler;
import com.rs.game.activites.lastmanstanding.game.LastManStandingGameController;
import com.rs.game.activites.lastmanstanding.lobby.LastManStandingLobbyController;
import com.rs.game.activites.lastmanstanding.postgame.LastManStandingPostGameController;
import com.rs.game.item.Item;
import com.rs.game.item.ItemsContainer;
import com.rs.game.npc.NPC;
import com.rs.game.npc.others.Revenant;
import com.rs.game.player.actions.firemaking.Bonfire;
import com.rs.game.player.content.ItemConstants;
import com.rs.game.player.content.Magic;
import com.rs.game.player.content.SkillCapeCustomizer;
import com.rs.game.player.content.items.EliteOutfits;
import com.rs.game.player.content.items.PrayerBooks;
import com.rs.game.player.controllers.DungeonController;
import com.rs.game.player.dialogue.impl.Transportation;
import com.rs.game.player.rebirth.data.RebirthSkillsData.RebirthPerks;
import com.rs.game.player.rebirth.data.RebirthSkillsData.RebirthPerks10;
import com.rs.network.protocol.codec.decode.WorldPacketsDecoder;
import com.rs.network.protocol.codec.decode.impl.ButtonHandler;
import com.rs.utils.Colors;
import com.rs.utils.ItemExamines;
import com.rs.utils.ItemWeights;
import com.rs.utils.Utils;
import lombok.val;
public final class Equipment implements Serializable {
public static final class SavedCosmetic implements Serializable {
/**
*
*/
private static final long serialVersionUID = 3243926269985535095L;
private ItemsContainer<Item> cosmeticItems;
private String cosmeticName;
public SavedCosmetic(String cosmeticName, ItemsContainer<Item> cosmeticItems) {
this.cosmeticName = cosmeticName;
this.cosmeticItems = cosmeticItems;
}
public ItemsContainer<Item> getCosmeticItems() {
return cosmeticItems;
}
public String getCosmeticName() {
return cosmeticName;
}
}
private static final long serialVersionUID = -4147163237095647617L;
public static final byte SLOT_HAT = 0, SLOT_CAPE = 1, SLOT_AMULET = 2, SLOT_WEAPON = 3, SLOT_CHEST = 4,
SLOT_SHIELD = 5, SLOT_LEGS = 7, SLOT_HANDS = 9, SLOT_FEET = 10, SLOT_RING = 12, SLOT_ARROWS = 13,
SLOT_AURA = 14, SLOT_POCKET = 17;
public static boolean hideArms(Item item) {
return item.getDefinitions().getEquipType() == 6;
}
/**
* public static boolean scrimshaw(Item item) { String name =
* item.getName().toLowerCase(); return item.getDefinitions().getEquipType() ==
* 17 || name.contains("scrimshaw"); }
**/
public static boolean hideHair(Item item) {
String name = item.getName().toLowerCase();
return item.getDefinitions().getEquipType() == 8 || name.contains("full helm")
|| (name.startsWith("void") && name.contains("ranger")) || name.contains("dragon mask")
|| name.contains("we'en mask") || name.contains("fox mask");
}
public static boolean showBear(Item item) {
String name = item.getName().toLowerCase();
return !hideHair(item) || name.contains("horns") || name.contains("hat") || name.contains("afro")
|| name.contains("bronze full") || name.contains("cowl") || name.contains("tattoo")
|| name.contains("headdress") || name.contains("hood") || name.contains("bearhead")
|| name.equals("santa hat") || name.contains("partyhat") || name.contains("sleeping")
|| name.contains("coif") || name.contains("wig") || name.contains("bandana") || name.contains("mitre")
|| (name.contains("mask") && !name.contains("ween") && !name.contains("sirenic"))
|| name.contains("med helm") || name.contains("chicken head")
|| (name.contains("helm") && !name.contains("full") || name.contains("headwear")
|| item.getId() == 32386);
}
private ItemsContainer<Item> items;
private boolean[] hiddenSlots;
private boolean hideAll;
private transient double equipmentWeight;
public void checkItems() {
if (cosmeticItems == null) {
cosmeticItems = new ItemsContainer<>(19, false);
}
if (keepSakeItems == null) {
keepSakeItems = new ArrayList<>(50);
}
if (savedCosmetics == null) {
savedCosmetics = new ArrayList<>();
}
int size = items.getSize();
int newSize = 15;
if (size != newSize) {
Item[] copy = items.getItemsCopy();
items = new ItemsContainer<Item>(newSize, false);
items.addAll(copy);
}
for (int i = 0; i < size; i++) {
Item item = items.get(i);
if (item == null) {
continue;
}
if (!ItemConstants.canWear(item, player)) {
items.set(i, null);
player.getInventory().addItemDrop(item.getId(), item.getAmount());
}
}
}
private transient Player player;
private transient int equipmentHpIncrease;
// cosmetics
private ItemsContainer<Item> cosmeticItems;
private transient ItemsContainer<Item> cosmeticPreviewItems;
private List<Item> keepSakeItems;
private List<SavedCosmetic> savedCosmetics;
private int costumeColor;
static final int[] DISABLED_SLOTS = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 };
// try
public static int getItemSlot(int itemId) {
if (itemId == 14632) {
return Equipment.SLOT_SHIELD;
}
if (itemId == 1917 || itemId == 1963 || itemId == 8794 || itemId == 288) {
return -1;
}
return ItemDefinitions.getItemDefinitions(itemId).getEquipSlot();
}
public static boolean isTwoHandedWeapon(Item item) {
return item.getDefinitions().getEquipType() == 5;
}
/**
* Sets the attack render animation.
*
* @param player The player to set the r'emote to.
*/
public int getWeaponStance() {
boolean combatStance = player.getCombatDefinitions().isCombatStance();
Item weapon = items.get(3);
if (weapon == null) {
Item offhand = items.get(SLOT_SHIELD);
if (offhand == null) {
return combatStance ? 2688 : 2699;
}
int emote = offhand.getDefinitions().getCombatOpcode(combatStance ? 2955 : 2954);
return emote == 0 ? combatStance ? 2688 : 2699 : emote;
}
int emote = weapon.getDefinitions().getCombatOpcode(combatStance ? 2955 : 2954);
if (weapon.getId() == 4084) {
return 1119;
}
return emote == 0 ? combatStance ? 2688 : 2699 : emote;
}
public Equipment() {
items = new ItemsContainer<Item>(15, false);
cosmeticItems = new ItemsContainer<>(15, false);
keepSakeItems = new ArrayList<>(50);
savedCosmetics = new ArrayList<>();
hiddenSlots = new boolean[15];
}
public void deleteItem(int itemId, int amount) {
Item[] itemsBefore = items.getItemsCopy();
items.remove(new Item(itemId, amount));
refreshItems(itemsBefore);
}
public int getAmmoId() {
Item item = items.get(SLOT_ARROWS);
if (item == null) {
return -1;
}
return item.getId();
}
public int getAmuletId() {
Item item = items.get(SLOT_AMULET);
if (item == null) {
return -1;
}
return item.getId();
}
public int getAuraId() {
Item item = items.get(SLOT_AURA);
if (item == null) {
return -1;
}
return item.getId();
}
/**
* public int getScrimshawId() { Item item = items.get(SLOT_POCKET); if (item ==
* null) return -1; return item.getId(); }
**/
public int getBootsId() {
Item item = items.get(SLOT_FEET);
if (item == null) {
return -1;
}
return item.getId();
}
public int getCapeId() {
Item item = items.get(SLOT_CAPE);
if (item == null) {
return -1;
}
return item.getId();
}
public int getChestId() {
Item item = items.get(SLOT_CHEST);
if (item == null) {
return -1;
}
return item.getId();
}
public int getEquipmentHpIncrease() {
return equipmentHpIncrease;
}
public int getGlovesId() {
Item item = items.get(SLOT_HANDS);
if (item == null) {
return -1;
}
return item.getId();
}
public int getHatId() {
Item item = items.get(SLOT_HAT);
if (item == null) {
return -1;
}
return item.getId();
}
public Item getItem(int slot) {
return items.get(slot);
}
public ItemsContainer<Item> getItems() {
return items;
}
public int getLegsId() {
Item item = items.get(SLOT_LEGS);
if (item == null) {
return -1;
}
return item.getId();
}
public int getRingId() {
Item item = items.get(SLOT_RING);
if (item == null) {
return -1;
}
return item.getId();
}
public int getShieldId() {
Item item = items.get(SLOT_SHIELD);
if (item == null) {
return -1;
}
return item.getId();
}
public int getWeaponId() {
Item item = items.get(SLOT_WEAPON);
if (item == null) {
return -1;
}
return item.getId();
}
public boolean hasShield() {
return items.get(5) != null;
}
public boolean hasTwoHandedWeapon() {
Item weapon = items.get(SLOT_WEAPON);
return weapon != null && isTwoHandedWeapon(weapon);
}
public void init() {
if (cosmeticItems == null) {
cosmeticItems = new ItemsContainer<>(15, false);
}
if (hiddenSlots == null) {
hiddenSlots = new boolean[15];
}
if (keepSakeItems == null) {
keepSakeItems = new ArrayList<>(50);
}
if (savedCosmetics == null) {
savedCosmetics = new ArrayList<>();
}
player.getPackets().sendItems(94, items);
refresh(null);
}
public void refreshItemContainer() {
player.getPackets().sendItems(94, items);
refresh();
}
public void refresh(int... slots) {
if (slots != null) {
if (player.getTemporaryAttributtes().get("Cosmetics") != null) {
Item[] cosmetics = items.getItemsCopy();
for (int i = 0; i < cosmetics.length; i++) {
Item item = cosmetics[i];
if (item == null) {
cosmetics[i] = new Item(0);
}
}
player.getPackets().sendUpdateItems(94, cosmetics, slots);
} else {
player.getPackets().sendUpdateItems(94, items, slots);
}
player.getCombatDefinitions().checkAttackStyle();
}
player.getCombatDefinitions().refreshBonuses();
refreshConfigs(slots == null);
}
public int rebirthHpIncrease() {
boolean hpRebirthPerk = player.Rebirth().isActivatedFirstPerk(RebirthPerks.CONSTITUION);
// if (hpRebirthPerk) {
// return (int) player.Rebirth().getFirstPerkBenefit(RebirthPerks.CONSTITUION);
// }
return 0;
}
private int hpIncrease(int equipSlot, int itemId) {
switch (equipSlot) {
case Equipment.SLOT_HAT:
switch (itemId) {
// elite nex armour
case 18418:
case 18428:
case 18438:
return 69;
// nex armour
case 20135:// torva
case 20137:// augmented torva
case 20147:// pernix
case 20149:// augmented pernix
case 20159:// virtus
case 20161:// augmented virtus
return 66;
case 26325:// tetsu helm
case 26328: // Tetsu helm (worn)
case 26337:// seasinger
case 26340: // Seasinger's hood (worn)
case 26346:// death lotus
case 26349: // Death Lotus hood (worn)
return 93;
case 26322:// superior tetsu helm
case 26334:// superior sea singer
case 26352:// superior death lotus
return 106;
case 18376:// elite bandos helm
case 18386:// elite armadyl helm
case 18396:// elite dragon mage
return 26;
}
break;
case Equipment.SLOT_CHEST:
switch (itemId) {
// elite nex armour
case 18420:
case 18430:
case 18440:
return 211;
case 20139:// torva
case 20141:// torva
case 20151:// pernix
case 20153:// pernix
case 20163:// virtus
case 20165:// virtus
case 36481:// augmented torva
case 36485:// augmented pernix
case 36477:// augmented virtus
return 200;
case 26326:// tetsu body
case 26329: // Tetsu body (worn)
case 26338:// seassinger body
case 26341: // Seasinger's robe top (worn)
case 26347:// death lotus body
case 26350: // Death Lotus chestplate (worn)
return 280;
case 26323:// superior tetsu body
case 26335:// superior tetsu body
case 26353:// death lotus body
return 320;
case 18378: // Elite Bandos chestplate
case 18412: // Augmented Elite Bandos chestplate
case 18388: // Elite Armadyl chestplate
case 18414: // Augmented Elite Armadyl chestplate
case 18398: // Elite Dragon mage top
case 18416: // Augmented Elite Dragon mage top
return 94;
}
break;
case Equipment.SLOT_LEGS:
switch (itemId) {
// elite nex armour
case 18422:
case 18432:
case 18442:
return 138;
case 20143:
case 20145: // torva
case 20155:
case 20157: // pernix
case 20167:
case 20169: // virtus
case 36483: // augmented torva
case 36487: // augmented pernix
case 36479: // augmented virtus
return 134;
case 26327:// Tetsu platelegs
case 26330: // Tetsu platelegs (worn)
case 26339: // Seasinger's robe bottom
case 26342: // Seasinger's robe bottom (worn)
case 26348: // Death Lotus chaps
case 26351: // Death Lotus chaps (worn)
return 188;
case 26324: // Superior tetsu platelegs
case 26336: // Superior seasinger's robe bottom
case 26354: // Superior Death Lotus chaps
return 214;
case 18380: // Elite Bandos tassets
case 18413: // Augmented Elite Bandos tassets
case 18390: // Elite Armadyl chainskirt
case 18415: // Augmented Elite Armadyl chainskirt
case 18400: // Elite Dragon mage bottoms
case 18417: // Augmented Elite Dragon mage bottoms
return 62;
}
break;
case Equipment.SLOT_FEET:
switch (itemId) {
// elite nex armour
case 18426:
case 18446:
case 18436:
return 27;
case 18384: // Elite Bandos boots
case 18394: // Elite Armadyl boots
case 18404: // Elite Dragon mage boots
return 10;
}
break;
case Equipment.SLOT_HANDS:
switch (itemId) {
// elite nex armour
case 18424:
case 18434:
case 18444:
return 17;
case 18382: // Elite Bandos gloves
case 18392: // Elite Armadyl gloves
case 18402: // Elite Dragon mage gloves
return 6;
}
break;
}
return 0;
}
public void refreshConfigs(boolean init) {
double hpIncrease = 0;
for (int index = 0; index < items.getSize(); index++) {
Item item = items.get(index);
if (item == null) {
continue;
}
refreshItems(item);
hpIncrease += hpIncrease(index, item.getId());
if (player.getLastBonfire() > 0) {
int maxhp = player.getSkills().getLevel(Skills.HITPOINTS) * 10;
hpIncrease += (maxhp * (Bonfire.getBonfireBoostMultiplier(player)
* (player.Rebirth().isActivatedSecondPerk(RebirthPerks10.FIREMAKING) ? 1.5 : 1))) - maxhp;
}
if (player.getHpBoostMultiplier() != 0) {
int maxhp = player.getSkills().getLevel(Skills.HITPOINTS) * 10;
hpIncrease += maxhp * player.getHpBoostMultiplier();
}
if (hpIncrease != equipmentHpIncrease) {
equipmentHpIncrease = (int) hpIncrease;
if (!init) {
player.refreshHitPoints();
}
}
double w = 0;
for (Item item1 : items.getItems()) {
if (item1 == null) {
continue;
}
w += ItemWeights.getWeight(item1, true);
}
equipmentWeight = w;
player.getPackets().refreshWeight();
}
}
public double getEquipmentWeight() {
return equipmentWeight;
}
public void refreshItems(Item[] itemsBefore) {
int[] changedSlots = new int[itemsBefore.length];
int count = 0;
for (int index = 0; index < itemsBefore.length; index++) {
if (itemsBefore[index] != items.getItems()[index]) {
changedSlots[count++] = index;
}
}
int[] finalChangedSlots = new int[count];
System.arraycopy(changedSlots, 0, finalChangedSlots, 0, count);
refresh(finalChangedSlots);
}
public void handleEquipment(int componentId, int slotId, int itemId, int packetId) {
player.closeInterfaces();
if (player.getInterfaceManager().containsInventoryInter()) {
return;
}
int option = packetId == WorldPacketsDecoder.ACTION_BUTTON1_PACKET ? 0
: packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET ? 1
: packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET ? 2
: packetId == WorldPacketsDecoder.ACTION_BUTTON4_PACKET ? 3
: packetId == WorldPacketsDecoder.ACTION_BUTTON5_PACKET ? 4
: packetId == WorldPacketsDecoder.ACTION_BUTTON9_PACKET ? 5
: packetId == WorldPacketsDecoder.ACTION_BUTTON8_PACKET ? 6
: -1;
if (option == -1) {
return;
}
ItemDefinitions def = ItemDefinitions.getItemDefinitions(itemId);
if (itemId >= 39893 && itemId <= 39901) {
if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
player.getDialogueManager().startDialogue("AttuneGemstoneArmourD");
return;
} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET) {
player.getDialogueManager().startDialogue("GemstoneChargesD");
return;
}
}
// if(option == )
String clickedOption = def.getEquipmentOptions()[option];
if (slotId == Equipment.SLOT_CAPE && SkillCapeCustomizer.isCustomizable(itemId)) {
switch (clickedOption) {
case "Max Guild":
Magic.compCapeTeleport(player, 2276, 3315, 1);
break;
case "Kandarin Monastery":
Magic.compCapeTeleport(player, 2606, 3222, 0);
break;
case "Summoning restore":
Long sumRestore = (Long) player.getTemporaryAttributtes().get("sum_restore");
if (sumRestore != null && sumRestore + 1500000 > Utils.currentTimeMillis()) {
player.sendMessage("You can only restore your summoning points once every 15 minutes.");
return;
}
player.getSkills().set(Skills.SUMMONING, 99);
player.getTemporaryAttributtes().put("sum_restore", Utils.currentTimeMillis());
player.sendMessage("Summoning points restored, you can do this again in 15 minutes.");
break;
case "Customise":
SkillCapeCustomizer.startCustomizing(player, itemId);
break;
}
return;
}
switch (componentId) {
case 6:// HAT
if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
if (itemId == 34030 || itemId == 34031 || itemId == 34032 || itemId == 34033 || itemId == 34034
|| itemId == 34035 || itemId == 34036) {
player.getDialogueManager().startDialogue("SunglassesD", itemId);
return;
}
if (EliteOutfits.isComponent(itemId)) {
if (EliteOutfits.wearingSentinel(player)) {
player.getDialogueManager().startDialogue("SentinelTeleports",
EliteOutfits.getPrefix(def.getName()));
} else {
player.getDialogueManager().startDialogue("SimpleItemMessage", 39745, 1,
Colors.shade(Colors.SALMON)
+ "You need to be wearing a full set of matching Sentinel outfit!");
}
return;
}
if (itemId == 24431) {
player.setNextGraphics(new Graphics(3187));
return;
}
if (itemId == 35963 || itemId == 35968 || itemId == 35973 || itemId == 35978) {
Magic.sendNormalTeleportSpell(player, 1, 0, new WorldTile(3134, 3228, 0));
return;
}
if (itemId >= 15493 && itemId <= 15494) {
player.getDialogueManager().startDialogue("Kuradal");
return;
}
if (itemId == 10507) {
player.setNextGraphics(new Graphics(263));
player.setNextAnimation(new Animation(7531));
player.sendMessage("You act like a reindeer.. I think.");
player.lock(2);
return;
}
final Item idam = player.getEquipment().getItem(Equipment.SLOT_HAT);
if (idam != null) {
if (player.getCharges().checkCharges(idam)) {
return;
}
}
}
break;
case 9:// CAPE
switch (packetId) {
case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
if (itemId == 10498 || itemId == 10499 || itemId == 20068) {
player.sendMessage("You can not operate that.");
}
if (itemId == 12645) {
player.setNextAnimation(new Animation(8903));
player.setNextGraphics(new Graphics(1566));
player.lock(6);
}
if (def.isMaxCape() || def.isCompletionistCape()) {
Magic.compCapeTeleport(player, 2274, 3340, 1);
}
if (clickedOption.equals("Communicate")) {
if (itemId == 37694) {
player.getDialogueManager().startDialogue("SkillingMasterD", false);
return;
} else if (itemId == 25450) {
if (player.getContracts().canTalkToAdvancedMaster(true)) {
player.getDialogueManager().startDialogue("SkillingMasterD", true);
}
return;
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
if (def.isMaxCape() || def.isCompletionistCape()) {
SkillCapeCustomizer.startCustomizing(player, itemId);
}
break;
case WorldPacketsDecoder.ACTION_BUTTON8_PACKET:
final Item idam1 = player.getEquipment().getItem(Equipment.SLOT_CAPE);
if (idam1 != null) {
if (player.getCharges().checkCharges(idam1)) {
return;
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON9_PACKET:
if (itemId == 20769 || itemId == 20771 || itemId == 32152 || itemId == 32153) {
SkillCapeCustomizer.startCustomizing(player, itemId);
}
break;
}
break;
case 12:// AMULET
switch (packetId) {
case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
int amuletId = player.getEquipment().getAmuletId();
if (amuletId == 37130 || amuletId >= 39298 && amuletId <= 39307) {
player.getDialogueManager().startDialogue("ChicScarfD", amuletId, true);
return;
} else if (amuletId == 21514) {
player.sendMessage("Your arcane capacitor has "
+ player.getEquipment().getItem(Equipment.SLOT_AMULET).getCharges()
+ " charges left in it.");
return;
}
if (amuletId <= 1712 && amuletId >= 1706) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(3087, 3496, 0))) {
Item amulet = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (amulet != null) {
amulet.setId(amulet.getId() - 2);
player.getEquipment().refresh(Equipment.SLOT_AMULET);
}
}
} else if (amuletId >= 11105 && amuletId <= 11111) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(2614, 3382, 0))) {
Item amulet = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (amulet != null) {
amulet.setId(amulet.getId() + 2);
player.getEquipment().refresh(Equipment.SLOT_AMULET);
}
}
} else if (amuletId == 1704 || amuletId == 10352) {
player.sendMessage("The amulet has ran out of charges.");
return;
} else if (amuletId == 11113) {
player.sendMessage("The amulet has ran out of charges.");
return;
} else if (amuletId >= 3853 && amuletId <= 3867) {
player.getDialogueManager().startDialogue("Transportation2", "Burthrope Games Room",
new WorldTile(2880, 3559, 0), "Barbarian Outpost", new WorldTile(2519, 3571, 0),
"Gamers' Grotto", new WorldTile(2970, 9679, 0), "Corporeal Beast",
new WorldTile(2886, 4377, 0), amuletId);
return;
}
final Item idam2 = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (idam2 != null) {
if (player.getCharges().checkCharges(idam2)) {
return;
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
if (itemId <= 1712 && itemId >= 1706) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(2918, 3176, 0))) {
Item amulet = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (amulet != null) {
amulet.setId(amulet.getId() - 2);
player.getEquipment().refresh(Equipment.SLOT_AMULET);
}
}
} else if (itemId >= 11105 && itemId <= 11111) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(3021, 3339, 0))) {
Item amulet = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (amulet != null) {
amulet.setId(amulet.getId() + 2);
player.getEquipment().refresh(Equipment.SLOT_AMULET);
}
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON4_PACKET:
if (itemId <= 1712 && itemId >= 1706) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(3105, 3251, 0))) {
Item amulet = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (amulet != null) {
amulet.setId(amulet.getId() - 2);
player.getEquipment().refresh(Equipment.SLOT_AMULET);
}
}
} else if (itemId >= 11105 && itemId <= 11111) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(2933, 3296, 0))) {
Item amulet = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (amulet != null) {
amulet.setId(amulet.getId() + 2);
player.getEquipment().refresh(Equipment.SLOT_AMULET);
}
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON5_PACKET:
if (itemId <= 1712 && itemId >= 1706) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(3293, 3163, 0))) {
Item amulet = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (amulet != null) {
amulet.setId(amulet.getId() - 2);
player.getEquipment().refresh(Equipment.SLOT_AMULET);
}
}
} else if (itemId >= 11105 && itemId <= 11111) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(3142, 3440, 0))) {
Item amulet = player.getEquipment().getItem(Equipment.SLOT_AMULET);
if (amulet != null) {
amulet.setId(amulet.getId() + 2);
player.getEquipment().refresh(Equipment.SLOT_AMULET);
}
}
}
break;
}
break;
case 15:// WEAPON
switch (packetId) {
case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
if (itemId == 15426) {
player.setNextAnimation(new Animation(12664));
}
if (itemId == 20084) {
player.setNextAnimation(new Animation(15150));
}
final Item idam3 = player.getEquipment().getItem(Equipment.SLOT_WEAPON);
if (idam3 != null) {
if (player.getCharges().checkCharges(idam3)) {
return;
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
if (itemId == 20084) {
player.setNextGraphics(new Graphics(2953));
player.setNextAnimation(new Animation(15149));
}
break;
}
break;
case 18:// BODY
if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
final Item idam4 = player.getEquipment().getItem(Equipment.SLOT_CHEST);
if (idam4 != null) {
if (player.getCharges().checkCharges(idam4)) {
return;
}
}
}
break;
case 21:// SHIELD
switch (packetId) {
case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
final Item idam5 = player.getEquipment().getItem(Equipment.SLOT_SHIELD);
if (idam5 != null) {
if (PrayerBooks.isGodBook(idam5.getId(), true)) {
PrayerBooks.sermanize(player, idam5.getId());
return;
}
}
int shieldId = player.getEquipment().getShieldId();
if (shieldId == 11283 || shieldId == 25558 || shieldId == 25561) {
if (player.getDFSDelay() >= Utils.currentTimeMillis()) {
player.sendMessage("You must wait two minutes before performing this attack once more.");
return;
}
player.getTemporaryAttributtes().put("dfs_shield_active", true);
} else if (shieldId == 11284 || shieldId == 25559 || shieldId == 25562) {
player.sendMessage("You don't have any charges left in your shield.");
}
break;
case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
final Item idam6 = player.getEquipment().getItem(Equipment.SLOT_SHIELD);
if (idam6.getId() == 14632) {
player.performInstantSpecial(idam6.getId());
return;
}
if (idam6 != null) {
if (idam6.getId() == 30014 || idam6.getId() == 30018 || idam6.getId() == 30022) {
Entity target = (Entity) player.getTemporaryAttributtes().get("last_target");
if (target != null && !target.isDead() && !target.hasFinished()) {
if (target instanceof Player) {
player.sendMessage("You cannot provoke players.");
return;
} else if (target instanceof NPC) {
long lastProvoke = player.getTemporaryAttributtes().get("provoke") == null ? 0
: (long) player.getTemporaryAttributtes().get("provoke");
if (lastProvoke > Utils.currentTimeMillis()) {
final int seconds = (int) ((lastProvoke - Utils.currentTimeMillis()) / 1000 + 1);
player.sendMessage("You need to wait another " + seconds + " second"
+ (seconds == 1 ? "" : "s") + " to use provoke.");
return;
}
player.getTemporaryAttributtes().put("provoke", Utils.currentTimeMillis() + 30000);
target.setTarget(player);
player.setNextAnimation(new Animation(18130));
}
} else {
player.sendMessage("You need to be engaged in combat to use provoke.");
}
return;
}
if (player.getCharges().checkCharges(idam6)) {
return;
}
}
break;
}
break;
case 24:// LEGS
if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
final Item idam7 = player.getEquipment().getItem(Equipment.SLOT_LEGS);
if (idam7 != null) {
if (player.getCharges().checkCharges(idam7)) {
return;
}
}
}
break;
case 27:// HANDS
switch (packetId) {
case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
if (itemId >= 11118 && itemId <= 11124) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(2880, 3542, 0))) {
Item gloves = player.getEquipment().getItem(Equipment.SLOT_HANDS);
if (gloves != null) {
gloves.setId(gloves.getId() + 2);
player.getEquipment().refresh(Equipment.SLOT_HANDS);
}
}
} else if (itemId == 11126) {
player.sendMessage("The bracelet has ran out of charges.");
return;
}
final Item idam8 = player.getEquipment().getItem(Equipment.SLOT_HANDS);
if (itemId >= 13845 && itemId <= 13857) {
player.sendMessage("Your " + idam8.getName() + " have "
+ (int) Math.ceil((double) idam8.getCharges() / Revenant.getBrawlersCharges(itemId) * 100)
+ "% of its charges left.");
return;
}
if (idam8 != null) {
if (player.getCharges().checkCharges(idam8)) {
return;
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
if (itemId >= 11118 && itemId <= 11124) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(3191, 3367, 0))) {
Item gloves = player.getEquipment().getItem(Equipment.SLOT_HANDS);
if (gloves != null) {
gloves.setId(gloves.getId() + 2);
player.getEquipment().refresh(Equipment.SLOT_HANDS);
}
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON4_PACKET:
if (itemId >= 11118 && itemId <= 11124) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(3051, 3491, 0))) {
Item gloves = player.getEquipment().getItem(Equipment.SLOT_HANDS);
if (gloves != null) {
gloves.setId(gloves.getId() + 2);
player.getEquipment().refresh(Equipment.SLOT_HANDS);
}
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON5_PACKET:
if (itemId >= 11118 && itemId <= 11124) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(2655, 3441, 0))) {
Item gloves = player.getEquipment().getItem(Equipment.SLOT_HANDS);
if (gloves != null) {
gloves.setId(gloves.getId() + 2);
player.getEquipment().refresh(Equipment.SLOT_HANDS);
}
}
}
break;
}
break;
case 30:// BOOTS
if (packetId == WorldPacketsDecoder.ACTION_BUTTON2_PACKET) {
final Item idam9 = player.getEquipment().getItem(Equipment.SLOT_FEET);
if (idam9 != null) {
if (idam9.getId() >= 30920 && idam9.getId() <= 30924) {
if (idam9.getCharges() == 0) {
player.sendMessage("There are no charges left in your Silverhawk boots.");
} else {
player.sendMessage("There " + (idam9.getCharges() == 1 ? "is " : "are ")
+ idam9.getCharges() + " charges left in your Silverhawk boots.");
}
return;
}
if (player.getCharges().checkCharges(idam9)) {
return;
}
}
} else if (packetId == WorldPacketsDecoder.ACTION_BUTTON3_PACKET) {
if (player.isUnderCombat()) {
player.sendMessage("You need to be out of combat to do this emote.");
return;
}
player.lock(15);
player.stopAll();
player.setNextAnimation(new Animation(22794));
player.setNextGraphics(new Graphics(4604));
player.setNextGraphics(new Graphics(4603));
return;
}
break;
case 33:// RING
switch (packetId) {
case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
if (itemId == 15707 || ItemDefinitions.getItemDefinitions(itemId).isRingOfKinship()) {
player.getDungManager().openPartyInterface();
return;
}
if (itemId >= 13281 && itemId <= 13288) {
player.getDialogueManager().startDialogue("Kuradal", 9085);
return;
}
if (itemId == 2572) {
player.getInterfaceManager().sendBossKillLog();
return;
}
if (itemId >= 34987 && itemId <= 34995) {
player.getDialogueManager().startDialogue("KethsiRing", itemId, false);
return;
}
if (itemId >= 2552 && itemId <= 2566) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(3315, 3234, 0))) {
Item ring = player.getEquipment().getItem(Equipment.SLOT_RING);
if (ring != null) {
if (ring.getId() == 2566) {
ring.setId(1635);
} else {
ring.setId(ring.getId() + 2);
}
player.getEquipment().refresh(Equipment.SLOT_RING);
}
}
return;
}
if (itemId == 2568) {
int left = 140 - player.ironOres;
player.sendMessage("Your ring of forging has " + Colors.RED + left + "</col> charges left.");
return;
}
if (itemId >= 20655 && itemId <= 20659) {
Magic.sendItemTeleportSpell(player, true, 9603, 1684, 4, new WorldTile(2581, 3845, 0));
Item ring = player.getEquipment().getItem(Equipment.SLOT_RING);
ring.setId(ring.getId() - 2);
player.getEquipment().refresh(Equipment.SLOT_RING);
return;
}
if (itemId == 20653) {
Magic.sendItemTeleportSpell(player, true, 9603, 1684, 4, new WorldTile(2581, 3845, 0));
Item ring = player.getEquipment().getItem(Equipment.SLOT_RING);
player.getEquipment().refresh(Equipment.SLOT_RING);
ring.setId(2572);
return;
}
final Item idam9 = player.getEquipment().getItem(Equipment.SLOT_RING);
if (idam9 != null) {
if (player.getCharges().checkCharges(idam9)) {
return;
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
if (itemId == 15707) {
Magic.daemonheimTeleport(player, new WorldTile(3448, 3699, 0));
return;
} else if (ItemDefinitions.getItemDefinitions(itemId).isRingOfKinship()) {
player.getRingOfKinship().quickSwitch(new Item(itemId));
return;
}
if (itemId >= 13281 && itemId <= 13288) {
player.getDialogueManager().startDialogue("Kuradal", 9085);
return;
}
if (itemId >= 2552 && itemId <= 2566) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(2442, 3088, 0))) {
Item ring = player.getEquipment().getItem(Equipment.SLOT_RING);
if (ring != null) {
if (ring.getId() == 2566) {
ring.setId(1635);
} else {
ring.setId(ring.getId() + 2);
}
player.getEquipment().refresh(Equipment.SLOT_RING);
}
}
}
if (itemId >= 20655 && itemId <= 20659) {
Magic.sendItemTeleportSpell(player, true, 9603, 1684, 4, new WorldTile(3164, 3468, 0));
Item ring = player.getEquipment().getItem(Equipment.SLOT_RING);
ring.setId(ring.getId() - 2);
player.getEquipment().refresh(Equipment.SLOT_RING);
return;
}
if (itemId == 20653) {
Magic.sendItemTeleportSpell(player, true, 9603, 1684, 4, new WorldTile(3164, 3468, 0));
Item ring = player.getEquipment().getItem(Equipment.SLOT_RING);
ring.setId(2572);
player.getEquipment().refresh(Equipment.SLOT_RING);
return;
}
break;
case WorldPacketsDecoder.ACTION_BUTTON4_PACKET:
/*
* if (itemId == 15707) { player.sendMessage("You cannot customise your ring.");
* return; }
*/
if (itemId == 15707 || ItemDefinitions.getItemDefinitions(itemId).isRingOfKinship()) {
player.getRingOfKinship().openInterface(new Item(itemId, 1));
// player.getRingOfKinship().openInterface(new Item(itemId, 1));
// System.out.println(packetId);
// Magic.daemonheimTeleport(player, new WorldTile(3448,
// 3699, 0));
return;
}
if (itemId >= 13281 && itemId <= 13288) {
player.getInterfaceManager().sendInterface(1309);
return;
}
if (itemId >= 2552 && itemId <= 2566) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(2413, 2848, 0))) {
Item ring = player.getEquipment().getItem(Equipment.SLOT_RING);
if (ring != null) {
if (ring.getId() == 2566) {
ring.setId(1635);
} else {
ring.setId(ring.getId() + 2);
}
player.getEquipment().refresh(Equipment.SLOT_RING);
}
}
}
break;
case WorldPacketsDecoder.ACTION_BUTTON5_PACKET:
if (itemId >= 2552 && itemId <= 2566) {
if (Magic.sendItemTeleportSpell(player, true, Transportation.EMOTE, Transportation.GFX, 4,
new WorldTile(1679, 5599, 0))) {
Item ring = player.getEquipment().getItem(Equipment.SLOT_RING);
if (ring != null) {
if (ring.getId() == 2566) {
ring.setId(1635);
} else {
ring.setId(ring.getId() + 2);
}
player.getEquipment().refresh(Equipment.SLOT_RING);
}
}
}
break;
}
break;
case 37:// ARROWS
break;
case 46:// AURA
switch (packetId) {
case WorldPacketsDecoder.ACTION_BUTTON2_PACKET:
player.getAuraManager().activate();
break;
case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
player.getAuraManager().sendAuraRemainingTime();
break;
case WorldPacketsDecoder.ACTION_BUTTON4_PACKET:
ButtonHandler.sendRemove(player, Equipment.SLOT_AURA, false);
player.getAuraManager().removeAura();
break;
}
break;
case 38:
player.closeInterfaces();
ButtonHandler.openEquipmentBonuses(player, false);
break;
case 41:
player.stopAll();
if (player.getControlerManager().getControler() instanceof DungeonController) {
// player.getDungeoneeringToolbelt().openToolbelt();
return;
}
player.getInterfaceManager().sendInterface(1178);
player.getToolBelt().refresh();
break;
}
switch (packetId) {
case WorldPacketsDecoder.ACTION_BUTTON1_PACKET:
ButtonHandler.sendRemove(player, componentId == 6 ? 0
: componentId == 9 ? 1
: componentId == 12 ? 2
: componentId == 37 ? 13
: componentId == 15 ? 3
: componentId == 18 ? 4
: componentId == 21 ? 5
: componentId == 24 ? 7
: componentId == 27 ? 9
: componentId == 30 ? 10
: componentId == 33 ? 12
: componentId == 45
? 14
: -1,
false);
break;
case WorldPacketsDecoder.ACTION_BUTTON3_PACKET:
if (itemId == 34200 || itemId == 34205 || itemId == 34210 || itemId == 34215) {
player.getDialogueManager().startDialogue("SharkConsumeOption");
return;
}
break;
case WorldPacketsDecoder.ACTION_BUTTON8_PACKET:
player.getEquipment().sendExamine(componentId == 6 ? 0
: componentId == 9 ? 1
: componentId == 12 ? 2
: componentId == 37 ? 13
: componentId == 15 ? 3
: componentId == 18 ? 4
: componentId == 21 ? 5
: componentId == 24 ? 7
: componentId == 27 ? 9
: componentId == 30 ? 10
: componentId == 33 ? 12
: componentId == 45
? 14
: -1);
break;
}
}
public void removeAmmo(int ammoId, int ammount) {
if (ammount == -1) {
val superiorMorrigansJavelinItemId = 39139;
val superiorMorrigansThrowingAxeItemId = 39143;
if (ammoId == superiorMorrigansJavelinItemId || ammoId == superiorMorrigansThrowingAxeItemId) {
return;
}
items.remove(SLOT_WEAPON, new Item(ammoId, 1));
refresh(SLOT_WEAPON);
} else {
items.remove(SLOT_ARROWS, new Item(ammoId, ammount));
refresh(SLOT_ARROWS);
}
player.getAppearence().generateAppearenceData();
}
public void removeAmmo(int ammoId, int ammount, boolean primary) {
if (ammount == -1) {
items.remove(primary ? SLOT_WEAPON : SLOT_SHIELD, new Item(ammoId, 1));
refresh(primary ? SLOT_WEAPON : SLOT_SHIELD);
} else {
items.remove(SLOT_ARROWS, new Item(ammoId, ammount));
refresh(SLOT_ARROWS);
}
player.getAppearence().generateAppearenceData();
}
public void setGear(byte gear) {
int slot = gear;
items.remove(slot, new Item(items.get(slot)));
refresh(gear);
}
public void reset() {
items.reset();
init();
}
public void sendExamine(int slotId) {
Item item = items.get(slotId);
if (item == null) {
return;
}
player.getPackets().sendGameMessage(ItemExamines.getExamine(item));
}
public void setEquipmentHpIncrease(int hp) {
this.equipmentHpIncrease = hp;
}
public void setPlayer(Player player) {
this.player = player;
}
public boolean wearingArmourExceptAura() {
return getItem(SLOT_HAT) != null || getItem(SLOT_CAPE) != null || getItem(SLOT_AMULET) != null
|| getItem(SLOT_WEAPON) != null || getItem(SLOT_CHEST) != null || getItem(SLOT_SHIELD) != null
|| getItem(SLOT_LEGS) != null || getItem(SLOT_HANDS) != null || getItem(SLOT_FEET) != null
|| getItem(SLOT_ARROWS) != null || getItem(SLOT_RING) != null;
}
public boolean wearingArmour() {
return getItem(SLOT_HAT) != null || getItem(SLOT_CAPE) != null || getItem(SLOT_AMULET) != null
|| getItem(SLOT_WEAPON) != null || getItem(SLOT_CHEST) != null || getItem(SLOT_SHIELD) != null
|| getItem(SLOT_LEGS) != null || getItem(SLOT_HANDS) != null || getItem(SLOT_FEET) != null
|| getItem(SLOT_ARROWS) != null || getItem(SLOT_AURA) != null || getItem(SLOT_RING) != null;
}
public ItemsContainer<Item> getItemsContainer() {
return items;
}
public void set(int i, Item item) {
items.set(i, item);
refresh();
}
public boolean containsOneItem(int... itemIds) {
for (int itemId : itemIds) {
if (items.containsOne(new Item(itemId, 1))) {
return true;
}
}
return false;
}
/**
* Explicitly used for Warpriest upgrading.
*
* @param itemId the Item ID to upgrade.
*/
private boolean refreshItems(Item item) {
int defenceLvl = player.getSkills().getLevelForXp(Skills.DEFENCE);
int items50[] = { 30306, 30309, 30312, 30315, 30318, 30321, 28773, 28776, 28779, 28782, 28785, 28788, 28755,
28758, 28761, 28764, 28767, 28770, 30288, 30291, 30294, 30297, 30300, 30303 };
int items75[] = { 30307, 30310, 30313, 30316, 30319, 30322, 28774, 28777, 28780, 28783, 28786, 28789, 28756,
28759, 28762, 28765, 28768, 28771, 30289, 30292, 30295, 30298, 30301, 30304 };
if (defenceLvl >= 50 && defenceLvl < 75) {
for (int itemId : items50) {
if (item.getId() == itemId) {
player.sendMessage("Your " + item.getName() + " upgraded to a higher tier.");
item.setId(item.getId() + 1);
return true;
}
}
}
if (defenceLvl >= 75) {
for (int itemId : items75) {
if (item.getId() == itemId) {
player.sendMessage("Your " + item.getName() + " upgraded to a higher tier.");
item.setId(item.getId() + 1);
return true;
}
}
for (int itemId : items50) {
if (item.getId() == itemId) {
player.sendMessage("Your " + item.getName() + " upgraded to a higher tier.");
item.setId(item.getId() + 2);
return true;
}
}
}
return false;
}
public int getWeaponEndCombatEmote() {
Item weapon = items.get(3);
if (weapon == null) {
Item offhand = items.get(SLOT_SHIELD);
if (offhand == null) {
return -1;
}
int emote = offhand.getDefinitions().getCombatOpcode(2918);
return emote == 0 ? 18025 : emote;
}
int emote = weapon.getDefinitions().getCombatOpcode(2918);
return emote == 0 ? 18025 : emote;
}
public ItemsContainer<Item> getCosmeticItems() {
return cosmeticItems;
}
public List<Item> getKeepSakeItems() {
return keepSakeItems;
}
public boolean containsKeepSakeItem(int itemId) {
for (Item item : keepSakeItems) {
if (item == null) {
continue;
}
if (item.getId() == itemId) {
return true;
}
}
return false;
}
public List<SavedCosmetic> getSavedCosmetics() {
if (savedCosmetics == null) {
savedCosmetics = new ArrayList<>();
}
return savedCosmetics;
}
public boolean[] getHiddenSlots() {
return hiddenSlots;
}
public boolean isCanDisplayCosmetic() {
if (player.getControlerManager().getControler() != null
&& player.getControlerManager().getControler() instanceof ArenaControler) {
return false;
}
if (player.getControlerManager().getControler() instanceof LastManStandingLobbyController
|| player.getControlerManager().getControler() instanceof LastManStandingGameController
|| player.getControlerManager().getControler() instanceof LastManStandingPostGameController) {
return false;
}
if (player.isOwner()) {
return true;
}
return !player.isCanPvp();
}
public int getCostumeColor() {
return costumeColor;
}
public void setCostumeColor(int costumeColor) {
this.costumeColor = costumeColor;
player.getAppearence().generateAppearenceData();
}
public boolean isHideAll() {
return hideAll;
}
public void setHideAll(boolean hideAll) {
this.hideAll = hideAll;
}
public void resetCosmetics() {
cosmeticItems.reset();
}
public static final class Cosmetic implements Serializable {
/**
*
*/
private static final long serialVersionUID = 3243926269985535095L;
private ItemsContainer<Item> cosmeticItems;
private boolean[] hiddenSlots;
private String cosmeticName;
public Cosmetic(String cosmeticName, ItemsContainer<Item> cosmeticItems, boolean[] hiddenSlots) {
this.cosmeticName = cosmeticName;
this.cosmeticItems = cosmeticItems;
this.hiddenSlots = hiddenSlots;
}
public ItemsContainer<Item> getCosmeticItems() {
return cosmeticItems;
}
public boolean[] getHiddenSlots() {
return hiddenSlots;
}
public String getCosmeticName() {
return cosmeticName;
}
}
public int getWeaponRenderEmote() {
Item weapon = items.get(3);
if (weapon == null) {
return 1426;
}
if (weapon.getName().toLowerCase().contains("mace") || weapon.getName().toLowerCase().contains("halberd")) {
return 1426;
}
return weapon.getDefinitions().getRenderAnimId();
}
public ItemsContainer<Item> getCosmeticPreviewItems() {
return cosmeticPreviewItems;
}
public void setCosmeticPreviewItems(ItemsContainer<Item> cosmeticPreviewItems) {
this.cosmeticPreviewItems = cosmeticPreviewItems;
}
public void resetEquipmentSlots() {
ItemsContainer<Item> i = items.asItemContainer();
items = new ItemsContainer<Item>(19, false);
for (int x = 0; x < 19; x++) {
items.set(x, i.get(x));
}
}
public long getEquipmentValue() {
long value = 0;
for (Item equipment : player.getEquipment().getItems().toArray()) {
if (equipment == null) {
continue;
}
long amount = equipment.getAmount();
value += equipment.getDefinitions().getValue() * amount;
}
return value;
}
public void resetExcept(int slot) {
for (byte i = 0; i <= SLOT_ARROWS; i++) {
if (i == slot) {
continue;
}
if (items.get(i) != null) {
setGear(i);
}
}
}
}
Editor is loading...