MoparClassic/GameServer/src/org/moparscape/msc/gs/npchandler/Boat.java

94 lines
2.9 KiB
Java

package org.moparscape.msc.gs.npchandler;
import org.moparscape.msc.gs.Instance;
import org.moparscape.msc.gs.event.ShortEvent;
import org.moparscape.msc.gs.model.ChatMessage;
import org.moparscape.msc.gs.model.InvItem;
import org.moparscape.msc.gs.model.MenuHandler;
import org.moparscape.msc.gs.model.Npc;
import org.moparscape.msc.gs.model.Player;
import org.moparscape.msc.gs.model.World;
public class Boat implements NpcHandler {
/**
* World instance
*/
public static final World world = Instance.getWorld();
public void handleNpc(final Npc npc, Player player) throws Exception {
player.informOfNpcMessage(new ChatMessage(npc,
"G'day sailor, where would you like to go?", player));
player.setBusy(true);
final String[] temp;
if (npc.getID() == 163) {
temp = new String[] { "Port Sarim" };
} else {
temp = new String[] { "Karamja" };
}
Instance.getDelayedEventHandler().add(new ShortEvent(player) {
public void action() {
owner.setBusy(false);
owner.setMenuHandler(new MenuHandler(temp) {
public void handleReply(final int option, final String reply) {
if (owner.isBusy() || option < 0
|| option >= temp.length) {
npc.unblock();
return;
}
owner.informOfChatMessage(new ChatMessage(owner, reply
+ " please", npc));
owner.setBusy(true);
Instance.getDelayedEventHandler().add(
new ShortEvent(owner) {
public void action() {
owner.getActionSender().sendMessage(
"You board the ship");
Instance.getDelayedEventHandler().add(
new ShortEvent(owner) {
public void action() {
int count = owner
.getInventory()
.countId(318);
if (count > 0) {
for (int i = 0; i < count; i++) {
owner.getActionSender()
.sendMessage(
"The Officer confiscates your Karamaja rum");
if (owner
.getInventory()
.remove(new InvItem(
318)) > -1)
continue;
else
break;
}
owner.getActionSender()
.sendInventory();
}
if (npc.getID() == 163) {
owner.teleport(269,
648, false);
} else {
owner.teleport(324,
713, false);
}
owner.getActionSender()
.sendMessage(
"The ship arrives at "
+ reply);
owner.setBusy(false);
npc.unblock();
}
});
}
});
}
});
owner.getActionSender().sendMenu(temp);
}
});
npc.blockedBy(player);
}
}