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. |       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' | ||||||
|   | |||||||
							
								
								
									
										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_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 }} | ||||||
|   | |||||||
| @@ -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()); | ||||||
|   | |||||||
| @@ -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 | ||||||
|     ) { |     ) { | ||||||
|   | |||||||
| @@ -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())))); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -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); | ||||||
|                 } |                 } | ||||||
|   | |||||||
| @@ -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); |  | ||||||
|                     }); |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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())); | ||||||
|   | |||||||
| @@ -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); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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; | ||||||
|   | |||||||
| @@ -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); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -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); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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() | ||||||
|             ); |             ); | ||||||
|   | |||||||
| @@ -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); | ||||||
|   | |||||||
| @@ -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)); | ||||||
|   | |||||||
| @@ -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 |      * @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); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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; | ||||||
|   | |||||||
| @@ -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); | ||||||
|   | |||||||
| @@ -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); | ||||||
|   | |||||||
| @@ -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(); | ||||||
|   | |||||||
| @@ -486,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>", | ||||||
| @@ -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_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>", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user