VHOPPERS API
Examples
Practical Java examples for block checks, statistics, module lists, module toggles, limits, admin inspection, and event listeners.
Lookup and Statistics
Block target = player.getTargetBlockExact(5);
if (target == null) return;
VHoppersAPI api = VHoppersProvider.get();
if (api.isVHopper(target.getLocation())) {
player.sendMessage("This is a VHopper.");
}
api.getHopper(location).ifPresent(hopper -> {
sender.sendMessage("Owner: " + hopper.owner());
sender.sendMessage("Collected: " + hopper.stats().collectedItems());
sender.sendMessage("Sold: " + hopper.stats().soldItems());
sender.sendMessage("Earned: " + hopper.stats().earnedMoney());
});Modules and Limits
VHoppersAPI api = VHoppersProvider.get();
api.getHopper(location).ifPresent(hopper -> {
for (VHopperModule module : hopper.modules()) {
sender.sendMessage("Slot " + module.slot()
+ ": " + module.type()
+ " enabled=" + module.enabled());
}
});
int limit = VHoppersProvider.get().getHopperLimit(player);
player.sendMessage("Your VHopper limit is " + limit + ".");Disable Modules
VHoppersAPI api = VHoppersProvider.get();
api.getHopper(location).ifPresent(hopper -> {
for (VHopperModule module : hopper.modules()) {
api.setModuleEnabled(hopper.location(), module.slot(), false).thenAccept(success -> {
if (!success) {
Bukkit.getLogger().warning("Could not disable module slot " + module.slot());
}
});
}
});Seller Event Listener
public final class SellListener implements Listener {
@EventHandler
public void onSell(VHopperSellEvent event) {
UUID owner = event.hopper().owner();
double payout = event.payout();
int amount = event.amount();
Bukkit.getLogger().info("VHopper owner " + owner
+ " sold " + amount + " items for " + payout);
}
}