mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-10-26 15:13:45 +01:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			feature/en
			...
			reenable-c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | ff89c614dd | 
							
								
								
									
										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 are you using? If your server version is not listed, it is not supported. Update to a supported version first. |       description: Which server version are 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.21.3' |  | ||||||
|         - '1.21.1' |         - '1.21.1' | ||||||
|         - '1.20.6' |         - '1.20.6' | ||||||
|         - '1.20.4' |         - '1.20.4' | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/renovate.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/renovate.json
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,7 @@ | |||||||
| { | { | ||||||
|   "$schema": "https://docs.renovatebot.com/renovate-schema.json", |   "$schema": "https://docs.renovatebot.com/renovate-schema.json", | ||||||
|   "extends": [ |   "extends": [ | ||||||
|     "config:recommended", |     "config:base", | ||||||
|     ":semanticCommitsDisabled" |     ":semanticCommitsDisabled" | ||||||
|   ], |   ], | ||||||
|   "automerge": true, |   "automerge": true, | ||||||
|   | |||||||
| @@ -104,7 +104,7 @@ tasks { | |||||||
|         opt.links("https://jd.papermc.io/paper/1.20/") |         opt.links("https://jd.papermc.io/paper/1.20/") | ||||||
|         opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/" + libs.worldeditBukkit.get().versionConstraint.toString()) |         opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/" + libs.worldeditBukkit.get().versionConstraint.toString()) | ||||||
|         opt.links("https://intellectualsites.github.io/plotsquared-javadocs/core/") |         opt.links("https://intellectualsites.github.io/plotsquared-javadocs/core/") | ||||||
|         opt.links("https://jd.advntr.dev/api/" + libs.adventureApi.get().versionConstraint.toString()) |         opt.links("https://jd.advntr.dev/api/4.14.0/") | ||||||
|         opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/") |         opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/") | ||||||
|         opt.links("https://checkerframework.org/api/") |         opt.links("https://checkerframework.org/api/") | ||||||
|         opt.isLinkSource = true |         opt.isLinkSource = true | ||||||
|   | |||||||
| @@ -822,18 +822,12 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl | |||||||
|                             // Temporarily classify as vehicle |                             // Temporarily classify as vehicle | ||||||
|                         case "MINECART": |                         case "MINECART": | ||||||
|                         case "MINECART_CHEST": |                         case "MINECART_CHEST": | ||||||
|                         case "CHEST_MINECART": |  | ||||||
|                         case "MINECART_COMMAND": |                         case "MINECART_COMMAND": | ||||||
|                         case "COMMAND_BLOCK_MINECART": |  | ||||||
|                         case "MINECART_FURNACE": |                         case "MINECART_FURNACE": | ||||||
|                         case "FURNACE_MINECART": |  | ||||||
|                         case "MINECART_HOPPER": |                         case "MINECART_HOPPER": | ||||||
|                         case "HOPPER_MINECART": |  | ||||||
|                         case "MINECART_MOB_SPAWNER": |                         case "MINECART_MOB_SPAWNER": | ||||||
|                         case "SPAWNER_MINECART": |  | ||||||
|                         case "ENDER_CRYSTAL": |                         case "ENDER_CRYSTAL": | ||||||
|                         case "MINECART_TNT": |                         case "MINECART_TNT": | ||||||
|                         case "TNT_MINECART": |  | ||||||
|                         case "CHEST_BOAT": |                         case "CHEST_BOAT": | ||||||
|                         case "BOAT": |                         case "BOAT": | ||||||
|                             if (Settings.Enabled_Components.KILL_ROAD_VEHICLES) { |                             if (Settings.Enabled_Components.KILL_ROAD_VEHICLES) { | ||||||
| @@ -1171,9 +1165,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl | |||||||
|     @Override |     @Override | ||||||
|     public @NonNull String serverNativePackage() { |     public @NonNull String serverNativePackage() { | ||||||
|         final String name = Bukkit.getServer().getClass().getPackage().getName(); |         final String name = Bukkit.getServer().getClass().getPackage().getName(); | ||||||
|         String ver = name.substring(name.lastIndexOf('.') + 1); |         return name.substring(name.lastIndexOf('.') + 1); | ||||||
|         // org.bukkit.craftbukkit is no longer suffixed by a version |  | ||||||
|         return ver.equals("craftbukkit") ? "" : ver; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -52,7 +52,7 @@ import org.jetbrains.annotations.Nullable; | |||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Arrays; | import java.util.Arrays; | ||||||
| import java.util.HashSet; | import java.util.EnumSet; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Random; | import java.util.Random; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
| @@ -445,7 +445,7 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap | |||||||
|         private static final List<Biome> BIOMES; |         private static final List<Biome> BIOMES; | ||||||
|  |  | ||||||
|         static { |         static { | ||||||
|             Set<Biome> disabledBiomes = new HashSet<>(List.of(Biome.CUSTOM)); |             Set<Biome> disabledBiomes = EnumSet.of(Biome.CUSTOM); | ||||||
|             if (PlotSquared.platform().serverVersion()[1] <= 19) { |             if (PlotSquared.platform().serverVersion()[1] <= 19) { | ||||||
|                 final Biome cherryGrove = Registry.BIOME.get(NamespacedKey.minecraft("cherry_grove")); |                 final Biome cherryGrove = Registry.BIOME.get(NamespacedKey.minecraft("cherry_grove")); | ||||||
|                 if (cherryGrove != null) { |                 if (cherryGrove != null) { | ||||||
|   | |||||||
| @@ -37,7 +37,6 @@ import com.plotsquared.core.plot.flag.implementations.EntityChangeBlockFlag; | |||||||
| import com.plotsquared.core.plot.flag.implementations.ExplosionFlag; | import com.plotsquared.core.plot.flag.implementations.ExplosionFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.InvincibleFlag; | import com.plotsquared.core.plot.flag.implementations.InvincibleFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.ProjectileChangeBlockFlag; | import com.plotsquared.core.plot.flag.implementations.ProjectileChangeBlockFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.WeavingDeathPlace; |  | ||||||
| import com.plotsquared.core.plot.world.PlotAreaManager; | import com.plotsquared.core.plot.world.PlotAreaManager; | ||||||
| import com.plotsquared.core.util.EventDispatcher; | import com.plotsquared.core.util.EventDispatcher; | ||||||
| import com.plotsquared.core.util.PlotFlagUtil; | import com.plotsquared.core.util.PlotFlagUtil; | ||||||
| @@ -244,29 +243,6 @@ public class EntityEventListener implements Listener { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) |  | ||||||
|     public void onWeavingEffect(EntityChangeBlockEvent event) { |  | ||||||
|         if (event.getTo() != Material.COBWEB) { |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         Location location = BukkitUtil.adapt(event.getBlock().getLocation()); |  | ||||||
|         PlotArea area = location.getPlotArea(); |  | ||||||
|         if (area == null) { |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         Plot plot = location.getOwnedPlot(); |  | ||||||
|         if (plot == null) { |  | ||||||
|             if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, WeavingDeathPlace.class, false)) { |  | ||||||
|                 event.setCancelled(true); |  | ||||||
|             } |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         if (!plot.getFlag(WeavingDeathPlace.class)) { |  | ||||||
|             plot.debug(event.getTo() + " could not spawn because weaving-death-place = false"); |  | ||||||
|             event.setCancelled(true); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @EventHandler(priority = EventPriority.HIGH) |     @EventHandler(priority = EventPriority.HIGH) | ||||||
|     public void onDamage(EntityDamageEvent event) { |     public void onDamage(EntityDamageEvent event) { | ||||||
|         if (event.getEntityType() != EntityType.PLAYER) { |         if (event.getEntityType() != EntityType.PLAYER) { | ||||||
| @@ -425,13 +401,7 @@ public class EntityEventListener implements Listener { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         Plot plot = area.getOwnedPlot(location); |         Plot plot = area.getOwnedPlot(location); | ||||||
|         if (plot == null) { |         if (plot != null && !plot.getFlag(EntityChangeBlockFlag.class)) { | ||||||
|             if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, EntityChangeBlockFlag.class, false)) { |  | ||||||
|                 event.setCancelled(true); |  | ||||||
|             } |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         if (!plot.getFlag(EntityChangeBlockFlag.class)) { |  | ||||||
|             plot.debug(e.getType() + " could not change block because entity-change-block = false"); |             plot.debug(e.getType() + " could not change block because entity-change-block = false"); | ||||||
|             event.setCancelled(true); |             event.setCancelled(true); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -47,7 +47,6 @@ import com.plotsquared.core.plot.flag.implementations.TileDropFlag; | |||||||
| import com.plotsquared.core.plot.flag.types.BooleanFlag; | import com.plotsquared.core.plot.flag.types.BooleanFlag; | ||||||
| import com.plotsquared.core.plot.world.PlotAreaManager; | import com.plotsquared.core.plot.world.PlotAreaManager; | ||||||
| import com.plotsquared.core.util.PlotFlagUtil; | import com.plotsquared.core.util.PlotFlagUtil; | ||||||
| import io.papermc.paper.event.entity.EntityMoveEvent; |  | ||||||
| import net.kyori.adventure.text.Component; | import net.kyori.adventure.text.Component; | ||||||
| import net.kyori.adventure.text.minimessage.tag.Tag; | import net.kyori.adventure.text.minimessage.tag.Tag; | ||||||
| import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; | import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; | ||||||
| @@ -59,7 +58,6 @@ import org.bukkit.entity.EntityType; | |||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import org.bukkit.entity.Projectile; | import org.bukkit.entity.Projectile; | ||||||
| import org.bukkit.entity.Slime; | import org.bukkit.entity.Slime; | ||||||
| import org.bukkit.event.Cancellable; |  | ||||||
| import org.bukkit.event.EventHandler; | import org.bukkit.event.EventHandler; | ||||||
| import org.bukkit.event.EventPriority; | import org.bukkit.event.EventPriority; | ||||||
| import org.bukkit.event.Listener; | import org.bukkit.event.Listener; | ||||||
| @@ -106,38 +104,8 @@ public class PaperListener implements Listener { | |||||||
|         if (!Settings.Paper_Components.ENTITY_PATHING) { |         if (!Settings.Paper_Components.ENTITY_PATHING) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         handleEntityMovement(event, event.getEntity().getLocation(), event.getLoc()); |         Location toLoc = BukkitUtil.adapt(event.getLoc()); | ||||||
|     } |         Location fromLoc = BukkitUtil.adapt(event.getEntity().getLocation()); | ||||||
|  |  | ||||||
|     @EventHandler |  | ||||||
|     public void onEntityPathfind(SlimePathfindEvent event) { |  | ||||||
|         if (!Settings.Paper_Components.ENTITY_PATHING) { |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         Slime slime = event.getEntity(); |  | ||||||
|  |  | ||||||
|         Block b = slime.getTargetBlockExact(4); |  | ||||||
|         if (b == null) { |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         handleEntityMovement(event, event.getEntity().getLocation(),  b.getLocation()); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @EventHandler |  | ||||||
|     public void onEntityMove(EntityMoveEvent event) { |  | ||||||
|         if (!Settings.Paper_Components.ENTITY_MOVEMENT) { |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         if (!event.hasExplicitlyChangedBlock()) { |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         handleEntityMovement(event, event.getFrom(), event.getTo()); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private static void handleEntityMovement(Cancellable event, org.bukkit.Location from, org.bukkit.Location target) { |  | ||||||
|         Location toLoc = BukkitUtil.adapt(target); |  | ||||||
|         Location fromLoc = BukkitUtil.adapt(from); |  | ||||||
|         PlotArea tarea = toLoc.getPlotArea(); |         PlotArea tarea = toLoc.getPlotArea(); | ||||||
|         if (tarea == null) { |         if (tarea == null) { | ||||||
|             return; |             return; | ||||||
| @@ -156,10 +124,52 @@ public class PaperListener implements Listener { | |||||||
|             event.setCancelled(true); |             event.setCancelled(true); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         if (tplot == null || tplot.getId().equals(fplot.getId())) { |         if (tplot == null || tplot.getId().hashCode() == fplot.getId().hashCode()) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         if (fplot.isMerged() && fplot.getConnectedPlots().contains(tplot)) { |         if (fplot.isMerged() && fplot.getConnectedPlots().contains(fplot)) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         event.setCancelled(true); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @EventHandler | ||||||
|  |     public void onEntityPathfind(SlimePathfindEvent event) { | ||||||
|  |         if (!Settings.Paper_Components.ENTITY_PATHING) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         Slime slime = event.getEntity(); | ||||||
|  |  | ||||||
|  |         Block b = slime.getTargetBlockExact(4); | ||||||
|  |         if (b == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         Location toLoc = BukkitUtil.adapt(b.getLocation()); | ||||||
|  |         Location fromLoc = BukkitUtil.adapt(event.getEntity().getLocation()); | ||||||
|  |         PlotArea tarea = toLoc.getPlotArea(); | ||||||
|  |         if (tarea == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         PlotArea farea = fromLoc.getPlotArea(); | ||||||
|  |         if (farea == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (tarea != farea) { | ||||||
|  |             event.setCancelled(true); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         Plot tplot = toLoc.getPlot(); | ||||||
|  |         Plot fplot = fromLoc.getPlot(); | ||||||
|  |         if (tplot == null ^ fplot == null) { | ||||||
|  |             event.setCancelled(true); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if (tplot == null || tplot.getId().hashCode() == fplot.getId().hashCode()) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if (fplot.isMerged() && fplot.getConnectedPlots().contains(fplot)) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         event.setCancelled(true); |         event.setCancelled(true); | ||||||
|   | |||||||
| @@ -54,7 +54,6 @@ import com.plotsquared.core.plot.flag.implementations.EditSignFlag; | |||||||
| import com.plotsquared.core.plot.flag.implementations.HangingBreakFlag; | import com.plotsquared.core.plot.flag.implementations.HangingBreakFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.HangingPlaceFlag; | import com.plotsquared.core.plot.flag.implementations.HangingPlaceFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.HostileInteractFlag; | import com.plotsquared.core.plot.flag.implementations.HostileInteractFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.InteractionInteractFlag; |  | ||||||
| import com.plotsquared.core.plot.flag.implementations.ItemDropFlag; | import com.plotsquared.core.plot.flag.implementations.ItemDropFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.KeepInventoryFlag; | import com.plotsquared.core.plot.flag.implementations.KeepInventoryFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.LecternReadBookFlag; | import com.plotsquared.core.plot.flag.implementations.LecternReadBookFlag; | ||||||
| @@ -1738,11 +1737,6 @@ public class PlayerEventListener implements Listener { | |||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             if (EntityCategories.INTERACTION.contains(entityType) && flagContainer |  | ||||||
|                     .getFlag(InteractionInteractFlag.class).getValue()) { |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             if (EntityCategories.VILLAGER.contains(entityType) && flagContainer |             if (EntityCategories.VILLAGER.contains(entityType) && flagContainer | ||||||
|                     .getFlag(VillagerInteractFlag.class).getValue()) { |                     .getFlag(VillagerInteractFlag.class).getValue()) { | ||||||
|                 return; |                 return; | ||||||
|   | |||||||
| @@ -49,14 +49,9 @@ public class SingleWorldListener implements Listener { | |||||||
|             this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle").getRealMethod(); |             this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle").getRealMethod(); | ||||||
|         } catch (NoSuchMethodException ignored) { |         } catch (NoSuchMethodException ignored) { | ||||||
|             try { |             try { | ||||||
|                 String chunkStatus = PlotSquared.platform().serverVersion()[1] < 21 |                 ReflectionUtils.RefClass classChunkStatus = getRefClass("net.minecraft.world.level.chunk.ChunkStatus"); | ||||||
|                         ? "net.minecraft.world.level.chunk" + ".ChunkStatus" |  | ||||||
|                         : "net.minecraft.world.level.chunk.status.ChunkStatus"; |  | ||||||
|                 ReflectionUtils.RefClass classChunkStatus = getRefClass(chunkStatus); |  | ||||||
|                 this.objChunkStatusFull = classChunkStatus.getRealClass().getField("n").get(null); |                 this.objChunkStatusFull = classChunkStatus.getRealClass().getField("n").get(null); | ||||||
|                 this.methodGetHandleChunk = classCraftChunk |                 this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle", classChunkStatus.getRealClass()).getRealMethod(); | ||||||
|                         .getMethod("getHandle", classChunkStatus.getRealClass()) |  | ||||||
|                         .getRealMethod(); |  | ||||||
|             } catch (NoSuchMethodException ex) { |             } catch (NoSuchMethodException ex) { | ||||||
|                 throw new RuntimeException(ex); |                 throw new RuntimeException(ex); | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -75,7 +75,6 @@ import org.bukkit.entity.FallingBlock; | |||||||
| import org.bukkit.entity.Firework; | import org.bukkit.entity.Firework; | ||||||
| import org.bukkit.entity.Ghast; | import org.bukkit.entity.Ghast; | ||||||
| import org.bukkit.entity.Hanging; | import org.bukkit.entity.Hanging; | ||||||
| import org.bukkit.entity.Interaction; |  | ||||||
| import org.bukkit.entity.IronGolem; | import org.bukkit.entity.IronGolem; | ||||||
| import org.bukkit.entity.Item; | import org.bukkit.entity.Item; | ||||||
| import org.bukkit.entity.LightningStrike; | import org.bukkit.entity.LightningStrike; | ||||||
| @@ -433,7 +432,6 @@ public class BukkitUtil extends WorldUtil { | |||||||
|     @Override |     @Override | ||||||
|     public @NonNull Set<com.sk89q.worldedit.world.entity.EntityType> getTypesInCategory(final @NonNull String category) { |     public @NonNull Set<com.sk89q.worldedit.world.entity.EntityType> getTypesInCategory(final @NonNull String category) { | ||||||
|         final Collection<Class<?>> allowedInterfaces = new HashSet<>(); |         final Collection<Class<?>> allowedInterfaces = new HashSet<>(); | ||||||
|         final int[] version = PlotSquared.platform().serverVersion(); |  | ||||||
|         switch (category) { |         switch (category) { | ||||||
|             case "animal" -> { |             case "animal" -> { | ||||||
|                 allowedInterfaces.add(IronGolem.class); |                 allowedInterfaces.add(IronGolem.class); | ||||||
| @@ -441,7 +439,7 @@ public class BukkitUtil extends WorldUtil { | |||||||
|                 allowedInterfaces.add(Animals.class); |                 allowedInterfaces.add(Animals.class); | ||||||
|                 allowedInterfaces.add(WaterMob.class); |                 allowedInterfaces.add(WaterMob.class); | ||||||
|                 allowedInterfaces.add(Ambient.class); |                 allowedInterfaces.add(Ambient.class); | ||||||
|                 if (version[1] >= 19) { |                 if (PlotSquared.platform().serverVersion()[1] >= 19) { | ||||||
|                     allowedInterfaces.add(Allay.class); |                     allowedInterfaces.add(Allay.class); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -472,11 +470,6 @@ public class BukkitUtil extends WorldUtil { | |||||||
|                 allowedInterfaces.add(Firework.class); |                 allowedInterfaces.add(Firework.class); | ||||||
|             } |             } | ||||||
|             case "player" -> allowedInterfaces.add(Player.class); |             case "player" -> allowedInterfaces.add(Player.class); | ||||||
|             case "interaction" -> { |  | ||||||
|                 if ((version[1] > 19) || (version[1] == 19 && version[2] >= 4)) { |  | ||||||
|                     allowedInterfaces.add(Interaction.class); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             default -> LOGGER.error("Unknown entity category requested: {}", category); |             default -> LOGGER.error("Unknown entity category requested: {}", category); | ||||||
|         } |         } | ||||||
|         final Set<com.sk89q.worldedit.world.entity.EntityType> types = new HashSet<>(); |         final Set<com.sk89q.worldedit.world.entity.EntityType> types = new HashSet<>(); | ||||||
|   | |||||||
| @@ -68,8 +68,8 @@ tasks { | |||||||
|         val isRelease = if (rootProject.version.toString().endsWith("-SNAPSHOT")) "TODO" else rootProject.version.toString() |         val isRelease = if (rootProject.version.toString().endsWith("-SNAPSHOT")) "TODO" else rootProject.version.toString() | ||||||
|         val opt = options as StandardJavadocDocletOptions |         val opt = options as StandardJavadocDocletOptions | ||||||
|         opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-core/" + libs.worldeditCore.get().versionConstraint.toString()) |         opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-core/" + libs.worldeditCore.get().versionConstraint.toString()) | ||||||
|         opt.links("https://jd.advntr.dev/api/" + libs.adventureApi.get().versionConstraint.toString()) |         opt.links("https://jd.advntr.dev/api/4.14.0/") | ||||||
|         opt.links("https://jd.advntr.dev/text-minimessage/" + libs.adventureApi.get().versionConstraint.toString()) |         opt.links("https://jd.advntr.dev/text-minimessage/4.14.0/") | ||||||
|         opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/") |         opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/") | ||||||
|         opt.links("https://checkerframework.org/api/") |         opt.links("https://checkerframework.org/api/") | ||||||
|         opt.isLinkSource = true |         opt.isLinkSource = true | ||||||
|   | |||||||
| @@ -206,8 +206,7 @@ public class PlotSquared { | |||||||
|         GlobalFlagContainer.setup(); |         GlobalFlagContainer.setup(); | ||||||
|  |  | ||||||
|         try { |         try { | ||||||
|             String ver = this.platform.serverNativePackage(); |             new ReflectionUtils(this.platform.serverNativePackage()); | ||||||
|             new ReflectionUtils(ver.isEmpty() ? null : ver); |  | ||||||
|             try { |             try { | ||||||
|                 URL logurl = PlotSquared.class.getProtectionDomain().getCodeSource().getLocation(); |                 URL logurl = PlotSquared.class.getProtectionDomain().getCodeSource().getLocation(); | ||||||
|                 this.jarFile = new File( |                 this.jarFile = new File( | ||||||
| @@ -215,7 +214,7 @@ public class PlotSquared { | |||||||
|                                 logurl.toURI().toString().split("\\!")[0].replaceAll("jar:file", "file")) |                                 logurl.toURI().toString().split("\\!")[0].replaceAll("jar:file", "file")) | ||||||
|                                 .getPath()); |                                 .getPath()); | ||||||
|             } catch (URISyntaxException | SecurityException e) { |             } catch (URISyntaxException | SecurityException e) { | ||||||
|                 LOGGER.error(e); |                 e.printStackTrace(); | ||||||
|                 this.jarFile = new File(this.platform.getDirectory().getParentFile(), "PlotSquared.jar"); |                 this.jarFile = new File(this.platform.getDirectory().getParentFile(), "PlotSquared.jar"); | ||||||
|                 if (!this.jarFile.exists()) { |                 if (!this.jarFile.exists()) { | ||||||
|                     this.jarFile = new File( |                     this.jarFile = new File( | ||||||
| @@ -239,7 +238,7 @@ public class PlotSquared { | |||||||
|             copyFile("skyblock.template", Settings.Paths.TEMPLATES); |             copyFile("skyblock.template", Settings.Paths.TEMPLATES); | ||||||
|             showDebug(); |             showDebug(); | ||||||
|         } catch (Throwable e) { |         } catch (Throwable e) { | ||||||
|             LOGGER.error(e); |             e.printStackTrace(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -796,8 +795,9 @@ public class PlotSquared { | |||||||
|         if (world.equals("CheckingPlotSquaredGenerator")) { |         if (world.equals("CheckingPlotSquaredGenerator")) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         // Don't check the return result -> breaks runtime loading of single plot areas on creation |         if (!this.getPlotAreaManager().addWorld(world)) { | ||||||
|         this.getPlotAreaManager().addWorld(world); |             return; | ||||||
|  |         } | ||||||
|         Set<String> worlds; |         Set<String> worlds; | ||||||
|         if (this.worldConfiguration.contains("worlds")) { |         if (this.worldConfiguration.contains("worlds")) { | ||||||
|             worlds = this.worldConfiguration.getConfigurationSection("worlds").getKeys(false); |             worlds = this.worldConfiguration.getConfigurationSection("worlds").getKeys(false); | ||||||
|   | |||||||
| @@ -184,7 +184,6 @@ public class Area extends SubCommand { | |||||||
|                         CuboidRegion.makeCuboid(playerSelectedRegion) |                         CuboidRegion.makeCuboid(playerSelectedRegion) | ||||||
|                 ).length != 0) { |                 ).length != 0) { | ||||||
|                     player.sendMessage(TranslatableCaption.of("single.single_area_overlapping")); |                     player.sendMessage(TranslatableCaption.of("single.single_area_overlapping")); | ||||||
|                     return false; |  | ||||||
|                 } |                 } | ||||||
|                 // Alter the region |                 // Alter the region | ||||||
|                 final BlockVector3 playerSelectionMin = playerSelectedRegion.getMinimumPoint(); |                 final BlockVector3 playerSelectionMin = playerSelectedRegion.getMinimumPoint(); | ||||||
|   | |||||||
| @@ -153,7 +153,7 @@ public class Kick extends SubCommand { | |||||||
|         if (plot == null) { |         if (plot == null) { | ||||||
|             return Collections.emptyList(); |             return Collections.emptyList(); | ||||||
|         } |         } | ||||||
|         return TabCompletions.completePlayersInPlot(player, plot, String.join(",", args).trim(), |         return TabCompletions.completePlayersInPlot(plot, String.join(",", args).trim(), | ||||||
|                 Collections.singletonList(player.getName()) |                 Collections.singletonList(player.getName()) | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -56,8 +56,7 @@ public class Music extends SubCommand { | |||||||
|             .asList("music_disc_13", "music_disc_cat", "music_disc_blocks", "music_disc_chirp", |             .asList("music_disc_13", "music_disc_cat", "music_disc_blocks", "music_disc_chirp", | ||||||
|                     "music_disc_far", "music_disc_mall", "music_disc_mellohi", "music_disc_stal", |                     "music_disc_far", "music_disc_mall", "music_disc_mellohi", "music_disc_stal", | ||||||
|                     "music_disc_strad", "music_disc_ward", "music_disc_11", "music_disc_wait", "music_disc_otherside", |                     "music_disc_strad", "music_disc_ward", "music_disc_11", "music_disc_wait", "music_disc_otherside", | ||||||
|                     "music_disc_pigstep", "music_disc_5", "music_disc_relic", "music_disc_creator", |                     "music_disc_pigstep", "music_disc_5", "music_disc_relic" | ||||||
|                     "music_disc_creator_music_box", "music_disc_precipice" |  | ||||||
|             ); |             ); | ||||||
|  |  | ||||||
|     private final InventoryUtil inventoryUtil; |     private final InventoryUtil inventoryUtil; | ||||||
|   | |||||||
| @@ -26,7 +26,6 @@ import org.apache.logging.log4j.Logger; | |||||||
|  |  | ||||||
| import java.io.File; | import java.io.File; | ||||||
| import java.io.PrintWriter; | import java.io.PrintWriter; | ||||||
| import java.lang.annotation.Documented; |  | ||||||
| import java.lang.annotation.ElementType; | import java.lang.annotation.ElementType; | ||||||
| import java.lang.annotation.Retention; | import java.lang.annotation.Retention; | ||||||
| import java.lang.annotation.RetentionPolicy; | import java.lang.annotation.RetentionPolicy; | ||||||
| @@ -373,7 +372,6 @@ public class Config { | |||||||
|      */ |      */ | ||||||
|     @Retention(RetentionPolicy.RUNTIME) |     @Retention(RetentionPolicy.RUNTIME) | ||||||
|     @Target({ElementType.FIELD, ElementType.TYPE}) |     @Target({ElementType.FIELD, ElementType.TYPE}) | ||||||
|     @Documented |  | ||||||
|     public @interface Comment { |     public @interface Comment { | ||||||
|  |  | ||||||
|         String[] value(); |         String[] value(); | ||||||
|   | |||||||
| @@ -651,8 +651,6 @@ public class Settings extends Config { | |||||||
|         public static boolean PAPER_LISTENERS = true; |         public static boolean PAPER_LISTENERS = true; | ||||||
|         @Comment("Prevent entities from leaving plots") |         @Comment("Prevent entities from leaving plots") | ||||||
|         public static boolean ENTITY_PATHING = true; |         public static boolean ENTITY_PATHING = true; | ||||||
|         @Comment("Prevent entities from leaving plots, even by pushing or pulling") |  | ||||||
|         public static boolean ENTITY_MOVEMENT = false; |  | ||||||
|         @Comment( |         @Comment( | ||||||
|                 "Cancel entity spawns when the chunk is loaded if the PlotArea's mob spawning is off") |                 "Cancel entity spawns when the chunk is loaded if the PlotArea's mob spawning is off") | ||||||
|         public static boolean CANCEL_CHUNK_SPAWN = true; |         public static boolean CANCEL_CHUNK_SPAWN = true; | ||||||
|   | |||||||
| @@ -46,7 +46,7 @@ public class Storage extends Config { | |||||||
|         public static String PASSWORD = "password"; |         public static String PASSWORD = "password"; | ||||||
|         public static String DATABASE = "plot_db"; |         public static String DATABASE = "plot_db"; | ||||||
|  |  | ||||||
|         @Comment("Set additional properties: https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html") |         @Comment("Set additional properties: https://goo.gl/wngtN8") | ||||||
|         public static List<String> |         public static List<String> | ||||||
|                 PROPERTIES = new ArrayList<>(Collections.singletonList("useSSL=false")); |                 PROPERTIES = new ArrayList<>(Collections.singletonList("useSSL=false")); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -65,7 +65,6 @@ import com.plotsquared.core.plot.flag.implementations.HostileInteractFlag; | |||||||
| import com.plotsquared.core.plot.flag.implementations.IceFormFlag; | import com.plotsquared.core.plot.flag.implementations.IceFormFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.IceMeltFlag; | import com.plotsquared.core.plot.flag.implementations.IceMeltFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.InstabreakFlag; | import com.plotsquared.core.plot.flag.implementations.InstabreakFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.InteractionInteractFlag; |  | ||||||
| import com.plotsquared.core.plot.flag.implementations.InvincibleFlag; | import com.plotsquared.core.plot.flag.implementations.InvincibleFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.ItemDropFlag; | import com.plotsquared.core.plot.flag.implementations.ItemDropFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.KeepFlag; | import com.plotsquared.core.plot.flag.implementations.KeepFlag; | ||||||
| @@ -93,7 +92,6 @@ import com.plotsquared.core.plot.flag.implementations.PreventCreativeCopyFlag; | |||||||
| import com.plotsquared.core.plot.flag.implementations.PriceFlag; | import com.plotsquared.core.plot.flag.implementations.PriceFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.ProjectileChangeBlockFlag; | import com.plotsquared.core.plot.flag.implementations.ProjectileChangeBlockFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag; | import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.WeavingDeathPlace; |  | ||||||
| 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; | ||||||
| @@ -173,7 +171,6 @@ public final class GlobalFlagContainer extends FlagContainer { | |||||||
|         this.addFlag(IceFormFlag.ICE_FORM_FALSE); |         this.addFlag(IceFormFlag.ICE_FORM_FALSE); | ||||||
|         this.addFlag(IceMeltFlag.ICE_MELT_FALSE); |         this.addFlag(IceMeltFlag.ICE_MELT_FALSE); | ||||||
|         this.addFlag(InstabreakFlag.INSTABREAK_FALSE); |         this.addFlag(InstabreakFlag.INSTABREAK_FALSE); | ||||||
|         this.addFlag(InteractionInteractFlag.INTERACTION_INTERACT_FALSE); |  | ||||||
|         this.addFlag(InvincibleFlag.INVINCIBLE_FALSE); |         this.addFlag(InvincibleFlag.INVINCIBLE_FALSE); | ||||||
|         this.addFlag(ItemDropFlag.ITEM_DROP_TRUE); |         this.addFlag(ItemDropFlag.ITEM_DROP_TRUE); | ||||||
|         this.addFlag(KeepInventoryFlag.KEEP_INVENTORY_FALSE); |         this.addFlag(KeepInventoryFlag.KEEP_INVENTORY_FALSE); | ||||||
| @@ -210,7 +207,6 @@ public final class GlobalFlagContainer extends FlagContainer { | |||||||
|         this.addFlag(VillagerInteractFlag.VILLAGER_INTERACT_FALSE); |         this.addFlag(VillagerInteractFlag.VILLAGER_INTERACT_FALSE); | ||||||
|         this.addFlag(VineGrowFlag.VINE_GROW_TRUE); |         this.addFlag(VineGrowFlag.VINE_GROW_TRUE); | ||||||
|         this.addFlag(ProjectilesFlag.PROJECTILES_FALSE); |         this.addFlag(ProjectilesFlag.PROJECTILES_FALSE); | ||||||
|         this.addFlag(WeavingDeathPlace.WEAVING_DEATH_PLACE_FALSE); |  | ||||||
|  |  | ||||||
|         // Double flags |         // Double flags | ||||||
|         this.addFlag(PriceFlag.PRICE_NOT_BUYABLE); |         this.addFlag(PriceFlag.PRICE_NOT_BUYABLE); | ||||||
|   | |||||||
| @@ -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 InteractionInteractFlag extends BooleanFlag<InteractionInteractFlag> { |  | ||||||
|  |  | ||||||
|     public static final InteractionInteractFlag INTERACTION_INTERACT_TRUE = new InteractionInteractFlag(true); |  | ||||||
|     public static final InteractionInteractFlag INTERACTION_INTERACT_FALSE = new InteractionInteractFlag(false); |  | ||||||
|  |  | ||||||
|     private InteractionInteractFlag(boolean value) { |  | ||||||
|         super(value, TranslatableCaption.of("flags.flag_description_interaction_interact")); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     protected InteractionInteractFlag flagOf(@NonNull Boolean value) { |  | ||||||
|         return value ? INTERACTION_INTERACT_TRUE : INTERACTION_INTERACT_FALSE; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @@ -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 WeavingDeathPlace extends BooleanFlag<WeavingDeathPlace> { |  | ||||||
|  |  | ||||||
|     public static final WeavingDeathPlace WEAVING_DEATH_PLACE_TRUE = new WeavingDeathPlace(true); |  | ||||||
|     public static final WeavingDeathPlace WEAVING_DEATH_PLACE_FALSE = new WeavingDeathPlace(false); |  | ||||||
|  |  | ||||||
|     private WeavingDeathPlace(boolean value) { |  | ||||||
|         super(value, TranslatableCaption.of("flags.flag_description_weaving_death_place")); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     protected WeavingDeathPlace flagOf(@NonNull Boolean value) { |  | ||||||
|         return value ? WEAVING_DEATH_PLACE_TRUE : WEAVING_DEATH_PLACE_FALSE; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @@ -371,10 +371,7 @@ public class EventDispatcher { | |||||||
|             Location location, BlockType blockType, boolean notifyPerms |             Location location, BlockType blockType, boolean notifyPerms | ||||||
|     ) { |     ) { | ||||||
|         PlotArea area = location.getPlotArea(); |         PlotArea area = location.getPlotArea(); | ||||||
|         // the interaction target location might be outside a plot area |         assert area != null; | ||||||
|         if (area == null) { |  | ||||||
|             return true; |  | ||||||
|         } |  | ||||||
|         if (!area.buildRangeContainsY(location.getY()) && !player.hasPermission(Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) { |         if (!area.buildRangeContainsY(location.getY()) && !player.hasPermission(Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) { | ||||||
|             player.sendMessage( |             player.sendMessage( | ||||||
|                     TranslatableCaption.of("height.height_limit"), |                     TranslatableCaption.of("height.height_limit"), | ||||||
|   | |||||||
| @@ -107,7 +107,6 @@ public final class TabCompletions { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static @NonNull List<Command> completePlayersInPlot( |     public static @NonNull List<Command> completePlayersInPlot( | ||||||
|             final @NonNull PlotPlayer<?> issuer, |  | ||||||
|             final @NonNull Plot plot, |             final @NonNull Plot plot, | ||||||
|             final @NonNull String input, final @NonNull List<String> existing |             final @NonNull String input, final @NonNull List<String> existing | ||||||
|     ) { |     ) { | ||||||
| @@ -116,9 +115,7 @@ public final class TabCompletions { | |||||||
|             final List<PlotPlayer<?>> inPlot = plot.getPlayersInPlot(); |             final List<PlotPlayer<?>> inPlot = plot.getPlayersInPlot(); | ||||||
|             players = new ArrayList<>(inPlot.size()); |             players = new ArrayList<>(inPlot.size()); | ||||||
|             for (PlotPlayer<?> player : inPlot) { |             for (PlotPlayer<?> player : inPlot) { | ||||||
|                 if (issuer.canSee(player)) { |                 players.add(player.getName()); | ||||||
|                     players.add(player.getName()); |  | ||||||
|                 } |  | ||||||
|             } |             } | ||||||
|             cachedCompletionValues.put("inPlot" + plot, players); |             cachedCompletionValues.put("inPlot" + plot, players); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -41,7 +41,6 @@ public class EntityCategories { | |||||||
|     public static final EntityCategory PROJECTILE = register("projectile"); |     public static final EntityCategory PROJECTILE = register("projectile"); | ||||||
|     public static final EntityCategory OTHER = register("other"); |     public static final EntityCategory OTHER = register("other"); | ||||||
|     public static final EntityCategory PLAYER = register("player"); |     public static final EntityCategory PLAYER = register("player"); | ||||||
|     public static final EntityCategory INTERACTION = register("interaction"); |  | ||||||
|  |  | ||||||
|     public static EntityCategory register(final String id) { |     public static EntityCategory register(final String id) { | ||||||
|         final EntityCategory entityCategory = new EntityCategory(PlotSquared.platform().worldUtil(), id); |         final EntityCategory entityCategory = new EntityCategory(PlotSquared.platform().worldUtil(), id); | ||||||
|   | |||||||
| @@ -572,7 +572,6 @@ | |||||||
|   "flags.flag_description_ice_form": "<gray>Set to `true` to allow ice to form in the plot.</gray>", |   "flags.flag_description_ice_form": "<gray>Set to `true` to allow ice to form in the plot.</gray>", | ||||||
|   "flags.flag_description_ice_melt": "<gray>Set to `false` to disable ice melting in the plot.</gray>", |   "flags.flag_description_ice_melt": "<gray>Set to `false` to disable ice melting in the plot.</gray>", | ||||||
|   "flags.flag_description_instabreak": "<gray>Set to `true` to allow blocks to be instantaneously broken in survival mode.</gray>", |   "flags.flag_description_instabreak": "<gray>Set to `true` to allow blocks to be instantaneously broken in survival mode.</gray>", | ||||||
|   "flags.flag_description_interaction_interact": "<gray>Set to `true` to allow guests to interact with interaction entities in the plot.</gray>", |  | ||||||
|   "flags.flag_description_invincible": "<gray>Set to `true` to prevent players from taking damage inside the plot.</gray>", |   "flags.flag_description_invincible": "<gray>Set to `true` to prevent players from taking damage inside the plot.</gray>", | ||||||
|   "flags.flag_description_item_drop": "<gray>Set to `false` to prevent items from being dropped inside the plot.</gray>", |   "flags.flag_description_item_drop": "<gray>Set to `false` to prevent items from being dropped inside the plot.</gray>", | ||||||
|   "flags.flag_description_kelp_grow": "<gray>Set to `false` to prevent kelp from growing in the plot.</gray>", |   "flags.flag_description_kelp_grow": "<gray>Set to `false` to prevent kelp from growing in the plot.</gray>", | ||||||
| @@ -629,7 +628,6 @@ | |||||||
|   "flags.flag_description_prevent_creative_copy": "<gray>Prevents people from copying item NBT data in the plot unless they're added as members.</gray>", |   "flags.flag_description_prevent_creative_copy": "<gray>Prevents people from copying item NBT data in the plot unless they're added as members.</gray>", | ||||||
|   "flags.flag_description_leaf_decay": "<gray>Set to `false` to prevent leaves from decaying.", |   "flags.flag_description_leaf_decay": "<gray>Set to `false` to prevent leaves from decaying.", | ||||||
|   "flags.flag_description_projectiles": "<gray>Prevents guests from shooting projectiles on the plot when set to false.</gray>", |   "flags.flag_description_projectiles": "<gray>Prevents guests from shooting projectiles on the plot when set to false.</gray>", | ||||||
|   "flags.flag_description_weaving_death_place": "<gray>Set to `false` to prevent spawning of cobwebs by the Weaving status effect on the death of an entity.</gray>", |  | ||||||
|   "flags.flag_description_beacon_effect": "<gray>Enables beacon effects on the plot.</gray>", |   "flags.flag_description_beacon_effect": "<gray>Enables beacon effects on the plot.</gray>", | ||||||
|   "flags.flag_error_boolean": "Flag value must be a boolean (true | false).", |   "flags.flag_error_boolean": "Flag value must be a boolean (true | false).", | ||||||
|   "flags.flag_error_enum": "Must be one of: <list>", |   "flags.flag_error_enum": "Must be one of: <list>", | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ plugins { | |||||||
| } | } | ||||||
|  |  | ||||||
| group = "com.intellectualsites.plotsquared" | group = "com.intellectualsites.plotsquared" | ||||||
| version = "7.4.1-SNAPSHOT" | version = "7.3.10-SNAPSHOT" | ||||||
|  |  | ||||||
| if (!File("$rootDir/.git").exists()) { | if (!File("$rootDir/.git").exists()) { | ||||||
|     logger.lifecycle(""" |     logger.lifecycle(""" | ||||||
| @@ -79,8 +79,8 @@ subprojects { | |||||||
|  |  | ||||||
|     dependencies { |     dependencies { | ||||||
|         // Tests |         // Tests | ||||||
|         testImplementation("org.junit.jupiter:junit-jupiter:5.11.3") |         testImplementation("org.junit.jupiter:junit-jupiter:5.11.0") | ||||||
|         testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.11.3") |         testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.11.0") | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     plugins.withId("java") { |     plugins.withId("java") { | ||||||
| @@ -230,7 +230,7 @@ tasks.getByName<Jar>("jar") { | |||||||
|     enabled = false |     enabled = false | ||||||
| } | } | ||||||
|  |  | ||||||
| val supportedVersions = listOf("1.18.2", "1.19.4", "1.20.6", "1.21.1", "1.21.3") | val supportedVersions = listOf("1.18.2", "1.19.4", "1.20.6", "1.21.1") | ||||||
| tasks { | tasks { | ||||||
|     register("cacheLatestFaweArtifact") { |     register("cacheLatestFaweArtifact") { | ||||||
|         val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL() |         val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL() | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
| paper = "1.20.4-R0.1-SNAPSHOT" | paper = "1.20.4-R0.1-SNAPSHOT" | ||||||
| guice = "7.0.0" | guice = "7.0.0" | ||||||
| spotbugs = "4.8.6" | spotbugs = "4.8.6" | ||||||
| checkerqual = "3.48.3" | checkerqual = "3.46.0" | ||||||
| gson = "2.10" | gson = "2.10" | ||||||
| guava = "31.1-jre" | guava = "31.1-jre" | ||||||
| snakeyaml = "2.0" | snakeyaml = "2.0" | ||||||
| @@ -13,7 +13,7 @@ log4j = "2.19.0" | |||||||
|  |  | ||||||
| # Plugins | # Plugins | ||||||
| worldedit = "7.2.20" | worldedit = "7.2.20" | ||||||
| fawe = "2.12.2" | fawe = "2.11.0" | ||||||
| placeholderapi = "2.11.6" | placeholderapi = "2.11.6" | ||||||
| luckperms = "5.4" | luckperms = "5.4" | ||||||
| essentialsx = "2.20.1" | essentialsx = "2.20.1" | ||||||
| @@ -26,18 +26,18 @@ cloud-services = "1.8.4" | |||||||
| arkitektonika = "2.1.3" | arkitektonika = "2.1.3" | ||||||
| squirrelid = "0.3.2" | squirrelid = "0.3.2" | ||||||
| paster = "1.1.6" | paster = "1.1.6" | ||||||
| bstats = "3.1.0" | bstats = "3.0.2" | ||||||
| paperlib = "1.0.8" | paperlib = "1.0.8" | ||||||
| informative-annotations = "1.5" | informative-annotations = "1.5" | ||||||
| vault = "1.7.1" | vault = "1.7.1" | ||||||
| serverlib = "2.3.6" | serverlib = "2.3.6" | ||||||
|  |  | ||||||
| # Gradle plugins | # Gradle plugins | ||||||
| shadow = "8.3.5" | shadow = "8.1.1" | ||||||
| grgit = "4.1.1" | grgit = "4.1.1" | ||||||
| spotless = "6.25.0" | spotless = "6.25.0" | ||||||
| nexus = "2.0.0" | nexus = "2.0.0" | ||||||
| runPaper = "2.3.1" | runPaper = "2.3.0" | ||||||
|  |  | ||||||
| [libraries] | [libraries] | ||||||
| # Platform expectations | # Platform expectations | ||||||
| @@ -78,7 +78,7 @@ vault = { group = "com.github.MilkBowl", name = "VaultAPI", version.ref = "vault | |||||||
| serverlib = { group = "dev.notmyfault.serverlib", name = "ServerLib", version.ref = "serverlib" } | serverlib = { group = "dev.notmyfault.serverlib", name = "ServerLib", version.ref = "serverlib" } | ||||||
|  |  | ||||||
| [plugins] | [plugins] | ||||||
| shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } | shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } | ||||||
| grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" } | grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" } | ||||||
| spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } | spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } | ||||||
| nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus" } | nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus" } | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| distributionBase=GRADLE_USER_HOME | distributionBase=GRADLE_USER_HOME | ||||||
| distributionPath=wrapper/dists | distributionPath=wrapper/dists | ||||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip | ||||||
| networkTimeout=10000 | networkTimeout=10000 | ||||||
| validateDistributionUrl=true | validateDistributionUrl=true | ||||||
| zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| Javadocs generated for | Javadocs generated for | ||||||
| <a href="https://github.com/IntellectualSites/PlotSquared/" rel="noopener nofollow noreferrer" target="_blank"> PlotSquared</a> | | <a href="https://github.com/IntellectualSites/PlotSquared/" rel="noopener nofollow noreferrer" target="_blank"> PlotSquared</a> | | ||||||
| <a href="https://intellectualsites.gitbook.io/plotsquared/" rel="noopener nofollow noreferrer"> Documentation </a> | | <a href="https://intellectualsites.gitbook.io/plotsquared/" rel="noopener nofollow noreferrer"> Documentation </a> | | ||||||
|  Visit us on our <a href="https://discord.gg/intellectualsites" rel="noopener nofollow noreferrer"> Discord server</a> :) | Visit us on our <a href="https://discord.gg/intellectualsites" rel="noopener nofollow noreferrer"> Discord server</a> :) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user