Skip to main content

Developer API

This page documents the API exposed by the current FioLevels source.

Package names

Use the real source package names:

import com.itzfabb.fiolevels.api.FioLevelsApi;
import com.itzfabb.fiolevels.api.FioLevelsApiProvider;

Accessing the API

FioLevelsApi api = FioLevelsApiProvider.get();
if (api != null) {
int level = api.getLevel(player);
api.addTaskProgress(player, "rules1", 1);
}

Use null checks because the provider can return null when FioLevels is not available yet.

Player data

PlayerLevelSnapshot getPlayerData(OfflinePlayer player);
PlayerLevelSnapshot getPlayerData(UUID uuid);
int getLevel(OfflinePlayer player);
int setLevel(OfflinePlayer player, int level);
int addLevel(OfflinePlayer player, int amount);
int removeLevel(OfflinePlayer player, int amount);
boolean isFrozen(OfflinePlayer player);
boolean setFrozen(OfflinePlayer player, boolean frozen);
void clearData(OfflinePlayer player);

Progress API

int getProgressPercent(OfflinePlayer player);
String getProgressBar(OfflinePlayer player);
long getRequiredProgress(int level);
boolean addTaskProgress(Player player, String taskId, int amount);
boolean completeTask(Player player, String taskId);
boolean addRuleProgress(Player player, String type, Material material, int amount);
boolean claimLevelReward(Player player, int level);

Use addTaskProgress when you know the configured requirement id, such as rules0 or rules1. Use addRuleProgress when you want to add progress by task type and material.

Task and leaderboard reads

List<LevelTaskSnapshot> getCurrentTasks(OfflinePlayer player);
List<LevelTaskSnapshot> getTasksForLevel(int level);
List<Integer> getConfiguredLevels();
List<PlayerLevelSnapshot> getTopPlayers(int limit);

Cosmetics API

List<String> getBracketIds();
List<String> getFontIds();
List<String> getColorIds();

String getSelectedBracketId(OfflinePlayer player);
String getSelectedFontId(OfflinePlayer player);
String getSelectedColorId(OfflinePlayer player);

boolean selectBracket(Player player, String bracketId);
boolean selectFont(Player player, String fontId);
boolean selectColor(Player player, String colorId);

String renderCurrentLevel(OfflinePlayer player);

Save API

void save();

Example integration

FioLevelsApi api = FioLevelsApiProvider.get();
if (api == null) {
return;
}

int before = api.getLevel(player);
api.addRuleProgress(player, "CUSTOM", null, 1);
int after = api.getLevel(player);

if (after > before) {
player.sendMessage("Level up!");
}

plugin.yml advice for integrations

In your own plugin:

softdepend:
- FioLevels

Then resolve the provider lazily or during onEnable() after the server has loaded soft dependencies.

Page note

This page is source-backed from FioLevelsApi.java.