API

The API is only available for Homestead 3.0.0 and higher.

To access the Homestead API in your plugin, download the Homestead .jar file from SpigotMC and upload it as a third-party JAR to your project. Click here or here for the guide to installing the dependency.

Getting the API:

public void onEnable() {
	if (getServer().getPluginManager().getPlugin("Homestead") != null) {
		// Get the API
		homestead.api.APIInterface api = homestead.Plugin.getInstance().getAPI();
		
		// Get the version of the installed plugin
		String version = homestead.Plugin.getVersion();
		
		Logger.info("Homestead version: " + version);
	}
}

Regions:

Get all regions (without any filter):

for (homestead.core.types.Region region : api.getRegions()) {
    Logger.info("Region name: " + region.getName());
}

Get all regions owned by a player:

Player player = Bukkit.getPlayer("TFAGaming");

for (homestead.core.types.Region region : api.getRegions(player)) {
    Logger.info("Region name: " + region.getName());
}

Get a region by name:

homestead.core.types.Region region = api.getRegion("ExampleRegionName");

if (region == null) {
    Logger.severe("There is no such a region with the name 'ExampleRegionName'!");
} else {
    Logger.info("Region name: " + region.getName());
}

Region Members

// Get all members
region.getMembers();

// Get specific member's data
Player player = Bukkit.getPlayer("TFAGaming");

region.getMember(player);

Sub-Areas

Get all sub-areas (without any filter):

for (homestead.core.types.SubArea subArea : api.getSubAreas()) {
    Logger.info("Sub-Area name: " + subArea.getName());
}

Get all sub-areas part of a region:

UUID regionId = region.getId();

for (homestead.core.types.SubArea subArea : api.getSubAreas(regionId)) {
    Logger.info("Sub-Area name: " + subArea.getName());
}

Managing Flags

This example also works for Sub-Area flags and Member flags.

For Environment flags, use homestead.core.flags.WorldFlags.

import homestead.core.flags.FlagsCalculator;

// Getting global player flags from a region
long flags = region.getPlayerFlags();

// Add or remove a flag to/from flags
flags = FlagsCalculator.calculate(flags, homestead.core.flags.PlayerFlags.BREAK_BLOCKS);
flags = FlagsCalculator.removeFlag(flags, homestead.core.flags.PlayerFlags.ELYTRA);

// Check if a flag is set
boolean isSet = FlagsCalculator.isFlagSet(flags, homestead.core.flags.PlayerFlags.INTERACT_ENTITIES);

Logger.info(isSet ? "The flag is in Allow state" : "The flag is in Deny state");

// Update flags for the region's global player flags
region.setPlayerFlags(flags);

Last updated