mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-10-31 01:23:44 +01:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			feature/v7
			...
			fix/avoid-
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 07c70f31d4 | ||
|   | ae63d0724f | 
							
								
								
									
										1
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							| @@ -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. | ||||
|       multiple: false | ||||
|       options: | ||||
|         - '1.20.1' | ||||
|         - '1.20' | ||||
|         - '1.19.4' | ||||
|         - '1.19.3' | ||||
|   | ||||
							
								
								
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -42,7 +42,7 @@ jobs: | ||||
|           ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} | ||||
|           ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} | ||||
|       - 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 | ||||
|         env: | ||||
|           SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} | ||||
| @@ -54,7 +54,7 @@ jobs: | ||||
|           target-branch: main | ||||
|           target-directory: v7/core | ||||
|       - 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 | ||||
|         env: | ||||
|           SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} | ||||
|   | ||||
| @@ -50,6 +50,7 @@ import com.plotsquared.bukkit.util.BukkitUtil; | ||||
| import com.plotsquared.bukkit.util.BukkitWorld; | ||||
| import com.plotsquared.bukkit.util.SetGenCB; | ||||
| 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.PaperTimeConverter; | ||||
| 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); | ||||
|  | ||||
|         /* TODO Enable update checker before v7 is released to GA | ||||
|         if (PremiumVerification.isPremium() && Settings.Enabled_Components.UPDATE_NOTIFICATIONS) { | ||||
|             injector.getInstance(UpdateUtility.class).updateChecker(); | ||||
|         } | ||||
|          */ | ||||
|  | ||||
|         if (PremiumVerification.isPremium()) { | ||||
|             LOGGER.info("PlotSquared version licensed to Spigot user {}", getUserID()); | ||||
|   | ||||
| @@ -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 | ||||
|     @Override | ||||
|     @Deprecated(since = "7.0.0") | ||||
|     @Deprecated(since = "TODO") | ||||
|     public @NonNull ChunkData generateChunkData( | ||||
|             @NonNull World world, @NonNull Random random, int x, int z, @NonNull BiomeGrid biome | ||||
|     ) { | ||||
|   | ||||
| @@ -1116,7 +1116,6 @@ public class BlockEventListener implements Listener { | ||||
|             if (plot != null) { | ||||
|                 plot.debug("Explosion was cancelled because explosion = false"); | ||||
|             } | ||||
|             return; | ||||
|         } | ||||
|         event.blockList().removeIf(blox -> !plot.equals(area.getOwnedPlot(BukkitUtil.adapt(blox.getLocation())))); | ||||
|     } | ||||
|   | ||||
| @@ -26,7 +26,6 @@ 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.plot.flag.implementations.SculkSensorInteractFlag; | ||||
| import com.plotsquared.core.util.PlotFlagUtil; | ||||
| import org.bukkit.Material; | ||||
| import org.bukkit.block.Block; | ||||
| @@ -97,12 +96,12 @@ public class BlockEventListener117 implements Listener { | ||||
|                 area, | ||||
|                 MiscInteractFlag.class, | ||||
|                 true | ||||
|         ) || plot != null && (!plot.getFlag(MiscInteractFlag.class) || !plot.getFlag(SculkSensorInteractFlag.class))) { | ||||
|         ) || plot != null && !plot.getFlag( | ||||
|                 MiscInteractFlag.class)) { | ||||
|             if (plotPlayer != null) { | ||||
|                 if (plot != null) { | ||||
|                     if (!plot.isAdded(plotPlayer.getUUID())) { | ||||
|                         plot.debug(plotPlayer.getName() + " couldn't trigger sculk sensors because both " + | ||||
|                                 "sculk-sensor-interact and misc-interact = false"); | ||||
|                         plot.debug(plotPlayer.getName() + " couldn't trigger sculk sensors because misc-interact = false"); | ||||
|                         event.setCancelled(true); | ||||
|                     } | ||||
|                 } | ||||
| @@ -113,15 +112,13 @@ public class BlockEventListener117 implements Listener { | ||||
|                 if (plot != null) { | ||||
|                     if (itemThrower == null && (itemThrower = item.getOwner()) == null) { | ||||
|                         plot.debug( | ||||
|                                 "A thrown item couldn't trigger sculk sensors because both sculk-sensor-interact and " + | ||||
|                                         "misc-interact = false and the item's owner could not be resolved."); | ||||
|                                 "A thrown item couldn't trigger sculk sensors because misc-interact = false and the item's owner could not be resolved."); | ||||
|                         event.setCancelled(true); | ||||
|                         return; | ||||
|                     } | ||||
|                     if (!plot.isAdded(itemThrower)) { | ||||
|                         if (!plot.isAdded(itemThrower)) { | ||||
|                             plot.debug("A thrown item couldn't trigger sculk sensors because both sculk-sensor-interact and " + | ||||
|                                     "misc-interact = false"); | ||||
|                             plot.debug("A thrown item couldn't trigger sculk sensors because misc-interact = false"); | ||||
|                             event.setCancelled(true); | ||||
|                         } | ||||
|                     } | ||||
| @@ -140,6 +137,7 @@ public class BlockEventListener117 implements Listener { | ||||
|         if (area == null) { | ||||
|             for (int i = blocks.size() - 1; i >= 0; i--) { | ||||
|                 Location blockLocation = BukkitUtil.adapt(blocks.get(i).getLocation()); | ||||
|                 blockLocation = BukkitUtil.adapt(blocks.get(i).getLocation()); | ||||
|                 if (blockLocation.isPlotArea()) { | ||||
|                     blocks.remove(i); | ||||
|                 } | ||||
|   | ||||
| @@ -28,32 +28,24 @@ import java.nio.file.Paths; | ||||
| 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 | ||||
|  * while loading PlotSquared. | ||||
|  * | ||||
|  * @since 7.0.0 | ||||
|  * @since TODO | ||||
|  */ | ||||
| @NotPublic | ||||
| public class TranslationUpdateManager { | ||||
|  | ||||
|     public static void upgradeTranslationFile() throws IOException { | ||||
|         String suggestCommand = "suggest_command"; | ||||
|         String suggestCommandReplacement = "run_command"; | ||||
|         String minHeight = "minHeight"; | ||||
|         String minheightReplacement = "minheight"; | ||||
|         String maxHeight = "maxHeight"; | ||||
|         String maxheightReplacement = "maxheight"; | ||||
|         String searchText = "suggest_command"; | ||||
|         String replacementText = "run_command"; | ||||
|  | ||||
|         try (Stream<Path> paths = Files.walk(Paths.get(PlotSquared.platform().getDirectory().toPath().resolve("lang").toUri()))) { | ||||
|             paths | ||||
|                     .filter(Files::isRegularFile) | ||||
|                     .filter(p -> p.getFileName().toString().matches("messages_[a-z]{2}\\.json")) | ||||
|                     .forEach(p -> { | ||||
|                         replaceInFile(p, suggestCommand, suggestCommandReplacement); | ||||
|                         replaceInFile(p, minHeight, minheightReplacement); | ||||
|                         replaceInFile(p, maxHeight, maxheightReplacement); | ||||
|                     }); | ||||
|                     .forEach(p -> replaceInFile(p, searchText, replacementText)); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -298,7 +298,7 @@ public class Auto extends SubCommand { | ||||
|             PlotExpression costExp = plotarea.getPrices().get("claim"); | ||||
|             PlotExpression mergeCostExp = plotarea.getPrices().get("merge"); | ||||
|             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 ? | ||||
|                     player.getPlotCount() : | ||||
|                     player.getPlotCount(plotarea.getWorldName())); | ||||
|   | ||||
| @@ -40,7 +40,7 @@ public interface Caption { | ||||
|      * | ||||
|      * @param localeHolder Locale holder | ||||
|      * @return {@link ComponentLike} | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     @NonNull Component toComponent(@NonNull LocaleHolder localeHolder); | ||||
|  | ||||
|   | ||||
| @@ -51,7 +51,7 @@ public class CaptionHolder { | ||||
|      * Get the {@link TagResolver}s to use when resolving tags in the {@link Caption}. | ||||
|      * | ||||
|      * @return The tag resolvers to use. | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public TagResolver[] getTagResolvers() { | ||||
|         return this.tagResolvers; | ||||
| @@ -61,7 +61,7 @@ public class CaptionHolder { | ||||
|      * Set the {@link TagResolver}s to use when resolving tags in the {@link Caption}. | ||||
|      * | ||||
|      * @param tagResolvers The tag resolvers to use. | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public void setTagResolvers(TagResolver... tagResolvers) { | ||||
|         this.tagResolvers = tagResolvers; | ||||
|   | ||||
| @@ -28,20 +28,16 @@ import com.plotsquared.core.plot.flag.implementations.PlotTitleFlag; | ||||
| import net.kyori.adventure.text.Component; | ||||
| import net.kyori.adventure.text.event.ClickEvent; | ||||
| 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.Nullable; | ||||
|  | ||||
| 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.stripClicks; | ||||
|  | ||||
| public class CaptionUtility { | ||||
|  | ||||
|     private static final Pattern LEGACY_FORMATTING = Pattern.compile("§[a-gklmnor0-9]"); | ||||
|  | ||||
|     // flags which values are parsed by minimessage | ||||
|     private static final Set<Class<? extends PlotFlag<?, ?>>> MINI_MESSAGE_FLAGS = Set.of( | ||||
|             GreetingFlag.class, | ||||
| @@ -104,14 +100,7 @@ public class CaptionUtility { | ||||
|      */ | ||||
|     public static String stripClickEvents(final @NonNull String miniMessageString) { | ||||
|         // parse, transform and serialize again | ||||
|         Component component; | ||||
|         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 component = MiniMessage.miniMessage().deserialize(miniMessageString); | ||||
|         component = CLICK_STRIP_TRANSFORM.transform(component); | ||||
|         return MiniMessage.miniMessage().serialize(component); | ||||
|     } | ||||
|   | ||||
| @@ -46,7 +46,7 @@ public abstract class IndependentPlotGenerator { | ||||
|      * @param result   Queue to write to | ||||
|      * @param settings PlotArea (settings) | ||||
|      * @param biomes   If biomes should be generated | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     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 setting PlotArea (settings) | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public void populateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea setting) { | ||||
|     } | ||||
| @@ -108,7 +108,7 @@ public abstract class IndependentPlotGenerator { | ||||
|      * @param y        World y position | ||||
|      * @param z        World z position | ||||
|      * @return Biome type to be generated | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public abstract BiomeType getBiome(PlotArea settings, int x, int y, int z); | ||||
|  | ||||
|   | ||||
| @@ -657,9 +657,9 @@ public abstract class PlotArea implements ComponentLike { | ||||
|             player.sendMessage( | ||||
|                     TranslatableCaption.of("height.height_limit"), | ||||
|                     TagResolver.builder() | ||||
|                             .tag("minheight", Tag.inserting(Component.text(minBuildHeight))) | ||||
|                             .tag("minHeight", Tag.inserting(Component.text(minBuildHeight))) | ||||
|                             .tag( | ||||
|                                     "maxheight", | ||||
|                                     "maxHeight", | ||||
|                                     Tag.inserting(Component.text(maxBuildHeight)) | ||||
|                             ).build() | ||||
|             ); | ||||
|   | ||||
| @@ -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.PvpFlag; | ||||
| 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.SnowFormFlag; | ||||
| 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(MobPlaceFlag.MOB_PLACE_FALSE); | ||||
|         this.addFlag(MiscInteractFlag.MISC_INTERACT_FALSE); | ||||
|         this.addFlag(SculkSensorInteractFlag.SCULK_SENSOR_INTERACT_FALSE); | ||||
|         this.addFlag(MiscPlaceFlag.MISC_PLACE_FALSE); | ||||
|         this.addFlag(MycelGrowFlag.MYCEL_GROW_TRUE); | ||||
|         this.addFlag(NotifyEnterFlag.NOTIFY_ENTER_FALSE); | ||||
|   | ||||
| @@ -88,7 +88,7 @@ public abstract class PlotFlag<T, F extends PlotFlag<T, F>> { | ||||
|      * Gets the flag name as a Kyori {@link Component} | ||||
|      * | ||||
|      * @see #getFlagName(Class) | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public static <T, F extends PlotFlag<T, F>> Component getFlagNameComponent(Class<F> flagClass) { | ||||
|         return Component.text(getFlagName(flagClass)); | ||||
|   | ||||
| @@ -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; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -111,7 +111,7 @@ public interface PlotAreaManager { | ||||
|      * | ||||
|      * @param worldName Name of the world to add | ||||
|      * @return {@code true} if successful, {@code false} if world already existed | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     boolean addWorld(@NonNull String worldName); | ||||
|  | ||||
|   | ||||
| @@ -66,7 +66,7 @@ public abstract class QueueCoordinator { | ||||
|      * @param x chunk x coordinate | ||||
|      * @param z chunk z coordinate | ||||
|      * @return a new {@link ZeroedDelegateScopedQueueCoordinator} | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public ZeroedDelegateScopedQueueCoordinator getForChunk(int x, int z, int minY, int maxY) { | ||||
|         int bx = x << 4; | ||||
|   | ||||
| @@ -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 | ||||
|  * x and z. | ||||
|  * | ||||
|  * @since 7.0.0 | ||||
|  * @since TODO | ||||
|  */ | ||||
| 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. | ||||
|      * | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public ZeroedDelegateScopedQueueCoordinator(@Nullable QueueCoordinator parent, @NonNull Location min, @NonNull Location max) { | ||||
|         super(parent); | ||||
|   | ||||
| @@ -36,7 +36,7 @@ public abstract class ChunkManager { | ||||
|     private static final Map<BlockVector2, RunnableVal<ZeroedDelegateScopedQueueCoordinator>> addChunks = new ConcurrentHashMap<>(); | ||||
|  | ||||
|     /** | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public static void setChunkInPlotArea( | ||||
|             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) { | ||||
|         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) { | ||||
|         final RunnableVal<ZeroedDelegateScopedQueueCoordinator> addChunk = forceChunks.get(loc); | ||||
|   | ||||
| @@ -27,7 +27,7 @@ import java.util.Collection; | ||||
| /** | ||||
|  * A utility class for modifying components. | ||||
|  * | ||||
|  * @since 7.0.0 | ||||
|  * @since TODO | ||||
|  */ | ||||
| public class ComponentHelper { | ||||
|  | ||||
| @@ -37,7 +37,7 @@ public class ComponentHelper { | ||||
|      * @param components The components to join | ||||
|      * @param delimiter  The delimiter to use between the components | ||||
|      * @return The joined components | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public static ComponentLike join(Collection<? extends ComponentLike> components, Component delimiter) { | ||||
|         return join(components.toArray(ComponentLike[]::new), delimiter); | ||||
| @@ -49,7 +49,7 @@ public class ComponentHelper { | ||||
|      * @param components The components to join | ||||
|      * @param delimiter  The delimiter to use between the components | ||||
|      * @return The joined components | ||||
|      * @since 7.0.0 | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public static Component join(ComponentLike[] components, Component delimiter) { | ||||
|         TextComponent.Builder builder = Component.text(); | ||||
|   | ||||
| @@ -486,7 +486,7 @@ | ||||
|   "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.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_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>", | ||||
| @@ -572,7 +572,6 @@ | ||||
|   "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_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_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>", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user