QuestEngine icon

QuestEngine -----

A simple yet optimized quest plugin



API ADD
API ADD

Code (Text):
package com.gmail.bobason01.questengine.api;

import com.gmail.bobason01.questengine.QuestEnginePlugin;
import com.gmail.bobason01.questengine.progress.PlayerData;
import com.gmail.bobason01.questengine.quest.QuestDef;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Collection;
import java.util.List;
import java.util.UUID;

public final class QuestEngineAPI {

    private QuestEngineAPI() {}

    public static QuestEnginePlugin getPlugin() {
        return JavaPlugin.getPlugin(QuestEnginePlugin.class);
    }

    public static QuestDef getQuest(String id) {
        if (id == null) return null;
        return getPlugin().quests().get(id);
    }

    public static Collection<QuestDef> getAllQuests() {
        return getPlugin().quests().all();
    }

    public static PlayerData getPlayerData(UUID uuid, String name) {
        if (uuid == null) return null;
        return getPlugin().progress().of(uuid, name);
    }

    public static boolean isActive(UUID uuid, String name, String questId) {
        if (uuid == null || questId == null) return false;
        return getPlugin().progress().isActive(uuid, name, questId);
    }

    public static boolean isCompleted(UUID uuid, String name, String questId) {
        if (uuid == null || questId == null) return false;
        return getPlugin().progress().isCompleted(uuid, name, questId);
    }

    public static int getQuestProgress(UUID uuid, String name, String questId) {
        if (uuid == null || questId == null) return 0;
        return getPlugin().progress().value(uuid, name, questId);
    }

    public static List<String> getActiveQuests(UUID uuid, String name) {
        if (uuid == null) return null;
        return getPlugin().progress().activeQuestIds(uuid, name);
    }

    public static List<String> getCompletedQuests(UUID uuid, String name) {
        if (uuid == null) return null;
        return getPlugin().progress().completedQuestIds(uuid, name);
    }

    public static void startQuest(Player player, String questId) {
        if (player == null || questId == null) return;
        getPlugin().engine().startQuest(player, questId);
    }

    public static void cancelQuest(Player player, String questId) {
        if (player == null || questId == null) return;
        getPlugin().engine().cancelQuest(player, questId);
    }

    public static void forceCompleteQuest(UUID uuid, String name, String questId) {
        if (uuid == null || name == null || questId == null) return;
        getPlugin().engine().forceComplete(uuid, name, questId);
    }

    public static void forceCompleteQuest(Player player, String questId) {
        if (player == null || questId == null) return;
        QuestDef quest = getQuest(questId);
        if (quest != null) {
            getPlugin().engine().forceComplete(player, quest);
        }
    }

    public static void stopQuest(UUID uuid, String name, String questId) {
        if (uuid == null || name == null || questId == null) return;
        getPlugin().engine().stopQuest(uuid, name, questId);
    }

    public static int addQuestProgress(UUID uuid, String name, String questId, int amount) {
        if (uuid == null || questId == null) return 0;
        return getPlugin().progress().addProgress(uuid, name, questId, amount);
    }

    public static void resetQuestProgress(UUID uuid, String name, String questId) {
        if (uuid == null || questId == null) return;
        getPlugin().progress().reset(uuid, name, questId);
    }

    public static void openQuestListMenu(Player player, int page) {
        if (player == null) return;
        getPlugin().gui().openList(player, page);
    }

    public static void openPublicQuestMenu(Player player, int page) {
        if (player == null) return;
        getPlugin().gui().openPublic(player, page);
    }
}
----------, May 6, 2026
Resource Information
Author:
----------
Total Downloads: 374
First Release: Nov 8, 2025
Last Update: May 20, 2026
Category: ---------------
All-Time Rating:
5 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings