@Override public boolean abort() { player.setCurrentSkill(null); player.setLastSkillAction(System.currentTimeMillis()); super.stop(); return true; }
/** Process interface functions */ public static boolean processInterfaceFunctions(Player c, int buttonId) { if (buttonId < 205231 || buttonId > 207109) { return false; } PouchData pouch = PouchData.getByButton(buttonId); if (pouch == null) { return false; } switch (buttonId - pouch.getButtonId()) { case 1: hasRequirements(c, pouch.getButtonId(), true, 5, pouch); return true; case 2: hasRequirements(c, pouch.getButtonId(), true, 10, pouch); return true; case 3: hasRequirements(c, pouch.getButtonId(), true, 28, pouch); return true; case 4: c.getInterfaceState().openValueInput(52700, pouch.getButtonId(), pouch.getPouchId()); return true; default: hasRequirements(c, pouch.getButtonId(), true, 1, pouch); return true; } }
@Override protected void execute() { int newAmount = 0; for (int i = 1; i <= amount; i++) { if (hasRequirements(player, buttonId, false, 1, pouchData)) { player.getInventory().remove(new Item(POUCH_ID, 1)); player.getInventory().remove(new Item(SHARD_ID, 1)); player.getInventory().remove(new Item(pouchData.getCharmId(), 1)); player.getInventory().remove(new Item(pouchData.getSecondIngredientId(), 1)); player.getInventory().add(new Item(pouchData.getPouchId(), 1)); newAmount++; } else { break; } } if (newAmount == 0) { abort(); return; } player.playAnimation(new Animation(725)); player.playGraphics(new Graphic(1207)); player .getSkill() .addExperience( Skill.SUMMONING, pouchData.getExp() * newAmount * Constants.SUMMONING_EXPERIENCE); player.sendMessage( "You infuse " + newAmount + " " + new Item(pouchData.getPouchId()).getDefinition().getName() + (newAmount > 1 ? "s" : "") + "."); abort(); }
@Override public void handle(Player player, GamePacket packet) { int skill = packet.readShort(); int goal = -1; int type = 0; int initialExp = 0; if (packet.getOpcode() == 63) { type = packet.readByte(); long val = packet.readLong(); if (skill < 0 || skill >= Skill.SKILL_COUNT) { return; } goal = (int) (val > 200_000_000 || val < 0 ? type == 1 ? 200_000_000 : 1 : val); initialExp = player.getSkill().getExperience(skill); if (type == 0) { if (goal <= player.getSkill().getLevel(skill)) { return; } } else if (type == 1) { if (goal <= player.getSkill().getExperience(skill)) { return; } } } if (skill < 0 || skill >= Skill.SKILL_COUNT) { return; } player.getSkill().setGoalData(skill, goal, type, initialExp); player.getSession().send(new SendSkillGoalPacket(skill)); }
@Override public void execute() { if (player.getInventory().get(slot).getId() != impling.getJar()) { stop(); return; } if (player.getInventory().freeSlots() < 2) { player.sendMessage("You do not have enough free inventory slots to do this."); stop(); return; } player.getInventory().remove(slot, new Item(impling.getJar())); player.getInventory().add(impling.getRandomReward()); player.getInventory().add(new Item(ItemIdentifiers.IMPLING_JAR)); player.sendMessage("You loot the impling jar for a reward."); stop(); }
/** * Checks whether or not that player has requirements to make the pouch. * * @param c The Player. * @param itemId The item id. * @param slot The slot of the item. */ public static boolean hasRequirements( final Player player, final int buttonId, boolean inform, int amount, PouchData pouch) { if (inform) { if (player.getSkill().getLevelForExperience(Skill.SUMMONING) < pouch.getLevelRequired()) { player.sendMessage( "You need a summoning level of " + pouch.getLevelRequired() + " to create this pouch"); return false; } } if (!player.getInventory().contains(POUCH_ID)) { if (inform) { player.sendMessage("You dont have a pouch to create this item."); } return false; } if (!player.getInventory().hasItem(new Item(SHARD_ID, pouch.getShardsRequired()))) { if (inform) { player.sendMessage( "You need " + pouch.getShardsRequired() + " shards to create this pouch."); } return false; } if (!player.getInventory().contains(pouch.getCharmId())) { if (inform) { player.sendMessage( "You need a " + new Item(pouch.getCharmId()).getDefinition().getName() + " to create this pouch."); } return false; } if (!player.getInventory().contains(pouch.getSecondIngredientId())) { if (inform) { player.sendMessage( "You need " + new Item(pouch.getSecondIngredientId()).getDefinition().getName() + " to create this pouch."); } return false; } player.setCurrentSkill(new CreatePouch(player, buttonId, amount)); player.getCurrentSkill().start(); return true; }
public SendMapRegionPacket(Player player) { location = player.getLocation(); }
public static boolean stakeItem(Player player, int itemId, int amount, int slot) { if (!player.getInventory().contains(itemId) || !player.getDuel().isDueling()) { return false; } if (player.getInterfaceState().getCurrentInterface() != 37888) { return false; } if (new Item(itemId).getDefinition().isUntradeable()) { player.sendMessage("This item is currently untradeable and cannot be staked."); return false; } Player playerToDuel = GameService.getWorld().getByUsername(player.getDuel().getDuelingWith()).get(); if (playerToDuel == null) { return false; } if (player.getDuel().getStatus() != DuelingStatus.WAITING_FIRST_ACCEPT && player.getDuel().getStatus() != DuelingStatus.ACCEPTED_FIRST_INTERFACE || playerToDuel.getDuel().getStatus() != DuelingStatus.WAITING_FIRST_ACCEPT && playerToDuel.getDuel().getStatus() != DuelingStatus.ACCEPTED_FIRST_INTERFACE) { DuelArenaHandler.declineDuel(player, true); return false; } if (player.getInventory().getItemAmount(itemId) < amount) { amount = player.getInventory().getItemAmount(itemId); if (amount == 0 || player.getInventory().getItemAmount(itemId) < amount) { return false; } } if (player.getDuel().getStakeInventory().add(new Item(itemId, amount))) { player.getInventory().remove(new Item(itemId, amount)); } DuelArenaHandler.updateStakedItems(player, playerToDuel); player.getSession().send(new SendStringPacket("", 6684)); playerToDuel.getSession().send(new SendStringPacket("", 6684)); player.getDuel().setStatus(DuelingStatus.WAITING_FIRST_ACCEPT); playerToDuel.getDuel().setStatus(DuelingStatus.WAITING_FIRST_ACCEPT); player.setAttribute("stake_change_delay", System.currentTimeMillis()); return true; }
@Override public void onFullItemChange(Container container) { player.getUpdateFlags().flag(UpdateFlag.APPEARANCE); ActionSender.sendWeight( player, player.getEquipment().getWeight() + player.getInventory().getWeight()); }