Package net.citizensnpcs.questers.quests.types

Source Code of net.citizensnpcs.questers.quests.types.HuntQuest

package net.citizensnpcs.questers.quests.types;

import net.citizensnpcs.questers.QuestUtils;
import net.citizensnpcs.questers.quests.progress.ObjectiveProgress;
import net.citizensnpcs.questers.quests.progress.QuestUpdater;

import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.entity.EntityDeathEvent;

public class HuntQuest implements QuestUpdater {
    @Override
    public Class<? extends Event>[] getEventTypes() {
        return EVENTS;
    }

    @Override
    public String getStatus(ObjectiveProgress progress) {
        return QuestUtils.defaultAmountProgress(progress, "monsters killed");
    }

    @Override
    public boolean update(Event event, ObjectiveProgress progress) {
        if (event instanceof EntityDeathEvent) {
            EntityDeathEvent ev = (EntityDeathEvent) event;
            if (ev.getEntity() instanceof Player)
                return progress.getAmount() >= progress.getObjective().getAmount();
            LivingEntity entity = ev.getEntity();
            String search = progress.getObjective().getString().toLowerCase();
            boolean found = search.contains(entity.getType().getName().toLowerCase()) || search.contains("*"), reversed = !search
                    .isEmpty() && search.charAt(0) == '-';
            if (reversed ^ found) {
                progress.addAmount(1);
            }
        }
        return progress.getAmount() >= progress.getObjective().getAmount();
    }

    private static final Class<? extends Event>[] EVENTS = new Class[] { EntityDeathEvent.class };
}
TOP

Related Classes of net.citizensnpcs.questers.quests.types.HuntQuest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.