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

84 lines
2.5 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.MenuHandler;
import org.moparscape.msc.gs.model.Npc;
import org.moparscape.msc.gs.model.Player;
import org.moparscape.msc.gs.model.World;
public class EntranaMonks implements NpcHandler {
/**
* World instance
*/
public static final World world = Instance.getWorld();
public void handleNpc(final Npc npc, Player player) throws Exception {
final boolean toEntrana = !player.getLocation().inBounds(390, 530, 440,
580);
player.informOfNpcMessage(new ChatMessage(
npc,
toEntrana ? "Are you looking to take passage to our holy island?"
: "Are you ready to go back to the mainland?", player));
player.setBusy(true);
Instance.getDelayedEventHandler().add(new ShortEvent(player) {
public void action() {
owner.setBusy(false);
String[] options = { "Yes okay I'm ready to go", "No thanks" };
owner.setMenuHandler(new MenuHandler(options) {
public void handleReply(final int option, final String reply) {
if (owner.isBusy()) {
npc.unblock();
return;
}
owner.informOfChatMessage(new ChatMessage(owner, reply,
npc));
owner.setBusy(true);
Instance.getDelayedEventHandler().add(
new ShortEvent(owner) {
public void action() {
if (option == 0) {
owner.getActionSender()
.sendMessage(
"You board the ship");
Instance.getDelayedEventHandler()
.add(new ShortEvent(owner) {
public void action() {
if (toEntrana) {
owner.teleport(
418,
570,
false);
} else {
owner.teleport(
263,
659,
false);
}
owner.getActionSender()
.sendMessage(
"The ship arrives at "
+ (toEntrana ? "Entrana"
: "Port Sarim"));
owner.setBusy(false);
npc.unblock();
}
});
} else {
owner.setBusy(false);
npc.unblock();
}
}
});
}
});
owner.getActionSender().sendMenu(options);
}
});
npc.blockedBy(player);
return;
}
}