mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 03:03:43 +01:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			legacy/v6
			...
			shadow-deb
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					626b5fc866 | ||
| 
						 | 
					f0b4d9b103 | ||
| 
						 | 
					2c8331e82e | 
@@ -2,6 +2,7 @@ name: Announce release on discord
 | 
			
		||||
on:
 | 
			
		||||
  release:
 | 
			
		||||
    types: [published]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  send_announcement:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
@@ -11,7 +12,7 @@ jobs:
 | 
			
		||||
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
 | 
			
		||||
          DISCORD_USERNAME: PlotSquared Release
 | 
			
		||||
          DISCORD_AVATAR: https://raw.githubusercontent.com/IntellectualSites/Assets/main/plugins/PlotSquared/PlotSquared.png
 | 
			
		||||
        uses: Ilshidur/action-discord@08d9328877d6954120eef2b07abbc79249bb6210 # ratchet:Ilshidur/action-discord@0.3.2
 | 
			
		||||
        uses: Ilshidur/action-discord@0.3.2
 | 
			
		||||
        with:
 | 
			
		||||
          args: |
 | 
			
		||||
            "<@&525015541815967744> <@&679322738552471574> <@&699293353862496266>"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/build-pr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/build-pr.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,17 +1,19 @@
 | 
			
		||||
name: Build PR
 | 
			
		||||
on: [pull_request]
 | 
			
		||||
 | 
			
		||||
on: [ pull_request ]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build_pr:
 | 
			
		||||
    if: github.repository_owner == 'IntellectualSites'
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ubuntu-latest, windows-latest, macos-latest]
 | 
			
		||||
        os: [ ubuntu-latest, windows-latest, macos-latest ]
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout Repository
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
      - name: Validate Gradle Wrapper
 | 
			
		||||
        uses: gradle/wrapper-validation-action@55e685c48d84285a5b0418cd094606e199cca3b6 # v1
 | 
			
		||||
        uses: gradle/wrapper-validation-action@v1
 | 
			
		||||
      - name: Setup Java
 | 
			
		||||
        uses: actions/setup-java@v3
 | 
			
		||||
        with:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										58
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										58
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,67 +1,23 @@
 | 
			
		||||
name: build
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - v6
 | 
			
		||||
      - shadow-debug
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    if: github.repository_owner == 'IntellectualSites'
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    runs-on: macos-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout Repository
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
      - name: Validate Gradle Wrapper
 | 
			
		||||
        uses: gradle/wrapper-validation-action@55e685c48d84285a5b0418cd094606e199cca3b6 # v1
 | 
			
		||||
        uses: gradle/wrapper-validation-action@v1
 | 
			
		||||
      - name: Setup Java
 | 
			
		||||
        uses: actions/setup-java@v3
 | 
			
		||||
        with:
 | 
			
		||||
          distribution: temurin
 | 
			
		||||
          java-version: 17
 | 
			
		||||
      - name: Clean Build
 | 
			
		||||
        run: ./gradlew clean build
 | 
			
		||||
      - name: Determine release status
 | 
			
		||||
        if: ${{ runner.os == 'Linux' }}
 | 
			
		||||
        run: |
 | 
			
		||||
          if [ "$(./gradlew properties | awk '/^version:/ { print $2; }' | grep '\-SNAPSHOT')" ]; then
 | 
			
		||||
            echo "STATUS=snapshot" >> $GITHUB_ENV
 | 
			
		||||
          else
 | 
			
		||||
            echo "STATUS=release" >> $GITHUB_ENV
 | 
			
		||||
          fi
 | 
			
		||||
      - name: Publish Release
 | 
			
		||||
        if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/v6'}}
 | 
			
		||||
        run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
 | 
			
		||||
        env:
 | 
			
		||||
          ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
 | 
			
		||||
          ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
 | 
			
		||||
          ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}
 | 
			
		||||
          ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
 | 
			
		||||
      - name: Publish Snapshot
 | 
			
		||||
        if: ${{ runner.os == 'Linux' && env.STATUS != 'release' && github.event_name == 'push' && github.ref == 'refs/heads/v6' }}
 | 
			
		||||
        run: ./gradlew publishToSonatype
 | 
			
		||||
        env:
 | 
			
		||||
          ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
 | 
			
		||||
          ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
 | 
			
		||||
      - name: Publish core javadoc
 | 
			
		||||
        if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/v6'}}
 | 
			
		||||
        uses: cpina/github-action-push-to-another-repository@0a14457bb28b04dfa1652e0ffdfda866d2845c73 # main
 | 
			
		||||
        env:
 | 
			
		||||
          SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
 | 
			
		||||
        with:
 | 
			
		||||
          source-directory: 'Core/build/docs/javadoc'
 | 
			
		||||
          destination-github-username: 'IntellectualSites'
 | 
			
		||||
          destination-repository-name: 'plotsquared-javadocs'
 | 
			
		||||
          user-email: ${{ secrets.USER_EMAIL }}
 | 
			
		||||
          target-branch: main
 | 
			
		||||
          target-directory: core
 | 
			
		||||
      - name: Publish bukkit javadoc
 | 
			
		||||
        if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/v6'}}
 | 
			
		||||
        uses: cpina/github-action-push-to-another-repository@0a14457bb28b04dfa1652e0ffdfda866d2845c73 # main
 | 
			
		||||
        env:
 | 
			
		||||
          SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
 | 
			
		||||
        with:
 | 
			
		||||
          source-directory: 'Bukkit/build/docs/javadoc'
 | 
			
		||||
          destination-github-username: 'IntellectualSites'
 | 
			
		||||
          destination-repository-name: 'plotsquared-javadocs'
 | 
			
		||||
          user-email: ${{ secrets.USER_EMAIL }}
 | 
			
		||||
          target-branch: main
 | 
			
		||||
          target-directory: bukkit
 | 
			
		||||
      - name: Build on macos-latest
 | 
			
		||||
        run: ./gradlew clean build --warning-mode all
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,8 +1,10 @@
 | 
			
		||||
name: "CodeQL"
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
    # The branches below must be a subset of the branches above
 | 
			
		||||
    branches: [v6]
 | 
			
		||||
    branches: [ v6 ]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  analyze:
 | 
			
		||||
    name: Analyze
 | 
			
		||||
@@ -11,18 +13,23 @@ jobs:
 | 
			
		||||
      actions: read
 | 
			
		||||
      contents: read
 | 
			
		||||
      security-events: write
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        language: ['java']
 | 
			
		||||
        language: [ 'java' ]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout repository
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Initialize CodeQL
 | 
			
		||||
        uses: github/codeql-action/init@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2
 | 
			
		||||
        uses: github/codeql-action/init@v2
 | 
			
		||||
        with:
 | 
			
		||||
          languages: ${{ matrix.language }}
 | 
			
		||||
 | 
			
		||||
      - name: Autobuild
 | 
			
		||||
        uses: github/codeql-action/autobuild@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2
 | 
			
		||||
        uses: github/codeql-action/autobuild@v2
 | 
			
		||||
 | 
			
		||||
      - name: Perform CodeQL Analysis
 | 
			
		||||
        uses: github/codeql-action/analyze@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2
 | 
			
		||||
        uses: github/codeql-action/analyze@v2
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/release-drafter.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/release-drafter.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,12 +1,14 @@
 | 
			
		||||
name: draft release
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - v6
 | 
			
		||||
  pull_request:
 | 
			
		||||
    types: [opened, reopened, synchronize]
 | 
			
		||||
    types: [ opened, reopened, synchronize ]
 | 
			
		||||
  pull_request_target:
 | 
			
		||||
    types: [opened, reopened, synchronize]
 | 
			
		||||
    types: [ opened, reopened, synchronize ]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  update_release_draft:
 | 
			
		||||
    if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }}
 | 
			
		||||
 
 | 
			
		||||
@@ -71,8 +71,6 @@ import com.plotsquared.core.configuration.Storage;
 | 
			
		||||
import com.plotsquared.core.configuration.caption.ChatFormatter;
 | 
			
		||||
import com.plotsquared.core.configuration.file.YamlConfiguration;
 | 
			
		||||
import com.plotsquared.core.database.DBFunc;
 | 
			
		||||
import com.plotsquared.core.events.RemoveRoadEntityEvent;
 | 
			
		||||
import com.plotsquared.core.events.Result;
 | 
			
		||||
import com.plotsquared.core.generator.GeneratorWrapper;
 | 
			
		||||
import com.plotsquared.core.generator.IndependentPlotGenerator;
 | 
			
		||||
import com.plotsquared.core.generator.SingleWorldGenerator;
 | 
			
		||||
@@ -111,7 +109,6 @@ import com.plotsquared.core.uuid.CacheUUIDService;
 | 
			
		||||
import com.plotsquared.core.uuid.UUIDPipeline;
 | 
			
		||||
import com.plotsquared.core.uuid.offline.OfflineModeUUIDService;
 | 
			
		||||
import com.sk89q.worldedit.WorldEdit;
 | 
			
		||||
import com.sk89q.worldedit.bukkit.BukkitAdapter;
 | 
			
		||||
import io.papermc.lib.PaperLib;
 | 
			
		||||
import net.kyori.adventure.audience.Audience;
 | 
			
		||||
import net.kyori.adventure.text.Component;
 | 
			
		||||
@@ -813,7 +810,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
			
		||||
                                        if (entity.hasMetadata("ps-tmp-teleport")) {
 | 
			
		||||
                                            continue;
 | 
			
		||||
                                        }
 | 
			
		||||
                                        this.removeRoadEntity(entity, iterator);
 | 
			
		||||
                                        iterator.remove();
 | 
			
		||||
                                        entity.remove();
 | 
			
		||||
                                    }
 | 
			
		||||
                                    continue;
 | 
			
		||||
                                }
 | 
			
		||||
@@ -826,7 +824,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
			
		||||
                                    if (entity.hasMetadata("ps-tmp-teleport")) {
 | 
			
		||||
                                        continue;
 | 
			
		||||
                                    }
 | 
			
		||||
                                    this.removeRoadEntity(entity, iterator);
 | 
			
		||||
                                    iterator.remove();
 | 
			
		||||
                                    entity.remove();
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            continue;
 | 
			
		||||
@@ -836,7 +835,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
			
		||||
                        case "DROPPED_ITEM":
 | 
			
		||||
                            if (Settings.Enabled_Components.KILL_ROAD_ITEMS
 | 
			
		||||
                                    && plotArea.getOwnedPlotAbs(BukkitUtil.adapt(entity.getLocation())) == null) {
 | 
			
		||||
                                this.removeRoadEntity(entity, iterator);
 | 
			
		||||
                                entity.remove();
 | 
			
		||||
                            }
 | 
			
		||||
                            // dropped item
 | 
			
		||||
                            continue;
 | 
			
		||||
@@ -867,7 +866,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
			
		||||
                                                if (entity.hasMetadata("ps-tmp-teleport")) {
 | 
			
		||||
                                                    continue;
 | 
			
		||||
                                                }
 | 
			
		||||
                                                this.removeRoadEntity(entity, iterator);
 | 
			
		||||
                                                iterator.remove();
 | 
			
		||||
                                                entity.remove();
 | 
			
		||||
                                            }
 | 
			
		||||
                                        }
 | 
			
		||||
                                    }
 | 
			
		||||
@@ -972,7 +972,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
			
		||||
                                                if (entity.hasMetadata("ps-tmp-teleport")) {
 | 
			
		||||
                                                    continue;
 | 
			
		||||
                                                }
 | 
			
		||||
                                                this.removeRoadEntity(entity, iterator);
 | 
			
		||||
                                                iterator.remove();
 | 
			
		||||
                                                entity.remove();
 | 
			
		||||
                                            }
 | 
			
		||||
                                        }
 | 
			
		||||
                                    } else {
 | 
			
		||||
@@ -983,7 +984,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
			
		||||
                                            if (entity.hasMetadata("ps-tmp-teleport")) {
 | 
			
		||||
                                                continue;
 | 
			
		||||
                                            }
 | 
			
		||||
                                            this.removeRoadEntity(entity, iterator);
 | 
			
		||||
                                            iterator.remove();
 | 
			
		||||
                                            entity.remove();
 | 
			
		||||
                                        }
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
@@ -997,17 +999,6 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
			
		||||
        }), TaskTime.seconds(1L));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void removeRoadEntity(Entity entity, Iterator<Entity> entityIterator) {
 | 
			
		||||
        RemoveRoadEntityEvent event = eventDispatcher.callRemoveRoadEntity(BukkitAdapter.adapt(entity));
 | 
			
		||||
 | 
			
		||||
        if (event.getEventResult() == Result.DENY) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        entityIterator.remove();
 | 
			
		||||
        entity.remove();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public @Nullable
 | 
			
		||||
    final ChunkGenerator getDefaultWorldGenerator(
 | 
			
		||||
 
 | 
			
		||||
@@ -161,12 +161,6 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap
 | 
			
		||||
        world.setWaterAnimalSpawnLimit(limit);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The entire method is deprecated, but kept for compatibility with versions lower than or equal to 1.16.2.
 | 
			
		||||
     * The method will be removed in future versions, because WorldEdit and FastAsyncWorldEdit only support the latest point
 | 
			
		||||
     * release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.0")
 | 
			
		||||
    @Override
 | 
			
		||||
    public @NonNull ChunkData generateChunkData(
 | 
			
		||||
            @NonNull World world, @NonNull Random random, int x, int z,
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,6 @@ import org.bukkit.block.BlockFace;
 | 
			
		||||
import org.bukkit.block.BlockState;
 | 
			
		||||
import org.bukkit.block.data.BlockData;
 | 
			
		||||
import org.bukkit.block.data.type.Dispenser;
 | 
			
		||||
import org.bukkit.block.data.type.Farmland;
 | 
			
		||||
import org.bukkit.entity.Entity;
 | 
			
		||||
import org.bukkit.entity.Fireball;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
@@ -99,7 +98,6 @@ import org.bukkit.event.block.BlockSpreadEvent;
 | 
			
		||||
import org.bukkit.event.block.CauldronLevelChangeEvent;
 | 
			
		||||
import org.bukkit.event.block.EntityBlockFormEvent;
 | 
			
		||||
import org.bukkit.event.block.LeavesDecayEvent;
 | 
			
		||||
import org.bukkit.event.block.MoistureChangeEvent;
 | 
			
		||||
import org.bukkit.event.block.SpongeAbsorbEvent;
 | 
			
		||||
import org.bukkit.event.world.StructureGrowEvent;
 | 
			
		||||
import org.bukkit.projectiles.BlockProjectileSource;
 | 
			
		||||
@@ -705,41 +703,6 @@ public class BlockEventListener implements Listener {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onMoistureChange(MoistureChangeEvent event) {
 | 
			
		||||
        Block block = event.getBlock();
 | 
			
		||||
        Location location = BukkitUtil.adapt(block.getLocation());
 | 
			
		||||
        PlotArea area = location.getPlotArea();
 | 
			
		||||
 | 
			
		||||
        if (area == null) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Plot plot = area.getOwnedPlot(location);
 | 
			
		||||
 | 
			
		||||
        if (plot == null) {
 | 
			
		||||
            event.setCancelled(true);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (block.getBlockData() instanceof Farmland farmland && event.getNewState().getBlockData() instanceof Farmland newFarmland) {
 | 
			
		||||
            int currentMoisture = farmland.getMoisture();
 | 
			
		||||
            int newMoisture = newFarmland.getMoisture();
 | 
			
		||||
 | 
			
		||||
            // farmland gets moisturizes
 | 
			
		||||
            if (newMoisture > currentMoisture) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (plot.getFlag(SoilDryFlag.class)) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            plot.debug("Soil could not dry because soil-dry = false");
 | 
			
		||||
            event.setCancelled(true);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
 | 
			
		||||
    public void onChange(BlockFromToEvent event) {
 | 
			
		||||
        Block fromBlock = event.getBlock();
 | 
			
		||||
 
 | 
			
		||||
@@ -75,7 +75,7 @@ public class BukkitPlayer extends PlotPlayer<Player> {
 | 
			
		||||
     * @deprecated Please do not use this method. Instead use {@link BukkitUtil#adapt(Player)}, as it caches player objects.
 | 
			
		||||
     * This method will be made private in a future release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.10.9")
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "TODO")
 | 
			
		||||
    public BukkitPlayer(
 | 
			
		||||
            final @NonNull PlotAreaManager plotAreaManager, final @NonNull EventDispatcher eventDispatcher,
 | 
			
		||||
            final @NonNull Player player, final @NonNull PermissionHandler permissionHandler
 | 
			
		||||
@@ -92,7 +92,7 @@ public class BukkitPlayer extends PlotPlayer<Player> {
 | 
			
		||||
     * @deprecated Please do not use this method. Instead use {@link BukkitUtil#adapt(Player)}, as it caches player objects.
 | 
			
		||||
     * This method will be made private in a future release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.10.9")
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "TODO")
 | 
			
		||||
    public BukkitPlayer(
 | 
			
		||||
            final @NonNull PlotAreaManager plotAreaManager, final @NonNull
 | 
			
		||||
            EventDispatcher eventDispatcher, final @NonNull Player player,
 | 
			
		||||
 
 | 
			
		||||
@@ -239,11 +239,9 @@ public final class BukkitChunkCoordinator extends ChunkCoordinator {
 | 
			
		||||
     * server's main thread.
 | 
			
		||||
     */
 | 
			
		||||
    private void processChunk(final @NonNull Chunk chunk) {
 | 
			
		||||
        /* Chunk#isLoaded does not necessarily return true shortly after PaperLib#getChunkAtAsync completes, but the chunk is
 | 
			
		||||
        still loaded.
 | 
			
		||||
        if (!chunk.isLoaded()) {
 | 
			
		||||
            throw new IllegalArgumentException(String.format("Chunk %d;%d is is not loaded", chunk.getX(), chunk.getZ());
 | 
			
		||||
        }*/
 | 
			
		||||
            throw new IllegalArgumentException(String.format("Chunk %d;%d is is not loaded", chunk.getX(), chunk.getZ()));
 | 
			
		||||
        }
 | 
			
		||||
        if (finished) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
 | 
			
		||||
## Enforcement
 | 
			
		||||
 | 
			
		||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
 | 
			
		||||
reported by contacting the project team at contact<at>intellectualsites.com. All
 | 
			
		||||
reported by contacting the project team at contact@intellectualsites.com. All
 | 
			
		||||
complaints will be reviewed and investigated and will result in a response that
 | 
			
		||||
is deemed necessary and appropriate to the circumstances. The project team is
 | 
			
		||||
obligated to maintain confidentiality with regard to the reporter of an incident.
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,6 @@ import com.plotsquared.core.util.TabCompletions;
 | 
			
		||||
import com.plotsquared.core.util.WorldUtil;
 | 
			
		||||
import com.plotsquared.core.util.task.RunnableVal3;
 | 
			
		||||
import com.sk89q.worldedit.EditSession;
 | 
			
		||||
import com.sk89q.worldedit.EditSessionBuilder;
 | 
			
		||||
import com.sk89q.worldedit.LocalSession;
 | 
			
		||||
import com.sk89q.worldedit.WorldEdit;
 | 
			
		||||
import com.sk89q.worldedit.entity.Player;
 | 
			
		||||
@@ -229,9 +228,10 @@ public class Area extends SubCommand {
 | 
			
		||||
                try (final ClipboardWriter clipboardWriter = BuiltInClipboardFormat.SPONGE_SCHEMATIC.getWriter(new FileOutputStream(
 | 
			
		||||
                        file))) {
 | 
			
		||||
                    final BlockArrayClipboard clipboard = new BlockArrayClipboard(selectedRegion);
 | 
			
		||||
                    EditSessionBuilder editSessionBuilder = WorldEdit.getInstance().newEditSessionBuilder();
 | 
			
		||||
                    editSessionBuilder.world(selectedRegion.getWorld());
 | 
			
		||||
                    final EditSession editSession = editSessionBuilder.build();
 | 
			
		||||
                    final EditSession editSession = WorldEdit
 | 
			
		||||
                            .getInstance()
 | 
			
		||||
                            .getEditSessionFactory()
 | 
			
		||||
                            .getEditSession(selectedRegion.getWorld(), -1);
 | 
			
		||||
                    final ForwardExtentCopy forwardExtentCopy =
 | 
			
		||||
                            new ForwardExtentCopy(editSession, selectedRegion, clipboard, selectedRegion.getMinimumPoint());
 | 
			
		||||
                    forwardExtentCopy.setCopyingBiomes(true);
 | 
			
		||||
 
 | 
			
		||||
@@ -106,6 +106,7 @@ public class Clear extends Command {
 | 
			
		||||
            BackupManager.backup(player, plot, () -> {
 | 
			
		||||
                final long start = System.currentTimeMillis();
 | 
			
		||||
                boolean result = plot.getPlotModificationManager().clear(true, false, player, () -> {
 | 
			
		||||
                    plot.getPlotModificationManager().unlink();
 | 
			
		||||
                    TaskManager.runTask(() -> {
 | 
			
		||||
                        plot.removeRunning();
 | 
			
		||||
                        // If the state changes, then mark it as no longer done
 | 
			
		||||
 
 | 
			
		||||
@@ -62,7 +62,7 @@ public class ComponentPreset implements ConfigurationSerializable {
 | 
			
		||||
    public static ComponentPreset deserialize(final @NonNull Map<String, Object> map) {
 | 
			
		||||
        final ClassicPlotManagerComponent classicPlotManagerComponent = ClassicPlotManagerComponent
 | 
			
		||||
                .fromString(map.getOrDefault("component", "").toString()).orElseThrow(() ->
 | 
			
		||||
                        new IllegalArgumentException("The preset in components.yml needs a valid target component, got: " + map.get("component")));
 | 
			
		||||
                        new IllegalArgumentException("The preset needs a valid target component"));
 | 
			
		||||
        final String pattern = map.getOrDefault("pattern", "").toString();
 | 
			
		||||
        final double cost = Double.parseDouble(map.getOrDefault("cost", "0.0").toString());
 | 
			
		||||
        final String permission = map.getOrDefault("permission", "").toString();
 | 
			
		||||
 
 | 
			
		||||
@@ -50,9 +50,7 @@ public class Config {
 | 
			
		||||
     * @param root configuration class
 | 
			
		||||
     * @param <T>  value type
 | 
			
		||||
     * @return value
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    @SuppressWarnings("unchecked")
 | 
			
		||||
    public static <T> T get(String key, Class<?> root) {
 | 
			
		||||
        String[] split = key.split("\\.");
 | 
			
		||||
@@ -447,10 +445,6 @@ public class Config {
 | 
			
		||||
            return INSTANCES.values();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
         */
 | 
			
		||||
        @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
        public Collection<String> getSections() {
 | 
			
		||||
            return INSTANCES.keySet();
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,63 +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.events;
 | 
			
		||||
 | 
			
		||||
import com.sk89q.worldedit.entity.Entity;
 | 
			
		||||
import org.checkerframework.checker.nullness.qual.NonNull;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @since 6.11.1
 | 
			
		||||
 */
 | 
			
		||||
public abstract class EntityEvent {
 | 
			
		||||
 | 
			
		||||
    private final Entity entity;
 | 
			
		||||
 | 
			
		||||
    private String name;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @since 6.11.0
 | 
			
		||||
     */
 | 
			
		||||
    public EntityEvent(Entity entity) {
 | 
			
		||||
        this.entity = entity;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Obtain the entity involved in the event
 | 
			
		||||
     *
 | 
			
		||||
     * @return Entity
 | 
			
		||||
     * @since 6.11.0
 | 
			
		||||
     */
 | 
			
		||||
    public Entity getEntity() {
 | 
			
		||||
        return this.entity;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Obtain the event's class name
 | 
			
		||||
     *
 | 
			
		||||
     * @return the event class name
 | 
			
		||||
     * @since 6.11.0
 | 
			
		||||
     */
 | 
			
		||||
    @NonNull public String getEventName() {
 | 
			
		||||
        if (this.name == null) {
 | 
			
		||||
            this.name = this.getClass().getSimpleName();
 | 
			
		||||
        }
 | 
			
		||||
        return this.name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,50 +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.events;
 | 
			
		||||
 | 
			
		||||
import com.sk89q.worldedit.entity.Entity;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @since 6.11.0
 | 
			
		||||
 */
 | 
			
		||||
public class RemoveRoadEntityEvent extends EntityEvent implements CancellablePlotEvent {
 | 
			
		||||
 | 
			
		||||
    private Result eventResult;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * RemoveRoadEntityEvent: Called when an entity on road is removed.
 | 
			
		||||
     *
 | 
			
		||||
     * @param entity The entity to remove
 | 
			
		||||
     * @since 6.11.0
 | 
			
		||||
     */
 | 
			
		||||
    public RemoveRoadEntityEvent(Entity entity) {
 | 
			
		||||
        super(entity);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Result getEventResult() {
 | 
			
		||||
        return this.eventResult;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void setEventResult(Result eventResult) {
 | 
			
		||||
        this.eventResult = eventResult;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -144,7 +144,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
                    plot.getRegions(),
 | 
			
		||||
                    blocks,
 | 
			
		||||
                    classicPlotWorld.getMinBuildHeight(),
 | 
			
		||||
                    classicPlotWorld.getMaxBuildHeight() - 1,
 | 
			
		||||
                    classicPlotWorld.getMaxBuildHeight(),
 | 
			
		||||
                    actor,
 | 
			
		||||
                    queue
 | 
			
		||||
            );
 | 
			
		||||
@@ -175,7 +175,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
                            plot.getRegions(),
 | 
			
		||||
                            blocks,
 | 
			
		||||
                            classicPlotWorld.PLOT_HEIGHT + 1,
 | 
			
		||||
                            classicPlotWorld.getMaxBuildHeight() - 1,
 | 
			
		||||
                            classicPlotWorld.getMaxBuildHeight(),
 | 
			
		||||
                            actor,
 | 
			
		||||
                            queue
 | 
			
		||||
                    );
 | 
			
		||||
@@ -281,7 +281,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        int maxY = classicPlotWorld.getMaxBuildHeight() - 1;
 | 
			
		||||
        int maxY = classicPlotWorld.getMaxBuildHeight();
 | 
			
		||||
        if (!plot.isMerged(Direction.NORTH)) {
 | 
			
		||||
            int z = bottom.getZ();
 | 
			
		||||
            for (int x = bottom.getX(); x <= top.getX(); x++) {
 | 
			
		||||
 
 | 
			
		||||
@@ -380,10 +380,6 @@ public class HybridUtils {
 | 
			
		||||
        run.run();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally and poor implementation. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public int checkModified(QueueCoordinator queue, int x1, int x2, int y1, int y2, int z1, int z2, BlockState[] blocks) {
 | 
			
		||||
        int count = 0;
 | 
			
		||||
        for (int y = y1; y <= y2; y++) {
 | 
			
		||||
 
 | 
			
		||||
@@ -2506,7 +2506,7 @@ public class Plot {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            int minHeight = getArea().getMinBuildHeight();
 | 
			
		||||
            int maxHeight = getArea().getMaxBuildHeight() - 1;
 | 
			
		||||
            int maxHeight = getArea().getMaxBuildHeight();
 | 
			
		||||
            Location gtopabs = this.area.getPlotAbs(top).getTopAbs();
 | 
			
		||||
            Location gbotabs = this.area.getPlotAbs(bot).getBottomAbs();
 | 
			
		||||
            visited.addAll(Lists.newArrayList((Iterable<? extends PlotId>) PlotId.PlotRangeIterator.range(bot, top)));
 | 
			
		||||
 
 | 
			
		||||
@@ -220,6 +220,17 @@ public final class PlotModificationManager {
 | 
			
		||||
        if (isDelete) {
 | 
			
		||||
            this.removeSign();
 | 
			
		||||
        }
 | 
			
		||||
        PlotUnlinkEvent event = PlotSquared.get().getEventDispatcher()
 | 
			
		||||
                .callUnlink(
 | 
			
		||||
                        this.plot.getArea(),
 | 
			
		||||
                        this.plot,
 | 
			
		||||
                        true,
 | 
			
		||||
                        !isDelete,
 | 
			
		||||
                        isDelete ? PlotUnlinkEvent.REASON.DELETE : PlotUnlinkEvent.REASON.CLEAR
 | 
			
		||||
                );
 | 
			
		||||
        if (event.getEventResult() != Result.DENY && this.unlinkPlot(event.isCreateRoad(), event.isCreateSign())) {
 | 
			
		||||
            PlotSquared.get().getEventDispatcher().callPostUnlink(plot, event.getReason());
 | 
			
		||||
        }
 | 
			
		||||
        final PlotManager manager = this.plot.getArea().getPlotManager();
 | 
			
		||||
        Runnable run = new Runnable() {
 | 
			
		||||
            @Override
 | 
			
		||||
@@ -270,21 +281,7 @@ public final class PlotModificationManager {
 | 
			
		||||
                manager.clearPlot(current, this, actor, null);
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
        PlotUnlinkEvent event = PlotSquared.get().getEventDispatcher()
 | 
			
		||||
                .callUnlink(
 | 
			
		||||
                        this.plot.getArea(),
 | 
			
		||||
                        this.plot,
 | 
			
		||||
                        true,
 | 
			
		||||
                        !isDelete,
 | 
			
		||||
                        isDelete ? PlotUnlinkEvent.REASON.DELETE : PlotUnlinkEvent.REASON.CLEAR
 | 
			
		||||
                );
 | 
			
		||||
        if (event.getEventResult() != Result.DENY) {
 | 
			
		||||
            if (this.unlinkPlot(event.isCreateRoad(), event.isCreateSign(), run)) {
 | 
			
		||||
                PlotSquared.get().getEventDispatcher().callPostUnlink(plot, event.getReason());
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            run.run();
 | 
			
		||||
        }
 | 
			
		||||
        run.run();
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -324,23 +321,7 @@ public final class PlotModificationManager {
 | 
			
		||||
     * @return success/!cancelled
 | 
			
		||||
     */
 | 
			
		||||
    public boolean unlinkPlot(final boolean createRoad, final boolean createSign) {
 | 
			
		||||
        return unlinkPlot(createRoad, createSign, null);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Unlink the plot and all connected plots.
 | 
			
		||||
     *
 | 
			
		||||
     * @param createRoad whether to recreate road
 | 
			
		||||
     * @param createSign whether to recreate signs
 | 
			
		||||
     * @param whenDone   Task to run when unlink is complete
 | 
			
		||||
     * @return success/!cancelled
 | 
			
		||||
     * @since 6.10.9
 | 
			
		||||
     */
 | 
			
		||||
    public boolean unlinkPlot(final boolean createRoad, final boolean createSign, final Runnable whenDone) {
 | 
			
		||||
        if (!this.plot.isMerged()) {
 | 
			
		||||
            if (whenDone != null) {
 | 
			
		||||
                whenDone.run();
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        final Set<Plot> plots = this.plot.getConnectedPlots();
 | 
			
		||||
@@ -385,17 +366,14 @@ public final class PlotModificationManager {
 | 
			
		||||
                    current.getPlotModificationManager().setSign(PlayerManager.resolveName(current.getOwnerAbs()).getComponent(
 | 
			
		||||
                            LocaleHolder.console()));
 | 
			
		||||
                }
 | 
			
		||||
                if (whenDone != null) {
 | 
			
		||||
                    TaskManager.runTask(whenDone);
 | 
			
		||||
                }
 | 
			
		||||
            }));
 | 
			
		||||
        } else if (whenDone != null) {
 | 
			
		||||
            queue.setCompleteTask(whenDone);
 | 
			
		||||
        }
 | 
			
		||||
        if (createRoad) {
 | 
			
		||||
            manager.finishPlotUnlink(ids, queue);
 | 
			
		||||
        }
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        if (queue != null) {
 | 
			
		||||
            queue.enqueue();
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -79,10 +79,6 @@ public class PlotSettings {
 | 
			
		||||
        this.ratings = ratings;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release. Use {@link PlotSettings#setMerged(Direction, boolean)}
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public boolean setMerged(int direction, boolean merged) {
 | 
			
		||||
        if (this.merged[direction] != merged) {
 | 
			
		||||
            this.merged[direction] = merged;
 | 
			
		||||
 
 | 
			
		||||
@@ -221,7 +221,7 @@ public abstract class QueueCoordinator {
 | 
			
		||||
     * @return success or not
 | 
			
		||||
     * @deprecated Biomes now take XYZ, see {@link #setBiome(int, int, int, BiomeType)}
 | 
			
		||||
     *         <br>
 | 
			
		||||
     *         Scheduled for removal once we drop the support for versions not supporting 3D biomes, 1.18 and earlier.
 | 
			
		||||
     *         Scheduled for removal once we drop the support for versions not supporting 3D biomes.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.0.0")
 | 
			
		||||
    public abstract boolean setBiome(int x, int z, @NonNull BiomeType biome);
 | 
			
		||||
 
 | 
			
		||||
@@ -114,9 +114,7 @@ public final class BlockUtil {
 | 
			
		||||
     *
 | 
			
		||||
     * @param commaDelimited List of block states
 | 
			
		||||
     * @return Parsed block states
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static @NonNull BlockState[] parse(final @NonNull String commaDelimited) {
 | 
			
		||||
        final String[] split = commaDelimited.split(",(?![^\\(\\[]*[\\]\\)])");
 | 
			
		||||
        final BlockState[] result = new BlockState[split.length];
 | 
			
		||||
@@ -132,9 +130,7 @@ public final class BlockUtil {
 | 
			
		||||
     * @param map Serialized block state
 | 
			
		||||
     * @return Deserialized block state, or {@code null} if the map is
 | 
			
		||||
     *         not a properly serialized block state
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static @Nullable BlockState deserialize(final @NonNull Map<String, Object> map) {
 | 
			
		||||
        if (map.containsKey("material")) {
 | 
			
		||||
            final Object object = map.get("material");
 | 
			
		||||
 
 | 
			
		||||
@@ -114,9 +114,7 @@ public class ChunkUtil {
 | 
			
		||||
     * @param pos2  Region maximum point
 | 
			
		||||
     * @param chunk BlockVector2 of chunk coordinates
 | 
			
		||||
     * @return {@code true} if the region pos1-pos2 contains the chunk
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean isWholeChunk(@NonNull Location pos1, @NonNull Location pos2, @NonNull BlockVector2 chunk) {
 | 
			
		||||
        int x1 = pos1.getX();
 | 
			
		||||
        int z1 = pos1.getZ();
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,6 @@ import com.plotsquared.core.events.PlotFlagRemoveEvent;
 | 
			
		||||
import com.plotsquared.core.events.PlotMergeEvent;
 | 
			
		||||
import com.plotsquared.core.events.PlotRateEvent;
 | 
			
		||||
import com.plotsquared.core.events.PlotUnlinkEvent;
 | 
			
		||||
import com.plotsquared.core.events.RemoveRoadEntityEvent;
 | 
			
		||||
import com.plotsquared.core.events.TeleportCause;
 | 
			
		||||
import com.plotsquared.core.events.post.PostPlayerAutoPlotEvent;
 | 
			
		||||
import com.plotsquared.core.events.post.PostPlotChangeOwnerEvent;
 | 
			
		||||
@@ -72,7 +71,6 @@ import com.plotsquared.core.plot.flag.types.BlockTypeWrapper;
 | 
			
		||||
import com.plotsquared.core.plot.world.SinglePlotArea;
 | 
			
		||||
import com.plotsquared.core.util.task.TaskManager;
 | 
			
		||||
import com.sk89q.worldedit.WorldEdit;
 | 
			
		||||
import com.sk89q.worldedit.entity.Entity;
 | 
			
		||||
import com.sk89q.worldedit.function.pattern.Pattern;
 | 
			
		||||
import com.sk89q.worldedit.world.block.BlockType;
 | 
			
		||||
import com.sk89q.worldedit.world.block.BlockTypes;
 | 
			
		||||
@@ -298,12 +296,6 @@ public class EventDispatcher {
 | 
			
		||||
        return event;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public RemoveRoadEntityEvent callRemoveRoadEntity(Entity entity) {
 | 
			
		||||
        RemoveRoadEntityEvent event = new RemoveRoadEntityEvent(entity);
 | 
			
		||||
        eventBus.post(event);
 | 
			
		||||
        return event;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void doJoinTask(final PlotPlayer<?> player) {
 | 
			
		||||
        if (player == null) {
 | 
			
		||||
            return; //possible future warning message to figure out where we are retrieving null
 | 
			
		||||
 
 | 
			
		||||
@@ -70,67 +70,35 @@ public class MathMan {
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static long pairInt(int x, int y) {
 | 
			
		||||
        return (((long) x) << 32) | (y & 0xffffffffL);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static int unpairIntX(long pair) {
 | 
			
		||||
        return (int) (pair >> 32);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static int unpairIntY(long pair) {
 | 
			
		||||
        return (int) pair;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static byte pair16(byte x, byte y) {
 | 
			
		||||
        return (byte) (x + (y << 4));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static byte unpair16x(byte value) {
 | 
			
		||||
        return (byte) (value & 0xF);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static byte unpair16y(byte value) {
 | 
			
		||||
        return (byte) ((value >> 4) & 0xF);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static long inverseRound(double val) {
 | 
			
		||||
        long round = Math.round(val);
 | 
			
		||||
        return (long) (round + Math.signum(val - round));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static int sqrt(int x) {
 | 
			
		||||
        int xn;
 | 
			
		||||
 | 
			
		||||
@@ -207,10 +175,6 @@ public class MathMan {
 | 
			
		||||
        return count / array.length;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static double getMean(double[] array) {
 | 
			
		||||
        double count = 0;
 | 
			
		||||
        for (double i : array) {
 | 
			
		||||
@@ -227,19 +191,10 @@ public class MathMan {
 | 
			
		||||
        return (a & b) + (a ^ b) / 2;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static short unpairX(int hash) {
 | 
			
		||||
        return (short) (hash >> 16);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static short unpairY(int hash) {
 | 
			
		||||
        return (short) (hash & 0xFFFF);
 | 
			
		||||
    }
 | 
			
		||||
@@ -250,19 +205,13 @@ public class MathMan {
 | 
			
		||||
     * @param yaw   yaw
 | 
			
		||||
     * @param pitch pitch
 | 
			
		||||
     * @return x, y, z unit vector
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static float[] getDirection(float yaw, float pitch) {
 | 
			
		||||
        double pitch_sin = Math.sin(pitch);
 | 
			
		||||
        return new float[]{(float) (pitch_sin * Math.cos(yaw)),
 | 
			
		||||
                (float) (pitch_sin * Math.sin(yaw)), (float) Math.cos(pitch)};
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static int floorMod(int x, int y) {
 | 
			
		||||
        int i = x % y;
 | 
			
		||||
        if (i < 0) {
 | 
			
		||||
@@ -282,18 +231,12 @@ public class MathMan {
 | 
			
		||||
     * @param y y
 | 
			
		||||
     * @param z z
 | 
			
		||||
     * @return pitch and yaw of x,y,z from 0,0,0
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static float[] getPitchAndYaw(float x, float y, float z) {
 | 
			
		||||
        float distance = sqrtApprox((z * z) + (x * x));
 | 
			
		||||
        return new float[]{atan2(y, distance), atan2(x, z)};
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static final float atan2(float y, float x) {
 | 
			
		||||
        float add;
 | 
			
		||||
        float mul;
 | 
			
		||||
@@ -329,28 +272,15 @@ public class MathMan {
 | 
			
		||||
        return (atan2[(yi * ATAN2_DIM) + xi] + add) * mul;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static float sqrtApprox(float f) {
 | 
			
		||||
        return f * Float.intBitsToFloat(0x5f375a86 - (Float.floatToIntBits(f) >> 1));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static double sqrtApprox(double d) {
 | 
			
		||||
        return Double
 | 
			
		||||
                .longBitsToDouble(((Double.doubleToLongBits(d) - (1L << 52)) >> 1) + (1L << 61));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static float invSqrt(float x) {
 | 
			
		||||
        float xhalf = 0.5f * x;
 | 
			
		||||
        int i = Float.floatToIntBits(x);
 | 
			
		||||
@@ -391,10 +321,6 @@ public class MathMan {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static double getSD(double[] array, double av) {
 | 
			
		||||
        double sd = 0;
 | 
			
		||||
        for (double element : array) {
 | 
			
		||||
@@ -411,10 +337,6 @@ public class MathMan {
 | 
			
		||||
        return Math.sqrt(sd / array.length);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static int mod(int x, int y) {
 | 
			
		||||
        if (isPowerOfTwo(y)) {
 | 
			
		||||
            return x & (y - 1);
 | 
			
		||||
@@ -422,10 +344,6 @@ public class MathMan {
 | 
			
		||||
        return x % y;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static int unsignedmod(int x, int y) {
 | 
			
		||||
        if (isPowerOfTwo(y)) {
 | 
			
		||||
            return x & (y - 1);
 | 
			
		||||
@@ -433,10 +351,6 @@ public class MathMan {
 | 
			
		||||
        return x % y;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean isPowerOfTwo(int number) {
 | 
			
		||||
        return (number & (number - 1)) == 0;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -95,10 +95,6 @@ public class RegionUtil {
 | 
			
		||||
                .getY() && y <= max.getY();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static @NonNull Rectangle2D toRectangle(final @NonNull CuboidRegion region) {
 | 
			
		||||
        final BlockVector2 min = region.getMinimumPoint().toBlockVector2();
 | 
			
		||||
        final BlockVector2 max = region.getMaximumPoint().toBlockVector2();
 | 
			
		||||
 
 | 
			
		||||
@@ -491,10 +491,6 @@ public abstract class SchematicHandler {
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The legacy web interface is deprecated for removal in favor of Arkitektonika.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.0")
 | 
			
		||||
    public List<String> getSaves(UUID uuid) {
 | 
			
		||||
        String rawJSON;
 | 
			
		||||
        try {
 | 
			
		||||
 
 | 
			
		||||
@@ -39,10 +39,6 @@ public class StringMan {
 | 
			
		||||
    // Stolen from https://stackoverflow.com/a/366532/12620913 | Debug: https://regex101.com/r/DudJLb/1
 | 
			
		||||
    private static final Pattern STRING_SPLIT_PATTERN = Pattern.compile("[^\\s\"]+|\"([^\"]*)\"");
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static String replaceFromMap(String string, Map<String, String> replacements) {
 | 
			
		||||
        StringBuilder sb = new StringBuilder(string);
 | 
			
		||||
        int size = string.length();
 | 
			
		||||
@@ -74,10 +70,6 @@ public class StringMan {
 | 
			
		||||
        return count;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static String getString(Object obj) {
 | 
			
		||||
        if (obj == null) {
 | 
			
		||||
            return "null";
 | 
			
		||||
@@ -110,10 +102,6 @@ public class StringMan {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static String replaceFirst(char c, String s) {
 | 
			
		||||
        if (s == null) {
 | 
			
		||||
            return "";
 | 
			
		||||
@@ -140,10 +128,6 @@ public class StringMan {
 | 
			
		||||
        return s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static String replaceAll(String string, Object... pairs) {
 | 
			
		||||
        StringBuilder sb = new StringBuilder(string);
 | 
			
		||||
        for (int i = 0; i < pairs.length; i += 2) {
 | 
			
		||||
@@ -160,10 +144,6 @@ public class StringMan {
 | 
			
		||||
        return sb.toString();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean isAlphanumeric(String str) {
 | 
			
		||||
        for (int i = 0; i < str.length(); i++) {
 | 
			
		||||
            char c = str.charAt(i);
 | 
			
		||||
@@ -185,10 +165,6 @@ public class StringMan {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean isAlpha(String str) {
 | 
			
		||||
        for (int i = 0; i < str.length(); i++) {
 | 
			
		||||
            char c = str.charAt(i);
 | 
			
		||||
@@ -209,26 +185,14 @@ public class StringMan {
 | 
			
		||||
        return join(array, delimiter);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static String join(Collection<?> collection, char delimiter) {
 | 
			
		||||
        return join(collection.toArray(), delimiter + "");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean isAsciiPrintable(char c) {
 | 
			
		||||
        return (c >= ' ') && (c < '');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean isAsciiPrintable(String s) {
 | 
			
		||||
        for (char c : s.toCharArray()) {
 | 
			
		||||
            if (!isAsciiPrintable(c)) {
 | 
			
		||||
@@ -285,10 +249,6 @@ public class StringMan {
 | 
			
		||||
        return result.toString();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static String join(int[] array, String delimiter) {
 | 
			
		||||
        Integer[] wrapped = new Integer[array.length];
 | 
			
		||||
        for (int i = 0; i < array.length; i++) {
 | 
			
		||||
@@ -297,10 +257,6 @@ public class StringMan {
 | 
			
		||||
        return join(wrapped, delimiter);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean isEqualToAny(String a, String... args) {
 | 
			
		||||
        for (String arg : args) {
 | 
			
		||||
            if (StringMan.isEqual(a, arg)) {
 | 
			
		||||
@@ -328,10 +284,6 @@ public class StringMan {
 | 
			
		||||
        return a.equals(b);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean isEqualIgnoreCase(String a, String b) {
 | 
			
		||||
        return a.equals(b) || ((a != null) && (b != null) && (a.length() == b.length()) && a
 | 
			
		||||
                .equalsIgnoreCase(b));
 | 
			
		||||
@@ -343,10 +295,6 @@ public class StringMan {
 | 
			
		||||
        return sb.toString();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean contains(String name, char c) {
 | 
			
		||||
        for (char current : name.toCharArray()) {
 | 
			
		||||
            if (c == current) {
 | 
			
		||||
@@ -356,10 +304,6 @@ public class StringMan {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public <T> Collection<T> match(Collection<T> col, String startsWith) {
 | 
			
		||||
        if (col == null) {
 | 
			
		||||
            return null;
 | 
			
		||||
 
 | 
			
		||||
@@ -58,10 +58,6 @@ public class WEManager {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean maskContains(Set<CuboidRegion> mask, double dx, double dy, double dz) {
 | 
			
		||||
        int x = Math.toIntExact(Math.round(dx >= 0 ? dx - 0.5 : dx + 0.5));
 | 
			
		||||
        int y = Math.toIntExact(Math.round(dy - 0.5));
 | 
			
		||||
@@ -74,10 +70,6 @@ public class WEManager {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean maskContains(Set<CuboidRegion> mask, double dx, double dz) {
 | 
			
		||||
        int x = Math.toIntExact(Math.round(dx >= 0 ? dx - 0.5 : dx + 0.5));
 | 
			
		||||
        int z = Math.toIntExact(Math.round(dz >= 0 ? dz - 0.5 : dz + 0.5));
 | 
			
		||||
@@ -114,7 +106,7 @@ public class WEManager {
 | 
			
		||||
                            .getTrusted().contains(uuid))) && !plot.getFlag(NoWorldeditFlag.class)) {
 | 
			
		||||
                for (CuboidRegion region : plot.getRegions()) {
 | 
			
		||||
                    BlockVector3 pos1 = region.getMinimumPoint().withY(area.getMinBuildHeight());
 | 
			
		||||
                    BlockVector3 pos2 = region.getMaximumPoint().withY(area.getMaxBuildHeight() - 1);
 | 
			
		||||
                    BlockVector3 pos2 = region.getMaximumPoint().withY(area.getMaxBuildHeight());
 | 
			
		||||
                    CuboidRegion copy = new CuboidRegion(pos1, pos2);
 | 
			
		||||
                    regions.add(copy);
 | 
			
		||||
                }
 | 
			
		||||
@@ -124,18 +116,10 @@ public class WEManager {
 | 
			
		||||
        return regions;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean intersects(CuboidRegion region1, CuboidRegion region2) {
 | 
			
		||||
        return RegionUtil.intersects(region1, region2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated Unused internally. Scheduled for removal in next major release.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.1")
 | 
			
		||||
    public static boolean regionContains(CuboidRegion selection, HashSet<CuboidRegion> mask) {
 | 
			
		||||
        for (CuboidRegion region : mask) {
 | 
			
		||||
            if (intersects(region, selection)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -252,10 +252,6 @@ public abstract class WorldUtil {
 | 
			
		||||
     */
 | 
			
		||||
    public abstract void refreshChunk(int x, int z, String world);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The legacy web interface is deprecated for removal in favor of Arkitektonika.
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "6.11.0")
 | 
			
		||||
    public void upload(
 | 
			
		||||
            final @NonNull Plot plot,
 | 
			
		||||
            final @Nullable UUID uuid,
 | 
			
		||||
 
 | 
			
		||||
@@ -18,17 +18,7 @@ plugins {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
group = "com.plotsquared"
 | 
			
		||||
version = "6.11.2-SNAPSHOT"
 | 
			
		||||
 | 
			
		||||
if (!File("$rootDir/.git").exists()) {
 | 
			
		||||
    logger.lifecycle("""
 | 
			
		||||
    **************************************************************************************
 | 
			
		||||
    You need to fork and clone this repository! Don't download a .zip file.
 | 
			
		||||
    If you need assistance, consult the GitHub docs: https://docs.github.com/get-started/quickstart/fork-a-repo
 | 
			
		||||
    **************************************************************************************
 | 
			
		||||
    """.trimIndent()
 | 
			
		||||
    ).also { kotlin.system.exitProcess(1) }
 | 
			
		||||
}
 | 
			
		||||
version = "6.10.9-SNAPSHOT"
 | 
			
		||||
 | 
			
		||||
subprojects {
 | 
			
		||||
    group = rootProject.group
 | 
			
		||||
@@ -74,7 +64,7 @@ subprojects {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    dependencies {
 | 
			
		||||
        implementation(platform("com.intellectualsites.bom:bom-1.18.x:1.24"))
 | 
			
		||||
        implementation(platform("com.intellectualsites.bom:bom-1.18.x:1.22"))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    dependencies {
 | 
			
		||||
@@ -155,7 +145,7 @@ subprojects {
 | 
			
		||||
                            id.set("NotMyFault")
 | 
			
		||||
                            name.set("Alexander Brandes")
 | 
			
		||||
                            organization.set("IntellectualSites")
 | 
			
		||||
                            email.set("contact(at)notmyfault.dev")
 | 
			
		||||
                            email.set("contact@notmyfault.dev")
 | 
			
		||||
                        }
 | 
			
		||||
                        developer {
 | 
			
		||||
                            id.set("SirYwell")
 | 
			
		||||
 
 | 
			
		||||
@@ -11,18 +11,18 @@ essentialsx = "2.19.7"
 | 
			
		||||
mvdwapi = "3.1.1"
 | 
			
		||||
 | 
			
		||||
# Third party
 | 
			
		||||
prtree = "2.0.1"
 | 
			
		||||
prtree = "2.0.0"
 | 
			
		||||
aopalliance = "1.0"
 | 
			
		||||
cloud-services = "1.8.2"
 | 
			
		||||
arkitektonika = "2.1.2"
 | 
			
		||||
cloud-services = "1.8.0"
 | 
			
		||||
arkitektonika = "2.1.1"
 | 
			
		||||
squirrelid = "0.3.1"
 | 
			
		||||
http4j = "1.3"
 | 
			
		||||
 | 
			
		||||
# Gradle plugins
 | 
			
		||||
shadow = "7.1.2"
 | 
			
		||||
grgit = "4.1.1"
 | 
			
		||||
spotless = "6.16.0"
 | 
			
		||||
nexus = "1.2.0"
 | 
			
		||||
spotless = "6.13.0"
 | 
			
		||||
nexus = "1.1.0"
 | 
			
		||||
 | 
			
		||||
[libraries]
 | 
			
		||||
# Platform expectations
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
distributionBase=GRADLE_USER_HOME
 | 
			
		||||
distributionPath=wrapper/dists
 | 
			
		||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip
 | 
			
		||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
 | 
			
		||||
networkTimeout=10000
 | 
			
		||||
zipStoreBase=GRADLE_USER_HOME
 | 
			
		||||
zipStorePath=wrapper/dists
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,6 @@
 | 
			
		||||
    "config:base",
 | 
			
		||||
    ":semanticCommitsDisabled"
 | 
			
		||||
  ],
 | 
			
		||||
  "labels": ["dependencies"],
 | 
			
		||||
  "rebaseWhen": "conflicted",
 | 
			
		||||
  "schedule": ["on the first day of the week"]
 | 
			
		||||
  "labels": ["Renovate"],
 | 
			
		||||
  "rebaseWhen": "conflicted"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user