Claims API
HuskTowns provides API for getting, creating, changing the type of, & deleting claims and admin claims.
This page assumes you have read the general API introduction and that you have both imported HuskTowns into your project and added it as a dependency.
Table of contents
- Getting if a location is claimed
- Checking what a user can do at a location
- Creating a claim
- Highlighting a claim
1. Getting if a location is claimed
- On the Bukkit platform, get a
Positionobject using#getPosition(org.bukkit.Location location) - Use
#isClaimAt(Position position)to check if the location has been claimed - Or, use
#getClaimAt(Position position)to get theOptional<TownClaim>at the location- With an
Optional<TownClaim>, you can useOptional#isPresent()to check if a claim exists at the location - With a
TownClaimobject, you can get the associatedTownobject (see Towns API) using#town(), and theClaimitself using#claim() - The
Claimobject has a range of properties describing the claim.
- With an
Example — Getting if a location is claimed
void showTownWhoHasClaimedAt(org.bukkit.Location location) {
Position position = huskTowns.getPosition(location);
Optional<TownClaim> claim = huskTowns.getClaimAt(position);
if (claim.isPresent()) {
System.out.println("This location is claimed by " + claim.get().town().getName());
}
}
1.1 Getting the ClaimWorld for a World
- Claims exist within a
ClaimWorldin HuskTowns.Worlds withoutClaimWorlds are not protected by HuskTowns. - On the Bukkit platform, get a
Worldobject from a Bukkit World using#getWorld(org.bukkit.World)(or call#getWorld()on aPositionobject) - You can then get the
ClaimWorldfor a world using#getClaimWorld(World world)which will return anOptional<ClaimWorld>
Example — Getting the claim world for a world
void showClaimWorld(org.bukkit.World world) {
Optional<ClaimWorld> claimWorld = huskTowns.getClaimWorld(world);
if (claimWorld.isPresent()) {
System.out.println("This world is protected by HuskTowns, and contains " + claimWorld.get().getClaimCount() + " claims!");
}
}
2. Checking what a user can do at a location
- On the Bukkit platform, get an
OnlineUserobject using#getOnlineUser(@NotNull org.bukkit.Player player)- Use
#getPosition()to get thePositionof anOnlineUserto check if there's a claim where they stand (see #1)
- Use
- Check if a user can perform
OperationTypesusing#isOperationAllowed(OnlineUser user, OperationType type, Position position)- Use the
#isOperationAllowedmethod that accepts and build anOperationviaOperation.builder()for more complex operation checks!
- Use the
Example — Checking what a user can do at a location
void checkUserAccessAt(org.bukkit.Player player, org.bukkit.Location location) {
OnlineUser user = huskTowns.getOnlineUser(player);
Position position = huskTowns.getPosition(location);
if (huskTowns.isOperationAllowed(user, OperationType.BREAK_BLOCKS, position)) {
System.out.println("User can build here!");
} else {
System.out.println("User can't build here!");
}
}
3. Creating a claim
- You can create a claim using
#createClaimAt(OnlineUser actor, Town town, Chunk chunk, World world)- You may also create an admin claim using
#createAdminClaimAt(OnlineUser actor, Chunk chunk, World world)
- You may also create an admin claim using
- This will create a claim at that position. You can then use
#getClaimAt(Position position)to get theTownClaimobject for the claim you just created (see #1) - You can also create a claim at the chunk at a position using
#createClaimAt(OnlineUser actor, Town town, Position position)
Example — Creating a claim
void createClaimAt(org.bukkit.Player player, org.bukkit.Chunk chunk, org.bukkit.World world) {
OnlineUser user = huskTowns.getOnlineUser(player);
Town town = huskTowns.getTown("townName").get();
huskTowns.createClaimAt(user, town, chunk, world);
}
3.1 Editing a claim
- You can edit a claim using
#editClaimAt(Chunk chunk, World world, Consumer<TownClaim> editor) - This will allow you to edit the claim at the given chunk and world using the
Consumer<TownClaim>to modify theTownClaimobject- For example, you can do
townClaim.claim().setType(Claim.Type type)to change the type of the claim
- For example, you can do
Example — Editing a claim
void editClaimAt(org.bukkit.Chunk chunk, org.bukkit.World world) {
huskTowns.editClaimAt(chunk, world, townClaim -> {
townClaim.claim().setType(Claim.Type.FARM);
});
}
3.2 Deleting a claim
- You can delete a claim using
#deleteClaimAt(OnlineUser actor, Position position)- A method that accepts a
Chunkand aWorldis also available
- A method that accepts a
Example — Deleting a claim
void deleteClaimAt(org.bukkit.Player player, org.bukkit.Location location) {
OnlineUser user = huskTowns.getOnlineUser(player);
Position position = huskTowns.getPosition(location);
huskTowns.deleteClaimAt(user, position);
}
4. Highlighting a claim
- You can "highlight" a claim for an
OnlineUser(displaying the outline particle effect) using#highlightClaim(OnlineUser actor, TownClaim claim) - You may additionally specify the duration, and use
#highlightClaimAtto attempt to highlight a claim at a specifiedPosition
Example — Highlighting a claim
void highlightClaimAt(org.bukkit.Player player, org.bukkit.Location location) {
OnlineUser user = huskTowns.getOnlineUser(player);
Position position = huskTowns.getPosition(location);
Optional<TownClaim> claim = huskTowns.getClaimAt(position);
if (claim.isPresent()) {
huskTowns.highlightClaim(user, claim.get());
}
}