API reference
The entry point is zone.vao.claimo.ClaimoApi. It exposes requirement registration,
read-only stats, voucher lookup, and a programmatic redeem flow.
ClaimoApi
Section titled “ClaimoApi”| Member | Purpose |
|---|---|
registerRequirement(type, factory) |
Register a requirement type. |
registerRequirement(type, factory, inputs) |
Register a type and declare its creator input fields. |
unregisterRequirement(type) |
Remove a registered type. |
requirements |
The RequirementRegistry (isRegistered, types, …). |
stats |
ClaimoStats — read-only player statistics. |
vouchers() |
List loaded vouchers. |
voucher(id) |
Look one voucher up by id. |
redeem(player, voucherId) |
Run the full redeem flow programmatically. |
reload() |
Reload config and voucher files. |
ClaimoStats
Section titled “ClaimoStats”Read-only player statistics, reachable via ClaimoApi.stats:
| Method | Returns |
|---|---|
blocksMined(player) |
Total blocks the player has broken. |
blocksMined(player, whitelist, blacklist) |
Total broken, filtered by material lists. |
playtimeSeconds(player) |
The player’s total play-time in seconds. |
Requirement building blocks
Section titled “Requirement building blocks”These types live in the zone.vao.claimo.requirement package:
| Type | Role |
|---|---|
Requirement |
The check you implement — check(context) returns a CompletableFuture<RequirementResult>. |
RequirementContext |
Passed to check — exposes the player. |
RequirementResult |
satisfied(description) / unsatisfied(description). |
RequirementConfig |
The parsed config for one requirement entry — getString, getInt, getLong, getDouble, getBoolean, getStringList, has. |
RequirementInput |
Creator field descriptors: TextInput, NumberInput, BoolInput. |
RequirementRegistry |
The live registry — register, isRegistered, types, inputs(type). |
Where things live
Section titled “Where things live”Full example
Section titled “Full example”Putting registration, an event listener and stats together:
import org.bukkit.plugin.java.JavaPluginimport zone.vao.claimo.ClaimoApiimport zone.vao.claimo.requirement.RequirementInput
class MyAddon : JavaPlugin() { override fun onEnable() { ClaimoApi.registerRequirement( "tiktok_follow", { cfg -> TikTokFollowRequirement(cfg.getString("account")!!) }, listOf(RequirementInput.TextInput("account", "TikTok account")), ) server.pluginManager.registerEvents(RedeemStats(), this) }
override fun onDisable() { ClaimoApi.unregisterRequirement("tiktok_follow") }}