Compare commits

..

1 Commits

Author SHA1 Message Date
12463dbb1c refactor!: Align plugin's java version with API java version 2022-01-24 15:16:10 +01:00
83 changed files with 284 additions and 550 deletions

View File

@ -7,7 +7,7 @@ body:
attributes:
value: |
Thanks for taking the time to fill out this bug report for PlotSquared! Fill out the following form to your best ability to help us fix the problem.
Only use this if you're absolutely sure that you found a bug and can reproduce it. For anything else, use: [our Discord server](https://discord.gg/intellectualsites) or [the wiki](https://intellectualsites.github.io/plotsquared-documentation/).
Only use this if you're absolutely sure that you found a bug and can reproduce it. For anything else, use: [our Discord server](https://discord.gg/intellectualsites) or [the wiki](https://github.com/IntellectualSites/PlotSquared-Documentation/wiki).
Do NOT use the public issue tracker to report security vulnerabilities! They are disclosed using [this](https://forms.gle/btgdRn9yhGtzEiGW8) form!
- type: dropdown

View File

@ -4,5 +4,5 @@ contact_links:
url: https://discord.gg/intellectualsites
about: Our support Discord, please ask questions and seek support here.
- name: PlotSquared Wiki
url: https://intellectualsites.github.io/plotsquared-documentation/
url: https://github.com/IntellectualSites/PlotSquared-Documentation/wiki
about: Take a look at the wiki page for instructions how to setup PlotSquared and use its commands.

View File

@ -7,7 +7,7 @@ body:
attributes:
value: |
Thanks for taking the time to fill out this feature request for PlotSquared! Fill out the following form to your best ability to help us understand your feature request and greately improve the change of it getting added.
For anything else than a feature request, use: [our Discord server](https://discord.gg/intellectualsites) or [the wiki](https://intellectualsites.github.io/plotsquared-documentation/).
For anything else than a feature request, use: [our Discord server](https://discord.gg/intellectualsites) or [the wiki](https://github.com/IntellectualSites/PlotSquared-Documentation/wiki).
- type: textarea
attributes:

View File

@ -4,7 +4,6 @@ on: [ pull_request, push ]
jobs:
build:
if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }}
runs-on: ubuntu-latest
steps:
- name: Checkout Repository

View File

@ -11,9 +11,8 @@ on:
jobs:
update_release_draft:
if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }}
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5.18.1
- uses: release-drafter/release-drafter@v5.17.6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

13
.whitesource Normal file
View File

@ -0,0 +1,13 @@
{
"scanSettings": {
"baseBranches": ["v6"]
},
"checkRunSettings": {
"vulnerableCheckRunConclusionLevel": "success",
"displayMode": "diff"
},
"issueSettings": {
"minSeverityLevel": "LOW"
},
"enableRenovate": "true"
}

View File

@ -95,11 +95,11 @@ tasks.named<ShadowJar>("shadowJar") {
tasks {
withType<Javadoc> {
val opt = options as StandardJavadocDocletOptions
opt.links("https://papermc.io/javadocs/paper/1.18/")
opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/" + libs.worldeditBukkit.get().versionConstraint.toString())
opt.links("https://javadoc.io/doc/com.plotsquared/PlotSquared-Core/latest/")
opt.links("https://jd.adventure.kyori.net/api/" + libs.adventure.get().versionConstraint.toString())
opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/")
opt.links("https://papermc.io/javadocs/paper/1.17/")
opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-core/7.2.7/")
opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/7.2.7/")
opt.links("https://jd.adventure.kyori.net/api/4.9.3/")
opt.links("https://google.github.io/guice/api-docs/5.0.1/javadoc/")
opt.links("https://checkerframework.org/api/")
}
}

View File

@ -74,7 +74,6 @@ import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.block.data.BlockData;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Fireball;
@ -93,7 +92,6 @@ import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.event.block.BlockFromToEvent;
import org.bukkit.event.block.BlockGrowEvent;
import org.bukkit.event.block.BlockIgniteEvent;
import org.bukkit.event.block.BlockMultiPlaceEvent;
import org.bukkit.event.block.BlockPhysicsEvent;
import org.bukkit.event.block.BlockPistonExtendEvent;
import org.bukkit.event.block.BlockPistonRetractEvent;
@ -168,7 +166,7 @@ public class BlockEventListener implements Listener {
}
if (Settings.Redstone.DISABLE_OFFLINE) {
boolean disable = false;
if (!DBFunc.SERVER.equals(plot.getOwner())) {
if (!plot.getOwner().equals(DBFunc.SERVER)) {
if (plot.isMerged()) {
disable = true;
for (UUID owner : plot.getOwners()) {
@ -279,7 +277,7 @@ public class BlockEventListener implements Listener {
BukkitPlayer pp = BukkitUtil.adapt(player);
Plot plot = area.getPlot(location);
if (plot != null) {
if ((location.getY() >= area.getMaxBuildHeight() || location.getY() < area
if ((location.getY() > area.getMaxBuildHeight() || location.getY() < area
.getMinBuildHeight()) && !Permissions
.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
event.setCancelled(true);
@ -364,7 +362,7 @@ public class BlockEventListener implements Listener {
event.setCancelled(true);
return;
}
} else if ((location.getY() >= area.getMaxBuildHeight() || location.getY() < area
} else if ((location.getY() > area.getMaxBuildHeight() || location.getY() < area
.getMinBuildHeight()) && !Permissions
.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
event.setCancelled(true);
@ -1210,51 +1208,4 @@ public class BlockEventListener implements Listener {
}
}
/*
* BlockMultiPlaceEvent is called unrelated to the BlockPlaceEvent itself and therefore doesn't respect the cancellation.
*/
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onBlockMultiPlace(BlockMultiPlaceEvent event) {
// Check if the generic block place event would be cancelled
blockCreate(event);
if (event.isCancelled()) {
return;
}
BukkitPlayer pp = BukkitUtil.adapt(event.getPlayer());
Location placedLocation = BukkitUtil.adapt(event.getBlockReplacedState().getLocation());
PlotArea area = placedLocation.getPlotArea();
if (area == null) {
return;
}
Plot plot = placedLocation.getPlot();
for (final BlockState state : event.getReplacedBlockStates()) {
Location currentLocation = BukkitUtil.adapt(state.getLocation());
if (!Permissions.hasPermission(
pp,
Permission.PERMISSION_ADMIN_BUILD_ROAD
) && !(Objects.equals(currentLocation.getPlot(), plot))) {
pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"),
Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_BUILD_ROAD))
);
event.setCancelled(true);
break;
}
if (Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
continue;
}
if (currentLocation.getY() >= area.getMaxBuildHeight() || currentLocation.getY() < area.getMinBuildHeight()) {
pp.sendMessage(
TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())),
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight()))
);
event.setCancelled(true);
break;
}
}
}
}

View File

@ -38,7 +38,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
* @deprecated Deprecated and scheduled for removal without replacement
* in favor of the build in setup wizard.
*/
@Deprecated(forRemoval = true, since = "6.0.0")
@Deprecated(forRemoval = true)
@Singleton
public class MultiverseWorldManager extends BukkitWorldManager {

View File

@ -42,7 +42,6 @@ import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.ArrayList;
import java.util.List;
@ -51,15 +50,11 @@ import java.util.stream.IntStream;
@Singleton
public class BukkitInventoryUtil extends InventoryUtil {
private static @Nullable ItemStack getItem(PlotItemStack item) {
private static ItemStack getItem(PlotItemStack item) {
if (item == null) {
return null;
}
Material material = BukkitAdapter.adapt(item.getType());
if (material == null) {
return null;
}
ItemStack stack = new ItemStack(material, item.getAmount());
ItemStack stack = new ItemStack(BukkitAdapter.adapt(item.getType()), item.getAmount());
ItemMeta meta = null;
if (item.getName() != null) {
meta = stack.getItemMeta();
@ -109,19 +104,14 @@ public class BukkitInventoryUtil extends InventoryUtil {
}
@Override
public boolean setItemChecked(PlotInventory inv, int index, PlotItemStack item) {
public void setItem(PlotInventory inv, int index, PlotItemStack item) {
BukkitPlayer bp = (BukkitPlayer) inv.getPlayer();
InventoryView opened = bp.player.getOpenInventory();
ItemStack stack = getItem(item);
if (stack == null) {
return false;
}
if (!inv.isOpen()) {
return true;
return;
}
opened.setItem(index, stack);
opened.setItem(index, getItem(item));
bp.player.updateInventory();
return true;
}
@SuppressWarnings("deprecation") // Paper deprecation

View File

@ -54,13 +54,3 @@ tasks.processResources {
)
}
}
tasks {
withType<Javadoc> {
val opt = options as StandardJavadocDocletOptions
opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-core/" + libs.worldeditCore.get().versionConstraint.toString())
opt.links("https://jd.adventure.kyori.net/api/" + libs.adventure.get().versionConstraint.toString())
opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/")
opt.links("https://checkerframework.org/api/")
}
}

View File

@ -274,7 +274,6 @@ public interface PlotPlatform<P> extends LocaleHolder {
* Get the {@link PlotAreaManager} implementation.
*
* @return the PlotAreaManager
* @since 6.1.4
*/
@NonNull PlotAreaManager plotAreaManager();

View File

@ -306,7 +306,7 @@ public class PlotSquared {
*
* @param version First version
* @param version2 Second version
* @return {@code true} if `version` is &gt;= `version2`
* @return true if `version` is &gt;= `version2`
*/
public boolean checkVersion(
final int[] version,
@ -338,11 +338,9 @@ public class PlotSquared {
/**
* Add a global reference to a plot world.
* <p>
* You can remove the reference by calling {@link #removePlotArea(PlotArea)}
* </p>
*
* @param plotArea the {@link PlotArea} to add.
* @see #removePlotArea(PlotArea) To remove the reference
*/
@SuppressWarnings("unchecked")
public void addPlotArea(final @NonNull PlotArea plotArea) {
@ -735,7 +733,7 @@ public class PlotSquared {
*
* @param plot the plot to remove
* @param callEvent If to call an event about the plot being removed
* @return {@code true} if plot existed | {@code false} if it didn't
* @return true if plot existed | false if it didn't
*/
public boolean removePlot(
final @NonNull Plot plot,
@ -1478,7 +1476,7 @@ public class PlotSquared {
*
* @param world World name
* @param chunkCoordinates Chunk coordinates
* @return {@code true} if the chunk uses non-standard generation, {@code false} if not
* @return True if the chunk uses non-standard generation, false if not
*/
public boolean isNonStandardGeneration(
final @NonNull String world,
@ -1523,12 +1521,10 @@ public class PlotSquared {
/**
* Get the caption map belonging to a namespace. If none exists, a dummy
* caption map will be returned.
* <p>
* You can register a caption map by calling {@link #registerCaptionMap(String, CaptionMap)}
* </p>
*
* @param namespace Namespace
* @return Map instance
* @see #registerCaptionMap(String, CaptionMap) To register a caption map
*/
public @NonNull CaptionMap getCaptionMap(final @NonNull String namespace) {
return this.captionMaps.computeIfAbsent(

View File

@ -122,7 +122,7 @@ public final class PlotVersion {
* Compare a given version string with the one cached here.
*
* @param versionString the version to compare
* @return {@code true} if the given version is a "later" version
* @return true if the given version is a "later" version
*/
public boolean isLaterVersion(final @NonNull String versionString) {
int dash = versionString.indexOf('-');
@ -144,7 +144,7 @@ public final class PlotVersion {
* Compare a given version with the one cached here.
*
* @param verArray the version to compare
* @return {@code true} if the given version is a "later" version
* @return true if the given version is a "later" version
*/
public boolean isLaterVersion(int[] verArray) {
if (verArray[0] > version[0]) {

View File

@ -88,7 +88,7 @@ public interface BackupManager {
* Returns true if (potentially) destructive actions should cause
* PlotSquared to create automatic plot backups
*
* @return {@code true} if automatic backups are enabled
* @return True if automatic backups are enabled
*/
boolean shouldAutomaticallyBackup();

View File

@ -34,7 +34,7 @@ import net.kyori.adventure.text.minimessage.Template;
* @deprecated In favor of "/plot toggle chat" and
* scheduled for removal within the next major release.
*/
@Deprecated(forRemoval = true, since = "6.0.0")
@Deprecated(forRemoval = true)
@CommandDeclaration(command = "chat",
usage = "/plot chat",
permission = "plots.chat",

View File

@ -288,7 +288,7 @@ public abstract class Command {
* @param args Arguments
* @param confirm Instance, Success, Failure
* @param whenDone task to run when done
* @return CompletableFuture {@code true} if the command executed fully, {@code false} in
* @return CompletableFuture true if the command executed fully, false in
* any other case
*/
public CompletableFuture<Boolean> execute(

View File

@ -28,7 +28,6 @@ package com.plotsquared.core.command;
import com.plotsquared.core.configuration.caption.Caption;
import com.plotsquared.core.configuration.caption.LocaleHolder;
import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.player.PlotPlayer;
import org.checkerframework.checker.nullness.qual.NonNull;
/**
@ -96,16 +95,4 @@ public enum CommandCategory implements Caption {
public String getComponent(@NonNull LocaleHolder localeHolder) {
return this.caption.getComponent(localeHolder);
}
/**
* Checks if a player has access to this command category
*
* @param player The player to check against
* @return {@code true} if at least one command of this category can be executed by the player, {@code false} otherwise
* @since 6.5.0
*/
boolean canAccess(PlotPlayer<?> player) {
return !MainCommand.getInstance().getCommands(this, player).isEmpty();
}
}

View File

@ -126,7 +126,7 @@ public class Done extends SubCommand {
long flagValue = System.currentTimeMillis() / 1000;
PlotFlag<?, ?> plotFlag = plot.getFlagContainer().getFlag(DoneFlag.class)
.createFlagInstance(Long.toString(flagValue));
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, plot);
PlotFlagAddEvent event = new PlotFlagAddEvent(plotFlag, plot);
if (event.getEventResult() == Result.DENY) {
player.sendMessage(TranslatableCaption.of("events.event_denied"));
return;

View File

@ -25,7 +25,6 @@
*/
package com.plotsquared.core.command;
import com.google.inject.Inject;
import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.CaptionUtility;
@ -45,7 +44,6 @@ import com.plotsquared.core.plot.flag.InternalFlag;
import com.plotsquared.core.plot.flag.PlotFlag;
import com.plotsquared.core.plot.flag.types.IntegerFlag;
import com.plotsquared.core.plot.flag.types.ListFlag;
import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.StringComparison;
@ -81,12 +79,8 @@ import java.util.stream.Stream;
@SuppressWarnings("unused")
public final class FlagCommand extends Command {
private final EventDispatcher eventDispatcher;
@Inject
public FlagCommand(final @NonNull EventDispatcher eventDispatcher) {
public FlagCommand() {
super(MainCommand.getInstance(), true);
this.eventDispatcher = eventDispatcher;
}
private static boolean sendMessage(PlotPlayer<?> player) {
@ -120,7 +114,7 @@ public final class FlagCommand extends Command {
TranslatableCaption.of("permission.no_permission"),
Template.of(
"node",
perm + "." + numeric
perm
)
);
}
@ -171,7 +165,7 @@ public final class FlagCommand extends Command {
/**
* Checks if the player is allowed to modify the flags at their current location
*
* @return {@code true} if the player is allowed to modify the flags at their current location
* @return true if the player is allowed to modify the flags at their current location
*/
private static boolean checkRequirements(final @NonNull PlotPlayer<?> player) {
final Location location = player.getLocation();
@ -341,7 +335,7 @@ public final class FlagCommand extends Command {
return;
}
Plot plot = player.getLocation().getPlotAbs();
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, plot);
PlotFlagAddEvent event = new PlotFlagAddEvent(plotFlag, plot);
if (event.getEventResult() == Result.DENY) {
player.sendMessage(
TranslatableCaption.of("events.event_denied"),
@ -400,7 +394,7 @@ public final class FlagCommand extends Command {
return;
}
Plot plot = player.getLocation().getPlotAbs();
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, plot);
PlotFlagAddEvent event = new PlotFlagAddEvent(plotFlag, plot);
if (event.getEventResult() == Result.DENY) {
player.sendMessage(
TranslatableCaption.of("events.event_denied"),
@ -469,7 +463,7 @@ public final class FlagCommand extends Command {
return;
}
final Plot plot = player.getLocation().getPlotAbs();
PlotFlagRemoveEvent event = eventDispatcher.callFlagRemove(flag, plot);
PlotFlagRemoveEvent event = new PlotFlagRemoveEvent(flag, plot);
if (event.getEventResult() == Result.DENY) {
player.sendMessage(
TranslatableCaption.of("events.event_denied"),
@ -522,7 +516,7 @@ public final class FlagCommand extends Command {
}
} else {
PlotFlag<?, ?> plotFlag = parsedFlag.createFlagInstance(list);
PlotFlagAddEvent addEvent = eventDispatcher.callFlagAdd(plotFlag, plot);
PlotFlagAddEvent addEvent = new PlotFlagAddEvent(plotFlag, plot);
if (addEvent.getEventResult() == Result.DENY) {
player.sendMessage(
TranslatableCaption.of("events.event_denied"),

View File

@ -37,11 +37,11 @@ import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.minimessage.Template;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@CommandDeclaration(command = "help",
aliases = "?",
@ -119,9 +119,6 @@ public class Help extends Command {
TextComponent.Builder builder = Component.text();
builder.append(MINI_MESSAGE.parse(TranslatableCaption.of("help.help_header").getComponent(player)));
for (CommandCategory c : CommandCategory.values()) {
if (!c.canAccess(player)) {
continue;
}
builder.append(Component.newline()).append(MINI_MESSAGE
.parse(
TranslatableCaption.of("help.help_info_item").getComponent(player),
@ -155,26 +152,12 @@ public class Help extends Command {
@Override
public Collection<Command> tab(PlotPlayer<?> player, String[] args, boolean space) {
final String argument = args[0].toLowerCase(Locale.ENGLISH);
List<Command> result = new ArrayList<>();
for (final CommandCategory category : CommandCategory.values()) {
if (!category.canAccess(player)) {
continue;
}
String name = category.name().toLowerCase();
if (!name.startsWith(argument)) {
continue;
}
result.add(new Command(null, false, name, "", RequiredType.NONE, null) {
});
}
// add the category "all"
if ("all".startsWith(argument)) {
result.add(new Command(null, false, "all", "", RequiredType.NONE, null) {
});
}
return result;
return Stream.of("claiming", "teleport", "settings", "chat", "schematic", "appearance", "info", "debug",
"administration", "all"
)
.filter(value -> value.startsWith(args[0].toLowerCase(Locale.ENGLISH)))
.map(value -> new Command(null, false, value, "", RequiredType.NONE, null) {
}).collect(Collectors.toList());
}
}

View File

@ -38,13 +38,10 @@ import com.plotsquared.core.plot.PlotInventory;
import com.plotsquared.core.plot.PlotItemStack;
import com.plotsquared.core.plot.flag.PlotFlag;
import com.plotsquared.core.plot.flag.implementations.MusicFlag;
import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.InventoryUtil;
import com.plotsquared.core.util.Permissions;
import com.sk89q.worldedit.world.item.ItemType;
import com.sk89q.worldedit.world.item.ItemTypes;
import net.kyori.adventure.text.minimessage.Template;
import org.checkerframework.checker.nullness.qual.NonNull;
import javax.annotation.Nullable;
import java.util.Arrays;
@ -66,12 +63,10 @@ public class Music extends SubCommand {
);
private final InventoryUtil inventoryUtil;
private final EventDispatcher eventDispatcher;
@Inject
public Music(final @Nullable InventoryUtil inventoryUtil, final @NonNull EventDispatcher eventDispatcher) {
public Music(final @Nullable InventoryUtil inventoryUtil) {
this.inventoryUtil = inventoryUtil;
this.eventDispatcher = eventDispatcher;
}
@Override
@ -109,7 +104,7 @@ public class Music extends SubCommand {
if (item.getType() == ItemTypes.BEDROCK) {
PlotFlag<?, ?> plotFlag = plot.getFlagContainer().getFlag(MusicFlag.class)
.createFlagInstance(item.getType());
PlotFlagRemoveEvent event = eventDispatcher.callFlagRemove(plotFlag, plot);
PlotFlagRemoveEvent event = new PlotFlagRemoveEvent(plotFlag, plot);
if (event.getEventResult() == Result.DENY) {
getPlayer().sendMessage(
TranslatableCaption.of("events.event_denied"),
@ -126,7 +121,7 @@ public class Music extends SubCommand {
} else if (item.getName().toLowerCase(Locale.ENGLISH).contains("disc")) {
PlotFlag<?, ?> plotFlag = plot.getFlagContainer().getFlag(MusicFlag.class)
.createFlagInstance(item.getType());
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, plot);
PlotFlagAddEvent event = new PlotFlagAddEvent(plotFlag, plot);
if (event.getEventResult() == Result.DENY) {
getPlayer().sendMessage(
TranslatableCaption.of("events.event_denied"),
@ -149,14 +144,8 @@ public class Music extends SubCommand {
for (final String disc : DISCS) {
final String name = String.format("<gold>%s</gold>", disc);
final String[] lore = {TranslatableCaption.of("plotjukebox.click_to_play").getComponent(player)};
ItemType type = ItemTypes.get(disc);
if (type == null) {
continue;
}
final PlotItemStack item = new PlotItemStack(type, 1, name, lore);
if (inv.setItemChecked(index, item)) {
index++;
}
final PlotItemStack item = new PlotItemStack(disc, 1, name, lore);
inv.setItem(index++, item);
}
// Always add the cancel button

View File

@ -51,7 +51,7 @@ public class PluginCmd extends SubCommand {
player.sendMessage(StaticCaption.of(
"<gray>>> </gray><gold><bold>Authors<reset><gray>: </gray><gold>Citymonstret </gold><gray>& </gray><gold>Empire92 </gold><gray>& </gray><gold>MattBDev </gold><gray>& </gray><gold>dordsor21 </gold><gray>& </gray><gold>NotMyFault </gold><gray>& </gray><gold>SirYwell</gold>"));
player.sendMessage(StaticCaption.of(
"<gray>>> </gray><gold><bold>Wiki<reset><gray>: </gray><gold><click:open_url:https://intellectualsites.github.io/plotsquared-documentation/>https://intellectualsites.github.io/plotsquared-documentation/</gold>"));
"<gray>>> </gray><gold><bold>Wiki<reset><gray>: </gray><gold><click:open_url:https://github.com/IntellectualSites/PlotSquared-Documentation/wiki>https://github.com/IntellectualSites/PlotSquared-Documentation/wiki</gold>"));
player.sendMessage(StaticCaption.of(
"<gray>>> </gray><gold><bold>Discord<reset><gray>: </gray><gold><click:open_url:https://discord.gg/intellectualsites>https://discord.gg/intellectualsites</gold>"));
player.sendMessage(

View File

@ -50,7 +50,7 @@ import java.util.UUID;
* @deprecated In favor of "/plot download" (Arkitektonika) and scheduled
* for removal within the next major release.
*/
@Deprecated(forRemoval = true, since = "6.0.9")
@Deprecated(forRemoval = true)
@CommandDeclaration(command = "save",
category = CommandCategory.SCHEMATIC,
requiredType = RequiredType.NONE,

View File

@ -128,7 +128,7 @@ public class ComponentPresetManager {
0,
"",
"<rainbow:2>Disco Floor</rainbow>",
List.of("<gold>Spice up your plot floor</gold>"),
Arrays.asList("<gold>Spice up your plot floor</gold>"),
ItemTypes.YELLOW_WOOL
));
yamlConfiguration.set("presets", defaultPreset.stream().map(ComponentPreset::serialize).collect(Collectors.toList()));
@ -181,10 +181,6 @@ public class ComponentPresetManager {
}
allowedPresets.add(componentPreset);
}
if (allowedPresets.isEmpty()) {
player.sendMessage(TranslatableCaption.of("preset.empty"));
return null;
}
final int size = (int) Math.ceil((double) allowedPresets.size() / 9.0D);
final PlotInventory plotInventory = new PlotInventory(this.inventoryUtil, player, size,
TranslatableCaption.of("preset.title").getComponent(player)) {
@ -214,13 +210,7 @@ public class ComponentPresetManager {
return false;
}
if (componentPreset.getCost() > 0.0D) {
if (!econHandler.isEnabled(plot.getArea())) {
getPlayer().sendMessage(
TranslatableCaption.of("preset.economy_disabled"),
Template.of("preset", componentPreset.getDisplayName()));
return false;
}
if (componentPreset.getCost() > 0.0D && econHandler.isEnabled(plot.getArea())) {
if (econHandler.getMoney(getPlayer()) < componentPreset.getCost()) {
getPlayer().sendMessage(TranslatableCaption.of("preset.preset_cannot_afford"));
return false;
@ -256,16 +246,11 @@ public class ComponentPresetManager {
for (int i = 0; i < allowedPresets.size(); i++) {
final ComponentPreset preset = allowedPresets.get(i);
final List<String> lore = new ArrayList<>();
if (preset.getCost() > 0) {
if (!this.econHandler.isEnabled(plot.getArea())) {
lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.parse(
TranslatableCaption.of("preset.preset_lore_economy_disabled").getComponent(player))));
} else {
lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.parse(
TranslatableCaption.of("preset.preset_lore_cost").getComponent(player),
Template.of("cost", String.format("%.2f", preset.getCost()))
)));
}
if (preset.getCost() > 0 && this.econHandler.isEnabled(plot.getArea())) {
lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.parse(
TranslatableCaption.of("preset.preset_lore_cost").getComponent(player),
Template.of("cost", String.format("%.2f", preset.getCost()))
)));
}
lore.add(MINI_MESSAGE.serialize(MINI_MESSAGE.parse(
TranslatableCaption.of("preset.preset_lore_component").getComponent(player),

View File

@ -73,7 +73,7 @@ public interface ConfigurationSection {
* has been specified, this will return true.
*
* @param path Path to check for existence.
* @return {@code true} if this section contains the requested path, either via
* @return True if this section contains the requested path, either via
* default or being set.
* @throws IllegalArgumentException Thrown when path is {@code null}.
*/
@ -87,7 +87,7 @@ public interface ConfigurationSection {
* has been specified, this will still return false.
*
* @param path Path to check for existence.
* @return {@code true} if this section contains the requested path, regardless of
* @return True if this section contains the requested path, regardless of
* having a default.
* @throws IllegalArgumentException Thrown when path is {@code null}.
*/

View File

@ -201,7 +201,7 @@ public class Settings extends Config {
public List<String> WORLDS = new ArrayList<>(Collections.singletonList("*"));
@Comment("See: https://intellectualsites.github.io/plotsquared-documentation/optimization/plot-analysis for a description of each value.")
@Comment("See: https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/Plot-analysis for a description of each value.")
public static final class CALIBRATION {
public int VARIETY = 0;
@ -221,7 +221,7 @@ public class Settings extends Config {
@Comment({"Chunk processor related settings",
"See https://intellectualsites.github.io/plotsquared-documentation/optimization/chunk-processor for more information."})
"See https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/Chunk-processor for more information."})
public static class Chunk_Processor {
@Comment("Auto trim will not save chunks which aren't claimed")
@ -284,7 +284,7 @@ public class Settings extends Config {
@Comment("Always show explosion Particles, even if explosion flag is set to false")
public static boolean ALWAYS_SHOW_EXPLOSIONS = false;
@Comment({"Blocks that may not be used in plot components",
"Checkout the wiki article regarding plot components before modifying: https://intellectualsites.github.io/plotsquared-documentation/customization/plot-components"})
"Checkout the wiki article regarding plot components before modifying: https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/Plot-Components"})
public static List<String>
INVALID_BLOCKS = Arrays.asList(
// Acacia Stuff
@ -406,7 +406,7 @@ public class Settings extends Config {
@Comment({"Schematic Settings",
"See https://intellectualsites.github.io/plotsquared-documentation/schematics/schematic-on-claim for more information."})
"See https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/Schematic-on-Claim for more information."})
public static final class Schematics {
@Comment(
@ -438,7 +438,7 @@ public class Settings extends Config {
}
@Deprecated(forRemoval = true, since = "6.0.0")
@Deprecated(forRemoval = true)
@Comment("Schematic interface related settings")
public static class Web {
@ -535,7 +535,7 @@ public class Settings extends Config {
@Comment({"Backup related settings",
"See https://intellectualsites.github.io/plotsquared-documentation/plot-backups for more information."})
"See https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/Backups for more information."})
public static final class Backup {
@Comment("Automatically backup plots when destructive commands are performed, e.g. /plot clear")
@ -784,7 +784,7 @@ public class Settings extends Config {
public static boolean
PERSISTENT_ROAD_REGEN = true;
@Comment({"Enable the `/plot component` preset GUI",
"Read more about components here: https://intellectualsites.github.io/plotsquared-documentation/customization/plot-components"})
"Read more about components here: https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/Plot-Components"})
public static boolean COMPONENT_PRESETS = true;
@Comment("Enable per user locale")
public static boolean PER_USER_LOCALE = false;

View File

@ -60,7 +60,7 @@ public interface CaptionMap {
* Check if the map supports a given locale
*
* @param locale Locale
* @return {@code true} if the map supports the locale
* @return True if the map supports the locale
*/
boolean supportsLocale(final @NonNull Locale locale);

View File

@ -103,7 +103,6 @@ public class CaptionUtility {
* @param miniMessageString the message from which the specified click events should be removed from.
* @return the string without the click events that are configured to be removed.
* @see Settings.Chat#CLICK_EVENT_ACTIONS_TO_REMOVE
* @since 6.0.10
*/
public static String stripClickEvents(final @NonNull String miniMessageString) {
// parse, transform and serialize again
@ -123,7 +122,6 @@ public class CaptionUtility {
* @return the string without the click events that are configured to be removed.
* @see Settings.Chat#CLICK_EVENT_ACTIONS_TO_REMOVE
* @see #stripClickEvents(String)
* @since 6.0.10
*/
public static String stripClickEvents(
final @NonNull PlotFlag<?, ?> flag,

View File

@ -99,7 +99,7 @@ public interface ChatFormatter {
* Whether or not the output should escape
* any formatting keys
*
* @return {@code true} if raw output is to be used
* @return True if raw output is to be used
*/
public boolean isRawOutput() {
return this.rawOutput;

View File

@ -39,7 +39,6 @@ public interface ComponentTransform {
*
* @param transform the transform to apply.
* @return a new transform which is applied on all child components and the component itself.
* @since 6.0.10
*/
static ComponentTransform nested(ComponentTransform transform) {
return new NestedComponentTransform(transform);
@ -52,7 +51,6 @@ public interface ComponentTransform {
*
* @param actionsToRemove the actions used to filter which click events should be removed.
* @return a new transform that removes click events from a component.
* @since 6.0.10
*/
static ComponentTransform stripClicks(ClickEvent.Action... actionsToRemove) {
return new ClickStripTransform(Set.of(actionsToRemove));
@ -63,7 +61,6 @@ public interface ComponentTransform {
*
* @param original the component to transform.
* @return the transformed component.
* @since 6.0.10
*/
@NonNull Component transform(@NonNull Component original);

View File

@ -36,12 +36,10 @@ import java.util.Locale;
public interface LocaleHolder {
/**
* Get the console locale holder.
* <p>
* You can use {@link ConsolePlayer#getConsole()} for direct access to the {@link ConsolePlayer}
* </p>
* Get the console locale holder
*
* @return Console locale holder
* @see ConsolePlayer#getConsole() for direct access to the {@link ConsolePlayer}
*/
@NonNull
static LocaleHolder console() {

View File

@ -371,7 +371,7 @@ public interface AbstractDB {
/**
* Don't use this method unless you want to ruin someone's server.
*
* @return {@code true} if the tables were deleted, {@code false} when an error is encountered
* @return true if the tables were deleted, false when an error is encountered
*/
boolean deleteTables();

View File

@ -52,7 +52,7 @@ public abstract class Database {
/**
* Checks if a connection is open with the database.
*
* @return {@code true} if the connection is open
* @return true if the connection is open
* @throws SQLException if the connection cannot be checked
*/
public abstract boolean checkConnection() throws SQLException;
@ -67,7 +67,7 @@ public abstract class Database {
/**
* Closes the connection with the database.
*
* @return {@code true} if successful
* @return true if successful
* @throws SQLException if the connection cannot be closed
*/
public abstract boolean closeConnection() throws SQLException;

View File

@ -115,7 +115,7 @@ public class PlayerAutoPlotEvent extends PlotEvent implements CancellablePlotEve
/**
* @deprecated for removal. Use {@link PlayerAutoPlotEvent#getSizeX()}
*/
@Deprecated(forRemoval = true, since = "6.1.0")
@Deprecated(forRemoval = true)
public int getSize_x() {
return getSizeX();
}
@ -123,7 +123,7 @@ public class PlayerAutoPlotEvent extends PlotEvent implements CancellablePlotEve
/**
* @deprecated for removal. Use {@link PlayerAutoPlotEvent#setSizeX(int)} )}
*/
@Deprecated(forRemoval = true, since = "6.1.0")
@Deprecated(forRemoval = true)
public void setSize_x(int sizeX) {
setSizeX(sizeX);
}
@ -131,7 +131,7 @@ public class PlayerAutoPlotEvent extends PlotEvent implements CancellablePlotEve
/**
* @deprecated for removal. Use {@link PlayerAutoPlotEvent#getSizeZ()}
*/
@Deprecated(forRemoval = true, since = "6.1.0")
@Deprecated(forRemoval = true)
public int getSize_z() {
return getSizeZ();
}
@ -139,7 +139,7 @@ public class PlayerAutoPlotEvent extends PlotEvent implements CancellablePlotEve
/**
* @deprecated for removal. Use {@link PlayerAutoPlotEvent#setSizeZ(int)} )}
*/
@Deprecated(forRemoval = true, since = "6.1.0")
@Deprecated(forRemoval = true)
public void setSize_z(int sizeZ) {
setSizeZ(sizeZ);
}
@ -148,7 +148,6 @@ public class PlayerAutoPlotEvent extends PlotEvent implements CancellablePlotEve
* Get the x size of the auto-area
*
* @return x size
* @since 6.1.0
*/
public int getSizeX() {
return this.sizeX;
@ -158,7 +157,6 @@ public class PlayerAutoPlotEvent extends PlotEvent implements CancellablePlotEve
* Set the x size of the auto-area
*
* @param sizeX x size
* @since 6.1.0
*/
public void setSizeX(int sizeX) {
this.sizeX = sizeX;
@ -168,7 +166,6 @@ public class PlayerAutoPlotEvent extends PlotEvent implements CancellablePlotEve
* Get the z size of the auto-area
*
* @return z size
* @since 6.1.0
*/
public int getSizeZ() {
return this.sizeZ;
@ -178,7 +175,6 @@ public class PlayerAutoPlotEvent extends PlotEvent implements CancellablePlotEve
* Set the z size of the auto-area
*
* @param sizeZ z size
* @since 6.1.0
*/
public void setSizeZ(int sizeZ) {
this.sizeZ = sizeZ;

View File

@ -47,7 +47,6 @@ public class PlayerAutoPlotsChosenEvent extends PlotPlayerEvent {
*
* @param player Player that executed the auto
* @param plots Plots that have been chosen to be set to the player
* @since 6.1.0
*/
public PlayerAutoPlotsChosenEvent(PlotPlayer<?> player, List<Plot> plots) {
super(player, plots.size() > 0 ? plots.get(0) : null);
@ -68,7 +67,6 @@ public class PlayerAutoPlotsChosenEvent extends PlotPlayerEvent {
* Get the immutable list of plots selected to be claimed by the player. May be of length 0.
*
* @return immutable list.
* @since 6.1.0
*/
public @NonNull List<Plot> getPlots() {
return plots;
@ -78,7 +76,6 @@ public class PlayerAutoPlotsChosenEvent extends PlotPlayerEvent {
* Set the plots to be claimed by the player.
*
* @param plots list of plots.
* @since 6.1.0
*/
public void setPlots(final @NonNull List<Plot> plots) {
this.plots = List.copyOf(plots);

View File

@ -42,7 +42,7 @@ public class PlayerPlotDeniedEvent extends PlotEvent {
* @param initiator Player that initiated the event
* @param plot Plot in which the event occurred
* @param player Player that was denied/un-denied
* @param added {@code true} of add to deny list, {@code false} if removed
* @param added true of add to deny list, false if removed
*/
public PlayerPlotDeniedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
super(plot);

View File

@ -45,7 +45,7 @@ public class PlayerPlotHelperEvent extends PlotEvent {
* @param initiator Player that initiated the event
* @param plot Plot in which the event occurred
* @param player Player that was added/removed from the helper list
* @param added {@code true} if the player was added, {@code false} if the player was removed
* @param added true of the player was added, false if the player was removed
*/
public PlayerPlotHelperEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
super(plot);

View File

@ -42,7 +42,7 @@ public class PlayerPlotTrustedEvent extends PlotEvent {
* @param initiator Player that initiated the event
* @param plot Plot in which the event occurred
* @param player Player that was added/removed from the trusted list
* @param added {@code true} if the player was added, {@code false} if the player was removed
* @param added true of the player was added, false if the player was removed
*/
public PlayerPlotTrustedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
super(plot);

View File

@ -42,7 +42,7 @@ public class PlayerTeleportToPlotEvent extends PlotPlayerEvent implements Cancel
* @deprecated use {@link PlayerTeleportToPlotEvent#PlayerTeleportToPlotEvent(PlotPlayer, Location, Plot, TeleportCause)}.
* You should not be creating events in the first place.
*/
@Deprecated(forRemoval = true, since = "6.1.0")
@Deprecated(forRemoval = true)
public PlayerTeleportToPlotEvent(PlotPlayer<?> player, Location from, Plot plot) {
this(player, from, plot, TeleportCause.UNKNOWN);
}
@ -54,7 +54,6 @@ public class PlayerTeleportToPlotEvent extends PlotPlayerEvent implements Cancel
* @param from Start location
* @param plot Plot to which the player was teleported
* @param cause Why the teleport is being completed
* @since 6.1.0
*/
public PlayerTeleportToPlotEvent(PlotPlayer<?> player, Location from, Plot plot, TeleportCause cause) {
super(player, plot);
@ -66,7 +65,6 @@ public class PlayerTeleportToPlotEvent extends PlotPlayerEvent implements Cancel
* Get the teleport cause
*
* @return TeleportCause
* @since 6.1.0
*/
public TeleportCause getCause() {
return cause;

View File

@ -39,7 +39,6 @@ public class PlotClaimedNotifyEvent extends PlotEvent {
*
* @param plot Plot that was claimed
* @param auto If the plot was claimed using /plot auto
* @since 6.1.0
*/
public PlotClaimedNotifyEvent(Plot plot, boolean auto) {
super(plot);
@ -50,9 +49,7 @@ public class PlotClaimedNotifyEvent extends PlotEvent {
* If the plot was claimed using /plot auto
*
* @return if claimed with auto
* @since 6.1.0
*/
@SuppressWarnings("unused")
public boolean wasAuto() {
return auto;
}

View File

@ -57,16 +57,12 @@ public enum TeleportCause {
PLUGIN,
UNKNOWN;
/**
* @since 6.1.0
*/
public static final class CauseSets {
public static final Set<TeleportCause> COMMAND = Sets.immutableEnumSet(EnumSet.range(
TeleportCause.COMMAND,
TeleportCause.COMMAND_VISIT
));
@SuppressWarnings("unused")
public static final Set<TeleportCause> PLUGIN = Sets.immutableEnumSet(EnumSet.range(
TeleportCause.DEATH,
TeleportCause.PLUGIN

View File

@ -45,7 +45,6 @@ import com.plotsquared.core.queue.ChunkQueueCoordinator;
import com.plotsquared.core.queue.GlobalBlockQueue;
import com.plotsquared.core.queue.QueueCoordinator;
import com.plotsquared.core.util.ChunkManager;
import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.RegionManager;
import com.plotsquared.core.util.RegionUtil;
@ -94,7 +93,6 @@ public class HybridUtils {
private final GlobalBlockQueue blockQueue;
private final WorldUtil worldUtil;
private final SchematicHandler schematicHandler;
private final EventDispatcher eventDispatcher;
@Inject
public HybridUtils(
@ -102,15 +100,13 @@ public class HybridUtils {
final @NonNull ChunkManager chunkManager,
final @NonNull GlobalBlockQueue blockQueue,
final @NonNull WorldUtil worldUtil,
final @NonNull SchematicHandler schematicHandler,
final @NonNull EventDispatcher eventDispatcher
final @NonNull SchematicHandler schematicHandler
) {
this.plotAreaManager = plotAreaManager;
this.chunkManager = chunkManager;
this.blockQueue = blockQueue;
this.worldUtil = worldUtil;
this.schematicHandler = schematicHandler;
this.eventDispatcher = eventDispatcher;
}
public void regeneratePlotWalls(final PlotArea area) {
@ -352,7 +348,7 @@ public class HybridUtils {
result.add(whenDone.value.variety_sd);
PlotFlag<?, ?> plotFlag = GlobalFlagContainer.getInstance().getFlag(AnalysisFlag.class).createFlagInstance(
result);
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, origin);
PlotFlagAddEvent event = new PlotFlagAddEvent(plotFlag, origin);
if (event.getEventResult() == Result.DENY) {
return;
}

View File

@ -174,9 +174,21 @@ public class PlotListener {
String greeting = plot.getFlag(GreetingFlag.class);
if (!greeting.isEmpty()) {
if (!Settings.Chat.NOTIFICATION_AS_ACTIONBAR) {
plot.format(StaticCaption.of(greeting), player, false).thenAcceptAsync(player::sendMessage);
player.sendMessage(
TranslatableCaption.of("flags.greeting_flag_format"),
Template.of("world", plot.getWorldName()),
Template.of("plot_id", plot.getId().toString()),
Template.of("alias", plot.getAlias()),
Template.of("greeting", greeting)
);
} else {
plot.format(StaticCaption.of(greeting), player, false).thenAcceptAsync(player::sendActionBar);
player.sendActionBar(
TranslatableCaption.of("flags.greeting_flag_format"),
Template.of("world", plot.getWorldName()),
Template.of("plot_id", plot.getId().toString()),
Template.of("alias", plot.getAlias()),
Template.of("greeting", greeting)
);
}
}
@ -401,9 +413,21 @@ public class PlotListener {
String farewell = plot.getFlag(FarewellFlag.class);
if (!farewell.isEmpty()) {
if (!Settings.Chat.NOTIFICATION_AS_ACTIONBAR) {
plot.format(StaticCaption.of(farewell), player, false).thenAcceptAsync(player::sendMessage);
player.sendMessage(
TranslatableCaption.of("flags.farewell_flag_format"),
Template.of("world", plot.getWorldName()),
Template.of("plot_id", plot.getId().toString()),
Template.of("alias", plot.getAlias()),
Template.of("farewell", farewell)
);
} else {
plot.format(StaticCaption.of(farewell), player, false).thenAcceptAsync(player::sendActionBar);
player.sendActionBar(
TranslatableCaption.of("flags.farewell_flag_format"),
Template.of("world", plot.getWorldName()),
Template.of("plot_id", plot.getId().toString()),
Template.of("alias", plot.getAlias()),
Template.of("farewell", farewell)
);
}
}

View File

@ -52,7 +52,6 @@ public interface PermissionHolder {
* @param permission Permission
* @param key Permission "key"
* @return {@code true} if the owner has the given permission, else {@code false}
* @since 6.0.10
*/
default boolean hasKeyedPermission(
final @NonNull String permission,
@ -116,7 +115,6 @@ public interface PermissionHolder {
* @param permission Permission
* @param key Permission "key"
* @return {@code true} if the owner has the given permission, else {@code false}
* @since 6.0.10
*/
boolean hasKeyedPermission(@Nullable String world, @NonNull String permission, @NonNull String key);

View File

@ -59,9 +59,7 @@ public interface PermissionProfile {
* @param permission Permission
* @param key Permission "key"
* @return {@code true} if the owner has the given permission, else {@code false}
* @since 6.0.10
*/
@SuppressWarnings("unused")
default boolean hasKeyedPermission(
final @NonNull String permission,
final @NonNull String key
@ -77,7 +75,6 @@ public interface PermissionProfile {
* @param permission Permission
* @param key Permission "key"
* @return {@code true} if the owner has the given permission, else {@code false}
* @since 6.0.10
*/
boolean hasKeyedPermission(
@Nullable String world, final @NonNull String permission,

View File

@ -378,12 +378,9 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
/**
* Get a {@link Set} of plots owned by this player.
*
* <p>
* Take a look at {@link PlotSquared} for more searching functions.
* See {@link #getPlotCount()} for the number of plots.
* </p>
*
* @return a {@link Set} of plots owned by the player
* @see PlotSquared for more searching functions
* @see #getPlotCount() for the number of plots
*/
public Set<Plot> getPlots() {
return PlotQuery.newQuery().ownedBy(this).asSet();
@ -504,7 +501,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
* Retrieves the attribute of this player.
*
* @param key metadata key
* @return the attribute will be either {@code true} or {@code false}
* @return the attribute will be either true or false
*/
public boolean getAttribute(String key) {
if (!hasPersistentMeta("attrib_" + key)) {
@ -575,7 +572,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
/**
* Check if this player is banned.
*
* @return {@code true} if the player is banned, {@code false} otherwise.
* @return true if the player is banned, false otherwise.
*/
public abstract boolean isBanned();

View File

@ -219,13 +219,10 @@ public class Plot {
* Constructor for a new plot.
* (Only changes after plot.create() will be properly set in the database)
*
* <p>
* See {@link Plot#getPlot(Location)} for existing plots
* </p>
*
* @param area the PlotArea where the plot is located
* @param id the plot id
* @param owner the plot owner
* @see Plot#getPlot(Location) for existing plots
*/
public Plot(final PlotArea area, final @NonNull PlotId id, final UUID owner) {
this(area, id, owner, 0);
@ -235,12 +232,9 @@ public class Plot {
* Constructor for an unowned plot.
* (Only changes after plot.create() will be properly set in the database)
*
* <p>
* See {@link Plot#getPlot(Location)} for existing plots
* </p>
*
* @param area the PlotArea where the plot is located
* @param id the plot id
* @see Plot#getPlot(Location) for existing plots
*/
public Plot(final @NonNull PlotArea area, final @NonNull PlotId id) {
this(area, id, null, 0);
@ -251,14 +245,11 @@ public class Plot {
* The database will ignore any queries regarding temporary plots.
* Please note that some bulk plot management functions may still affect temporary plots (TODO: fix this)
*
* <p>
* See {@link Plot#getPlot(Location)} for existing plots
* </p>
*
* @param area the PlotArea where the plot is located
* @param id the plot id
* @param owner the owner of the plot
* @param temp Represents whatever the database manager needs it to
* @see Plot#getPlot(Location) for existing plots
*/
public Plot(final PlotArea area, final @NonNull PlotId id, final UUID owner, final int temp) {
this.area = area;
@ -275,10 +266,6 @@ public class Plot {
/**
* Constructor for a saved plots (Used by the database manager when plots are fetched)
*
* <p>
* See {@link Plot#getPlot(Location)} for existing plots
* </p>
*
* @param id the plot id
* @param owner the plot owner
* @param trusted the plot trusted players
@ -291,6 +278,7 @@ public class Plot {
* @param merged an array giving merged plots
* @param timestamp when the plot was created
* @param temp value representing whatever DBManager needs to to. Do not touch tbh.
* @see Plot#getPlot(Location) for existing plots
*/
public Plot(
@NonNull PlotId id,
@ -430,12 +418,9 @@ public class Plot {
/**
* Return a new/cached plot object at a given location.
*
* <p>
* Use {@link PlotPlayer#getCurrentPlot()} if a player is expected here.
* </p>
*
* @param location the location of the plot
* @return plot at location or null
* @see PlotPlayer#getCurrentPlot() if a player is expected here.
*/
public static @Nullable Plot getPlot(final @NonNull Location location) {
final PlotArea pa = location.getPlotArea();
@ -464,7 +449,7 @@ public class Plot {
* that could alter the de facto owner of the plot.
*
* @return The plot owner of this particular (sub-)plot
* as stored in the database, if one exists. Else, null.
* as stored in the database, if one exists. Else, null.
*/
public @Nullable UUID getOwnerAbs() {
return this.owner;
@ -603,13 +588,10 @@ public class Plot {
/**
* Get the plot owner of this particular sub-plot.
* (Merged plots can have multiple owners)
* Direct access is discouraged: use {@link #getOwners()}
*
* <p>
* Use {@link #getOwnerAbs()} to get the owner as stored in the database
* </p>
* Direct access is discouraged: use getOwners()
*
* @return Server if ServerPlot flag set, else {@link #getOwnerAbs()}
* @see #getOwnerAbs() getOwnerAbs() to get the owner as stored in the database
*/
public @Nullable UUID getOwner() {
if (this.getFlag(ServerPlotFlag.class)) {
@ -1219,6 +1201,12 @@ public class Plot {
*
* @return array of entity counts
* @see RegionManager#countEntities(Plot)
* 0 = Entity
* 1 = Animal
* 2 = Monster
* 3 = Mob
* 4 = Boat
* 5 = Misc
*/
public int[] countEntities() {
int[] count = new int[6];
@ -1237,7 +1225,7 @@ public class Plot {
/**
* Returns true if a previous task was running
*
* @return {@code true} if a previous task is running
* @return true if a previous task is running
*/
public int addRunning() {
int value = this.getRunning();
@ -1281,7 +1269,7 @@ public class Plot {
/**
* Unclaim the plot (does not modify terrain). Changes made to this plot will not be reflected in unclaimed plot objects.
*
* @return {@code false} if the Plot has no owner, otherwise {@code true}.
* @return false if the Plot has no owner, otherwise true.
*/
public boolean unclaim() {
if (!this.hasOwner()) {
@ -1698,7 +1686,7 @@ public class Plot {
return base.settings != null && base.settings.getRatings() != null;
}
@Deprecated(forRemoval = true, since = "6.1.0")
@Deprecated(forRemoval = true)
public boolean claim(final @NonNull PlotPlayer<?> player, boolean teleport, String schematic) {
if (!canClaim(player)) {
return false;
@ -1706,7 +1694,7 @@ public class Plot {
return claim(player, teleport, schematic, true);
}
@Deprecated(forRemoval = true, since = "6.1.0")
@Deprecated(forRemoval = true)
public boolean claim(final @NonNull PlotPlayer<?> player, boolean teleport, String schematic, boolean updateDB) {
return claim(player, teleport, schematic, updateDB, false);
}
@ -1720,7 +1708,6 @@ public class Plot {
* @param updateDB If the database should be updated
* @param auto If the plot is being claimed by a /plot auto
* @return success
* @since 6.1.0
*/
public boolean claim(
final @NonNull PlotPlayer<?> player, boolean teleport, String schematic, boolean updateDB,
@ -2682,7 +2669,7 @@ public class Plot {
/**
* Checks if the owner of this Plot is online.
*
* @return {@code true} if the owner of the Plot is online
* @return true if the owner of the Plot is online
*/
public boolean isOnline() {
if (!this.hasOwner()) {
@ -3044,11 +3031,8 @@ public class Plot {
* If rating categories are enabled, get the average rating by category.<br>
* - The index corresponds to the index of the category in the config
*
* <p>
* See {@link Settings.Ratings#CATEGORIES} for rating categories
* </p>
*
* @return Average ratings in each category
* @see Settings.Ratings#CATEGORIES Rating categories
*/
public @NonNull double[] getAverageRatings() {
Map<UUID, Integer> rating;

View File

@ -295,7 +295,7 @@ public abstract class PlotArea {
* Check if a PlotArea is compatible (move/copy etc.).
*
* @param plotArea the {@link PlotArea} to compare
* @return {@code true} if both areas are compatible
* @return true if both areas are compatible
*/
public boolean isCompatible(final @NonNull PlotArea plotArea) {
final ConfigurationSection section = this.worldConfiguration.getConfigurationSection("worlds");
@ -1101,7 +1101,7 @@ public abstract class PlotArea {
* If a schematic is available, it can be used for plot claiming.
*
* @param schematic the schematic to look for.
* @return {@code true} if the schematic exists, {@code false} otherwise.
* @return true if the schematic exists, false otherwise.
*/
public boolean hasSchematic(@NonNull String schematic) {
return getSchematics().contains(schematic.toLowerCase());
@ -1110,7 +1110,7 @@ public abstract class PlotArea {
/**
* Get whether economy is enabled and used on this plot area or not.
*
* @return {@code true} if this plot area uses economy, {@code false} otherwise.
* @return true if this plot area uses economy, false otherwise.
*/
public boolean useEconomy() {
return useEconomy;
@ -1119,7 +1119,7 @@ public abstract class PlotArea {
/**
* Get whether the plot area is limited by a world border or not.
*
* @return {@code true} if the plot area has a world border, {@code false} otherwise.
* @return true if the plot area has a world border, false otherwise.
*/
public boolean hasWorldBorder() {
return worldBorder;
@ -1128,7 +1128,7 @@ public abstract class PlotArea {
/**
* Get whether plot signs are allowed or not.
*
* @return {@code true} if plot signs are allowed, {@code false} otherwise.
* @return true if plot signs are allow, false otherwise.
*/
public boolean allowSigns() {
return allowSigns;
@ -1276,9 +1276,8 @@ public abstract class PlotArea {
* @deprecated Use {@link #signMaterial()}. This method is used for 1.13 only and
* will be removed without replacement in favor of {@link #signMaterial()}
* once we remove the support for 1.13.
* @since 6.0.3
*/
@Deprecated(forRemoval = true, since = "6.0.3")
@Deprecated(forRemoval = true)
public String getLegacySignMaterial() {
return this.legacySignMaterial;
}
@ -1324,18 +1323,14 @@ public abstract class PlotArea {
/**
* Get the location for non-members to be teleported to.
*
* @since 6.1.4
*/
public BlockLoc nonmemberHome() {
return this.nonmemberHome;
}
/**
* Get the default location for players to be teleported to. May be overridden by {@link #nonmemberHome} if the player is
* Get the default location for players to be teleported to. May be overriden by {@link #nonmemberHome} if the player is
* not a member of the plot.
*
* @since 6.1.4
*/
public BlockLoc defaultHome() {
return this.defaultHome;
@ -1344,7 +1339,7 @@ public abstract class PlotArea {
/**
* @deprecated Use {@link #nonmemberHome}
*/
@Deprecated(forRemoval = true, since = "6.1.4")
@Deprecated(forRemoval = true)
public PlotLoc getNonmemberHome() {
return new PlotLoc(this.defaultHome.getX(), this.defaultHome.getY(), this.defaultHome.getZ());
}
@ -1352,7 +1347,7 @@ public abstract class PlotArea {
/**
* @deprecated Use {@link #defaultHome}
*/
@Deprecated(forRemoval = true, since = "6.1.4")
@Deprecated(forRemoval = true)
public PlotLoc getDefaultHome() {
return new PlotLoc(this.defaultHome.getX(), this.defaultHome.getY(), this.defaultHome.getZ());
}

View File

@ -103,32 +103,9 @@ public class PlotInventory {
this.open = false;
}
/**
* Put an item into this inventory
*
* @param index the index (= slot) where to place the item
* @param item the item to place
* @see #setItemChecked(int, PlotItemStack)
*/
public void setItem(int index, PlotItemStack item) {
setItemChecked(index, item);
}
/**
* Put an item into this inventory, while also checking the existence of the material in the current version
*
* @param index the index (= slot) where to place the item
* @param item the item to place
* @return {@code true} if the item could be placed, otherwise {@code false}
* @see InventoryUtil#setItemChecked(PlotInventory, int, PlotItemStack)
* @since 6.5.0
*/
public boolean setItemChecked(int index, PlotItemStack item) {
if (!this.inventoryUtil.setItemChecked(this, index, item)) {
return false;
}
this.items[index] = item;
return true;
this.inventoryUtil.setItem(this, index, item);
}
public PlotItemStack getItem(int index) {

View File

@ -46,21 +46,7 @@ public class PlotItemStack {
final String id, final int amount, final String name,
final String... lore
) {
this(ItemTypes.get(id), amount, name, lore);
}
/**
* @param type The item type
* @param amount Amount of items in the stack
* @param name The display name of the item stack
* @param lore The item stack lore
* @since 6.5.0
*/
public PlotItemStack(
final ItemType type, final int amount, final String name,
final String... lore
) {
this.type = type;
this.type = ItemTypes.get(id);
this.amount = amount;
this.name = name;
this.lore = lore;

View File

@ -187,7 +187,7 @@ public abstract class PlotManager {
* @param plotIds list of PlotIds to finish the merge for
* @param queue Nullable {@link QueueCoordinator}. If null, creates own queue and enqueues,
* otherwise writes to the queue but does not enqueue.
* @return {@code false} if part if the merge failed, otherwise {@code true} if successful.
* @return false if part if the merge failed, otherwise true if successful.
*/
public abstract boolean finishPlotMerge(@NonNull List<PlotId> plotIds, @Nullable QueueCoordinator queue);
@ -214,7 +214,7 @@ public abstract class PlotManager {
* @return the world height
* @deprecated In favor of custom world heights within 1.17 and therefore scheduled for removal without replacement
*/
@Deprecated(forRemoval = true, since = "6.0.0")
@Deprecated(forRemoval = true)
public int getWorldHeight() {
return 255;
}
@ -224,7 +224,7 @@ public abstract class PlotManager {
*
* @param queue Nullable {@link QueueCoordinator}. If null, creates own queue and enqueues,
* otherwise writes to the queue but does not enqueue.
* @return {@code true} if the wall blocks were successfully set
* @return true if the wall blocks were successfully set
*/
public boolean regenerateAllPlotWalls(@Nullable QueueCoordinator queue) {
boolean success = true;

View File

@ -190,12 +190,9 @@ public final class PlotModificationManager {
/**
* Clear the plot
*
* <p>
* Use {@link #deletePlot(PlotPlayer, Runnable)} to clear and delete a plot
* </p>
*
* @param whenDone A runnable to execute when clearing finishes, or null
* @see #clear(boolean, boolean, PlotPlayer, Runnable)
* @see #deletePlot(PlotPlayer, Runnable) to clear and delete a plot
*/
public void clear(final @Nullable Runnable whenDone) {
this.clear(false, false, null, whenDone);
@ -204,14 +201,11 @@ public final class PlotModificationManager {
/**
* Clear the plot
*
* <p>
* Use {@link #deletePlot(PlotPlayer, Runnable)} to clear and delete a plot
* </p>
*
* @param checkRunning Whether or not already executing tasks should be checked
* @param isDelete Whether or not the plot is being deleted
* @param actor The actor clearing the plot
* @param whenDone A runnable to execute when clearing finishes, or null
* @see #deletePlot(PlotPlayer, Runnable) to clear and delete a plot
*/
public boolean clear(
final boolean checkRunning,
@ -262,9 +256,7 @@ public final class PlotModificationManager {
if (queue.size() > 0) {
queue.setCompleteTask(run);
queue.enqueue();
return;
}
run.run();
return;
}
Plot current = queue.poll();
@ -456,7 +448,7 @@ public final class PlotModificationManager {
* - Any setting from before plot creation will not be saved until the server is stopped properly. i.e. Set any values/options after plot
* creation.
*
* @return {@code true} if plot was created successfully
* @return true if plot was created successfully
*/
public boolean create() {
return this.create(this.plot.getOwnerAbs(), true);
@ -800,7 +792,7 @@ public final class PlotModificationManager {
/**
* Unlink a plot and remove the roads
*
* @return {@code true} if plot was linked
* @return true if plot was linked
* @see #unlinkPlot(boolean, boolean)
*/
public boolean unlink() {
@ -866,14 +858,11 @@ public final class PlotModificationManager {
/**
* Delete a plot (use null for the runnable if you don't need to be notified on completion)
*
* <p>
* Use {@link PlotModificationManager#clear(boolean, boolean, PlotPlayer, Runnable)} to simply clear a plot
* </p>
*
* @param actor The actor executing the task
* @param whenDone task to run when plot has been deleted. Nullable
* @return {@code true} if the deletion was successful, {@code false} if not
* @see PlotSquared#removePlot(Plot, boolean)
* @see PlotModificationManager#clear(boolean, boolean, PlotPlayer, Runnable) to simply clear a plot
*/
public boolean deletePlot(@Nullable PlotPlayer<?> actor, final Runnable whenDone) {
if (!this.plot.hasOwner()) {

View File

@ -30,9 +30,6 @@ import java.util.Objects;
public class PlotTitle {
/**
* @since 6.1.0
*/
public static final PlotTitle CONFIGURED = new PlotTitle();
private final String title;
@ -43,9 +40,6 @@ public class PlotTitle {
subtitle = null;
}
/**
* @since 6.0.10
*/
public PlotTitle(String title, String subtitle) {
Objects.requireNonNull(title);
Objects.requireNonNull(subtitle);
@ -53,17 +47,11 @@ public class PlotTitle {
this.subtitle = subtitle;
}
/**
* @since 6.0.10
*/
@Nullable
public String title() {
return title;
}
/**
* @since 6.0.10
*/
@Nullable
public String subtitle() {
return subtitle;

View File

@ -54,7 +54,7 @@ public abstract class CommentInbox {
/**
* @param plot the plot's inbox to write to
* @param player the player trying to write the comment
* @return {@code true} if the player can write a comment on the plot
* @return true if the player can write a comment on the plot
*/
public boolean canWrite(Plot plot, PlotPlayer<?> player) {
if (plot == null) {
@ -68,7 +68,7 @@ public abstract class CommentInbox {
/**
* @param plot the plot's inbox to write to
* @param player the player trying to modify the inbox
* @return {@code true} if the player can write a comment on the plot
* @return true if the player can write a comment on the plot
*/
@SuppressWarnings({"BooleanMethodIsAlwaysInverted"})
public boolean canModify(Plot plot, PlotPlayer<?> player) {

View File

@ -136,18 +136,18 @@ public class ExpireManager {
}
public void confirmExpiry(final PlotPlayer<?> pp) {
TaskManager.runTask(() -> {
try (final MetaDataAccess<Boolean> metaDataAccess = pp.accessTemporaryMetaData(
PlayerMetaDataKeys.TEMPORARY_IGNORE_EXPIRE_TASK)) {
if (metaDataAccess.isPresent()) {
return;
}
if (plotsToDelete != null && !plotsToDelete.isEmpty() && pp.hasPermission("plots.admin.command.autoclear")) {
final int num = plotsToDelete.size();
while (!plotsToDelete.isEmpty()) {
Iterator<Plot> iter = plotsToDelete.iterator();
final Plot current = iter.next();
if (!isExpired(new ArrayDeque<>(tasks), current).isEmpty()) {
try (final MetaDataAccess<Boolean> metaDataAccess = pp.accessTemporaryMetaData(
PlayerMetaDataKeys.TEMPORARY_IGNORE_EXPIRE_TASK)) {
if (metaDataAccess.isPresent()) {
return;
}
if (plotsToDelete != null && !plotsToDelete.isEmpty() && pp.hasPermission("plots.admin.command.autoclear")) {
final int num = plotsToDelete.size();
while (!plotsToDelete.isEmpty()) {
Iterator<Plot> iter = plotsToDelete.iterator();
final Plot current = iter.next();
if (!isExpired(new ArrayDeque<>(tasks), current).isEmpty()) {
TaskManager.runTask(() -> {
metaDataAccess.set(true);
current.getCenter(pp::teleport);
metaDataAccess.remove();
@ -171,15 +171,15 @@ public class ExpireManager {
cmd_keep,
cmd_no_show_expir
);
return;
} else {
iter.remove();
}
});
return;
} else {
iter.remove();
}
plotsToDelete.clear();
}
plotsToDelete.clear();
}
});
}
}
@ -307,7 +307,6 @@ public class ExpireManager {
this.running = 2;
TaskManager.runTaskAsync(new Runnable() {
private ConcurrentLinkedDeque<Plot> plots = null;
@Override
public void run() {
final Runnable task = this;
@ -360,7 +359,7 @@ public class ExpireManager {
.getFlag(AnalysisFlag.class)
.createFlagInstance(changed.asList());
PlotFlagAddEvent event =
eventDispatcher.callFlagAdd(plotFlag, plot);
new PlotFlagAddEvent(plotFlag, newPlot);
if (event.getEventResult() == Result.DENY) {
return;
}
@ -452,7 +451,7 @@ public class ExpireManager {
plot.getPlotModificationManager().deletePlot(null, whenDone);
}
@Deprecated(forRemoval = true, since = "6.4.0")
@Deprecated(forRemoval = true, since = "TODO")
public long getAge(UUID uuid) {
return getAge(uuid, false);
}
@ -463,7 +462,7 @@ public class ExpireManager {
* @param uuid the uuid of the owner to check against
* @param shouldDeleteUnknownOwner {@code true} if an unknown player should be counted as never online
* @return the millis since the player was last online, or {@link Long#MAX_VALUE} if player was never online
* @since 6.4.0
* @since TODO
*/
public long getAge(UUID uuid, final boolean shouldDeleteUnknownOwner) {
if (PlotSquared.platform().playerManager().getPlayerIfExists(uuid) != null) {

View File

@ -160,7 +160,7 @@ public class ExpiryTask {
/**
* Returns {@code true} if this task respects unknown owners
* @return {@code true} if unknown owners should be counted as never online
* @since 6.4.0
* @since TODO
*/
public boolean shouldDeleteForUnknownOwner() {
return settings.DELETE_IF_OWNER_IS_UNKNOWN;

View File

@ -142,13 +142,10 @@ public class FlagContainer {
/**
* Add a flag to the container
*
* <p>
* Use {@link #addAll(Collection)} to add multiple flags.
* </p>
*
* @param flag Flag to add
* @param <T> flag type
* @param <V> flag value type
* @see #addAll(Collection) to add multiple flags
*/
public <V, T extends PlotFlag<V, ?>> void addFlag(final T flag) {
try {
@ -202,11 +199,8 @@ public class FlagContainer {
/**
* Add all flags to the container
*
* <p>
* Use {@link #addFlag(PlotFlag)} to add a single flag.
* </p>
*
* @param flags Flags to add
* @see #addFlag(PlotFlag) to add a single flagg
*/
public void addAll(final Collection<PlotFlag<?, ?>> flags) {
for (final PlotFlag<?, ?> flag : flags) {
@ -311,11 +305,8 @@ public class FlagContainer {
* Updates are: a flag being removed, a flag being added or a flag
* being updated.
*
* <p>
* Use {@link PlotFlagUpdateType} to see the update types available.
* </p>
*
* @param plotFlagUpdateHandler The update handler which will react to changes.
* @see PlotFlagUpdateType Plot flag update types
*/
public void subscribe(final @NonNull PlotFlagUpdateHandler plotFlagUpdateHandler) {
this.updateSubscribers.add(plotFlagUpdateHandler);
@ -358,7 +349,6 @@ public class FlagContainer {
* This is to prevent memory leaks. This method is not part of the API.
*
* @return a new Runnable that cleans up once the FlagContainer isn't needed anymore.
* @since 6.0.10
*/
@AnnotationHelper.ApiDescription(info = "This method should not be considered as public or API.")
public Runnable createCleanupHook() {

View File

@ -134,28 +134,17 @@ public final class GlobalFlagContainer extends FlagContainer {
stringClassMap = new HashMap<>();
// Register all default flags here
// Block type list flags
this.addFlag(BreakFlag.BREAK_NONE);
this.addFlag(UseFlag.USE_NONE);
this.addFlag(PlaceFlag.PLACE_NONE);
// Boolean flags
this.addFlag(ExplosionFlag.EXPLOSION_FALSE);
this.addFlag(UntrustedVisitFlag.UNTRUSTED_VISIT_FLAG_TRUE);
this.addFlag(DenyExitFlag.DENY_EXIT_FLAG_FALSE);
this.addFlag(AnimalAttackFlag.ANIMAL_ATTACK_FALSE);
this.addFlag(AnimalInteractFlag.ANIMAL_INTERACT_FALSE);
this.addFlag(BlockBurnFlag.BLOCK_BURN_FALSE);
this.addFlag(BlockIgnitionFlag.BLOCK_IGNITION_TRUE);
this.addFlag(ChatFlag.CHAT_FLAG_TRUE);
this.addFlag(CopperOxideFlag.COPPER_OXIDE_FALSE);
this.addFlag(CoralDryFlag.CORAL_DRY_FALSE);
this.addFlag(CropGrowFlag.CROP_GROW_TRUE);
this.addFlag(DenyExitFlag.DENY_EXIT_FLAG_FALSE);
this.addFlag(DenyPortalsFlag.DENY_PORTALS_FALSE);
this.addFlag(DenyPortalTravelFlag.DENY_PORTAL_TRAVEL_FALSE);
this.addFlag(DeviceInteractFlag.DEVICE_INTERACT_FALSE);
this.addFlag(DisablePhysicsFlag.DISABLE_PHYSICS_FALSE);
this.addFlag(DropProtectionFlag.DROP_PROTECTION_FALSE);
this.addFlag(EntityChangeBlockFlag.ENTITY_CHANGE_BLOCK_FALSE);
this.addFlag(ExplosionFlag.EXPLOSION_FALSE);
this.addFlag(ForcefieldFlag.FORCEFIELD_FALSE);
this.addFlag(GrassGrowFlag.GRASS_GROW_TRUE);
this.addFlag(HangingBreakFlag.HANGING_BREAK_FALSE);
@ -165,53 +154,52 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(HostileInteractFlag.HOSTILE_INTERACT_FALSE);
this.addFlag(IceFormFlag.ICE_FORM_FALSE);
this.addFlag(IceMeltFlag.ICE_MELT_FALSE);
this.addFlag(InstabreakFlag.INSTABREAK_FALSE);
this.addFlag(InvincibleFlag.INVINCIBLE_FALSE);
this.addFlag(ItemDropFlag.ITEM_DROP_TRUE);
this.addFlag(KeepInventoryFlag.KEEP_INVENTORY_FALSE);
this.addFlag(KelpGrowFlag.KELP_GROW_TRUE);
this.addFlag(LeafDecayFlag.LEAF_DECAY_TRUE);
this.addFlag(LecternReadBookFlag.LECTERN_READ_BOOK_FALSE);
this.addFlag(RedstoneFlag.REDSTONE_TRUE);
this.addFlag(ServerPlotFlag.SERVER_PLOT_FALSE);
this.addFlag(MiscBreakFlag.MISC_BREAK_FALSE);
this.addFlag(MobBreakFlag.MOB_BREAK_FALSE);
this.addFlag(MobPlaceFlag.MOB_PLACE_FALSE);
this.addFlag(MiscInteractFlag.MISC_INTERACT_FALSE);
this.addFlag(MiscPlaceFlag.MISC_PLACE_FALSE);
this.addFlag(MycelGrowFlag.MYCEL_GROW_TRUE);
this.addFlag(NotifyEnterFlag.NOTIFY_ENTER_FALSE);
this.addFlag(NotifyLeaveFlag.NOTIFY_LEAVE_FALSE);
this.addFlag(NoWorldeditFlag.NO_WORLDEDIT_FALSE);
this.addFlag(PlayerInteractFlag.PLAYER_INTERACT_FALSE);
this.addFlag(PreventCreativeCopyFlag.PREVENT_CREATIVE_COPY_FALSE);
this.addFlag(PveFlag.PVE_FALSE);
this.addFlag(PvpFlag.PVP_FALSE);
this.addFlag(RedstoneFlag.REDSTONE_TRUE);
this.addFlag(ServerPlotFlag.SERVER_PLOT_FALSE);
this.addFlag(SnowFormFlag.SNOW_FORM_FALSE);
this.addFlag(SnowMeltFlag.SNOW_MELT_TRUE);
this.addFlag(SoilDryFlag.SOIL_DRY_FALSE);
this.addFlag(CoralDryFlag.CORAL_DRY_FALSE);
this.addFlag(TamedAttackFlag.TAMED_ATTACK_FALSE);
this.addFlag(TamedInteractFlag.TAMED_INTERACT_FALSE);
this.addFlag(UntrustedVisitFlag.UNTRUSTED_VISIT_FLAG_TRUE);
this.addFlag(VehicleBreakFlag.VEHICLE_BREAK_FALSE);
this.addFlag(VehiclePlaceFlag.VEHICLE_PLACE_FALSE);
this.addFlag(VehicleUseFlag.VEHICLE_USE_FALSE);
this.addFlag(VillagerInteractFlag.VILLAGER_INTERACT_FALSE);
this.addFlag(VineGrowFlag.VINE_GROW_TRUE);
// Double flags
this.addFlag(PriceFlag.PRICE_NOT_BUYABLE);
this.addFlag(ItemDropFlag.ITEM_DROP_TRUE);
this.addFlag(InstabreakFlag.INSTABREAK_FALSE);
this.addFlag(InvincibleFlag.INVINCIBLE_FALSE);
this.addFlag(ChatFlag.CHAT_FLAG_TRUE);
this.addFlag(MiscPlaceFlag.MISC_PLACE_FALSE);
this.addFlag(MiscInteractFlag.MISC_INTERACT_FALSE);
this.addFlag(KeepInventoryFlag.KEEP_INVENTORY_FALSE);
this.addFlag(PreventCreativeCopyFlag.PREVENT_CREATIVE_COPY_FALSE);
this.addFlag(LeafDecayFlag.LEAF_DECAY_TRUE);
this.addFlag(CropGrowFlag.CROP_GROW_TRUE);
this.addFlag(DenyPortalTravelFlag.DENY_PORTAL_TRAVEL_FALSE);
this.addFlag(DenyPortalsFlag.DENY_PORTALS_FALSE);
this.addFlag(LecternReadBookFlag.LECTERN_READ_BOOK_FALSE);
this.addFlag(EntityChangeBlockFlag.ENTITY_CHANGE_BLOCK_FALSE);
this.addFlag(CopperOxideFlag.COPPER_OXIDE_FALSE);
// Enum Flags
this.addFlag(WeatherFlag.PLOT_WEATHER_FLAG_OFF);
this.addFlag(DenyTeleportFlag.DENY_TELEPORT_FLAG_NONE);
this.addFlag(TitlesFlag.TITLES_NONE);
this.addFlag(FlyFlag.FLIGHT_FLAG_DEFAULT);
this.addFlag(LiquidFlowFlag.LIQUID_FLOW_DEFAULT);
this.addFlag(TitlesFlag.TITLES_NONE);
this.addFlag(WeatherFlag.PLOT_WEATHER_FLAG_OFF);
// Internal flags
this.addFlag(new AnalysisFlag(Collections.emptyList()));
this.addFlag(new DoneFlag(""));
// Integer flags
this.addFlag(AnimalCapFlag.ANIMAL_CAP_UNLIMITED);
@ -222,10 +210,22 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(TimeFlag.TIME_DISABLED);
this.addFlag(VehicleCapFlag.VEHICLE_CAP_UNLIMITED);
// Timed flags
this.addFlag(FeedFlag.FEED_NOTHING);
this.addFlag(HealFlag.HEAL_NOTHING);
// Double flags
this.addFlag(PriceFlag.PRICE_NOT_BUYABLE);
// Block type list flags
this.addFlag(BreakFlag.BREAK_NONE);
this.addFlag(PlaceFlag.PLACE_NONE);
this.addFlag(UseFlag.USE_NONE);
// Misc
this.addFlag(BlockedCmdsFlag.BLOCKED_CMDS_FLAG_NONE);
this.addFlag(GamemodeFlag.GAMEMODE_FLAG_DEFAULT);
this.addFlag(GuestGamemodeFlag.GUEST_GAMEMODE_FLAG_DEFAULT);
this.addFlag(BlockedCmdsFlag.BLOCKED_CMDS_FLAG_NONE);
this.addFlag(KeepFlag.KEEP_FLAG_FALSE);
this.addFlag(MusicFlag.MUSIC_FLAG_NONE);
@ -235,9 +235,9 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(FarewellFlag.FAREWELL_FLAG_EMPTY);
this.addFlag(PlotTitleFlag.TITLE_FLAG_DEFAULT);
// Timed flags
this.addFlag(FeedFlag.FEED_NOTHING);
this.addFlag(HealFlag.HEAL_NOTHING);
// Internal flags
this.addFlag(new AnalysisFlag(Collections.emptyList()));
this.addFlag(new DoneFlag(""));
}
public static void setup() {

View File

@ -163,7 +163,6 @@ public abstract class PlotFlag<T, F extends PlotFlag<T, F>> {
* Get if the flag's permission should check for values. E.g. plots.flag.set.music.VALUE
*
* @return if valued permission
* @since 6.0.10
*/
public boolean isValuedPermission() {
return true;

View File

@ -196,12 +196,9 @@ public interface PlotAreaManager {
/**
* Check if a plot world.
*
* <p>
* Use {@link #getPlotAreaByString(String)} to get the PlotArea object
* </p>
*
* @param world the world
* @return if a plot world is registered
* @see #getPlotAreaByString(String) to get the PlotArea object
*/
default boolean hasPlotArea(final @NonNull String world) {
return this.getPlotAreas(world, null).length != 0;

View File

@ -83,7 +83,6 @@ public class SinglePlotArea extends GridPlotWorld {
* Returns true if the given string matches the naming system used to identify single plot worlds
* e.g. -1_5 represents plot id *;-1;5. "*" being the plot area name given to single plot world
* {@link com.plotsquared.core.plot.PlotArea}.
* @since 6.1.4
*/
public static boolean isSinglePlotWorld(String worldName) {
int len = worldName.length();

View File

@ -36,7 +36,6 @@ public abstract class ChunkCoordinator implements Runnable {
/**
* Cancel the chunk coordinator.
* @since 6.0.10
*/
public abstract void cancel();

View File

@ -209,7 +209,7 @@ public abstract class QueueCoordinator {
* <br>
* Scheduled for removal once we drop the support for versions not supporting 3D biomes.
*/
@Deprecated(forRemoval = true, since = "6.0.0")
@Deprecated(forRemoval = true)
public abstract boolean setBiome(int x, int z, @NonNull BiomeType biome);
/**
@ -327,7 +327,6 @@ public abstract class QueueCoordinator {
* Enqueue the queue to start it
*
* @return success or not
* @since 6.0.10
*/
public boolean enqueue() {
boolean success = false;

View File

@ -123,7 +123,7 @@ public class ChunkUtil {
* @param pos1 Region minimum point
* @param pos2 Region maximum point
* @param chunk BlockVector2 of chunk coordinates
* @return {@code true} if the region pos1-pos2 contains the chunk
* @return true if the region pos1-pos2 contains the chunk
*/
public static boolean isWholeChunk(@NonNull Location pos1, @NonNull Location pos2, @NonNull BlockVector2 chunk) {
int x1 = pos1.getX();

View File

@ -38,33 +38,11 @@ public abstract class InventoryUtil {
public abstract void close(final PlotInventory inv);
/**
* Attempts to set an item into a {@link PlotInventory} while also checking the existence of the material
*
* @param plotInventory The inventory where the item should be placed
* @param index The index where to place the item
* @param item The item to place into the inventory
* @return {@code true} if the item could be placed, {@code false} otherwise (e.g. item not available in current version)
* @since 6.5.0
*/
public abstract boolean setItemChecked(
public abstract void setItem(
final PlotInventory plotInventory, final int index,
final PlotItemStack item
);
/**
* Attempts to set an item into a {@link PlotInventory}
*
* @param plotInventory The inventory where the item should be placed
* @param index The index where to place the item
* @param item The item to place into the inventory
* @see #setItemChecked(PlotInventory, int, PlotItemStack)
*/
public void setItem(final PlotInventory plotInventory, final int index,
final PlotItemStack item) {
setItemChecked(plotInventory, index, item);
}
public abstract PlotItemStack[] getItems(final PlotPlayer<?> player);
public abstract boolean isOpen(final PlotInventory plotInventory);

View File

@ -30,7 +30,7 @@ package com.plotsquared.core.util;
*
* @deprecated Do not use
*/
@Deprecated(forRemoval = true, since = "6.0.0")
@Deprecated(forRemoval = true)
public class MainUtil {
/**

View File

@ -74,7 +74,6 @@ public class Permissions {
* @param permission Permission
* @param key Permission "key"
* @return {@code true} if the owner has the given permission, else {@code false}
* @since 6.0.10
*/
public static boolean hasKeyedPermission(
final @NonNull PermissionHolder caller, final @NonNull String permission,

View File

@ -166,7 +166,7 @@ public abstract class PlayerManager<P extends PlotPlayer<? extends T>, T> {
* @return The player's name, None, Everyone or Unknown
* @deprecated Use {@link #resolveName(UUID)}
*/
@Deprecated(forRemoval = true, since = "6.4.0")
@Deprecated(forRemoval = true, since = "TODO")
public static @NonNull String getName(final @Nullable UUID owner) {
return getName(owner, true);
}
@ -179,7 +179,7 @@ public abstract class PlayerManager<P extends PlotPlayer<? extends T>, T> {
* @return The player's name, None, Everyone or Unknown
* @deprecated Use {@link #resolveName(UUID, boolean)}
*/
@Deprecated(forRemoval = true, since = "6.4.0")
@Deprecated(forRemoval = true, since = "TODO")
public static @NonNull String getName(final @Nullable UUID owner, final boolean blocking) {
if (owner == null) {
TranslatableCaption.of("info.none");
@ -217,7 +217,7 @@ public abstract class PlayerManager<P extends PlotPlayer<? extends T>, T> {
* @param owner The UUID of the owner
* @return A caption containing either the name, {@code None}, {@code Everyone} or {@code Unknown}
* @see #resolveName(UUID, boolean)
* @since 6.4.0
* @since TODO
*/
public static @NonNull Caption resolveName(final @Nullable UUID owner) {
return resolveName(owner, true);
@ -229,7 +229,7 @@ public abstract class PlayerManager<P extends PlotPlayer<? extends T>, T> {
* @param owner The UUID of the owner
* @param blocking If the operation should block the current thread for {@link Settings.UUID#BLOCKING_TIMEOUT} milliseconds
* @return A caption containing either the name, {@code None}, {@code Everyone} or {@code Unknown}
* @since 6.4.0
* @since TODO
*/
public static @NonNull Caption resolveName(final @Nullable UUID owner, final boolean blocking) {
if (owner == null) {

View File

@ -52,7 +52,7 @@ public class PremiumVerification {
/**
* @param userID Spigot user ID
* @return {@code true} if userID does not contain __USER__
* @return true if userID does not contain __USER__
*/
private static Boolean isPremium(String userID) {
return !userID.contains("__USER__");
@ -61,7 +61,7 @@ public class PremiumVerification {
/**
* Returns true if this plugin is premium
*
* @return {@code true} if is premium
* @return if is premium
*/
public static Boolean isPremium() {
return usingPremium == null ? (usingPremium = isPremium(getUserID())) : usingPremium;

View File

@ -120,7 +120,7 @@ public abstract class RegionManager {
* @param actor the actor associated with the cuboid set
* @param queue Nullable {@link QueueCoordinator}. If null, creates own queue and enqueues,
* otherwise writes to the queue but does not enqueue.
* @return {@code true} if not enqueued, otherwise whether the created queue enqueued.
* @return true if not enqueued, otherwise whether the created queue enqueued.
*/
public boolean setCuboids(
final @NonNull PlotArea area,
@ -161,7 +161,7 @@ public abstract class RegionManager {
* Notify any plugins that may want to modify clear behaviour that a clear is occuring
*
* @param manager plot manager
* @return {@code true} if the notified will accept the clear task
* @return true if the notified will accept the clear task
*/
public boolean notifyClear(PlotManager manager) {
return false;
@ -174,7 +174,7 @@ public abstract class RegionManager {
* @param whenDone task to run when complete
* @param manager plot manager
* @param actor the player running the clear
* @return {@code true} if the clear worked. {@code false} if someone went wrong so P2 can then handle the clear
* @return true if the clear worked. False if someone went wrong so P2 can then handle the clear
*/
public abstract boolean handleClear(
@NonNull Plot plot,

View File

@ -127,7 +127,7 @@ public abstract class SchematicHandler {
this.subscriberFactory = subscriberFactory;
}
@Deprecated(forRemoval = true, since = "6.0.0")
@Deprecated(forRemoval = true)
public static void upload(
@Nullable UUID uuid,
final @Nullable String file,
@ -520,7 +520,7 @@ public abstract class SchematicHandler {
return null;
}
@Deprecated(forRemoval = true, since = "6.0.0")
@Deprecated(forRemoval = true)
public void upload(final CompoundTag tag, UUID uuid, String file, RunnableVal<URL> whenDone) {
if (tag == null) {
TaskManager.runTask(whenDone);
@ -543,7 +543,7 @@ public abstract class SchematicHandler {
*
* @param tag to save
* @param path to save in
* @return {@code true} if succeeded
* @return true if succeeded
*/
public boolean save(CompoundTag tag, String path) {
if (tag == null) {

View File

@ -35,9 +35,6 @@ public abstract class SetupUtils {
public static HashMap<String, GeneratorWrapper<?>> generators = new HashMap<>();
/**
* @since 6.1.0
*/
public abstract void updateGenerators(final boolean force);
public abstract String getGenerator(final PlotArea plotArea);

View File

@ -328,7 +328,7 @@ public class StringMan {
/**
* @param message an input string
* @return a list of strings
* @since 6.4.0
* @since TODO
*
* <table border="1">
* <caption>Converts multiple quoted and single strings into a list of strings</caption>

View File

@ -84,7 +84,7 @@ public final class TabCompletions {
* @return List of completions
* @deprecated In favor {@link #completePlayers(PlotPlayer, String, List)}
*/
@Deprecated(forRemoval = true, since = "6.1.3")
@Deprecated(forRemoval = true)
public static @NonNull List<Command> completePlayers(
final @NonNull String input,
final @NonNull List<String> existing
@ -100,7 +100,6 @@ public final class TabCompletions {
* @param issuer The player who issued the tab completion
* @param existing Players that should not be included in completions
* @return List of completions
* @since 6.1.3
*/
public static @NonNull List<Command> completePlayers(
final @NonNull PlotPlayer<?> issuer,
@ -120,7 +119,7 @@ public final class TabCompletions {
*
* @deprecated In favor {@link #completeAddedPlayers(PlotPlayer, Plot, String, List)}
*/
@Deprecated(forRemoval = true, since = "6.1.3")
@Deprecated(forRemoval = true)
public static @NonNull List<Command> completeAddedPlayers(
final @NonNull Plot plot,
final @NonNull String input, final @NonNull List<String> existing
@ -136,7 +135,6 @@ public final class TabCompletions {
* @param input Command input
* @param existing Players that should not be included in completions
* @return List of completions
* @since 6.1.3
*/
public static @NonNull List<Command> completeAddedPlayers(
final @NonNull PlotPlayer<?> issuer,
@ -268,7 +266,7 @@ public final class TabCompletions {
* @deprecated In favor {@link #completePlayers(String, PlotPlayer, String, List, Predicate)}
*/
@SuppressWarnings("unused")
@Deprecated(forRemoval = true, since = "6.1.3")
@Deprecated(forRemoval = true)
private static List<Command> completePlayers(
final @NonNull String cacheIdentifier,
final @NonNull String input, final @NonNull List<String> existing,
@ -284,7 +282,6 @@ public final class TabCompletions {
* @param existing Players that should not be included in completions
* @param uuidFilter Filter applied before caching values
* @return List of completions
* @since 6.1.3
*/
private static List<Command> completePlayers(
final @NonNull String cacheIdentifier,

View File

@ -52,7 +52,8 @@ public class HelpMenu {
}
public HelpMenu getCommands() {
this.commands = MainCommand.getInstance().getCommands(this.commandCategory, this.commandCaller);
this.commands =
MainCommand.getInstance().getCommands(this.commandCategory, this.commandCaller);
return this;
}

View File

@ -207,7 +207,6 @@ public final class PlotQuery implements Iterable<Plot> {
*
* @param owner Owner UUID
* @return The query instance
* @since 6.1.0
*/
public @NonNull PlotQuery ownersInclude(final @NonNull UUID owner) {
Preconditions.checkNotNull(owner, "Owner may not be null");
@ -219,7 +218,6 @@ public final class PlotQuery implements Iterable<Plot> {
*
* @param owner Owner
* @return The query instance
* @since 6.1.0
*/
public @NonNull PlotQuery ownersInclude(final @NonNull PlotPlayer<?> owner) {
Preconditions.checkNotNull(owner, "Owner may not be null");
@ -421,7 +419,7 @@ public final class PlotQuery implements Iterable<Plot> {
* Get whether any provided plot matches the given filters.
* If no plot was provided, false will be returned.
*
* @return {@code true} if any provided plot matches the filters.
* @return true if any provided plot matches the filters.
*/
public boolean anyMatch() {
if (this.filters.isEmpty()) {

View File

@ -70,7 +70,7 @@ public interface UUIDService {
* Check whether or not this service can be safely used synchronously
* without blocking the server for an extended amount of time.
*
* @return {@code true} if the service can be used synchronously
* @return True if the service can be used synchronously
*/
default boolean canBeSynchronous() {
return false;

View File

@ -460,12 +460,9 @@
"backups.backup_automatic_failure": "<prefix><red>The automatic backup process failed. Your pending action has been canceled. Reason: </red><gray><reason></gray>",
"preset.preset_cannot_afford": "<prefix><red>You cannot afford that preset.</red>",
"preset.preset_invalid": "<prefix><red>Could not generate a pattern from that preset.</red>",
"preset.preset_lore_cost": "<gray>Cost: </gray><gold><cost></gold>",
"preset.preset_lore_economy_disabled": "<gray>Cost: </gray><red>Economy is disabled</red>",
"preset.preset_lore_cost": "<prefix><gray>Cost: </gray><gold><cost></gold>",
"preset.preset_lore_component": "<gray>Component: </gray><gold><component></gold>",
"preset.title": "Plot Components",
"preset.empty": "<prefix><red>No plot component presets available.</red>",
"preset.economy_disabled": "<prefix><red>The component preset '<preset>' has a price set but economy is disabled.</red>",
"generic.generic_other": "<gray>other</gray>",
"generic.generic_merged": "<gray>merged</gray>",
"generic.generic_unowned": "<gray>unowned</gray>",
@ -529,15 +526,15 @@
"flags.flag_category_mixed": "<gray>Mixed Value Flags</gray>",
"flags.flag_description_entity_cap": "<gray>Set to an integer value to limit the amount of entities on the plot.</gray>",
"flags.flag_description_explosion": "<gray>Set to `true` to enable explosions in the plot, and `false` to disable them.</gray>",
"flags.flag_description_music": "<gray>Set to a music disk ID (item name) to play the music disc inside the plot.</gray>",
"flags.flag_description_music": "<gray>Set to a music disk ID (item name) to play the music disc inside of the plot.</gray>",
"flags.flag_description_flight": "<gray>Set to `true` to enable flight within the plot when in survival or adventure mode</gray>\n<gray>set to `default` to use the gamemode default, and `false` to disable flight entirely.</gray>",
"flags.flag_description_untrusted": "<gray>Set to `false` to disallow untrusted players from visiting the plot.</gray>",
"flags.flag_description_deny_exit": "<gray>Set to `true` to disallow players from exiting the plot.</gray>",
"flags.flag_description_chat": "<gray>Set to `false` to prevent plot chat on the plot.</gray>",
"flags.flag_description_description": "<gray>Plot description. Supports MiniMessage/Adventure.</gray>",
"flags.flag_description_greeting": "<gray>Message sent to players on plot entry.</gray>",
"flags.flag_description_farewell": "<gray>Message sent to players when leaving the plot.</gray>",
"flags.flag_description_weather": "<gray>Specifies the weather conditions inside the plot.</gray>",
"flags.flag_description_greeting": "<gray>Message sent to players on plot entry. Supports '&' color codes.</gray>",
"flags.flag_description_farewell": "<gray>Message sent to players when leaving the plot. Supports '&' color codes.</gray>",
"flags.flag_description_weather": "<gray>Specifies the weather conditions inside of the plot.</gray>",
"flags.flag_description_animal_attack": "<gray>Set to `true` to allow animals to be attacked in the plot.</gray>",
"flags.flag_description_animal_cap": "<gray>Set to an integer value to limit the amount of animals on the plot.</gray>",
"flags.flag_description_animal_interact": "<gray>Set to `true` to allow animals to be interacted with in the plot.</gray>",
@ -560,8 +557,8 @@
"flags.flag_description_ice_form": "<gray>Set to `true` to allow ice to form in the plot.</gray>",
"flags.flag_description_ice_melt": "<gray>Set to `false` to disable ice melting in the plot.</gray>",
"flags.flag_description_instabreak": "<gray>Set to `true` to allow blocks to be instantaneously broken in survival mode.</gray>",
"flags.flag_description_invincible": "<gray>Set to `true` to prevent players from taking damage inside the plot.</gray>",
"flags.flag_description_item_drop": "<gray>Set to `false` to prevent items from being dropped inside the plot.</gray>",
"flags.flag_description_invincible": "<gray>Set to `true` to prevent players from taking damage inside of the plot.</gray>",
"flags.flag_description_item_drop": "<gray>Set to `false` to prevent items from being dropped inside of the plot.</gray>",
"flags.flag_description_kelp_grow": "<gray>Set to `false` to prevent kelp from growing in the plot.</gray>",
"flags.flag_description_liquid_flow": "<gray>Set to `false` to disable liquids from flowing within the plot.</gray>",
"flags.flag_description_misc_break": "<gray>Set to `true` to allow guests to break miscellaneous items.</gray>",
@ -606,10 +603,10 @@
"flags.flag_description_guest_gamemode": "<gray>Determines the guest gamemode in the plot.</gray>",
"flags.flag_description_blocked_cmds": "<gray>A list of commands that are blocked in the plot.</gray>",
"flags.flag_description_keep": "<gray>Prevents the plot from expiring. Can be set to: true, false, the number of milliseconds to keep the plot for or a timestamp (3w 2d 5h).</gray>",
"flags.flag_description_keep_inventory": "<gray>Prevents players from dropping their items when they die inside the plot.</gray>",
"flags.flag_description_keep_inventory": "<gray>Prevents players from dropping their items when they die inside of the plot.</gray>",
"flags.flag_description_deny_portal_travel": "<gray>Prevents players from travelling across dimensions by using portals.</gray>",
"flags.flag_description_deny_portals": "<gray>Prevents players from creating portals of any kind.</gray>",
"flags.flag_description_lectern_read_book": "<gray>Prevent players taking books from lecterns.</gray>",
"flags.flag_description_lectern_read_book": "<gray>Prevents players taking books from lecterns.</gray>",
"flags.flag_description_prevent_creative_copy": "<gray>Prevents people from copying item NBT data in the plot unless they're added as members.</gray>",
"flags.flag_description_leaf_decay": "<gray>Set to `false` to prevent leaves from decaying.",
"flags.flag_error_boolean": "Flag value must be a boolean (true | false).",
@ -623,6 +620,8 @@
"flags.flag_error_title": "Flag value must be in the format </red><grey>\"A title\" \"The subtitle\"</grey><red>.",
"flags.area_flags": "<prefix><gray>Area flags: </gray><dark_aqua><flags></dark_aqua>",
"flags.road_flags": "<prefix><gray>Road flags: </gray><dark_aqua><flags></dark_aqua>",
"flags.greeting_flag_format": "<prefix><gold>[<world>;<plot_id>]:</gold> <greeting>",
"flags.farewell_flag_format": "<prefix><gold>[<world>;<plot_id>]:</gold> <farewell>",
"commands.description.add": "<gray>Allow a user to build in a plot while the plot owner is online.</gray>",
"commands.description.alias": "<gray>Set the plot alias.</gray>",
"commands.description.area": "<gray>Create a new plot area.</gray>",

View File

@ -27,15 +27,15 @@ is to provide a lag-free and smooth experience.
* [Download](https://www.spigotmc.org/resources/77506/)
* [Discord](https://discord.gg/intellectualsites)
* [Wiki](https://intellectualsites.github.io/plotsquared-documentation/)
* [Wiki](https://github.com/IntellectualSites/PlotSquared-Documentation/wiki)
* [Issues](https://github.com/IntellectualSites/PlotSquared/issues)
* [Translations](https://intellectualsites.crowdin.com/plotsquared/)
* [Contributing](https://github.com/IntellectualSites/.github/blob/main/CONTRIBUTING.md)
### Developer Resources
* [API Documentation](https://intellectualsites.github.io/plotsquared-documentation/api/api-documentation)
* [Event API](https://intellectualsites.github.io/plotsquared-documentation/api/event-api)
* [Flag API](https://intellectualsites.github.io/plotsquared-documentation/api/flag-api)
* [API Documentation](https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/API-Documentation)
* [Event API](https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/Events)
* [Flag API](https://github.com/IntellectualSites/PlotSquared-Documentation/wiki/API-Flag)
# Official Addons
* [Plot2Dynmap](http://www.spigotmc.org/resources/plot2dynmap.1292/)

View File

@ -18,7 +18,7 @@ plugins {
idea
}
version = "6.5.1-SNAPSHOT"
version = "6.3.1-SNAPSHOT"
allprojects {
group = "com.plotsquared"

View File

@ -1,13 +1,13 @@
[versions]
# Minecraft expectations
gson = "2.8.8" # Version set by Minecraft
gson = "2.8.9" # Version set by Minecraft
log4j-api = "2.17.1" # Version set by Minecraft
guava = "31.0.1-jre" # Version set by Minecraft
# Platform expectations
paper = "1.18.1-R0.1-SNAPSHOT"
checker-qual = "3.21.2"
guice = "5.1.0"
checker-qual = "3.21.1"
guice = "5.0.1"
findbugs = "3.0.1"
snakeyaml = "1.30" # Version set by Bukkit
@ -17,11 +17,11 @@ adventure-text-minimessage = "4.1.0-SNAPSHOT"
adventure-platform-bukkit = "4.0.1"
# Plugins
worldedit = "7.2.9"
fawe = "2.0.1"
worldedit = "7.2.8"
fawe = "2.0.0"
vault = "1.7.1"
placeholderapi = "2.11.1"
luckperms = "5.4"
luckperms = "5.3"
essentialsx = "2.19.2"
mvdwapi = "3.1.1"
@ -30,8 +30,8 @@ prtree = "2.0.0"
aopalliance = "1.0"
cloud-services = "1.6.1"
arkitektonika = "2.1.1"
paster = "1.1.4"
bstats = "3.0.0"
paster = "1.1.3"
bstats = "2.2.1"
paperlib = "1.0.7"
squirrelid = "0.3.0"
serverlib = "2.3.1"

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists