// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) // Source File Name: Shopkeeppers.java package com.rscd.npchandler; import com.rscd.DelayedEventHandler; import com.rscd.event.ShortEvent; import com.rscd.model.*; import com.rscd.net.ActionSender; import com.rscd.packetbuilder.StaticPacketBuilder; import com.rscd.util.DataConversions; import org.apache.mina.common.IoSession; // Referenced classes of package com.rscd.npchandler: // NpcHandler public class CertHandler implements NpcHandler { public CertHandler() { world = World.getWorld(); } private final String main[] = { "50 Raw Lobs to certs", "50 Cooked to certs", "10 Certs to Raw lobs", "10 Certs to Cooked lobs" }; public World world; public void handleNpc(final Npc affectedNpc, final Player player) { world.getDelayedEventHandler().add(new ShortEvent(player) { public void action() { SayNpcMessage((new StringBuilder()).append("You'd like to exchange some fish").append(owner.isMale() ? "SIR?" : "miss?").toString(), affectedNpc, player); player.setBusy(true); handleFood(); return; } public void SayNpcMessage(String msg, Npc reqNpc, Player plr) { int length = DataConversions.stringToByteArray(msg); StaticPacketBuilder s = new StaticPacketBuilder(); s.setID(190); s.addShort(1); s.addShort(reqNpc.getIndex()); s.addByte((byte)1); s.addShort(plr.getIndex()); s.addByte((byte)length); s.addBytes(DataConversions.messageData); plr.getSession().write(s.toPacket()); } public void handleFood() { player.setMenuHandler(new MenuHandler(main) { public void handleReply(int option, String response) { //50 Raw Lobs to certs if(option == 0 && player.getBank().countId(372) > 50) { player.getBank().remove(new BankItem(372, 50)); player.getBank().add(new BankItem(534, 10)); player.setState(MobState.BANKING); affectedNpc.setState(MobState.IDLE); player.getActionSender().sendInventory(); } else //50 Cooked Lobs to certs if(option == 1 && player.getBank().countId(373) > 50) { player.getBank().remove(new BankItem(373, 50)); player.getBank().add(new BankItem(533, 10)); player.setState(MobState.BANKING); affectedNpc.setState(MobState.IDLE); player.getActionSender().sendInventory(); } else //10 raws to 50 raws if(option == 2 && player.getBank().countId(534) > 10) { player.getBank().remove(new BankItem(534, 10)); player.getBank().add(new BankItem(372, 50)); player.setState(MobState.BANKING); affectedNpc.setState(MobState.IDLE); player.getActionSender().sendInventory(); } else //10 cooked to 50 cooked if(option == 3 && player.getBank().countId(533) > 10) { player.getBank().remove(new BankItem(534, 10)); player.getBank().add(new BankItem(373, 50)); player.setState(MobState.BANKING); affectedNpc.setState(MobState.IDLE); player.getActionSender().sendInventory(); }}});} }); } }