Compare commits

..

3 Commits

17 changed files with 142 additions and 84 deletions

View File

@ -50,7 +50,6 @@ dependencies {
implementation(libs.arkitektonika)
implementation(libs.http4j)
implementation("com.intellectualsites.paster:Paster")
implementation("com.intellectualsites.informative-annotations:informative-annotations")
// Adventure
implementation("net.kyori:adventure-platform-bukkit")
@ -88,7 +87,6 @@ tasks.named<ShadowJar>("shadowJar") {
relocate("javax.inject", "com.plotsquared.core.annotation.inject")
relocate("net.jcip", "com.plotsquared.core.annotations.jcip")
relocate("edu.umd.cs.findbugs", "com.plotsquared.core.annotations.findbugs")
relocate("com.intellectualsites.informative-annotations", "com.plotsquared.core.annotation.informative")
// Get rid of all the libs which are 100% unused.
minimize()

View File

@ -265,8 +265,14 @@ public class BlockEventListener implements Listener {
BukkitPlayer pp = BukkitUtil.adapt(player);
Plot plot = area.getPlot(location);
if (plot != null) {
if (area.notifyIfOutsideBuildArea(pp, location.getY())) {
if (!area.buildRangeContainsY(location.getY()) && !Permissions
.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
event.setCancelled(true);
pp.sendMessage(
TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())),
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight()))
);
return;
}
if (!plot.hasOwner()) {
@ -345,8 +351,14 @@ public class BlockEventListener implements Listener {
event.setCancelled(true);
return;
}
} else if (area.notifyIfOutsideBuildArea(plotPlayer, location.getY())) {
} else if (!area.buildRangeContainsY(location.getY()) && !Permissions
.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
event.setCancelled(true);
plotPlayer.sendMessage(
TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())),
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight()))
);
return;
}
if (!plot.hasOwner()) {
@ -1071,8 +1083,14 @@ public class BlockEventListener implements Listener {
Plot plot = area.getOwnedPlot(location1);
if (player != null) {
BukkitPlayer pp = BukkitUtil.adapt(player);
if (area.notifyIfOutsideBuildArea(pp, location1.getY())) {
if (!area.buildRangeContainsY(location1.getY()) && !Permissions
.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
event.setCancelled(true);
pp.sendMessage(
TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())),
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight()))
);
return;
}
if (plot == null) {
@ -1227,7 +1245,15 @@ public class BlockEventListener implements Listener {
event.setCancelled(true);
break;
}
if (area.notifyIfOutsideBuildArea(pp, currentLocation.getY())) {
if (Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
continue;
}
if (!area.buildRangeContainsY(currentLocation.getY())) {
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

@ -21,11 +21,15 @@ package com.plotsquared.bukkit.listener;
import com.google.inject.Inject;
import com.plotsquared.bukkit.player.BukkitPlayer;
import com.plotsquared.bukkit.util.BukkitUtil;
import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.location.Location;
import com.plotsquared.core.permissions.Permission;
import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.flag.implementations.CopperOxideFlag;
import com.plotsquared.core.plot.flag.implementations.MiscInteractFlag;
import com.plotsquared.core.util.Permissions;
import net.kyori.adventure.text.minimessage.Template;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
@ -84,8 +88,14 @@ public class BlockEventListener117 implements Listener {
if (entity instanceof Player player) {
plotPlayer = BukkitUtil.adapt(player);
if (area.notifyIfOutsideBuildArea(plotPlayer, location.getY())) {
if (!area.buildRangeContainsY(location.getY()) && !Permissions
.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
event.setCancelled(true);
plotPlayer.sendMessage(
TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())),
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight()))
);
return;
}
}

View File

@ -156,7 +156,7 @@ import java.util.UUID;
* Player Events involving plots.
*/
@SuppressWarnings("unused")
public class PlayerEventListener implements Listener {
public class PlayerEventListener extends PlotListener implements Listener {
private static final Set<Material> MINECARTS = Set.of(
Material.MINECART,
@ -175,7 +175,6 @@ public class PlayerEventListener implements Listener {
private final EventDispatcher eventDispatcher;
private final WorldEdit worldEdit;
private final PlotAreaManager plotAreaManager;
private final PlotListener plotListener;
// To prevent recursion
private boolean tmpTeleport = true;
private Field fieldPlayer;
@ -195,13 +194,12 @@ public class PlayerEventListener implements Listener {
public PlayerEventListener(
final @NonNull PlotAreaManager plotAreaManager,
final @NonNull EventDispatcher eventDispatcher,
final @NonNull WorldEdit worldEdit,
final @NonNull PlotListener plotListener
final @NonNull WorldEdit worldEdit
) {
super(eventDispatcher);
this.eventDispatcher = eventDispatcher;
this.worldEdit = worldEdit;
this.plotAreaManager = plotAreaManager;
this.plotListener = plotListener;
}
@EventHandler
@ -354,7 +352,7 @@ public class PlayerEventListener implements Listener {
if (area != null) {
Plot plot = area.getPlot(location);
if (plot != null) {
plotListener.plotEntry(pp, plot);
plotEntry(pp, plot);
}
}
// Delayed
@ -406,7 +404,7 @@ public class PlayerEventListener implements Listener {
PlotArea area = location.getPlotArea();
if (area == null) {
if (lastPlot != null) {
plotListener.plotExit(pp, lastPlot);
plotExit(pp, lastPlot);
lastPlotAccess.remove();
}
try (final MetaDataAccess<Location> lastLocationAccess =
@ -540,7 +538,7 @@ public class PlayerEventListener implements Listener {
if (now == null) {
try (final MetaDataAccess<Boolean> kickAccess =
pp.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) {
if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) {
pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"),
Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_EXIT_DENIED))
@ -558,7 +556,7 @@ public class PlayerEventListener implements Listener {
}
} else if (now.equals(lastPlot)) {
ForceFieldListener.handleForcefield(player, pp, now);
} else if (!plotListener.plotEntry(pp, now) && this.tmpTeleport) {
} else if (!plotEntry(pp, now) && this.tmpTeleport) {
pp.sendMessage(
TranslatableCaption.of("deny.no_enter"),
Template.of("plot", now.toString())
@ -630,7 +628,7 @@ public class PlayerEventListener implements Listener {
if (plot == null) {
try (final MetaDataAccess<Boolean> kickAccess =
pp.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) {
if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) {
pp.sendMessage(
TranslatableCaption.of("permission.no_permission_event"),
Template.of("node", String.valueOf(Permission.PERMISSION_ADMIN_EXIT_DENIED))
@ -648,7 +646,7 @@ public class PlayerEventListener implements Listener {
}
} else if (plot.equals(lastPlot)) {
ForceFieldListener.handleForcefield(player, pp, plot);
} else if (!plotListener.plotEntry(pp, plot) && this.tmpTeleport) {
} else if (!plotEntry(pp, plot) && this.tmpTeleport) {
pp.sendMessage(
TranslatableCaption.of("deny.no_enter"),
Template.of("plot", plot.toString())
@ -795,7 +793,7 @@ public class PlayerEventListener implements Listener {
lastLocationAccess.remove();
}
if (plot != null) {
plotListener.plotExit(pp, plot);
plotExit(pp, plot);
}
if (this.worldEdit != null) {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_WORLDEDIT_BYPASS)) {
@ -809,7 +807,7 @@ public class PlayerEventListener implements Listener {
if (location.isPlotArea()) {
plot = location.getPlot();
if (plot != null) {
plotListener.plotEntry(pp, plot);
plotEntry(pp, plot);
}
}
}
@ -1282,7 +1280,7 @@ public class PlayerEventListener implements Listener {
TaskManager.removeFromTeleportQueue(event.getPlayer().getName());
BukkitPlayer pp = BukkitUtil.adapt(event.getPlayer());
pp.unregister();
plotListener.logout(pp.getUUID());
this.logout(pp.getUUID());
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@ -1741,8 +1739,16 @@ public class PlayerEventListener implements Listener {
if (area == null) {
continue;
}
if (area.notifyIfOutsideBuildArea(pp, location.getY())) {
if (pp != null && !area.buildRangeContainsY(location.getY()) && !Permissions.hasPermission(
pp,
Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT
)) {
event.setCancelled(true);
pp.sendMessage(
TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(area.getMinBuildHeight())),
Template.of("maxHeight", String.valueOf(area.getMaxBuildHeight()))
);
return;
}
Plot plot = location.getOwnedPlot();

View File

@ -149,18 +149,6 @@ public class ProjectileEventListener implements Listener {
Plot plot = area.getPlot(location);
ProjectileSource shooter = entity.getShooter();
if (shooter instanceof Player) {
if (!((Player) shooter).isOnline()) {
if (plot != null) {
if (plot.isAdded(((Player) shooter).getUniqueId()) || plot.getFlag(ProjectilesFlag.class)) {
return;
}
}
entity.remove();
event.setCancelled(true);
return;
}
PlotPlayer<?> pp = BukkitUtil.adapt((Player) shooter);
if (plot == null) {
if (!Permissions.hasPermission(pp, Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED)) {

View File

@ -19,12 +19,12 @@
package com.plotsquared.bukkit.queue;
import com.google.common.base.Preconditions;
import com.intellectualsites.annotations.DoNotUse;
import com.plotsquared.bukkit.util.BukkitBlockUtil;
import com.plotsquared.bukkit.util.BukkitUtil;
import com.plotsquared.core.location.ChunkWrapper;
import com.plotsquared.core.location.Location;
import com.plotsquared.core.queue.ScopedQueueCoordinator;
import com.plotsquared.core.util.AnnotationHelper;
import com.plotsquared.core.util.ChunkUtil;
import com.plotsquared.core.util.PatternUtil;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
@ -44,7 +44,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Arrays;
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.")
public class GenChunk extends ScopedQueueCoordinator {
public final Biome[] biomes;

View File

@ -43,7 +43,6 @@ dependencies {
api(libs.cloudServices)
api(libs.arkitektonika)
api("com.intellectualsites.paster:Paster")
api("com.intellectualsites.informative-annotations:informative-annotations")
}
tasks.processResources {
@ -63,6 +62,5 @@ tasks {
opt.links("https://jd.adventure.kyori.net/api/4.9.3/")
opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/")
opt.links("https://checkerframework.org/api/")
opt.links("https://javadoc.io/doc/com.intellectualsites.informative-annotations/informative-annotations/latest/")
}
}

View File

@ -22,7 +22,6 @@ import cloud.commandframework.services.ServicePipeline;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
import com.intellectualsites.annotations.DoNotUse;
import com.plotsquared.core.backup.BackupManager;
import com.plotsquared.core.configuration.caption.LocaleHolder;
import com.plotsquared.core.generator.GeneratorWrapper;
@ -34,6 +33,7 @@ import com.plotsquared.core.permissions.PermissionHandler;
import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.queue.GlobalBlockQueue;
import com.plotsquared.core.util.AnnotationHelper;
import com.plotsquared.core.util.ChunkManager;
import com.plotsquared.core.util.EconHandler;
import com.plotsquared.core.util.PlatformWorldManager;
@ -308,7 +308,7 @@ public interface PlotPlatform<P> extends LocaleHolder {
* @return worldedit implementations
* @since 6.3.0
*/
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only")
@NonNull String worldEditImplementations();
/**

View File

@ -20,7 +20,6 @@ package com.plotsquared.core.generator;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import com.intellectualsites.annotations.DoNotUse;
import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.Settings;
@ -34,6 +33,7 @@ import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.plot.PlotManager;
import com.plotsquared.core.plot.schematic.Schematic;
import com.plotsquared.core.queue.GlobalBlockQueue;
import com.plotsquared.core.util.AnnotationHelper;
import com.plotsquared.core.util.FileUtils;
import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.SchematicHandler;
@ -531,7 +531,7 @@ public class HybridPlotWorld extends ClassicPlotWorld {
*
* @since 6.9.0
*/
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.")
public @Nullable List<Entity> getPlotSchematicEntities() {
return schem3Entities;
}
@ -541,7 +541,7 @@ public class HybridPlotWorld extends ClassicPlotWorld {
*
* @since 6.9.0
*/
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.")
public @Nullable BlockVector3 getPlotSchematicMinPoint() {
return schem3MinPoint;
}
@ -551,7 +551,7 @@ public class HybridPlotWorld extends ClassicPlotWorld {
*
* @since 6.9.0
*/
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.")
public boolean populationNeeded() {
return schem1PopulationNeeded || schem2PopulationNeeded || schem3PopulationNeeded;
}

View File

@ -189,13 +189,13 @@ public class HybridUtils {
if (X == ctx) {
maxX = tx & 15;
} else {
maxX = 15;
maxX = 16;
}
int maxZ;
if (Z == ctz) {
maxZ = tz & 15;
} else {
maxZ = 15;
maxZ = 16;
}
int chunkBlockX = X << 4;
@ -221,7 +221,7 @@ public class HybridUtils {
}
});
final Runnable run = () -> {
final Runnable run = () -> TaskManager.runTaskAsync(() -> {
int size = width * length;
int[] changes = new int[size];
int[] faces = new int[size];
@ -296,7 +296,7 @@ public class HybridUtils {
analysis.variety_sd = (int) (MathMan.getSD(variety, analysis.variety) * 100);
whenDone.value = analysis;
whenDone.run();
};
});
queue.setCompleteTask(run);
queue.enqueue();
});

View File

@ -18,7 +18,7 @@
*/
package com.plotsquared.core.location;
import com.intellectualsites.annotations.DoNotUse;
import com.plotsquared.core.util.AnnotationHelper;
import com.sk89q.worldedit.math.BlockVector3;
import org.checkerframework.checker.nullness.qual.NonNull;
@ -28,7 +28,7 @@ import org.checkerframework.checker.nullness.qual.NonNull;
*
* @since 6.9.0
*/
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.")
public final class UncheckedWorldLocation extends Location {
private final String worldName;
@ -54,7 +54,7 @@ public final class UncheckedWorldLocation extends Location {
*
* @since 6.9.0
*/
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.")
public static @NonNull UncheckedWorldLocation at(
final @NonNull String world, final int x, final int y, final int z
) {
@ -62,7 +62,7 @@ public final class UncheckedWorldLocation extends Location {
}
@Override
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to changes at any time.")
public @NonNull String getWorldName() {
return this.worldName;
}

View File

@ -36,7 +36,6 @@ import com.plotsquared.core.location.BlockLoc;
import com.plotsquared.core.location.Direction;
import com.plotsquared.core.location.Location;
import com.plotsquared.core.location.PlotLoc;
import com.plotsquared.core.permissions.Permission;
import com.plotsquared.core.player.ConsolePlayer;
import com.plotsquared.core.player.MetaDataAccess;
import com.plotsquared.core.player.PlayerMetaDataKeys;
@ -49,7 +48,6 @@ import com.plotsquared.core.plot.flag.implementations.DoneFlag;
import com.plotsquared.core.queue.GlobalBlockQueue;
import com.plotsquared.core.queue.QueueCoordinator;
import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PlotExpression;
import com.plotsquared.core.util.RegionUtil;
import com.plotsquared.core.util.StringMan;
@ -627,7 +625,7 @@ public abstract class PlotArea {
}
/**
* Get if the {@code PlotArea}'s build range (min build height -> max build height) contains the given y value
* Get if the PlotArea's build range (min build height -> max build height) contains the given y value
*
* @param y y height
* @return if build height contains y
@ -636,28 +634,6 @@ public abstract class PlotArea {
return y >= minBuildHeight && y < maxBuildHeight;
}
/**
* Utility method to check if the player is attempting to place blocks outside the build area, and notify of this if the
* player does not have permissions.
*
* @param player Player to check
* @param y y height to check
* @return true if outside build area with no permissions
* @since TODO
*/
public boolean notifyIfOutsideBuildArea(PlotPlayer<?> player, int y) {
if (!buildRangeContainsY(y) && !Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
player.sendMessage(
TranslatableCaption.of("height.height_limit"),
Template.of("minHeight", String.valueOf(minBuildHeight)),
Template.of("maxHeight", String.valueOf(maxBuildHeight))
);
// Return true if "failed" as the method will always be inverted otherwise
return true;
}
return false;
}
public @NonNull Set<Plot> getPlotsAbs(final UUID uuid) {
if (uuid == null) {
return Collections.emptySet();

View File

@ -20,8 +20,8 @@ package com.plotsquared.core.plot.flag;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import com.intellectualsites.annotations.NotPublic;
import com.plotsquared.core.configuration.caption.CaptionUtility;
import com.plotsquared.core.util.AnnotationHelper;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.checkerframework.checker.nullness.qual.NonNull;
@ -32,6 +32,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
/**
* Container type for {@link PlotFlag plot flags}.
@ -352,7 +353,7 @@ public class FlagContainer {
* @return a new Runnable that cleans up once the FlagContainer isn't needed anymore.
* @since 6.0.10
*/
@NotPublic
@AnnotationHelper.ApiDescription(info = "This method should not be considered as public or API.")
public Runnable createCleanupHook() {
return () -> GlobalFlagContainer.getInstance().unsubscribe(unknownsRef);
}

View File

@ -18,8 +18,8 @@
*/
package com.plotsquared.core.queue;
import com.intellectualsites.annotations.DoNotUse;
import com.plotsquared.core.location.Location;
import com.plotsquared.core.util.AnnotationHelper;
import com.sk89q.jnbt.CompoundTag;
import com.sk89q.worldedit.function.pattern.Pattern;
import com.sk89q.worldedit.math.BlockVector3;
@ -37,7 +37,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
* in {@link BlockArrayCacheScopedQueueCoordinator#setOffsetX(int)} and
* {@link BlockArrayCacheScopedQueueCoordinator#setOffsetZ(int)}
*/
@DoNotUse
@AnnotationHelper.ApiDescription(info = "Internal use only. Subject to change at any time and created for specific use cases.")
public class BlockArrayCacheScopedQueueCoordinator extends ScopedQueueCoordinator {
private final BlockState[][][] blockStates;

View File

@ -0,0 +1,55 @@
/*
* PlotSquared, a land and world management plugin for Minecraft.
* Copyright (C) IntellectualSites <https://intellectualsites.com>
* Copyright (C) IntellectualSites team and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.plotsquared.core.util;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.MODULE;
import static java.lang.annotation.ElementType.PACKAGE;
import static java.lang.annotation.ElementType.RECORD_COMPONENT;
import static java.lang.annotation.ElementType.TYPE;
/**
* @since 6.2.2
*/
@AnnotationHelper.ApiDescription(info = "An internal class for custom annotations." +
"This is in no form part of the API and is subject to change at any time.")
public final class AnnotationHelper {
private AnnotationHelper() {
}
@Documented
@Retention(RetentionPolicy.CLASS)
@Target(value = {METHOD, PACKAGE, MODULE, RECORD_COMPONENT, TYPE})
public @interface ApiDescription {
/**
* Returns additional information how to use a class for the API
*
* @return the version string
* @since 6.2.2
*/
String info() default "";
}
}

View File

@ -19,7 +19,6 @@
package com.plotsquared.core.util;
import com.google.common.eventbus.EventBus;
import com.intellectualsites.annotations.DoNotUse;
import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.events.PlayerAutoPlotEvent;
@ -82,7 +81,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@DoNotUse
@AnnotationHelper.ApiDescription(info = "This is an internal class used by PlotSquared to dispatch events." +
"This is in no form part of the API and is subject to change at any time.")
public class EventDispatcher {
private final EventBus eventBus = new EventBus("PlotSquaredEvents");

View File

@ -65,7 +65,7 @@ subprojects {
}
dependencies {
implementation(platform("com.intellectualsites.bom:bom-1.18.x:1.7"))
implementation(platform("com.intellectualsites.bom:bom-1.18.x:1.5"))
}
dependencies {