mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-21 12:46:46 +01:00
Perform code formatting according to editorconfig (#3981)
* Perform code reformatting * Fix javadoc errors
This commit is contained in:
parent
9cd0ee9b49
commit
e6db8e2750
@ -1,7 +1,7 @@
|
||||
name: Announce release on discord
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
types: [ published ]
|
||||
jobs:
|
||||
send_announcement:
|
||||
runs-on: ubuntu-latest
|
||||
|
4
.github/workflows/build-pr.yml
vendored
4
.github/workflows/build-pr.yml
vendored
@ -1,12 +1,12 @@
|
||||
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
|
||||
|
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@ -42,7 +42,7 @@ jobs:
|
||||
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
|
||||
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
|
||||
- name: Publish core javadoc
|
||||
# if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/v7'}}
|
||||
# if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/v7'}}
|
||||
if: ${{ runner.os == 'Linux' && env.STATUS == 'snapshot' && github.event_name == 'push' && github.ref == 'refs/heads/v7'}}
|
||||
uses: cpina/github-action-push-to-another-repository@0a14457bb28b04dfa1652e0ffdfda866d2845c73
|
||||
env:
|
||||
@ -55,7 +55,7 @@ jobs:
|
||||
target-branch: main
|
||||
target-directory: v7/core
|
||||
- name: Publish bukkit javadoc
|
||||
# if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/v7'}}
|
||||
# if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/v7'}}
|
||||
if: ${{ runner.os == 'Linux' && env.STATUS == 'snapshot' && github.event_name == 'push' && github.ref == 'refs/heads/v7'}}
|
||||
uses: cpina/github-action-push-to-another-repository@0a14457bb28b04dfa1652e0ffdfda866d2845c73 # main
|
||||
env:
|
||||
|
2
.github/workflows/codeql.yml
vendored
2
.github/workflows/codeql.yml
vendored
@ -17,7 +17,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: ['java']
|
||||
language: [ 'java' ]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
4
.github/workflows/release-drafter.yml
vendored
4
.github/workflows/release-drafter.yml
vendored
@ -4,9 +4,9 @@ on:
|
||||
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 }}
|
||||
|
@ -49,8 +49,8 @@ import com.plotsquared.bukkit.player.BukkitPlayerManager;
|
||||
import com.plotsquared.bukkit.util.BukkitUtil;
|
||||
import com.plotsquared.bukkit.util.BukkitWorld;
|
||||
import com.plotsquared.bukkit.util.SetGenCB;
|
||||
import com.plotsquared.bukkit.util.UpdateUtility;
|
||||
import com.plotsquared.bukkit.util.TranslationUpdateManager;
|
||||
import com.plotsquared.bukkit.util.UpdateUtility;
|
||||
import com.plotsquared.bukkit.util.task.BukkitTaskManager;
|
||||
import com.plotsquared.bukkit.util.task.PaperTimeConverter;
|
||||
import com.plotsquared.bukkit.util.task.SpigotTimeConverter;
|
||||
@ -366,7 +366,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(ServerListener.class), this);
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(EntitySpawnListener.class), this);
|
||||
if (PaperLib.isPaper() && Settings.Paper_Components.PAPER_LISTENERS) {
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(PaperListener.class), this);
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(PaperListener.class), this);
|
||||
} else {
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(SpigotListener.class), this);
|
||||
}
|
||||
@ -1185,9 +1185,17 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
public @NonNull String worldEditImplementations() {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
if (Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit") != null) {
|
||||
msg.append("FastAsyncWorldEdit: ").append(Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit").getDescription().getVersion());
|
||||
msg.append("FastAsyncWorldEdit: ").append(Bukkit
|
||||
.getPluginManager()
|
||||
.getPlugin("FastAsyncWorldEdit")
|
||||
.getDescription()
|
||||
.getVersion());
|
||||
} else if (Bukkit.getPluginManager().getPlugin("AsyncWorldEdit") != null) {
|
||||
msg.append("AsyncWorldEdit: ").append(Bukkit.getPluginManager().getPlugin("AsyncWorldEdit").getDescription().getVersion()).append("\n");
|
||||
msg.append("AsyncWorldEdit: ").append(Bukkit
|
||||
.getPluginManager()
|
||||
.getPlugin("AsyncWorldEdit")
|
||||
.getDescription()
|
||||
.getVersion()).append("\n");
|
||||
msg.append("WorldEdit: ").append(Bukkit.getPluginManager().getPlugin("WorldEdit").getDescription().getVersion());
|
||||
} else {
|
||||
msg.append("WorldEdit: ").append(Bukkit.getPluginManager().getPlugin("WorldEdit").getDescription().getVersion());
|
||||
|
@ -54,7 +54,7 @@ import java.util.Set;
|
||||
|
||||
public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrapper<ChunkGenerator> {
|
||||
|
||||
private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + BukkitPlotGenerator.class.getSimpleName());
|
||||
private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + BukkitPlotGenerator.class.getSimpleName());
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public final boolean PAPER_ASYNC_SAFE = true;
|
||||
@ -382,7 +382,8 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap
|
||||
}
|
||||
PlotArea area = UncheckedWorldLocation.at(name, chunkX << 4, 0, chunkZ << 4).getPlotArea();
|
||||
if (area == null) {
|
||||
throw new IllegalStateException(String.format("Cannot generate chunk that does not belong to a plot area. World: %s",
|
||||
throw new IllegalStateException(String.format(
|
||||
"Cannot generate chunk that does not belong to a plot area. World: %s",
|
||||
name
|
||||
));
|
||||
}
|
||||
|
@ -759,7 +759,9 @@ public class BlockEventListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (block.getBlockData() instanceof Farmland farmland && event.getNewState().getBlockData() instanceof Farmland newFarmland) {
|
||||
if (block.getBlockData() instanceof Farmland farmland && event
|
||||
.getNewState()
|
||||
.getBlockData() instanceof Farmland newFarmland) {
|
||||
int currentMoisture = farmland.getMoisture();
|
||||
int newMoisture = newFarmland.getMoisture();
|
||||
|
||||
|
@ -92,7 +92,11 @@ public class BlockEventListener117 implements Listener {
|
||||
}
|
||||
|
||||
Plot plot = location.getOwnedPlot();
|
||||
if (plot == null && !PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, MiscInteractFlag.class, true) || plot != null && !plot.getFlag(
|
||||
if (plot == null && !PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(
|
||||
area,
|
||||
MiscInteractFlag.class,
|
||||
true
|
||||
) || plot != null && !plot.getFlag(
|
||||
MiscInteractFlag.class)) {
|
||||
if (plotPlayer != null) {
|
||||
if (plot != null) {
|
||||
|
@ -234,7 +234,8 @@ public class ChunkListener implements Listener {
|
||||
Chunk chunk = event.getChunk();
|
||||
if (Settings.Chunk_Processor.AUTO_TRIM) {
|
||||
String world = chunk.getWorld().getName();
|
||||
if ((!Settings.Enabled_Components.WORLDS || !SinglePlotArea.isSinglePlotWorld(world)) && this.plotAreaManager.hasPlotArea(world)) {
|
||||
if ((!Settings.Enabled_Components.WORLDS || !SinglePlotArea.isSinglePlotWorld(world)) && this.plotAreaManager.hasPlotArea(
|
||||
world)) {
|
||||
if (unloadChunk(world, chunk, true)) {
|
||||
return;
|
||||
}
|
||||
|
@ -43,10 +43,10 @@ import com.plotsquared.core.plot.flag.implementations.DoneFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag;
|
||||
import com.plotsquared.core.plot.flag.types.BooleanFlag;
|
||||
import com.plotsquared.core.plot.world.PlotAreaManager;
|
||||
import com.plotsquared.core.util.PlotFlagUtil;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.tag.Tag;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import com.plotsquared.core.util.PlotFlagUtil;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.TileState;
|
||||
@ -439,9 +439,11 @@ public class PaperListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean getBooleanFlagValue(@NonNull FlagContainer container,
|
||||
@NonNull Class<? extends BooleanFlag<?>> flagClass,
|
||||
boolean defaultValue) {
|
||||
private boolean getBooleanFlagValue(
|
||||
@NonNull FlagContainer container,
|
||||
@NonNull Class<? extends BooleanFlag<?>> flagClass,
|
||||
boolean defaultValue
|
||||
) {
|
||||
BooleanFlag<?> flag = container.getFlag(flagClass);
|
||||
return flag == null ? defaultValue : flag.getValue();
|
||||
}
|
||||
|
@ -572,7 +572,8 @@ public class PlayerEventListener implements Listener {
|
||||
if (now == null) {
|
||||
try (final MetaDataAccess<Boolean> kickAccess =
|
||||
pp.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
|
||||
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) {
|
||||
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(
|
||||
false)) {
|
||||
pp.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission_event"),
|
||||
TagResolver.resolver(
|
||||
@ -665,7 +666,8 @@ public class PlayerEventListener implements Listener {
|
||||
if (plot == null) {
|
||||
try (final MetaDataAccess<Boolean> kickAccess =
|
||||
pp.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
|
||||
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(false)) {
|
||||
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(
|
||||
false)) {
|
||||
pp.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission_event"),
|
||||
TagResolver.resolver(
|
||||
|
@ -30,9 +30,9 @@ import com.plotsquared.core.plot.PlotArea;
|
||||
import com.plotsquared.core.plot.PlotHandler;
|
||||
import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag;
|
||||
import com.plotsquared.core.plot.world.PlotAreaManager;
|
||||
import com.plotsquared.core.util.PlotFlagUtil;
|
||||
import net.kyori.adventure.text.minimessage.tag.Tag;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import com.plotsquared.core.util.PlotFlagUtil;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -43,7 +43,7 @@ public class BukkitOfflinePlayer implements OfflinePlotPlayer {
|
||||
*/
|
||||
public BukkitOfflinePlayer(
|
||||
final @NonNull OfflinePlayer player, final @NonNull
|
||||
PermissionHandler permissionHandler
|
||||
PermissionHandler permissionHandler
|
||||
) {
|
||||
this.player = player;
|
||||
this.permissionProfile = permissionHandler.getPermissionProfile(this)
|
||||
|
@ -270,7 +270,7 @@ public class BukkitQueueCoordinator extends BasicQueueCoordinator {
|
||||
if (getChunkObject() instanceof Chunk chunkObject) {
|
||||
existing = chunkObject.getBlock(x & 15, y, z & 15);
|
||||
} else {
|
||||
existing = getBukkitWorld().getBlockAt(x, y, z);
|
||||
existing = getBukkitWorld().getBlockAt(x, y, z);
|
||||
}
|
||||
final BlockState existingBaseBlock = BukkitAdapter.adapt(existing.getBlockData());
|
||||
if (BukkitBlockUtil.get(existing).equals(existingBaseBlock) && existing.getBlockData().matches(blockData)) {
|
||||
|
@ -62,7 +62,6 @@ public class GenChunk extends ZeroedDelegateScopedQueueCoordinator {
|
||||
/**
|
||||
* @param minY minimum world Y, inclusive
|
||||
* @param maxY maximum world Y, inclusive
|
||||
*
|
||||
* @since 6.6.0
|
||||
*/
|
||||
public GenChunk(int minY, int maxY) {
|
||||
|
@ -70,7 +70,7 @@ public class BukkitRegionManager extends RegionManager {
|
||||
@Inject
|
||||
public BukkitRegionManager(
|
||||
@NonNull WorldUtil worldUtil, @NonNull GlobalBlockQueue blockQueue, @NonNull
|
||||
ProgressSubscriberFactory subscriberFactory
|
||||
ProgressSubscriberFactory subscriberFactory
|
||||
) {
|
||||
super(worldUtil, blockQueue, subscriberFactory);
|
||||
this.blockQueue = blockQueue;
|
||||
|
@ -60,4 +60,5 @@ public class TranslationUpdateManager {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -54,7 +54,8 @@ public class UpdateUtility implements Listener {
|
||||
internalVersion = PlotSquared.get().getVersion();
|
||||
}
|
||||
|
||||
@SuppressWarnings({"deprecation", "DefaultCharset"}) // Suppress Json deprecation, we can't use features from gson 2.8.1 and newer yet
|
||||
@SuppressWarnings({"deprecation", "DefaultCharset"})
|
||||
// Suppress Json deprecation, we can't use features from gson 2.8.1 and newer yet
|
||||
public void updateChecker() {
|
||||
task = Bukkit.getScheduler().runTaskTimerAsynchronously(this.javaPlugin, () -> {
|
||||
try {
|
||||
|
@ -4,16 +4,16 @@ api-version: "1.13"
|
||||
version: "${version}"
|
||||
load: STARTUP
|
||||
description: "Easy, yet powerful Plot World generation and management."
|
||||
authors: [Citymonstret, Empire92, MattBDev, dordsor21, NotMyFault, SirYwell]
|
||||
authors: [ Citymonstret, Empire92, MattBDev, dordsor21, NotMyFault, SirYwell ]
|
||||
website: https://www.spigotmc.org/resources/77506/
|
||||
softdepend: [Vault, PlaceholderAPI, Essentials, LuckPerms, BungeePerms, MVdWPlaceholderAPI]
|
||||
loadbefore: [MultiWorld, Multiverse-Core]
|
||||
depend: [WorldEdit]
|
||||
softdepend: [ Vault, PlaceholderAPI, Essentials, LuckPerms, BungeePerms, MVdWPlaceholderAPI ]
|
||||
loadbefore: [ MultiWorld, Multiverse-Core ]
|
||||
depend: [ WorldEdit ]
|
||||
database: false
|
||||
commands:
|
||||
plots:
|
||||
description: Plot command.
|
||||
aliases: [p,plot,ps,plotsquared,p2,2,plotme]
|
||||
aliases: [ p,plot,ps,plotsquared,p2,2,plotme ]
|
||||
permission: plots.use
|
||||
permission-message: "You are lacking the permission node 'plots.use'"
|
||||
permissions:
|
||||
|
@ -23,13 +23,13 @@ include:
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
|
@ -270,7 +270,11 @@ public class PlotSquared {
|
||||
captionMap = this.captionLoader.loadAll(this.platform.getDirectory().toPath().resolve("lang"));
|
||||
} else {
|
||||
String fileName = "messages_" + Settings.Enabled_Components.DEFAULT_LOCALE + ".json";
|
||||
captionMap = this.captionLoader.loadOrCreateSingle(this.platform.getDirectory().toPath().resolve("lang").resolve(fileName));
|
||||
captionMap = this.captionLoader.loadOrCreateSingle(this.platform
|
||||
.getDirectory()
|
||||
.toPath()
|
||||
.resolve("lang")
|
||||
.resolve(fileName));
|
||||
}
|
||||
this.captionMaps.put(TranslatableCaption.DEFAULT_NAMESPACE, captionMap);
|
||||
LOGGER.info(
|
||||
@ -1011,7 +1015,7 @@ public class PlotSquared {
|
||||
|
||||
/**
|
||||
* Setup the configuration for a plot world based on world arguments.
|
||||
*
|
||||
* <p>
|
||||
*
|
||||
* <i>e.g. /mv create <world> normal -g PlotSquared:<args></i>
|
||||
*
|
||||
|
@ -141,24 +141,24 @@ public class SimpleBackupManager implements BackupManager {
|
||||
) {
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
final PlotCacheKey that = (PlotCacheKey) o;
|
||||
return Objects.equals(plot.getArea(), that.plot.getArea())
|
||||
&& Objects.equals(plot.getId(), that.plot.getId())
|
||||
&& Objects.equals(plot.getOwnerAbs(), that.plot.getOwnerAbs());
|
||||
public boolean equals(final Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(plot.getArea(), plot.getId(), plot.getOwnerAbs());
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final PlotCacheKey that = (PlotCacheKey) o;
|
||||
return Objects.equals(plot.getArea(), that.plot.getArea())
|
||||
&& Objects.equals(plot.getId(), that.plot.getId())
|
||||
&& Objects.equals(plot.getOwnerAbs(), that.plot.getOwnerAbs());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(plot.getArea(), plot.getId(), plot.getOwnerAbs());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -70,7 +70,8 @@ public class Add extends Command {
|
||||
plot.isOwner(player.getUUID()) || player.hasPermission(Permission.PERMISSION_ADMIN_COMMAND_TRUST),
|
||||
TranslatableCaption.of("permission.no_plot_perms")
|
||||
);
|
||||
checkTrue(args.length == 1,
|
||||
checkTrue(
|
||||
args.length == 1,
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
TagResolver.resolver("value", Tag.inserting(Component.text("/plot add <player | *>")))
|
||||
);
|
||||
|
@ -69,7 +69,8 @@ public class Copy extends SubCommand {
|
||||
|
||||
plot1.getPlotModificationManager().copy(plot2, player).thenAccept(result -> {
|
||||
if (result) {
|
||||
player.sendMessage(TranslatableCaption.of("move.copy_success"),
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("move.copy_success"),
|
||||
TagResolver.builder()
|
||||
.tag("origin", Tag.inserting(Component.text(plot1.toString())))
|
||||
.tag("target", Tag.inserting(Component.text(plot2.toString())))
|
||||
|
@ -71,9 +71,9 @@ public class DebugPaste extends SubCommand {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append(
|
||||
"""
|
||||
# Welcome to this paste
|
||||
# It is meant to provide us at IntellectualSites with better information about your problem
|
||||
"""
|
||||
# Welcome to this paste
|
||||
# It is meant to provide us at IntellectualSites with better information about your problem
|
||||
"""
|
||||
);
|
||||
b.append("# PlotSquared Information\n");
|
||||
b.append("PlotSquared Version: ").append(PlotSquared.get().getVersion())
|
||||
|
@ -185,22 +185,25 @@ public class Download extends SubCommand {
|
||||
if (Settings.Web.LEGACY_WEBINTERFACE) {
|
||||
schematicHandler
|
||||
.getCompoundTag(plot)
|
||||
.whenComplete((compoundTag, throwable) -> {
|
||||
schematicHandler.upload(compoundTag, null, null, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(URL value) {
|
||||
plot.removeRunning();
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("web.generation_link_success"),
|
||||
TagResolver.builder()
|
||||
.tag("download", Tag.preProcessParsed(value.toString()))
|
||||
.tag("delete", Tag.preProcessParsed("Not available"))
|
||||
.build()
|
||||
);
|
||||
player.sendMessage(StaticCaption.of(value.toString()));
|
||||
.whenComplete((compoundTag, throwable) -> schematicHandler.upload(
|
||||
compoundTag,
|
||||
null,
|
||||
null,
|
||||
new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(URL value) {
|
||||
plot.removeRunning();
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("web.generation_link_success"),
|
||||
TagResolver.builder()
|
||||
.tag("download", Tag.preProcessParsed(value.toString()))
|
||||
.tag("delete", Tag.preProcessParsed("Not available"))
|
||||
.build()
|
||||
);
|
||||
player.sendMessage(StaticCaption.of(value.toString()));
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
));
|
||||
return;
|
||||
}
|
||||
// TODO legacy support
|
||||
|
@ -134,7 +134,12 @@ public class Help extends Command {
|
||||
TagResolver.builder()
|
||||
.tag("command", Tag.inserting(Component.text("/plot help")))
|
||||
.tag("category", Tag.inserting(Component.text("all")))
|
||||
.tag("category_desc", Tag.inserting(TranslatableCaption.of("help.help_display_all_commands").toComponent(player)))
|
||||
.tag(
|
||||
"category_desc",
|
||||
Tag.inserting(TranslatableCaption
|
||||
.of("help.help_display_all_commands")
|
||||
.toComponent(player))
|
||||
)
|
||||
.build()
|
||||
));
|
||||
builder.append(Component.newline()).append(MINI_MESSAGE.deserialize(TranslatableCaption
|
||||
|
@ -52,8 +52,9 @@ public class Info extends SubCommand {
|
||||
arg = args[0];
|
||||
switch (arg) {
|
||||
// TODO: (re?)implement /plot info inv. (it was never properly implemented)
|
||||
case "trusted", "alias", "biome", "denied", "flags", "id", "size", "members", "creationdate", "seen", "owner", "rating", "likes" -> plot = Plot
|
||||
.getPlotFromString(player, null, false);
|
||||
case "trusted", "alias", "biome", "denied", "flags", "id", "size", "members", "creationdate", "seen", "owner", "rating", "likes" ->
|
||||
plot = Plot
|
||||
.getPlotFromString(player, null, false);
|
||||
default -> {
|
||||
plot = Plot.getPlotFromString(player, arg, false);
|
||||
if (args.length == 2) {
|
||||
|
@ -476,11 +476,11 @@ public class ListCmd extends SubCommand {
|
||||
for (final UUIDMapping uuidMapping : names) {
|
||||
PlotPlayer<?> pp = PlotSquared.platform().playerManager().getPlayerIfExists(uuidMapping.uuid());
|
||||
TagResolver resolver = TagResolver.builder()
|
||||
.tag("prefix", Tag.inserting(Component.text(prefix)))
|
||||
.tag("player", Tag.inserting(Component.text(uuidMapping.username())))
|
||||
.build();
|
||||
if (pp != null) {
|
||||
builder.append(MINI_MESSAGE.deserialize(online, resolver));
|
||||
.tag("prefix", Tag.inserting(Component.text(prefix)))
|
||||
.tag("player", Tag.inserting(Component.text(uuidMapping.username())))
|
||||
.build();
|
||||
if (pp != null) {
|
||||
builder.append(MINI_MESSAGE.deserialize(online, resolver));
|
||||
} else if (uuidMapping.username().equalsIgnoreCase("unknown")) {
|
||||
TagResolver unknownResolver = TagResolver.resolver(
|
||||
"info.unknown",
|
||||
|
@ -221,7 +221,8 @@ public class Purge extends SubCommand {
|
||||
ids.add(plot.temp);
|
||||
if (finalClear) {
|
||||
plot.getPlotModificationManager().clear(false, true, player,
|
||||
() -> LOGGER.info("Plot {} cleared by purge", plot.getId()));
|
||||
() -> LOGGER.info("Plot {} cleared by purge", plot.getId())
|
||||
);
|
||||
} else {
|
||||
plot.getPlotModificationManager().removeSign();
|
||||
}
|
||||
|
@ -49,7 +49,8 @@ public record ComponentPreset(
|
||||
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 in components.yml needs a valid target component, got: " + map.get(
|
||||
"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();
|
||||
|
@ -225,7 +225,7 @@ public final class CaptionLoader {
|
||||
*/
|
||||
public @NonNull CaptionMap loadOrCreateSingle(final @NonNull Path file) throws IOException {
|
||||
final Locale locale = this.localeExtractor.apply(file);
|
||||
if (!Files.exists(file) ) {
|
||||
if (!Files.exists(file)) {
|
||||
Map<String, String> map = new LinkedHashMap<>();
|
||||
patch(map, locale);
|
||||
save(file, map);
|
||||
|
@ -56,7 +56,8 @@ final class ClassLoaderCaptionProvider implements DefaultCaptionProvider {
|
||||
LOGGER.info("No resource for locale '{}' found in the plugin file." +
|
||||
"Please ensure you have placed the latest version of the file messages_{}.json in the 'lang' folder." +
|
||||
"You may be able to find completed translations at https://intellectualsites.crowdin.com/plotsquared",
|
||||
locale, locale);
|
||||
locale, locale
|
||||
);
|
||||
return null;
|
||||
}
|
||||
try (final BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) {
|
||||
|
@ -53,7 +53,8 @@ public abstract class EntityEvent {
|
||||
* @return the event class name
|
||||
* @since 6.11.0
|
||||
*/
|
||||
@NonNull public String getEventName() {
|
||||
@NonNull
|
||||
public String getEventName() {
|
||||
if (this.name == null) {
|
||||
this.name = this.getClass().getSimpleName();
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ import javax.annotation.Nullable;
|
||||
|
||||
@SuppressWarnings("WeakerAccess")
|
||||
public abstract class ClassicPlotWorld extends SquarePlotWorld {
|
||||
|
||||
private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + ClassicPlotWorld.class.getSimpleName());
|
||||
|
||||
public int ROAD_HEIGHT = 62;
|
||||
@ -64,6 +65,21 @@ public abstract class ClassicPlotWorld extends SquarePlotWorld {
|
||||
super(worldName, id, generator, min, max, worldConfiguration, blockQueue);
|
||||
}
|
||||
|
||||
private static BlockBucket createCheckedBlockBucket(String input, BlockBucket def) {
|
||||
final BlockBucket bucket = new BlockBucket(input);
|
||||
Pattern pattern = null;
|
||||
try {
|
||||
pattern = bucket.toPattern();
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
if (pattern == null) {
|
||||
LOGGER.error("Failed to parse pattern '{}', check your worlds.yml", input);
|
||||
LOGGER.error("Falling back to {}", def);
|
||||
return def;
|
||||
}
|
||||
return bucket;
|
||||
}
|
||||
|
||||
/**
|
||||
* CONFIG NODE | DEFAULT VALUE | DESCRIPTION | CONFIGURATION TYPE | REQUIRED FOR INITIAL SETUP.
|
||||
*
|
||||
@ -144,19 +160,4 @@ public abstract class ClassicPlotWorld extends SquarePlotWorld {
|
||||
return Math.min(WALL_HEIGHT, plotRoadMin);
|
||||
}
|
||||
|
||||
private static BlockBucket createCheckedBlockBucket(String input, BlockBucket def) {
|
||||
final BlockBucket bucket = new BlockBucket(input);
|
||||
Pattern pattern = null;
|
||||
try {
|
||||
pattern = bucket.toPattern();
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
if (pattern == null) {
|
||||
LOGGER.error("Failed to parse pattern '{}', check your worlds.yml", input);
|
||||
LOGGER.error("Falling back to {}", def);
|
||||
return def;
|
||||
}
|
||||
return bucket;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -341,7 +341,10 @@ public class HybridGen extends IndependentPlotGenerator {
|
||||
for (Entity entity : hybridPlotWorld.getPlotSchematicEntities()) {
|
||||
if (region.contains(entity.getLocation().toVector().toBlockPoint())) {
|
||||
Vector3 pos = (entity.getLocation().toVector()
|
||||
.subtract(region.getMinimumPoint().withY(hybridPlotWorld.getPlotSchematicMinPoint().getY()).toVector3()))
|
||||
.subtract(region
|
||||
.getMinimumPoint()
|
||||
.withY(hybridPlotWorld.getPlotSchematicMinPoint().getY())
|
||||
.toVector3()))
|
||||
.add(min.getBlockVector3().withY(hybridPlotWorld.SCHEM_Y).toVector3());
|
||||
result.setEntity(new PopulatingEntity(
|
||||
entity,
|
||||
@ -399,6 +402,12 @@ public class HybridGen extends IndependentPlotGenerator {
|
||||
return biome == null ? hybridPlotWorld.getPlotBiome() : biome;
|
||||
}
|
||||
|
||||
private enum SchematicFeature {
|
||||
BIOMES,
|
||||
ROAD,
|
||||
POPULATING
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper to allow a WorldEdit {@link Entity} to effectively have a mutable location as the location in its NBT should be changed
|
||||
* when set to the world.
|
||||
@ -453,10 +462,4 @@ public class HybridGen extends IndependentPlotGenerator {
|
||||
|
||||
}
|
||||
|
||||
private enum SchematicFeature {
|
||||
BIOMES,
|
||||
ROAD,
|
||||
POPULATING
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -141,7 +141,11 @@ public class HybridPlotManager extends ClassicPlotManager {
|
||||
(pos1.getX() + pos2.getX()) / 2,
|
||||
(pos1.getZ() + pos2.getZ()) / 2
|
||||
), biome)) {
|
||||
WorldUtil.setBiome(hybridPlotWorld.getWorldName(), new CuboidRegion(pos1.getBlockVector3(), pos2.getBlockVector3()), biome);
|
||||
WorldUtil.setBiome(
|
||||
hybridPlotWorld.getWorldName(),
|
||||
new CuboidRegion(pos1.getBlockVector3(), pos2.getBlockVector3()),
|
||||
biome
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -203,8 +207,18 @@ public class HybridPlotManager extends ClassicPlotManager {
|
||||
PlotId id2 = PlotId.of(id.getX(), id.getY() + 1);
|
||||
Location bot = getPlotBottomLocAbs(id2);
|
||||
Location top = getPlotTopLocAbs(id);
|
||||
Location pos1 = Location.at(hybridPlotWorld.getWorldName(), bot.getX() - 1, hybridPlotWorld.getMinGenHeight(), top.getZ() + 1);
|
||||
Location pos2 = Location.at(hybridPlotWorld.getWorldName(), top.getX() + 1, hybridPlotWorld.getMaxGenHeight(), bot.getZ());
|
||||
Location pos1 = Location.at(
|
||||
hybridPlotWorld.getWorldName(),
|
||||
bot.getX() - 1,
|
||||
hybridPlotWorld.getMinGenHeight(),
|
||||
top.getZ() + 1
|
||||
);
|
||||
Location pos2 = Location.at(
|
||||
hybridPlotWorld.getWorldName(),
|
||||
top.getX() + 1,
|
||||
hybridPlotWorld.getMaxGenHeight(),
|
||||
bot.getZ()
|
||||
);
|
||||
this.resetBiome(hybridPlotWorld, pos1, pos2);
|
||||
if (!hybridPlotWorld.ROAD_SCHEMATIC_ENABLED) {
|
||||
return true;
|
||||
|
@ -57,7 +57,8 @@ public abstract class IndependentPlotGenerator {
|
||||
* @param setting PlotArea (settings)
|
||||
* @since TODO
|
||||
*/
|
||||
public void populateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea setting) {}
|
||||
public void populateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea setting) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a new PlotArea object.
|
||||
@ -103,9 +104,9 @@ public abstract class IndependentPlotGenerator {
|
||||
* Get the biome to be generated at a specific point
|
||||
*
|
||||
* @param settings PlotArea settings to provide biome
|
||||
* @param x World x position
|
||||
* @param y World y position
|
||||
* @param z World z position
|
||||
* @param x World x position
|
||||
* @param y World y position
|
||||
* @param z World z position
|
||||
* @return Biome type to be generated
|
||||
* @since TODO
|
||||
*/
|
||||
|
@ -142,7 +142,9 @@ public class PlotListener {
|
||||
Map.Entry<UUID, List<StatusEffect>> entry = iterator.next();
|
||||
List<StatusEffect> effects = entry.getValue();
|
||||
effects.removeIf(effect -> currentTime > effect.expiresAt);
|
||||
if (effects.isEmpty()) iterator.remove();
|
||||
if (effects.isEmpty()) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, TaskTime.seconds(1L));
|
||||
@ -486,8 +488,9 @@ public class PlotListener {
|
||||
|
||||
/**
|
||||
* Marks an effect as a status effect that will be removed on leaving a plot
|
||||
* @param uuid The uuid of the player the effect belongs to
|
||||
* @param name The name of the status effect
|
||||
*
|
||||
* @param uuid The uuid of the player the effect belongs to
|
||||
* @param name The name of the status effect
|
||||
* @param expiresAt The time when the effect expires
|
||||
* @since 6.10.0
|
||||
*/
|
||||
@ -518,10 +521,10 @@ public class PlotListener {
|
||||
private record StatusEffect(@NonNull String name, long expiresAt) {
|
||||
|
||||
private StatusEffect(@NonNull String name, long expiresAt) {
|
||||
this.name = name;
|
||||
this.expiresAt = expiresAt;
|
||||
}
|
||||
|
||||
this.name = name;
|
||||
this.expiresAt = expiresAt;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -51,7 +51,6 @@ public final class UncheckedWorldLocation extends Location {
|
||||
* @param y Y coordinate
|
||||
* @param z Z coordinate
|
||||
* @return New location
|
||||
*
|
||||
* @since 6.9.0
|
||||
*/
|
||||
@DoNotUse
|
||||
|
@ -222,13 +222,13 @@ public final class BlockBucket implements ConfigurationSerializable {
|
||||
) {
|
||||
|
||||
public int getWeight() {
|
||||
return max - min;
|
||||
}
|
||||
|
||||
public boolean isInRange(final int num) {
|
||||
return num <= max && num >= min;
|
||||
}
|
||||
|
||||
return max - min;
|
||||
}
|
||||
|
||||
public boolean isInRange(final int num) {
|
||||
return num <= max && num >= min;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -658,8 +658,10 @@ public abstract class PlotArea implements ComponentLike {
|
||||
TranslatableCaption.of("height.height_limit"),
|
||||
TagResolver.builder()
|
||||
.tag("minHeight", Tag.inserting(Component.text(minBuildHeight)))
|
||||
.tag("maxHeight",
|
||||
Tag.inserting(Component.text(maxBuildHeight))).build()
|
||||
.tag(
|
||||
"maxHeight",
|
||||
Tag.inserting(Component.text(maxBuildHeight))
|
||||
).build()
|
||||
);
|
||||
// Return true if "failed" as the method will always be inverted otherwise
|
||||
return true;
|
||||
@ -1017,7 +1019,7 @@ public abstract class PlotArea implements ComponentLike {
|
||||
*
|
||||
* @param plotIds List of plot IDs to merge
|
||||
* @param removeRoads If the roads between plots should be removed
|
||||
* @param whenDone Task to run when any merge world changes are complete. Also runs if no changes were made. Does not
|
||||
* @param whenDone Task to run when any merge world changes are complete. Also runs if no changes were made. Does not
|
||||
* run if there was an error or if too few plots IDs were supplied.
|
||||
* @return if merges were completed successfully.
|
||||
* @since 6.9.0
|
||||
|
@ -100,7 +100,7 @@ public class PlotInventory {
|
||||
* Put an item into this inventory
|
||||
*
|
||||
* @param index the index (= slot) where to place the item
|
||||
* @param item the item to place
|
||||
* @param item the item to place
|
||||
* @see #setItemChecked(int, PlotItemStack)
|
||||
*/
|
||||
public void setItem(int index, PlotItemStack item) {
|
||||
|
@ -154,6 +154,7 @@ public class ExpiryTask {
|
||||
|
||||
/**
|
||||
* Returns {@code true} if this task respects unknown owners
|
||||
*
|
||||
* @return {@code true} if unknown owners should be counted as never online
|
||||
* @since 6.4.0
|
||||
*/
|
||||
|
@ -27,7 +27,7 @@ public class BeaconEffectsFlag extends BooleanFlag<BeaconEffectsFlag> {
|
||||
public static final BeaconEffectsFlag BEACON_EFFECT_TRUE = new BeaconEffectsFlag(true);
|
||||
public static final BeaconEffectsFlag BEACON_EFFECT_FALSE = new BeaconEffectsFlag(false);
|
||||
|
||||
private BeaconEffectsFlag(boolean value){
|
||||
private BeaconEffectsFlag(boolean value) {
|
||||
super(value, TranslatableCaption.of("flags.flag_description_beacon_effect"));
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ public class ProjectilesFlag extends BooleanFlag<ProjectilesFlag> {
|
||||
public static final ProjectilesFlag PROJECTILES_TRUE = new ProjectilesFlag(true);
|
||||
public static final ProjectilesFlag PROJECTILES_FALSE = new ProjectilesFlag(false);
|
||||
|
||||
private ProjectilesFlag(boolean value){
|
||||
private ProjectilesFlag(boolean value) {
|
||||
super(value, TranslatableCaption.of("flags.flag_description_projectiles"));
|
||||
}
|
||||
|
||||
|
@ -82,10 +82,10 @@ public abstract class TimedFlag<T, F extends PlotFlag<TimedFlag.Timed<T>, F>>
|
||||
) {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%d %s", interval, value);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%d %s", interval, value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -76,6 +76,7 @@ public class SinglePlotArea extends GridPlotWorld {
|
||||
* Returns true if the given string matches the naming system used to identify single plot worlds
|
||||
* e.g. -1_5 represents plot id *;-1;5. "*" being the plot area name given to single plot world
|
||||
* {@link com.plotsquared.core.plot.PlotArea}.
|
||||
*
|
||||
* @since 6.1.4
|
||||
*/
|
||||
public static boolean isSinglePlotWorld(String worldName) {
|
||||
|
@ -36,7 +36,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
* The min and max points of this queue are offset according to the minimum point given in the constructor, and the offsets set
|
||||
* in {@link BlockArrayCacheScopedQueueCoordinator#setOffsetX(int)} and
|
||||
* {@link BlockArrayCacheScopedQueueCoordinator#setOffsetZ(int)}
|
||||
*
|
||||
* <p>
|
||||
* Internal use only. Subject to change at any time and created for specific use cases.
|
||||
*/
|
||||
@NotPublic
|
||||
@ -54,6 +54,7 @@ public class BlockArrayCacheScopedQueueCoordinator extends ZeroedDelegateScopedQ
|
||||
private final int scopeMaxZ;
|
||||
private int offsetX = 0;
|
||||
private int offsetZ = 0;
|
||||
|
||||
/**
|
||||
* Construct a new instance
|
||||
*
|
||||
|
@ -29,6 +29,7 @@ public abstract class ChunkCoordinator implements Runnable {
|
||||
|
||||
/**
|
||||
* Cancel the chunk coordinator.
|
||||
*
|
||||
* @since 6.0.10
|
||||
*/
|
||||
public abstract void cancel();
|
||||
|
@ -43,11 +43,10 @@ import java.util.function.Consumer;
|
||||
|
||||
public abstract class QueueCoordinator {
|
||||
|
||||
private final AtomicBoolean enqueued = new AtomicBoolean();
|
||||
private boolean forceSync = false;
|
||||
@Nullable
|
||||
private Object chunkObject;
|
||||
private final AtomicBoolean enqueued = new AtomicBoolean();
|
||||
|
||||
@SuppressWarnings({"unused", "FieldCanBeLocal"})
|
||||
@Inject
|
||||
private GlobalBlockQueue blockQueue;
|
||||
|
@ -65,9 +65,9 @@ public final class LockRepository {
|
||||
* @param runnable Action to run when the lock is available
|
||||
*/
|
||||
public void useLock(final @NonNull LockKey key, final @NonNull Runnable runnable) {
|
||||
try (LockAccess ignored = lock(key)) {
|
||||
runnable.run();
|
||||
}
|
||||
try (LockAccess ignored = lock(key)) {
|
||||
runnable.run();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -35,8 +35,8 @@ public abstract class InventoryUtil {
|
||||
* Attempts to set an item into a {@link PlotInventory} while also checking the existence of the material
|
||||
*
|
||||
* @param plotInventory The inventory where the item should be placed
|
||||
* @param index The index where to place the item
|
||||
* @param item The item to place into the inventory
|
||||
* @param index The index where to place the item
|
||||
* @param item The item to place into the inventory
|
||||
* @return {@code true} if the item could be placed, {@code false} otherwise (e.g. item not available in current version)
|
||||
* @since 6.5.0
|
||||
*/
|
||||
@ -49,12 +49,14 @@ public abstract class InventoryUtil {
|
||||
* Attempts to set an item into a {@link PlotInventory}
|
||||
*
|
||||
* @param plotInventory The inventory where the item should be placed
|
||||
* @param index The index where to place the item
|
||||
* @param item The item to place into the inventory
|
||||
* @param index The index where to place the item
|
||||
* @param item The item to place into the inventory
|
||||
* @see #setItemChecked(PlotInventory, int, PlotItemStack)
|
||||
*/
|
||||
public void setItem(final PlotInventory plotInventory, final int index,
|
||||
final PlotItemStack item) {
|
||||
public void setItem(
|
||||
final PlotInventory plotInventory, final int index,
|
||||
final PlotItemStack item
|
||||
) {
|
||||
setItemChecked(plotInventory, index, item);
|
||||
}
|
||||
|
||||
|
@ -272,7 +272,8 @@ public abstract class RegionManager {
|
||||
fromQueue1.addReadChunks(new CuboidRegion(pos1.getBlockVector3(), pos2.getBlockVector3()).getChunks());
|
||||
fromQueue2.addReadChunks(new CuboidRegion(
|
||||
swapPos.getBlockVector3(),
|
||||
BlockVector3.at(swapPos.getX() + pos2.getX() - pos1.getX(),
|
||||
BlockVector3.at(
|
||||
swapPos.getX() + pos2.getX() - pos1.getX(),
|
||||
pos1.getY(),
|
||||
swapPos.getZ() + pos2.getZ() - pos1.getZ()
|
||||
)
|
||||
|
@ -285,7 +285,8 @@ public abstract class WorldUtil {
|
||||
int trz = top.getZ() >> 9;
|
||||
Set<BlockVector2> files = getChunkChunks(bot.getWorldName());
|
||||
for (BlockVector2 mca : files) {
|
||||
if (mca.getX() >= brx && mca.getX() <= trx && mca.getZ() >= brz && mca.getZ() <= trz && !added.contains(mca)) {
|
||||
if (mca.getX() >= brx && mca.getX() <= trx && mca.getZ() >= brz && mca.getZ() <= trz && !added.contains(
|
||||
mca)) {
|
||||
final File file = getMcr(plot.getWorldName(), mca.getX(), mca.getZ());
|
||||
if (file != null) {
|
||||
//final String name = "r." + (x - cx) + "." + (z - cz) + ".mca";
|
||||
|
@ -102,7 +102,7 @@ public final class PlaceholderRegistry {
|
||||
return plot.getAlias();
|
||||
});
|
||||
this.createPlaceholder("currentplot_owner", (player, plot) -> {
|
||||
if (plot.getFlag(ServerPlotFlag.class)){
|
||||
if (plot.getFlag(ServerPlotFlag.class)) {
|
||||
return legacyComponent(TranslatableCaption.of("info.server"), player);
|
||||
}
|
||||
final UUID plotOwner = plot.getOwnerAbs();
|
||||
@ -298,8 +298,8 @@ public final class PlaceholderRegistry {
|
||||
}
|
||||
|
||||
/**
|
||||
* Event called when a new {@link Placeholder} has been added
|
||||
*/
|
||||
* Event called when a new {@link Placeholder} has been added
|
||||
*/
|
||||
public record PlaceholderAddedEvent(
|
||||
Placeholder placeholder
|
||||
) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -128,4 +128,5 @@ public class FlagTest {
|
||||
((TranslatableCaption) exception.getErrorMessage()).getKey()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -107,4 +107,5 @@ public class PlotRangeIteratorTest {
|
||||
Assertions.assertFalse(range.hasNext());
|
||||
Assertions.assertThrows(NoSuchElementException.class, range::next);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -51,4 +51,5 @@ class LockRepositoryTest {
|
||||
}));
|
||||
Assertions.assertFalse(lock.isLocked());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -33,8 +33,10 @@ public class StringManTest {
|
||||
new Message("title \"sub title\"", List.of("title", "sub title")),
|
||||
new Message("\"a title\" subtitle", List.of("a title", "subtitle")),
|
||||
new Message("\"title\" \"subtitle\"", List.of("title", "subtitle")),
|
||||
new Message("\"How <bold>bold</bold> of you\" \"to assume I like <rainbow>rainbows</rainbow>\"",
|
||||
List.of("How <bold>bold</bold> of you", "to assume I like <rainbow>rainbows</rainbow>"))
|
||||
new Message(
|
||||
"\"How <bold>bold</bold> of you\" \"to assume I like <rainbow>rainbows</rainbow>\"",
|
||||
List.of("How <bold>bold</bold> of you", "to assume I like <rainbow>rainbows</rainbow>")
|
||||
)
|
||||
);
|
||||
|
||||
for (Message message : messages) {
|
||||
@ -53,4 +55,5 @@ public class StringManTest {
|
||||
private record Message(String input, List<String> expected) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
22
README.md
22
README.md
@ -4,14 +4,14 @@
|
||||
|
||||
---
|
||||
|
||||
PlotSquared is a land and world management plugin for Minecraft.
|
||||
It includes several highly configurable world generators.
|
||||
PlotSquared is a land and world management plugin for Minecraft.
|
||||
It includes several highly configurable world generators.
|
||||
You can create plots of land in existing worlds using plot clusters, or you can have a full world of plots.
|
||||
|
||||
For the end user, PlotSquared is packed with a tonne of cool features.
|
||||
It allows you to merge plots, and build together with your friends.
|
||||
It allows you to merge plots, and build together with your friends.
|
||||
You can also change a lot of plot specific settings in the form of
|
||||
flags. Such as: weather, time, game modes, pvp status.
|
||||
flags. Such as: weather, time, game modes, pvp status.
|
||||
|
||||
Whilst we provide a whole load of unique features, the biggest focus
|
||||
is to provide a lag-free and smooth experience.
|
||||
@ -33,11 +33,13 @@ is to provide a lag-free and smooth experience.
|
||||
* [Contributing](https://github.com/IntellectualSites/.github/blob/main/CONTRIBUTING.md)
|
||||
|
||||
### Developer Resources
|
||||
|
||||
* [API Documentation](https://intellectualsites.github.io/plotsquared-documentation/api/api-documentation)
|
||||
* [Event API](https://intellectualsites.github.io/plotsquared-documentation/api/event-api)
|
||||
* [Flag API](https://intellectualsites.github.io/plotsquared-documentation/api/flag-api)
|
||||
|
||||
# Official Addons
|
||||
|
||||
* [Plot2Dynmap](http://www.spigotmc.org/resources/plot2dynmap.1292/)
|
||||
* [HoloPlots](https://www.spigotmc.org/resources/holoplots.4880/)
|
||||
* [PlotHider](https://www.spigotmc.org/resources/plot-hider.20701/)
|
||||
@ -46,10 +48,14 @@ is to provide a lag-free and smooth experience.
|
||||
|
||||
Want to add new features to PlotSquared or fix bugs yourself? You can get the game running, with PlotSquared, from the code here:
|
||||
|
||||
For additional information about compiling PlotSquared, see [CONTRIBUTING.md](https://github.com/IntellectualSites/.github/blob/main/CONTRIBUTING.md)
|
||||
For additional information about compiling PlotSquared,
|
||||
see [CONTRIBUTING.md](https://github.com/IntellectualSites/.github/blob/main/CONTRIBUTING.md)
|
||||
|
||||
### Submitting Your Changes
|
||||
PlotSquared is open source (specifically licensed under GPL v3), so note that your contributions will also be open source. The best way to submit a change is to create a fork on GitHub, put your changes there, and then create a "pull request" on our PlotSquared repository.
|
||||
|
||||
PlotSquared is open source (specifically licensed under GPL v3), so note that your contributions will also be open source. The
|
||||
best way to submit a change is to create a fork on GitHub, put your changes there, and then create a "pull request" on our
|
||||
PlotSquared repository.
|
||||
|
||||
<a href="https://yourkit.com/">
|
||||
<img src="https://www.yourkit.com/images/yklogo.png">
|
||||
@ -57,4 +63,6 @@ PlotSquared is open source (specifically licensed under GPL v3), so note that yo
|
||||
|
||||
Thank you to YourKit for supporting our product by providing us with their innovative and intelligent tools
|
||||
for monitoring and profiling Java and .NET applications.
|
||||
YourKit is the creator of [YourKit Java Profiler](https://www.yourkit.com/java/profiler/), [YourKit .NET Profiler](https://www.yourkit.com/.net/profiler/), and [YourKit YouMonitor](https://www.yourkit.com/youmonitor/).
|
||||
YourKit is the creator
|
||||
of [YourKit Java Profiler](https://www.yourkit.com/java/profiler/), [YourKit .NET Profiler](https://www.yourkit.com/.net/profiler/),
|
||||
and [YourKit YouMonitor](https://www.yourkit.com/youmonitor/).
|
||||
|
@ -1,6 +1,6 @@
|
||||
import com.diffplug.gradle.spotless.SpotlessPlugin
|
||||
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
|
||||
import java.net.URI
|
||||
import com.diffplug.gradle.spotless.SpotlessPlugin
|
||||
|
||||
plugins {
|
||||
java
|
||||
|
@ -1,4 +1,4 @@
|
||||
Javadocs generated for
|
||||
<a rel="noopener nofollow noreferrer" href="https://github.com/IntellectualSites/PlotSquared/" target="_blank"> PlotSquared</a> |
|
||||
<a rel="noopener nofollow noreferrer" href="https://intellectualsites.github.io/plotsquared-documentation/"> Documentation </a> |
|
||||
Visit us on our <a rel="noopener nofollow noreferrer" href="https://discord.gg/intellectualsites"> Discord server</a> :)
|
||||
<a href="https://github.com/IntellectualSites/PlotSquared/" rel="noopener nofollow noreferrer" target="_blank"> PlotSquared</a> |
|
||||
<a href="https://intellectualsites.github.io/plotsquared-documentation/" rel="noopener nofollow noreferrer"> Documentation </a> |
|
||||
Visit us on our <a href="https://discord.gg/intellectualsites" rel="noopener nofollow noreferrer"> Discord server</a> :)
|
||||
|
@ -1,10 +1,14 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"$schema" : "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends" : [
|
||||
"config:base",
|
||||
":semanticCommitsDisabled"
|
||||
],
|
||||
"labels": ["dependencies"],
|
||||
"rebaseWhen": "conflicted",
|
||||
"schedule": ["on the first day of the week"]
|
||||
"labels" : [
|
||||
"dependencies"
|
||||
],
|
||||
"rebaseWhen" : "conflicted",
|
||||
"schedule" : [
|
||||
"on the first day of the week"
|
||||
]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user