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.
Warning: The API was implemented on version 3.0.0. Please make sure your plugin verifies that the Homestead version is 3.0.0 or higher.
Getting the API:
publicvoidonEnable() {if (getServer().getPluginManager().getPlugin("Homestead") !=null) {// Get the APIhomestead.api.APIInterface api =homestead.Plugin.getInstance().getAPI();// Get the version of the installed pluginString 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);
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);