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