package ai;
import com.aionemu.gameserver.ai.AIActions;
import com.aionemu.gameserver.ai.AIName;
import com.aionemu.gameserver.model.DialogPage;
import com.aionemu.gameserver.model.TaskId;
import com.aionemu.gameserver.model.gameobjects.Npc;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.network.aion.serverpackets.SM_DIALOG_WINDOW;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.ThreadPoolManager;
import com.aionemu.gameserver.world.World;
/**
* @author -Nemesiss-, Neon
*/
@AIName("deliveryman")
public class DeliveryManAI extends FollowingNpcAI {
private static final int SERVICE_TIME = 5 * 60 * 1000;
public DeliveryManAI(Npc owner) {
super(owner);
}
@Override
protected void handleSpawned() {
super.handleSpawned();
Player owner = getPlayer();
getOwner().getController().addTask(TaskId.DESPAWN,
ThreadPoolManager.getInstance().schedule(() -> AIActions.deleteOwner(DeliveryManAI.this), SERVICE_TIME));
handleFollowMe(owner);
handleCreatureMoved(owner);
PacketSendUtility.broadcastMessage(getOwner(), 390266, 1500); // Here is your mail, akakak!
PacketSendUtility.broadcastMessage(getOwner(), 390268, 30000); // Time is silver my friend, akakak!
}
@Override
protected void handleDespawned() {
PacketSendUtility.broadcastMessage(getOwner(), 390267); // Whiririkk, let's go!
Player player = World.getInstance().getPlayer(getOwner().getCreatorId());
if (player != null && getOwner().equals(player.getPostman()))
player.setPostman(null);
super.handleDespawned();
}
@Override
protected void handleDialogStart(Player player) {
if (player.equals(getPlayer()))
PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(getObjectId(), DialogPage.MAIL.id()));
else
PacketSendUtility.broadcastMessage(getOwner(), 390269); // There is no mail for you, nyerk.
}
private Player getPlayer() {
return getOwner().getPosition().getWorldMapInstance().getPlayer(getOwner().getCreatorId());
}
}