# Developer API

You can import ExcellentQuests to your project using Maven. Replace {VERSION} with the latest version below:

<repository>
  <id>nightexpress-releases</id>
  <url>https://repo.nightexpressdev.com/releases</url>
</repository>

<dependency>
  <groupId>su.nightexpress.excellentquests</groupId>
  <artifactId>ExcellentQuests</artifactId>
  <version>{VERSION}</version>
</dependency>

# Events

  • BattlePassLevelUpEvent - Called when player's Battle Pass level is increased.
  • BattlePassLevelDownEvent - Called when player's Battle Pass level is downgraded.
  • BattlePassSeasonLaunchEvent - Called when a Battle Pass season is launched.
  • BattlePassSeasonFinishEvent - Called when a Battle Pass season is over.

# Data Access

// User data management.
UserManager userManager = QuestsAPI.getUserManager();
QuestUser user = userManager.getUserData(Player player);
QuestUser user = userManager.getUserData(UUID playerId);
QuestUser user = userManager.getUserData(String playerName);

// Async user access.
userManager.getUserDataAsync(UUID playerId);
userManager.getUserDataAsync(String playerName);

// Or (recommended)
userManager.getUserDataAndPerformAsync(UUID playerId, Consumer<QuestUser> consumer);
userManager.getUserDataAndPerformAsync(String playerName, Consumer<QuestUser> consumer);

// Managers
TaskManager taskManager = QuestsAPI.getTaskManager();
RewardManager rewardManager = QuestsAPI.getRewardManager();
BattlePassManager bpManager = QuestsAPI.battlePassManager().orElse(null); // Battle Pass can be disabled in the config.
MilestoneManager msManager = QuestsAPI.milestoneManager().orElse(null); // Milestones can be disabled in the config.
QuestManager questManager = QuestsAPI.questManager().orElse(null); // Quests can be disabled in the config.