Compare commits

...

39 Commits

Author SHA1 Message Date
bab6f20a5d Release 7.4.0
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-11-19 16:52:43 +01:00
32d36b28fa feat: add InteractionInteractFlag (#4538) 2024-11-19 16:48:03 +01:00
a11c560d4e Support 1.21.3 (#4537)
* Fix Biome ABI break

* Update issue template

* add run-task for 1.21.3
2024-11-18 18:44:00 +01:00
66bb0a6214 Update dependency gradle to v8.11 (#4540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-11 16:40:08 +00:00
7218e9829f Update dependency com.gradleup.shadow to v8.3.5 2024-11-03 03:27:24 +00:00
2e17c941fc Update dependency org.checkerframework:checker-qual to v3.48.2 2024-11-01 23:06:01 +00:00
5e628cc758 Restriction: Adding "weaving-death-place" flag (#4519)
* Adding "weaving-death-place" flag

* Improving spelling of flag description

* Reworking event listener for Weaving effect

* Undoing import optimization

* Fixing weaving-death-place check for plots
2024-11-01 11:06:46 +00:00
a42e08dc0e Adding "entity-change-block" flag check for roads (#4527)
Adding check for plot flag
2024-11-01 11:05:33 +00:00
10bf45c128 Update dependency com.gradleup.shadow to v8.3.4 2024-10-29 06:17:48 +00:00
9fe61e5053 Update fawe to v2.12.0 2024-10-25 21:38:23 +00:00
8f5bdf5dbb Back to snapshot for development
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-10-25 19:58:55 +02:00
9df1387f81 Release 7.3.12
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-10-25 19:57:54 +02:00
dcf5a7d940 Update junit5 monorepo 2024-10-21 17:00:43 +00:00
641e3840cb Do not check interactions outside plot areas (#4515) 2024-10-13 10:31:08 +02:00
5642061d6f Update dependency org.checkerframework:checker-qual to v3.48.1 2024-10-11 21:58:05 +00:00
003898f6a7 Update junit5 monorepo 2024-10-04 16:31:07 +00:00
fecf8104e9 Update dependency org.checkerframework:checker-qual to v3.48.0 2024-10-02 18:08:14 +00:00
8a9dab4f8e Update dependency com.gradleup.shadow to v8.3.3 2024-10-02 07:08:25 +00:00
0832656a12 Update junit5 monorepo 2024-09-25 08:24:14 +00:00
5525085e6d Update dependency gradle to v8.10.2 2024-09-24 01:08:25 +00:00
7a429fd05c Update dependency org.bstats:bstats-bukkit to v3.1.0 2024-09-22 18:27:56 +00:00
2c0ad36939 Update dependency com.gradleup.shadow to v8.3.2 2024-09-18 14:32:21 +00:00
5e0957c14a Update fawe to v2.11.2 2024-09-15 18:25:38 +00:00
c83306a2ea Back to snapshot for development
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-09-15 17:10:27 +02:00
6f4c156585 Release 7.3.11
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-09-15 17:09:58 +02:00
afb36d98c7 Read Adventure version from version catalogue
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-09-15 14:22:31 +02:00
001ae78fb2 fix: load single plot areas on creation (#4490)
* fix: load single plot areas on creation

* fix: don't allow overlapping plot areas
2024-09-14 10:46:27 +02:00
5fc8e06c22 Update dependency com.gradleup.shadow to v8.3.1 2024-09-10 14:49:56 +00:00
f9401dda94 Update dependency gradle to v8.10.1 2024-09-09 10:50:42 +00:00
d1a48dba4d Update dependency org.checkerframework:checker-qual to v3.47.0 2024-09-04 19:07:03 +00:00
db9b51a535 Back to snapshot for development
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-08-31 11:31:51 +02:00
511db0af37 Release 7.3.10
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-08-31 11:27:05 +02:00
e1ccda3e6d Prevent vanished players from being in plot kick autocompletion (#4485) 2024-08-30 17:50:23 +02:00
a69cd609b9 fix: rename minecart EntityType enum constants (#4471)
* fix: rename minecart EntityType enum constants

* chore: re-add older minecart entity type names
2024-08-25 22:12:25 +02:00
5d4e6c5819 Update shadow
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-08-25 11:39:14 +02:00
db05f1481a Update MySQL properties URL
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-08-25 11:35:59 +02:00
ee3dd00225 Update dependency org.bstats:bstats-bukkit to v3.0.3 2024-08-19 08:35:39 +00:00
346a48225d Update dependency xyz.jpenilla.run-paper to v2.3.1 2024-08-18 22:38:48 +00:00
dfd80c4723 Reenable checkerframewowkr javadoc linking (#4483)
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-08-18 01:11:22 +02:00
23 changed files with 169 additions and 28 deletions

View File

@ -27,6 +27,7 @@ body:
description: Which server version are you using? If your server version is not listed, it is not supported. Update to a supported version first.
multiple: false
options:
- '1.21.3'
- '1.21.1'
- '1.20.6'
- '1.20.4'

View File

@ -104,9 +104,9 @@ tasks {
opt.links("https://jd.papermc.io/paper/1.20/")
opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/" + libs.worldeditBukkit.get().versionConstraint.toString())
opt.links("https://intellectualsites.github.io/plotsquared-javadocs/core/")
opt.links("https://jd.advntr.dev/api/4.14.0/")
opt.links("https://jd.advntr.dev/api/" + libs.adventureApi.get().versionConstraint.toString())
opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/")
// opt.links("https://checkerframework.org/api/")
opt.links("https://checkerframework.org/api/")
opt.isLinkSource = true
opt.bottom(File("$rootDir/javadocfooter.html").readText())
opt.isUse = true

View File

@ -822,12 +822,18 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
// Temporarily classify as vehicle
case "MINECART":
case "MINECART_CHEST":
case "CHEST_MINECART":
case "MINECART_COMMAND":
case "COMMAND_BLOCK_MINECART":
case "MINECART_FURNACE":
case "FURNACE_MINECART":
case "MINECART_HOPPER":
case "HOPPER_MINECART":
case "MINECART_MOB_SPAWNER":
case "SPAWNER_MINECART":
case "ENDER_CRYSTAL":
case "MINECART_TNT":
case "TNT_MINECART":
case "CHEST_BOAT":
case "BOAT":
if (Settings.Enabled_Components.KILL_ROAD_VEHICLES) {

View File

@ -52,7 +52,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
@ -445,7 +445,7 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap
private static final List<Biome> BIOMES;
static {
Set<Biome> disabledBiomes = EnumSet.of(Biome.CUSTOM);
Set<Biome> disabledBiomes = new HashSet<>(List.of(Biome.CUSTOM));
if (PlotSquared.platform().serverVersion()[1] <= 19) {
final Biome cherryGrove = Registry.BIOME.get(NamespacedKey.minecraft("cherry_grove"));
if (cherryGrove != null) {

View File

@ -37,6 +37,7 @@ import com.plotsquared.core.plot.flag.implementations.EntityChangeBlockFlag;
import com.plotsquared.core.plot.flag.implementations.ExplosionFlag;
import com.plotsquared.core.plot.flag.implementations.InvincibleFlag;
import com.plotsquared.core.plot.flag.implementations.ProjectileChangeBlockFlag;
import com.plotsquared.core.plot.flag.implementations.WeavingDeathPlace;
import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.PlotFlagUtil;
@ -243,6 +244,29 @@ public class EntityEventListener implements Listener {
}
}
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onWeavingEffect(EntityChangeBlockEvent event) {
if (event.getTo() != Material.COBWEB) {
return;
}
Location location = BukkitUtil.adapt(event.getBlock().getLocation());
PlotArea area = location.getPlotArea();
if (area == null) {
return;
}
Plot plot = location.getOwnedPlot();
if (plot == null) {
if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, WeavingDeathPlace.class, false)) {
event.setCancelled(true);
}
return;
}
if (!plot.getFlag(WeavingDeathPlace.class)) {
plot.debug(event.getTo() + " could not spawn because weaving-death-place = false");
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGH)
public void onDamage(EntityDamageEvent event) {
if (event.getEntityType() != EntityType.PLAYER) {
@ -401,7 +425,13 @@ public class EntityEventListener implements Listener {
}
Plot plot = area.getOwnedPlot(location);
if (plot != null && !plot.getFlag(EntityChangeBlockFlag.class)) {
if (plot == null) {
if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, EntityChangeBlockFlag.class, false)) {
event.setCancelled(true);
}
return;
}
if (!plot.getFlag(EntityChangeBlockFlag.class)) {
plot.debug(e.getType() + " could not change block because entity-change-block = false");
event.setCancelled(true);
}

View File

@ -54,6 +54,7 @@ import com.plotsquared.core.plot.flag.implementations.EditSignFlag;
import com.plotsquared.core.plot.flag.implementations.HangingBreakFlag;
import com.plotsquared.core.plot.flag.implementations.HangingPlaceFlag;
import com.plotsquared.core.plot.flag.implementations.HostileInteractFlag;
import com.plotsquared.core.plot.flag.implementations.InteractionInteractFlag;
import com.plotsquared.core.plot.flag.implementations.ItemDropFlag;
import com.plotsquared.core.plot.flag.implementations.KeepInventoryFlag;
import com.plotsquared.core.plot.flag.implementations.LecternReadBookFlag;
@ -1737,6 +1738,11 @@ public class PlayerEventListener implements Listener {
return;
}
if (EntityCategories.INTERACTION.contains(entityType) && flagContainer
.getFlag(InteractionInteractFlag.class).getValue()) {
return;
}
if (EntityCategories.VILLAGER.contains(entityType) && flagContainer
.getFlag(VillagerInteractFlag.class).getValue()) {
return;

View File

@ -75,6 +75,7 @@ import org.bukkit.entity.FallingBlock;
import org.bukkit.entity.Firework;
import org.bukkit.entity.Ghast;
import org.bukkit.entity.Hanging;
import org.bukkit.entity.Interaction;
import org.bukkit.entity.IronGolem;
import org.bukkit.entity.Item;
import org.bukkit.entity.LightningStrike;
@ -432,6 +433,7 @@ public class BukkitUtil extends WorldUtil {
@Override
public @NonNull Set<com.sk89q.worldedit.world.entity.EntityType> getTypesInCategory(final @NonNull String category) {
final Collection<Class<?>> allowedInterfaces = new HashSet<>();
final int[] version = PlotSquared.platform().serverVersion();
switch (category) {
case "animal" -> {
allowedInterfaces.add(IronGolem.class);
@ -439,7 +441,7 @@ public class BukkitUtil extends WorldUtil {
allowedInterfaces.add(Animals.class);
allowedInterfaces.add(WaterMob.class);
allowedInterfaces.add(Ambient.class);
if (PlotSquared.platform().serverVersion()[1] >= 19) {
if (version[1] >= 19) {
allowedInterfaces.add(Allay.class);
}
}
@ -470,6 +472,11 @@ public class BukkitUtil extends WorldUtil {
allowedInterfaces.add(Firework.class);
}
case "player" -> allowedInterfaces.add(Player.class);
case "interaction" -> {
if ((version[1] > 19) || (version[1] == 19 && version[2] >= 4)) {
allowedInterfaces.add(Interaction.class);
}
}
default -> LOGGER.error("Unknown entity category requested: {}", category);
}
final Set<com.sk89q.worldedit.world.entity.EntityType> types = new HashSet<>();

View File

@ -68,10 +68,10 @@ tasks {
val isRelease = if (rootProject.version.toString().endsWith("-SNAPSHOT")) "TODO" else rootProject.version.toString()
val opt = options as StandardJavadocDocletOptions
opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-core/" + libs.worldeditCore.get().versionConstraint.toString())
opt.links("https://jd.advntr.dev/api/4.14.0/")
opt.links("https://jd.advntr.dev/text-minimessage/4.14.0/")
opt.links("https://jd.advntr.dev/api/" + libs.adventureApi.get().versionConstraint.toString())
opt.links("https://jd.advntr.dev/text-minimessage/" + libs.adventureApi.get().versionConstraint.toString())
opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/")
// opt.links("https://checkerframework.org/api/")
opt.links("https://checkerframework.org/api/")
opt.isLinkSource = true
opt.bottom(File("$rootDir/javadocfooter.html").readText())
opt.isUse = true

View File

@ -795,9 +795,8 @@ public class PlotSquared {
if (world.equals("CheckingPlotSquaredGenerator")) {
return;
}
if (!this.getPlotAreaManager().addWorld(world)) {
return;
}
// Don't check the return result -> breaks runtime loading of single plot areas on creation
this.getPlotAreaManager().addWorld(world);
Set<String> worlds;
if (this.worldConfiguration.contains("worlds")) {
worlds = this.worldConfiguration.getConfigurationSection("worlds").getKeys(false);

View File

@ -184,6 +184,7 @@ public class Area extends SubCommand {
CuboidRegion.makeCuboid(playerSelectedRegion)
).length != 0) {
player.sendMessage(TranslatableCaption.of("single.single_area_overlapping"));
return false;
}
// Alter the region
final BlockVector3 playerSelectionMin = playerSelectedRegion.getMinimumPoint();

View File

@ -153,7 +153,7 @@ public class Kick extends SubCommand {
if (plot == null) {
return Collections.emptyList();
}
return TabCompletions.completePlayersInPlot(plot, String.join(",", args).trim(),
return TabCompletions.completePlayersInPlot(player, plot, String.join(",", args).trim(),
Collections.singletonList(player.getName())
);
}

View File

@ -46,7 +46,7 @@ public class Storage extends Config {
public static String PASSWORD = "password";
public static String DATABASE = "plot_db";
@Comment("Set additional properties: https://goo.gl/wngtN8")
@Comment("Set additional properties: https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html")
public static List<String>
PROPERTIES = new ArrayList<>(Collections.singletonList("useSSL=false"));

View File

@ -65,6 +65,7 @@ import com.plotsquared.core.plot.flag.implementations.HostileInteractFlag;
import com.plotsquared.core.plot.flag.implementations.IceFormFlag;
import com.plotsquared.core.plot.flag.implementations.IceMeltFlag;
import com.plotsquared.core.plot.flag.implementations.InstabreakFlag;
import com.plotsquared.core.plot.flag.implementations.InteractionInteractFlag;
import com.plotsquared.core.plot.flag.implementations.InvincibleFlag;
import com.plotsquared.core.plot.flag.implementations.ItemDropFlag;
import com.plotsquared.core.plot.flag.implementations.KeepFlag;
@ -92,6 +93,7 @@ import com.plotsquared.core.plot.flag.implementations.PreventCreativeCopyFlag;
import com.plotsquared.core.plot.flag.implementations.PriceFlag;
import com.plotsquared.core.plot.flag.implementations.ProjectileChangeBlockFlag;
import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag;
import com.plotsquared.core.plot.flag.implementations.WeavingDeathPlace;
import com.plotsquared.core.plot.flag.implementations.PveFlag;
import com.plotsquared.core.plot.flag.implementations.PvpFlag;
import com.plotsquared.core.plot.flag.implementations.RedstoneFlag;
@ -171,6 +173,7 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(IceFormFlag.ICE_FORM_FALSE);
this.addFlag(IceMeltFlag.ICE_MELT_FALSE);
this.addFlag(InstabreakFlag.INSTABREAK_FALSE);
this.addFlag(InteractionInteractFlag.INTERACTION_INTERACT_FALSE);
this.addFlag(InvincibleFlag.INVINCIBLE_FALSE);
this.addFlag(ItemDropFlag.ITEM_DROP_TRUE);
this.addFlag(KeepInventoryFlag.KEEP_INVENTORY_FALSE);
@ -207,6 +210,7 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(VillagerInteractFlag.VILLAGER_INTERACT_FALSE);
this.addFlag(VineGrowFlag.VINE_GROW_TRUE);
this.addFlag(ProjectilesFlag.PROJECTILES_FALSE);
this.addFlag(WeavingDeathPlace.WEAVING_DEATH_PLACE_FALSE);
// Double flags
this.addFlag(PriceFlag.PRICE_NOT_BUYABLE);

View File

@ -0,0 +1,39 @@
/*
* PlotSquared, a land and world management plugin for Minecraft.
* Copyright (C) IntellectualSites <https://intellectualsites.com>
* Copyright (C) IntellectualSites team and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.plotsquared.core.plot.flag.implementations;
import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.plot.flag.types.BooleanFlag;
import org.checkerframework.checker.nullness.qual.NonNull;
public class InteractionInteractFlag extends BooleanFlag<InteractionInteractFlag> {
public static final InteractionInteractFlag INTERACTION_INTERACT_TRUE = new InteractionInteractFlag(true);
public static final InteractionInteractFlag INTERACTION_INTERACT_FALSE = new InteractionInteractFlag(false);
private InteractionInteractFlag(boolean value) {
super(value, TranslatableCaption.of("flags.flag_description_interaction_interact"));
}
@Override
protected InteractionInteractFlag flagOf(@NonNull Boolean value) {
return value ? INTERACTION_INTERACT_TRUE : INTERACTION_INTERACT_FALSE;
}
}

View File

@ -0,0 +1,39 @@
/*
* PlotSquared, a land and world management plugin for Minecraft.
* Copyright (C) IntellectualSites <https://intellectualsites.com>
* Copyright (C) IntellectualSites team and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.plotsquared.core.plot.flag.implementations;
import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.plot.flag.types.BooleanFlag;
import org.checkerframework.checker.nullness.qual.NonNull;
public class WeavingDeathPlace extends BooleanFlag<WeavingDeathPlace> {
public static final WeavingDeathPlace WEAVING_DEATH_PLACE_TRUE = new WeavingDeathPlace(true);
public static final WeavingDeathPlace WEAVING_DEATH_PLACE_FALSE = new WeavingDeathPlace(false);
private WeavingDeathPlace(boolean value) {
super(value, TranslatableCaption.of("flags.flag_description_weaving_death_place"));
}
@Override
protected WeavingDeathPlace flagOf(@NonNull Boolean value) {
return value ? WEAVING_DEATH_PLACE_TRUE : WEAVING_DEATH_PLACE_FALSE;
}
}

View File

@ -371,7 +371,10 @@ public class EventDispatcher {
Location location, BlockType blockType, boolean notifyPerms
) {
PlotArea area = location.getPlotArea();
assert area != null;
// the interaction target location might be outside a plot area
if (area == null) {
return true;
}
if (!area.buildRangeContainsY(location.getY()) && !player.hasPermission(Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
player.sendMessage(
TranslatableCaption.of("height.height_limit"),

View File

@ -107,6 +107,7 @@ public final class TabCompletions {
}
public static @NonNull List<Command> completePlayersInPlot(
final @NonNull PlotPlayer<?> issuer,
final @NonNull Plot plot,
final @NonNull String input, final @NonNull List<String> existing
) {
@ -115,7 +116,9 @@ public final class TabCompletions {
final List<PlotPlayer<?>> inPlot = plot.getPlayersInPlot();
players = new ArrayList<>(inPlot.size());
for (PlotPlayer<?> player : inPlot) {
players.add(player.getName());
if (issuer.canSee(player)) {
players.add(player.getName());
}
}
cachedCompletionValues.put("inPlot" + plot, players);
}

View File

@ -41,6 +41,7 @@ public class EntityCategories {
public static final EntityCategory PROJECTILE = register("projectile");
public static final EntityCategory OTHER = register("other");
public static final EntityCategory PLAYER = register("player");
public static final EntityCategory INTERACTION = register("interaction");
public static EntityCategory register(final String id) {
final EntityCategory entityCategory = new EntityCategory(PlotSquared.platform().worldUtil(), id);

View File

@ -572,6 +572,7 @@
"flags.flag_description_ice_form": "<gray>Set to `true` to allow ice to form in the plot.</gray>",
"flags.flag_description_ice_melt": "<gray>Set to `false` to disable ice melting in the plot.</gray>",
"flags.flag_description_instabreak": "<gray>Set to `true` to allow blocks to be instantaneously broken in survival mode.</gray>",
"flags.flag_description_interaction_interact": "<gray>Set to `true` to allow guests to interact with interaction entities in the plot.</gray>",
"flags.flag_description_invincible": "<gray>Set to `true` to prevent players from taking damage inside the plot.</gray>",
"flags.flag_description_item_drop": "<gray>Set to `false` to prevent items from being dropped inside the plot.</gray>",
"flags.flag_description_kelp_grow": "<gray>Set to `false` to prevent kelp from growing in the plot.</gray>",
@ -628,6 +629,7 @@
"flags.flag_description_prevent_creative_copy": "<gray>Prevents people from copying item NBT data in the plot unless they're added as members.</gray>",
"flags.flag_description_leaf_decay": "<gray>Set to `false` to prevent leaves from decaying.",
"flags.flag_description_projectiles": "<gray>Prevents guests from shooting projectiles on the plot when set to false.</gray>",
"flags.flag_description_weaving_death_place": "<gray>Set to `false` to prevent spawning of cobwebs by the Weaving status effect on the death of an entity.</gray>",
"flags.flag_description_beacon_effect": "<gray>Enables beacon effects on the plot.</gray>",
"flags.flag_error_boolean": "Flag value must be a boolean (true | false).",
"flags.flag_error_enum": "Must be one of: <list>",

View File

@ -22,7 +22,7 @@ plugins {
}
group = "com.intellectualsites.plotsquared"
version = "7.3.10-SNAPSHOT"
version = "7.4.0"
if (!File("$rootDir/.git").exists()) {
logger.lifecycle("""
@ -79,8 +79,8 @@ subprojects {
dependencies {
// Tests
testImplementation("org.junit.jupiter:junit-jupiter:5.11.0")
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.11.0")
testImplementation("org.junit.jupiter:junit-jupiter:5.11.3")
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.11.3")
}
plugins.withId("java") {
@ -230,7 +230,7 @@ tasks.getByName<Jar>("jar") {
enabled = false
}
val supportedVersions = listOf("1.18.2", "1.19.4", "1.20.6", "1.21.1")
val supportedVersions = listOf("1.18.2", "1.19.4", "1.20.6", "1.21.1", "1.21.3")
tasks {
register("cacheLatestFaweArtifact") {
val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL()

View File

@ -3,7 +3,7 @@
paper = "1.20.4-R0.1-SNAPSHOT"
guice = "7.0.0"
spotbugs = "4.8.6"
checkerqual = "3.46.0"
checkerqual = "3.48.2"
gson = "2.10"
guava = "31.1-jre"
snakeyaml = "2.0"
@ -13,7 +13,7 @@ log4j = "2.19.0"
# Plugins
worldedit = "7.2.20"
fawe = "2.11.0"
fawe = "2.12.0"
placeholderapi = "2.11.6"
luckperms = "5.4"
essentialsx = "2.20.1"
@ -26,18 +26,18 @@ cloud-services = "1.8.4"
arkitektonika = "2.1.3"
squirrelid = "0.3.2"
paster = "1.1.6"
bstats = "3.0.2"
bstats = "3.1.0"
paperlib = "1.0.8"
informative-annotations = "1.5"
vault = "1.7.1"
serverlib = "2.3.6"
# Gradle plugins
shadow = "8.1.1"
shadow = "8.3.5"
grgit = "4.1.1"
spotless = "6.25.0"
nexus = "2.0.0"
runPaper = "2.3.0"
runPaper = "2.3.1"
[libraries]
# Platform expectations
@ -78,7 +78,7 @@ vault = { group = "com.github.MilkBowl", name = "VaultAPI", version.ref = "vault
serverlib = { group = "dev.notmyfault.serverlib", name = "ServerLib", version.ref = "serverlib" }
[plugins]
shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }
shadow = { id = "com.gradleup.shadow", version.ref = "shadow" }
grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" }
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus" }

View File

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

View File

@ -1,4 +1,4 @@
Javadocs generated for
<a href="https://github.com/IntellectualSites/PlotSquared/" rel="noopener nofollow noreferrer" target="_blank"> PlotSquared</a> |
<a href="https://intellectualsites.gitbook.io/plotsquared/" rel="noopener nofollow noreferrer"> Documentation </a> |
Visit us on our <a href="https://discord.gg/intellectualsites" rel="noopener nofollow noreferrer"> Discord server</a> :)
&nbsp;Visit us on our <a href="https://discord.gg/intellectualsites" rel="noopener nofollow noreferrer"> Discord server</a> :)