-
-
Notifications
You must be signed in to change notification settings - Fork 49
Claims API
github-actions[bot] edited this page Feb 5, 2024
·
3 revisions
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.
- Getting if a location is claimed
- Checking what a user can do at a location
- Creating a claim
- Highlighting a claim
- 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());
}
}- 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!");
}
}- 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!");
}
}- 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);
}- 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);
});
}- 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);
}- 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());
}
}| This documentation is available via william278.net |
|---|
- π Setup
- π¦ Legacy Migration
- π Database
- β Redis Support
- π Config Files
- π Translations
- π Hooks
- π₯οΈ Commands
- ποΈ Towns
- π Claims
- π¨ Roles
- π Advancements
- β―οΈ Relations
- βοΈ Wars
- π« Inactive Town Pruning
- π¦ API v3
- π§‘ Towns API
- βοΈ Claims API
- π¬ Operations API
- β API Events
- πΈοΈ API v1 (Legacy)
- π» GitHub
- π Buy HuskTowns
- πSpigot
- πPolymart
- πCraftaro
- πBuiltByBit
- π¬ Discord Support