Compare commits

..

2 Commits

Author SHA1 Message Date
07c70f31d4 Drop cherry_grove if present on pre 1.20 versions 2023-06-12 17:53:39 +02:00
ae63d0724f Drop CUSTOM from biome list 2023-06-12 17:10:45 +02:00
29 changed files with 47 additions and 120 deletions

View File

@ -27,7 +27,6 @@ body:
description: Which server version version you using? If your server version is not listed, it is not supported. Update to a supported version first. description: Which server version version you using? If your server version is not listed, it is not supported. Update to a supported version first.
multiple: false multiple: false
options: options:
- '1.20.1'
- '1.20' - '1.20'
- '1.19.4' - '1.19.4'
- '1.19.3' - '1.19.3'

View File

@ -42,7 +42,7 @@ jobs:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
- name: Publish core javadoc - name: Publish core javadoc
# if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}}
uses: cpina/github-action-push-to-another-repository@main uses: cpina/github-action-push-to-another-repository@main
env: env:
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
@ -54,7 +54,7 @@ jobs:
target-branch: main target-branch: main
target-directory: v7/core target-directory: v7/core
- name: Publish bukkit javadoc - name: Publish bukkit javadoc
# if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}}
uses: cpina/github-action-push-to-another-repository@main uses: cpina/github-action-push-to-another-repository@main
env: env:
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}

View File

@ -50,6 +50,7 @@ import com.plotsquared.bukkit.util.BukkitUtil;
import com.plotsquared.bukkit.util.BukkitWorld; import com.plotsquared.bukkit.util.BukkitWorld;
import com.plotsquared.bukkit.util.SetGenCB; import com.plotsquared.bukkit.util.SetGenCB;
import com.plotsquared.bukkit.util.TranslationUpdateManager; import com.plotsquared.bukkit.util.TranslationUpdateManager;
import com.plotsquared.bukkit.util.UpdateUtility;
import com.plotsquared.bukkit.util.task.BukkitTaskManager; import com.plotsquared.bukkit.util.task.BukkitTaskManager;
import com.plotsquared.bukkit.util.task.PaperTimeConverter; import com.plotsquared.bukkit.util.task.PaperTimeConverter;
import com.plotsquared.bukkit.util.task.SpigotTimeConverter; import com.plotsquared.bukkit.util.task.SpigotTimeConverter;
@ -302,11 +303,9 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
this.serverLocale = Locale.forLanguageTag(Settings.Enabled_Components.DEFAULT_LOCALE); this.serverLocale = Locale.forLanguageTag(Settings.Enabled_Components.DEFAULT_LOCALE);
/* TODO Enable update checker before v7 is released to GA
if (PremiumVerification.isPremium() && Settings.Enabled_Components.UPDATE_NOTIFICATIONS) { if (PremiumVerification.isPremium() && Settings.Enabled_Components.UPDATE_NOTIFICATIONS) {
injector.getInstance(UpdateUtility.class).updateChecker(); injector.getInstance(UpdateUtility.class).updateChecker();
} }
*/
if (PremiumVerification.isPremium()) { if (PremiumVerification.isPremium()) {
LOGGER.info("PlotSquared version licensed to Spigot user {}", getUserID()); LOGGER.info("PlotSquared version licensed to Spigot user {}", getUserID());

View File

@ -290,7 +290,7 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap
*/ */
@SuppressWarnings("deprecation") // The entire method is deprecated, but kept for compatibility with <=1.16.2 @SuppressWarnings("deprecation") // The entire method is deprecated, but kept for compatibility with <=1.16.2
@Override @Override
@Deprecated(since = "7.0.0") @Deprecated(since = "TODO")
public @NonNull ChunkData generateChunkData( public @NonNull ChunkData generateChunkData(
@NonNull World world, @NonNull Random random, int x, int z, @NonNull BiomeGrid biome @NonNull World world, @NonNull Random random, int x, int z, @NonNull BiomeGrid biome
) { ) {

View File

@ -1116,7 +1116,6 @@ public class BlockEventListener implements Listener {
if (plot != null) { if (plot != null) {
plot.debug("Explosion was cancelled because explosion = false"); plot.debug("Explosion was cancelled because explosion = false");
} }
return;
} }
event.blockList().removeIf(blox -> !plot.equals(area.getOwnedPlot(BukkitUtil.adapt(blox.getLocation())))); event.blockList().removeIf(blox -> !plot.equals(area.getOwnedPlot(BukkitUtil.adapt(blox.getLocation()))));
} }

View File

@ -26,7 +26,6 @@ import com.plotsquared.core.plot.Plot;
import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.flag.implementations.CopperOxideFlag; import com.plotsquared.core.plot.flag.implementations.CopperOxideFlag;
import com.plotsquared.core.plot.flag.implementations.MiscInteractFlag; import com.plotsquared.core.plot.flag.implementations.MiscInteractFlag;
import com.plotsquared.core.plot.flag.implementations.SculkSensorInteractFlag;
import com.plotsquared.core.util.PlotFlagUtil; import com.plotsquared.core.util.PlotFlagUtil;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@ -97,12 +96,12 @@ public class BlockEventListener117 implements Listener {
area, area,
MiscInteractFlag.class, MiscInteractFlag.class,
true true
) || plot != null && (!plot.getFlag(MiscInteractFlag.class) || !plot.getFlag(SculkSensorInteractFlag.class))) { ) || plot != null && !plot.getFlag(
MiscInteractFlag.class)) {
if (plotPlayer != null) { if (plotPlayer != null) {
if (plot != null) { if (plot != null) {
if (!plot.isAdded(plotPlayer.getUUID())) { if (!plot.isAdded(plotPlayer.getUUID())) {
plot.debug(plotPlayer.getName() + " couldn't trigger sculk sensors because both " + plot.debug(plotPlayer.getName() + " couldn't trigger sculk sensors because misc-interact = false");
"sculk-sensor-interact and misc-interact = false");
event.setCancelled(true); event.setCancelled(true);
} }
} }
@ -113,15 +112,13 @@ public class BlockEventListener117 implements Listener {
if (plot != null) { if (plot != null) {
if (itemThrower == null && (itemThrower = item.getOwner()) == null) { if (itemThrower == null && (itemThrower = item.getOwner()) == null) {
plot.debug( plot.debug(
"A thrown item couldn't trigger sculk sensors because both sculk-sensor-interact and " + "A thrown item couldn't trigger sculk sensors because misc-interact = false and the item's owner could not be resolved.");
"misc-interact = false and the item's owner could not be resolved.");
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
if (!plot.isAdded(itemThrower)) { if (!plot.isAdded(itemThrower)) {
if (!plot.isAdded(itemThrower)) { if (!plot.isAdded(itemThrower)) {
plot.debug("A thrown item couldn't trigger sculk sensors because both sculk-sensor-interact and " + plot.debug("A thrown item couldn't trigger sculk sensors because misc-interact = false");
"misc-interact = false");
event.setCancelled(true); event.setCancelled(true);
} }
} }
@ -140,6 +137,7 @@ public class BlockEventListener117 implements Listener {
if (area == null) { if (area == null) {
for (int i = blocks.size() - 1; i >= 0; i--) { for (int i = blocks.size() - 1; i >= 0; i--) {
Location blockLocation = BukkitUtil.adapt(blocks.get(i).getLocation()); Location blockLocation = BukkitUtil.adapt(blocks.get(i).getLocation());
blockLocation = BukkitUtil.adapt(blocks.get(i).getLocation());
if (blockLocation.isPlotArea()) { if (blockLocation.isPlotArea()) {
blocks.remove(i); blocks.remove(i);
} }

View File

@ -28,32 +28,24 @@ import java.nio.file.Paths;
import java.util.stream.Stream; import java.util.stream.Stream;
/** /**
* This is a helper class which replaces older syntax no longer supported by MiniMessage with replacements in messages_%.json. * This is a helper class which replaces occurrences of 'suggest_command' with 'run_command' in messages_%.json.
* MiniMessage changed the syntax between major releases. To warrant a smooth upgrade, we attempt to replace any occurrences * MiniMessage changed the syntax between major releases. To warrant a smooth upgrade, we attempt to replace any occurrences
* while loading PlotSquared. * while loading PlotSquared.
* *
* @since 7.0.0 * @since TODO
*/ */
@NotPublic @NotPublic
public class TranslationUpdateManager { public class TranslationUpdateManager {
public static void upgradeTranslationFile() throws IOException { public static void upgradeTranslationFile() throws IOException {
String suggestCommand = "suggest_command"; String searchText = "suggest_command";
String suggestCommandReplacement = "run_command"; String replacementText = "run_command";
String minHeight = "minHeight";
String minheightReplacement = "minheight";
String maxHeight = "maxHeight";
String maxheightReplacement = "maxheight";
try (Stream<Path> paths = Files.walk(Paths.get(PlotSquared.platform().getDirectory().toPath().resolve("lang").toUri()))) { try (Stream<Path> paths = Files.walk(Paths.get(PlotSquared.platform().getDirectory().toPath().resolve("lang").toUri()))) {
paths paths
.filter(Files::isRegularFile) .filter(Files::isRegularFile)
.filter(p -> p.getFileName().toString().matches("messages_[a-z]{2}\\.json")) .filter(p -> p.getFileName().toString().matches("messages_[a-z]{2}\\.json"))
.forEach(p -> { .forEach(p -> replaceInFile(p, searchText, replacementText));
replaceInFile(p, suggestCommand, suggestCommandReplacement);
replaceInFile(p, minHeight, minheightReplacement);
replaceInFile(p, maxHeight, maxheightReplacement);
});
} }
} }

View File

@ -298,7 +298,7 @@ public class Auto extends SubCommand {
PlotExpression costExp = plotarea.getPrices().get("claim"); PlotExpression costExp = plotarea.getPrices().get("claim");
PlotExpression mergeCostExp = plotarea.getPrices().get("merge"); PlotExpression mergeCostExp = plotarea.getPrices().get("merge");
int size = sizeX * sizeZ; int size = sizeX * sizeZ;
double mergeCost = size <= 1 || mergeCostExp == null ? 0d : mergeCostExp.evaluate(size); double mergeCost = size > 1 && mergeCostExp == null ? 0d : mergeCostExp.evaluate(size);
double cost = costExp.evaluate(Settings.Limit.GLOBAL ? double cost = costExp.evaluate(Settings.Limit.GLOBAL ?
player.getPlotCount() : player.getPlotCount() :
player.getPlotCount(plotarea.getWorldName())); player.getPlotCount(plotarea.getWorldName()));

View File

@ -112,15 +112,15 @@ public class Kick extends SubCommand {
for (PlotPlayer<?> player2 : players) { for (PlotPlayer<?> player2 : players) {
if (!plot.equals(player2.getCurrentPlot())) { if (!plot.equals(player2.getCurrentPlot())) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("kick.player_not_in_plot"), TranslatableCaption.of("errors.invalid_player"),
TagResolver.resolver("player", Tag.inserting(Component.text(player2.getName()))) TagResolver.resolver("value", Tag.inserting(Component.text(args[0])))
); );
return; return;
} }
if (player2.hasPermission(Permission.PERMISSION_ADMIN_ENTRY_DENIED)) { if (player2.hasPermission(Permission.PERMISSION_ADMIN_ENTRY_DENIED)) {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("kick.cannot_kick_player"), TranslatableCaption.of("cluster.cannot_kick_player"),
TagResolver.resolver("player", Tag.inserting(Component.text(player2.getName()))) TagResolver.resolver("name", Tag.inserting(Component.text(player2.getName())))
); );
return; return;
} }

View File

@ -40,7 +40,7 @@ public interface Caption {
* *
* @param localeHolder Locale holder * @param localeHolder Locale holder
* @return {@link ComponentLike} * @return {@link ComponentLike}
* @since 7.0.0 * @since TODO
*/ */
@NonNull Component toComponent(@NonNull LocaleHolder localeHolder); @NonNull Component toComponent(@NonNull LocaleHolder localeHolder);

View File

@ -51,7 +51,7 @@ public class CaptionHolder {
* Get the {@link TagResolver}s to use when resolving tags in the {@link Caption}. * Get the {@link TagResolver}s to use when resolving tags in the {@link Caption}.
* *
* @return The tag resolvers to use. * @return The tag resolvers to use.
* @since 7.0.0 * @since TODO
*/ */
public TagResolver[] getTagResolvers() { public TagResolver[] getTagResolvers() {
return this.tagResolvers; return this.tagResolvers;
@ -61,7 +61,7 @@ public class CaptionHolder {
* Set the {@link TagResolver}s to use when resolving tags in the {@link Caption}. * Set the {@link TagResolver}s to use when resolving tags in the {@link Caption}.
* *
* @param tagResolvers The tag resolvers to use. * @param tagResolvers The tag resolvers to use.
* @since 7.0.0 * @since TODO
*/ */
public void setTagResolvers(TagResolver... tagResolvers) { public void setTagResolvers(TagResolver... tagResolvers) {
this.tagResolvers = tagResolvers; this.tagResolvers = tagResolvers;

View File

@ -28,20 +28,16 @@ import com.plotsquared.core.plot.flag.implementations.PlotTitleFlag;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.ParsingException;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Set; import java.util.Set;
import java.util.regex.Pattern;
import static com.plotsquared.core.configuration.caption.ComponentTransform.nested; import static com.plotsquared.core.configuration.caption.ComponentTransform.nested;
import static com.plotsquared.core.configuration.caption.ComponentTransform.stripClicks; import static com.plotsquared.core.configuration.caption.ComponentTransform.stripClicks;
public class CaptionUtility { public class CaptionUtility {
private static final Pattern LEGACY_FORMATTING = Pattern.compile("§[a-gklmnor0-9]");
// flags which values are parsed by minimessage // flags which values are parsed by minimessage
private static final Set<Class<? extends PlotFlag<?, ?>>> MINI_MESSAGE_FLAGS = Set.of( private static final Set<Class<? extends PlotFlag<?, ?>>> MINI_MESSAGE_FLAGS = Set.of(
GreetingFlag.class, GreetingFlag.class,
@ -104,14 +100,7 @@ public class CaptionUtility {
*/ */
public static String stripClickEvents(final @NonNull String miniMessageString) { public static String stripClickEvents(final @NonNull String miniMessageString) {
// parse, transform and serialize again // parse, transform and serialize again
Component component; Component component = MiniMessage.miniMessage().deserialize(miniMessageString);
try {
component = MiniMessage.miniMessage().deserialize(miniMessageString);
} catch (ParsingException e) {
// if the String cannot be parsed, we try stripping legacy colors
String legacyStripped = LEGACY_FORMATTING.matcher(miniMessageString).replaceAll("");
component = MiniMessage.miniMessage().deserialize(legacyStripped);
}
component = CLICK_STRIP_TRANSFORM.transform(component); component = CLICK_STRIP_TRANSFORM.transform(component);
return MiniMessage.miniMessage().serialize(component); return MiniMessage.miniMessage().serialize(component);
} }

View File

@ -46,7 +46,7 @@ public abstract class IndependentPlotGenerator {
* @param result Queue to write to * @param result Queue to write to
* @param settings PlotArea (settings) * @param settings PlotArea (settings)
* @param biomes If biomes should be generated * @param biomes If biomes should be generated
* @since 7.0.0 * @since TODO
*/ */
public abstract void generateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea settings, boolean biomes); public abstract void generateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea settings, boolean biomes);
@ -55,7 +55,7 @@ public abstract class IndependentPlotGenerator {
* *
* @param result Queue to write to * @param result Queue to write to
* @param setting PlotArea (settings) * @param setting PlotArea (settings)
* @since 7.0.0 * @since TODO
*/ */
public void populateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea setting) { public void populateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea setting) {
} }
@ -108,7 +108,7 @@ public abstract class IndependentPlotGenerator {
* @param y World y position * @param y World y position
* @param z World z position * @param z World z position
* @return Biome type to be generated * @return Biome type to be generated
* @since 7.0.0 * @since TODO
*/ */
public abstract BiomeType getBiome(PlotArea settings, int x, int y, int z); public abstract BiomeType getBiome(PlotArea settings, int x, int y, int z);

View File

@ -657,9 +657,9 @@ public abstract class PlotArea implements ComponentLike {
player.sendMessage( player.sendMessage(
TranslatableCaption.of("height.height_limit"), TranslatableCaption.of("height.height_limit"),
TagResolver.builder() TagResolver.builder()
.tag("minheight", Tag.inserting(Component.text(minBuildHeight))) .tag("minHeight", Tag.inserting(Component.text(minBuildHeight)))
.tag( .tag(
"maxheight", "maxHeight",
Tag.inserting(Component.text(maxBuildHeight)) Tag.inserting(Component.text(maxBuildHeight))
).build() ).build()
); );

View File

@ -91,7 +91,6 @@ import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag;
import com.plotsquared.core.plot.flag.implementations.PveFlag; import com.plotsquared.core.plot.flag.implementations.PveFlag;
import com.plotsquared.core.plot.flag.implementations.PvpFlag; import com.plotsquared.core.plot.flag.implementations.PvpFlag;
import com.plotsquared.core.plot.flag.implementations.RedstoneFlag; import com.plotsquared.core.plot.flag.implementations.RedstoneFlag;
import com.plotsquared.core.plot.flag.implementations.SculkSensorInteractFlag;
import com.plotsquared.core.plot.flag.implementations.ServerPlotFlag; import com.plotsquared.core.plot.flag.implementations.ServerPlotFlag;
import com.plotsquared.core.plot.flag.implementations.SnowFormFlag; import com.plotsquared.core.plot.flag.implementations.SnowFormFlag;
import com.plotsquared.core.plot.flag.implementations.SnowMeltFlag; import com.plotsquared.core.plot.flag.implementations.SnowMeltFlag;
@ -173,7 +172,6 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(MobBreakFlag.MOB_BREAK_FALSE); this.addFlag(MobBreakFlag.MOB_BREAK_FALSE);
this.addFlag(MobPlaceFlag.MOB_PLACE_FALSE); this.addFlag(MobPlaceFlag.MOB_PLACE_FALSE);
this.addFlag(MiscInteractFlag.MISC_INTERACT_FALSE); this.addFlag(MiscInteractFlag.MISC_INTERACT_FALSE);
this.addFlag(SculkSensorInteractFlag.SCULK_SENSOR_INTERACT_FALSE);
this.addFlag(MiscPlaceFlag.MISC_PLACE_FALSE); this.addFlag(MiscPlaceFlag.MISC_PLACE_FALSE);
this.addFlag(MycelGrowFlag.MYCEL_GROW_TRUE); this.addFlag(MycelGrowFlag.MYCEL_GROW_TRUE);
this.addFlag(NotifyEnterFlag.NOTIFY_ENTER_FALSE); this.addFlag(NotifyEnterFlag.NOTIFY_ENTER_FALSE);

View File

@ -88,7 +88,7 @@ public abstract class PlotFlag<T, F extends PlotFlag<T, F>> {
* Gets the flag name as a Kyori {@link Component} * Gets the flag name as a Kyori {@link Component}
* *
* @see #getFlagName(Class) * @see #getFlagName(Class)
* @since 7.0.0 * @since TODO
*/ */
public static <T, F extends PlotFlag<T, F>> Component getFlagNameComponent(Class<F> flagClass) { public static <T, F extends PlotFlag<T, F>> Component getFlagNameComponent(Class<F> flagClass) {
return Component.text(getFlagName(flagClass)); return Component.text(getFlagName(flagClass));

View File

@ -1,39 +0,0 @@
/*
* 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.plot.flag.implementations;
import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.plot.flag.types.BooleanFlag;
import org.checkerframework.checker.nullness.qual.NonNull;
public class SculkSensorInteractFlag extends BooleanFlag<SculkSensorInteractFlag> {
public static final SculkSensorInteractFlag SCULK_SENSOR_INTERACT_TRUE = new SculkSensorInteractFlag(true);
public static final SculkSensorInteractFlag SCULK_SENSOR_INTERACT_FALSE = new SculkSensorInteractFlag(false);
private SculkSensorInteractFlag(boolean value) {
super(value, TranslatableCaption.of("flags.flag_description_sculk_sensor_interact"));
}
@Override
protected SculkSensorInteractFlag flagOf(@NonNull Boolean value) {
return value ? SCULK_SENSOR_INTERACT_TRUE : SCULK_SENSOR_INTERACT_FALSE;
}
}

View File

@ -111,7 +111,7 @@ public interface PlotAreaManager {
* *
* @param worldName Name of the world to add * @param worldName Name of the world to add
* @return {@code true} if successful, {@code false} if world already existed * @return {@code true} if successful, {@code false} if world already existed
* @since 7.0.0 * @since TODO
*/ */
boolean addWorld(@NonNull String worldName); boolean addWorld(@NonNull String worldName);

View File

@ -66,7 +66,7 @@ public abstract class QueueCoordinator {
* @param x chunk x coordinate * @param x chunk x coordinate
* @param z chunk z coordinate * @param z chunk z coordinate
* @return a new {@link ZeroedDelegateScopedQueueCoordinator} * @return a new {@link ZeroedDelegateScopedQueueCoordinator}
* @since 7.0.0 * @since TODO
*/ */
public ZeroedDelegateScopedQueueCoordinator getForChunk(int x, int z, int minY, int maxY) { public ZeroedDelegateScopedQueueCoordinator getForChunk(int x, int z, int minY, int maxY) {
int bx = x << 4; int bx = x << 4;

View File

@ -32,7 +32,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
* zero in the x and z directions, i.e. starting from 0,0. An offset of the minimum point of the region will then be applied to * zero in the x and z directions, i.e. starting from 0,0. An offset of the minimum point of the region will then be applied to
* x and z. * x and z.
* *
* @since 7.0.0 * @since TODO
*/ */
public class ZeroedDelegateScopedQueueCoordinator extends DelegateQueueCoordinator { public class ZeroedDelegateScopedQueueCoordinator extends DelegateQueueCoordinator {
@ -50,7 +50,7 @@ public class ZeroedDelegateScopedQueueCoordinator extends DelegateQueueCoordinat
/** /**
* Create a new ScopedQueueCoordinator instance that delegates to a given QueueCoordinator. Locations are inclusive. * Create a new ScopedQueueCoordinator instance that delegates to a given QueueCoordinator. Locations are inclusive.
* *
* @since 7.0.0 * @since TODO
*/ */
public ZeroedDelegateScopedQueueCoordinator(@Nullable QueueCoordinator parent, @NonNull Location min, @NonNull Location max) { public ZeroedDelegateScopedQueueCoordinator(@Nullable QueueCoordinator parent, @NonNull Location min, @NonNull Location max) {
super(parent); super(parent);

View File

@ -36,7 +36,7 @@ public abstract class ChunkManager {
private static final Map<BlockVector2, RunnableVal<ZeroedDelegateScopedQueueCoordinator>> addChunks = new ConcurrentHashMap<>(); private static final Map<BlockVector2, RunnableVal<ZeroedDelegateScopedQueueCoordinator>> addChunks = new ConcurrentHashMap<>();
/** /**
* @since 7.0.0 * @since TODO
*/ */
public static void setChunkInPlotArea( public static void setChunkInPlotArea(
RunnableVal<ZeroedDelegateScopedQueueCoordinator> force, RunnableVal<ZeroedDelegateScopedQueueCoordinator> force,
@ -76,7 +76,7 @@ public abstract class ChunkManager {
} }
/** /**
* @since 7.0.0 * @since TODO
*/ */
public static boolean preProcessChunk(BlockVector2 loc, ZeroedDelegateScopedQueueCoordinator queue) { public static boolean preProcessChunk(BlockVector2 loc, ZeroedDelegateScopedQueueCoordinator queue) {
final RunnableVal<ZeroedDelegateScopedQueueCoordinator> forceChunk = forceChunks.get(loc); final RunnableVal<ZeroedDelegateScopedQueueCoordinator> forceChunk = forceChunks.get(loc);
@ -89,7 +89,7 @@ public abstract class ChunkManager {
} }
/** /**
* @since 7.0.0 * @since TODO
*/ */
public static boolean postProcessChunk(BlockVector2 loc, ZeroedDelegateScopedQueueCoordinator queue) { public static boolean postProcessChunk(BlockVector2 loc, ZeroedDelegateScopedQueueCoordinator queue) {
final RunnableVal<ZeroedDelegateScopedQueueCoordinator> addChunk = forceChunks.get(loc); final RunnableVal<ZeroedDelegateScopedQueueCoordinator> addChunk = forceChunks.get(loc);

View File

@ -27,7 +27,7 @@ import java.util.Collection;
/** /**
* A utility class for modifying components. * A utility class for modifying components.
* *
* @since 7.0.0 * @since TODO
*/ */
public class ComponentHelper { public class ComponentHelper {
@ -37,7 +37,7 @@ public class ComponentHelper {
* @param components The components to join * @param components The components to join
* @param delimiter The delimiter to use between the components * @param delimiter The delimiter to use between the components
* @return The joined components * @return The joined components
* @since 7.0.0 * @since TODO
*/ */
public static ComponentLike join(Collection<? extends ComponentLike> components, Component delimiter) { public static ComponentLike join(Collection<? extends ComponentLike> components, Component delimiter) {
return join(components.toArray(ComponentLike[]::new), delimiter); return join(components.toArray(ComponentLike[]::new), delimiter);
@ -49,7 +49,7 @@ public class ComponentHelper {
* @param components The components to join * @param components The components to join
* @param delimiter The delimiter to use between the components * @param delimiter The delimiter to use between the components
* @return The joined components * @return The joined components
* @since 7.0.0 * @since TODO
*/ */
public static Component join(ComponentLike[] components, Component delimiter) { public static Component join(ComponentLike[] components, Component delimiter) {
TextComponent.Builder builder = Component.text(); TextComponent.Builder builder = Component.text();

View File

@ -41,7 +41,7 @@
"cluster.cluster_deleted": "<prefix><dark_aqua>Successfully deleted the cluster </dark_aqua><gold><cluster></gold><dark_aqua>.</dark_aqua>", "cluster.cluster_deleted": "<prefix><dark_aqua>Successfully deleted the cluster </dark_aqua><gold><cluster></gold><dark_aqua>.</dark_aqua>",
"cluster.cluster_resized": "<prefix><dark_aqua>Successfully resized the cluster.</dark_aqua>", "cluster.cluster_resized": "<prefix><dark_aqua>Successfully resized the cluster.</dark_aqua>",
"cluster.cluster_added_user": "<prefix><dark_aqua>Successfully added user to the cluster.</dark_aqua>", "cluster.cluster_added_user": "<prefix><dark_aqua>Successfully added user to the cluster.</dark_aqua>",
"cluster.cannot_kick_player": "<prefix><red>You cannot kick the player <gray><name></gray>.</red>", "cluster.cannot_kick_player": "<prefix><red>You cannot kick that player: </red><gray><name></gray>",
"cluster.cluster_invited": "<prefix><gold>You have been invited to the following cluster: </gold><gray><cluster>.</gray>", "cluster.cluster_invited": "<prefix><gold>You have been invited to the following cluster: </gold><gray><cluster>.</gray>",
"cluster.cluster_removed": "<prefix><gold>You have been removed from cluster: </gold><gray><cluster>.</gray>", "cluster.cluster_removed": "<prefix><gold>You have been removed from cluster: </gold><gray><cluster>.</gray>",
"cluster.cluster_kicked_user": "<prefix><dark_aqua>Successfully kicked the user from the cluster.</dark_aqua>", "cluster.cluster_kicked_user": "<prefix><dark_aqua>Successfully kicked the user from the cluster.</dark_aqua>",
@ -411,8 +411,6 @@
"deny.no_enter": "<prefix><red>You are denied from the plot <red><gold><plot></gold><red> and therefore not allowed to enter.</red>", "deny.no_enter": "<prefix><red>You are denied from the plot <red><gold><plot></gold><red> and therefore not allowed to enter.</red>",
"deny.you_got_denied": "<prefix><red>You are denied from the plot you were previously on, and got teleported to spawn.</red>", "deny.you_got_denied": "<prefix><red>You are denied from the plot you were previously on, and got teleported to spawn.</red>",
"deny.cant_remove_owner": "<prefix><red>You can't remove the plot owner.</red>", "deny.cant_remove_owner": "<prefix><red>You can't remove the plot owner.</red>",
"kick.player_not_in_plot": "<prefix><red>The player <gray><player></gray> is not on this plot.</red>",
"kick.cannot_kick_player": "<prefix><red>You cannot kick the player <gray><player></gray>.</red>",
"kick.you_got_kicked": "<prefix><dark_aqua>You got kicked from the plot!</dark_aqua>", "kick.you_got_kicked": "<prefix><dark_aqua>You got kicked from the plot!</dark_aqua>",
"trusted.trusted_added": "<prefix><dark_aqua>You successfully trusted a user to the plot.</dark_aqua>", "trusted.trusted_added": "<prefix><dark_aqua>You successfully trusted a user to the plot.</dark_aqua>",
"trusted.plot_removed_user": "<prefix><red>Plot <plot> of which you were added to has been deleted due to owner inactivity.</red>", "trusted.plot_removed_user": "<prefix><red>Plot <plot> of which you were added to has been deleted due to owner inactivity.</red>",
@ -488,7 +486,7 @@
"single.get_position": "<prefix><gold>Go to the first corner and use: <gray><command> to create position 1.</gold>", "single.get_position": "<prefix><gold>Go to the first corner and use: <gray><command> to create position 1.</gold>",
"single.delete_world_region": "<prefix><red>Stop the server and delete: <world>/region.</red>", "single.delete_world_region": "<prefix><red>Stop the server and delete: <world>/region.</red>",
"single.regeneration_complete": "<prefix><gold>Regeneration complete.</gold>", "single.regeneration_complete": "<prefix><gold>Regeneration complete.</gold>",
"single.worldcreation_location": "<prefix><gold>World creation settings may be stored in multiple locations:</gold>\n<dark_gray> - </dark_gray><gray>bukkit.yml in your server's root folder.</gray>\n<dark_gray> - </dark_gray><gray>PlotSquared's worlds.yml</gray>\n<dark_gray> - </dark_gray><gray>Hyperverse's worlds.yml (or any world management plugin)</gray>\n<dark_gray> - </dark_gray><red>Stop the server and delete it from these locations.</red>", "single.worldcreation_location": "<prefix><gold>World creation settings may be stored in multiple locations:</gold>\n<dark_gray> - </dark_gray><gray>bukkit.yml in your server's root folder.</gray>\n<dark_gray> - </dark_gray><gray>PlotSquared's settings.yml</gray>\n<dark_gray> - </dark_gray><gray>Hyperverse's worlds.yml (or any world management plugin)</gray>\n<dark_gray> - </dark_gray><red>Stop the server and delete it from these locations.</red>",
"legacyconfig.legacy_config_found": "<prefix><green>A legacy configuration file was detected. Conversion will be attempted.</green>", "legacyconfig.legacy_config_found": "<prefix><green>A legacy configuration file was detected. Conversion will be attempted.</green>",
"legacyconfig.legacy_config_backup": "<prefix><gold>A copy of worlds.yml has been saved in the file worlds.yml.old</gold>.", "legacyconfig.legacy_config_backup": "<prefix><gold>A copy of worlds.yml has been saved in the file worlds.yml.old</gold>.",
"legacyconfig.legacy_config_replaced": "<prefix><gray><value1> has been replaced with <value2></gray>", "legacyconfig.legacy_config_replaced": "<prefix><gray><value1> has been replaced with <value2></gray>",
@ -574,7 +572,6 @@
"flags.flag_description_misc_break": "<gray>Set to `true` to allow guests to break miscellaneous items.</gray>", "flags.flag_description_misc_break": "<gray>Set to `true` to allow guests to break miscellaneous items.</gray>",
"flags.flag_description_misc_cap": "<gray>Set to an integer value to limit the amount of miscellaneous entities on the plot.</gray>", "flags.flag_description_misc_cap": "<gray>Set to an integer value to limit the amount of miscellaneous entities on the plot.</gray>",
"flags.flag_description_misc_interact": "<gray>Set to `true` to allow guests to interact with miscellaneous items.</gray>", "flags.flag_description_misc_interact": "<gray>Set to `true` to allow guests to interact with miscellaneous items.</gray>",
"flags.flag_description_sculk_sensor_interact": "<gray>Set to `true` to allow guests to interact with sculk sensors.</gray>",
"flags.flag_description_misc_place": "<gray>Set to `true` to allow guests to place miscellaneous items.</gray>", "flags.flag_description_misc_place": "<gray>Set to `true` to allow guests to place miscellaneous items.</gray>",
"flags.flag_description_mob_break": "<gray>Set to `true` to allow mobs to break blocks within the plot.</gray>", "flags.flag_description_mob_break": "<gray>Set to `true` to allow mobs to break blocks within the plot.</gray>",
"flags.flag_description_mob_cap": "<gray>Set to an integer value to limit the amount of mobs on the plot.</gray>", "flags.flag_description_mob_cap": "<gray>Set to an integer value to limit the amount of mobs on the plot.</gray>",

View File

@ -21,7 +21,7 @@ plugins {
} }
group = "com.intellectualsites.plotsquared" group = "com.intellectualsites.plotsquared"
version = "7.0.0-rc.2" version = "7.0.0-SNAPSHOT"
if (!File("$rootDir/.git").exists()) { if (!File("$rootDir/.git").exists()) {
logger.lifecycle(""" logger.lifecycle("""
@ -77,7 +77,7 @@ subprojects {
} }
dependencies { dependencies {
implementation(platform("com.intellectualsites.bom:bom-newest:1.31")) implementation(platform("com.intellectualsites.bom:bom-newest:1.29"))
} }
dependencies { dependencies {

View File

@ -4,7 +4,7 @@ guice = "7.0.0"
spotbugs = "4.7.3" spotbugs = "4.7.3"
# Plugins # Plugins
worldedit = "7.2.15" worldedit = "7.2.14"
placeholderapi = "2.11.3" placeholderapi = "2.11.3"
luckperms = "5.4" luckperms = "5.4"
essentialsx = "2.20.0" essentialsx = "2.20.0"

Binary file not shown.

View File

@ -1,7 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

5
gradlew vendored
View File

@ -130,13 +130,10 @@ location of your Java installation."
fi fi
else else
JAVACMD=java JAVACMD=java
if ! command -v java >/dev/null 2>&1 which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi
fi fi
# Increase the maximum file descriptors if we can. # Increase the maximum file descriptors if we can.

View File

@ -4,7 +4,6 @@
"config:base", "config:base",
":semanticCommitsDisabled" ":semanticCommitsDisabled"
], ],
"automerge": true,
"labels": [ "labels": [
"dependencies" "dependencies"
], ],