Package net.citizensnpcs.questers.quests

Examples of net.citizensnpcs.questers.quests.Quest


    public static boolean assignQuest(Player player, int UID, String questName) {
        questName = questName.toLowerCase();
        if (!isValidQuest(questName)) {
            throw new IllegalArgumentException("Given quest does not exist");
        }
        Quest quest = quests.get(questName);
        if (!canRepeat(player, quest)) {
            player.sendMessage(ChatColor.GRAY + "You are not allowed to repeat this quest again.");
            return false;
        }
        if (getProfile(player.getName()).hasCompleted(questName) && quest.getDelay() > 0) {
            long delayDifference = getDelayDifference(
                    getProfile(player.getName()).getCompletedQuest(questName), quest);
            if (delayDifference > 0) {
                long hours = TimeUnit.HOURS.convert(delayDifference, TimeUnit.MINUTES);
                long minutes = delayDifference - TimeUnit.MINUTES.convert(hours, TimeUnit.HOURS);
                player.sendMessage(ChatColor.GRAY + "You must wait "
                        + StringUtils.wrap(hours, ChatColor.GRAY) + " hours and "
                        + StringUtils.wrap(minutes, ChatColor.GRAY)
                        + " minutes before attempting this quest again.");
                return false;
            }
        }
        for (Requirement requirement : quest.getRequirements()) {
            if (!requirement.fulfilsRequirement(player)) {
                player.sendMessage(ChatColor.GRAY + "Missing requirement. "
                        + requirement.getRequiredText(player));
                return false;
            }
            if (requirement.isTake())
                requirement.grant(player, UID);
        }
        for (Reward reward : quest.getInitialRewards()) {
            reward.grant(player, UID);
        }
        QuestBeginEvent call = new QuestBeginEvent(quest, player);
        Bukkit.getPluginManager().callEvent(call);
        if (call.isCancelled()) {
            return false;
        }
        getProfile(player.getName()).setProgress(
                new QuestProgress(UID, player, questName, System.currentTimeMillis()));
        Messaging.send(player, quest.getAcceptanceText());
        return true;
    }
View Full Code Here


        quests.clear();
    }

    public static void completeQuest(Player player) {
        PlayerProfile profile = PlayerProfile.getProfile(player.getName());
        Quest quest = QuestManager.getQuest(profile.getProgress().getQuestName());
        quest.onCompletion(player, profile.getProgress());
        int UID = profile.getProgress().getQuesterUID();
        long elapsed = System.currentTimeMillis() - profile.getProgress().getStartTime();
        profile.setProgress(null);
        int completed = profile.hasCompleted(quest.getName()) ? profile.getCompletedQuest(quest.getName())
                .getTimesCompleted() + 1 : 1;
        CompletedQuest comp = new CompletedQuest(quest.getName(), UID, completed, elapsed,
                System.currentTimeMillis());
        profile.addCompletedQuest(comp);
        Bukkit.getServer().getPluginManager().callEvent(new QuestCompleteEvent(quest, comp, player));
    }
View Full Code Here

    public void save(Storage profiles, int UID) {
        profiles.setString(UID + ".quester.quests", Joiner.on(";").skipNulls().join(quests));
    }

    private void updateDescription(Player player) {
        Quest quest = getQuest(fetchFromList(player));
        if (quest == null)
            return;
        PageInstance display = PageUtils.newInstance(player);
        display.setSmoothTransition(true);
        display.header(ChatColor.GREEN + StringUtils.listify("Quest %x/%y - " + StringUtils.wrap(quest.getName())));
        for (String push : Splitter.on("<br>").omitEmptyStrings().split(quest.getDescription())) {
            display.push(push);
            if ((display.elements() % 8 == 0 && display.maxPages() == 1) || display.elements() % 9 == 0) {
                display.push(ChatColor.GOLD + "Right click to continue description.");
            }
        }
View Full Code Here

TOP

Related Classes of net.citizensnpcs.questers.quests.Quest

Copyright © 2018 www.massapicom. 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.