Compare commits

..

1 Commits

Author SHA1 Message Date
57bd9721bc Update adventure to v4.23.0 2025-06-22 19:51:09 +00:00
7 changed files with 27 additions and 78 deletions

View File

@ -2,8 +2,7 @@
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [ "extends": [
"config:recommended", "config:recommended",
":semanticCommitsDisabled", ":semanticCommitsDisabled"
"schedule:earlyMondays"
], ],
"automerge": true, "automerge": true,
"labels": [ "labels": [

View File

@ -64,11 +64,9 @@ import com.plotsquared.core.plot.flag.implementations.PreventCreativeCopyFlag;
import com.plotsquared.core.plot.flag.implementations.TamedInteractFlag; import com.plotsquared.core.plot.flag.implementations.TamedInteractFlag;
import com.plotsquared.core.plot.flag.implementations.TileDropFlag; import com.plotsquared.core.plot.flag.implementations.TileDropFlag;
import com.plotsquared.core.plot.flag.implementations.UntrustedVisitFlag; import com.plotsquared.core.plot.flag.implementations.UntrustedVisitFlag;
import com.plotsquared.core.plot.flag.implementations.UseFlag;
import com.plotsquared.core.plot.flag.implementations.VehicleBreakFlag; import com.plotsquared.core.plot.flag.implementations.VehicleBreakFlag;
import com.plotsquared.core.plot.flag.implementations.VehicleUseFlag; import com.plotsquared.core.plot.flag.implementations.VehicleUseFlag;
import com.plotsquared.core.plot.flag.implementations.VillagerInteractFlag; import com.plotsquared.core.plot.flag.implementations.VillagerInteractFlag;
import com.plotsquared.core.plot.flag.types.BlockTypeWrapper;
import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.util.EventDispatcher; import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.MathMan;
@ -80,7 +78,6 @@ import com.plotsquared.core.util.task.TaskTime;
import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.block.BlockTypes;
import io.papermc.lib.PaperLib; import io.papermc.lib.PaperLib;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
@ -155,11 +152,9 @@ import org.bukkit.util.Vector;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
@ -184,7 +179,6 @@ public class PlayerEventListener implements Listener {
Material.WRITTEN_BOOK Material.WRITTEN_BOOK
); );
private static final Set<String> DYES; private static final Set<String> DYES;
static { static {
Set<String> mutableDyes = new HashSet<>(Set.of( Set<String> mutableDyes = new HashSet<>(Set.of(
"WHITE_DYE", "WHITE_DYE",
@ -537,14 +531,12 @@ public class PlayerEventListener implements Listener {
// Delayed // Delayed
// Async // Async
TaskManager.runTaskLaterAsync( TaskManager.runTaskLaterAsync(() -> {
() -> {
if (!player.hasPlayedBefore() && player.isOnline()) { if (!player.hasPlayedBefore() && player.isOnline()) {
player.saveData(); player.saveData();
} }
this.eventDispatcher.doJoinTask(pp); this.eventDispatcher.doJoinTask(pp);
}, TaskTime.seconds(1L) }, TaskTime.seconds(1L));
);
if (pp.hasPermission(Permission.PERMISSION_ADMIN_UPDATE_NOTIFICATION.toString()) && Settings.Enabled_Components.UPDATE_NOTIFICATIONS if (pp.hasPermission(Permission.PERMISSION_ADMIN_UPDATE_NOTIFICATION.toString()) && Settings.Enabled_Components.UPDATE_NOTIFICATIONS
&& PremiumVerification.isPremium() && UpdateUtility.hasUpdate) { && PremiumVerification.isPremium() && UpdateUtility.hasUpdate) {
@ -605,9 +597,7 @@ public class PlayerEventListener implements Listener {
// to is identical to the plot's home location, and untrusted-visit is true // to is identical to the plot's home location, and untrusted-visit is true
// i.e. untrusted-visit can override deny-teleport // i.e. untrusted-visit can override deny-teleport
// this is acceptable, because otherwise it wouldn't make sense to have both flags set // this is acceptable, because otherwise it wouldn't make sense to have both flags set
if (result || (plot.getFlag(UntrustedVisitFlag.class) && plot if (result || (plot.getFlag(UntrustedVisitFlag.class) && plot.getHomeSynchronous().equals(BukkitUtil.adaptComplete(to)))) {
.getHomeSynchronous()
.equals(BukkitUtil.adaptComplete(to)))) {
// returns false if the player is not allowed to enter the plot (if they are denied, for example) // returns false if the player is not allowed to enter the plot (if they are denied, for example)
// don't let the move event cancel the entry after teleport, but rather catch and cancel early (#4647) // don't let the move event cancel the entry after teleport, but rather catch and cancel early (#4647)
if (!plotListener.plotEntry(pp, plot)) { if (!plotListener.plotEntry(pp, plot)) {
@ -951,15 +941,12 @@ public class PlayerEventListener implements Listener {
builder.tag("plot_id", Tag.inserting(Component.text(id.toString()))); builder.tag("plot_id", Tag.inserting(Component.text(id.toString())));
builder.tag("sender", Tag.inserting(Component.text(sender))); builder.tag("sender", Tag.inserting(Component.text(sender)));
if (plotPlayer.hasPermission("plots.chat.color")) { if (plotPlayer.hasPermission("plots.chat.color")) {
builder.tag( builder.tag("msg", Tag.inserting(MiniMessage.miniMessage().deserialize(
"msg", Tag.inserting(MiniMessage.miniMessage().deserialize(
message, message,
TagResolver.resolver( TagResolver.resolver(StandardTags.color(), StandardTags.gradient(),
StandardTags.color(), StandardTags.gradient(),
StandardTags.rainbow(), StandardTags.decorations() StandardTags.rainbow(), StandardTags.decorations()
) )
)) )));
);
} else { } else {
builder.tag("msg", Tag.inserting(Component.text(message))); builder.tag("msg", Tag.inserting(Component.text(message)));
} }
@ -1268,9 +1255,7 @@ public class PlayerEventListener implements Listener {
eventType = PlayerBlockEventType.INTERACT_BLOCK; eventType = PlayerBlockEventType.INTERACT_BLOCK;
blocktype1 = BukkitAdapter.asBlockType(block.getType()); blocktype1 = BukkitAdapter.asBlockType(block.getType());
if (INTERACTABLE_MATERIALS != null if (INTERACTABLE_MATERIALS != null ? INTERACTABLE_MATERIALS.contains(blockType.name()) : blockType.isInteractable()) {
? INTERACTABLE_MATERIALS.contains(blockType.name())
: blockType.isInteractable()) {
if (!player.isSneaking()) { if (!player.isSneaking()) {
break; break;
} }
@ -1313,17 +1298,6 @@ public class PlayerEventListener implements Listener {
//Allow all players to eat while also allowing the block place event to be fired //Allow all players to eat while also allowing the block place event to be fired
return; return;
} }
// Process creature spawning of armor stands & end crystals here if spawned by the player in order to be able to
// reset the player's hand item if spawning needs to be cancelled.
if (type == Material.ARMOR_STAND || type == Material.END_CRYSTAL) {
Plot plot = location.getOwnedPlotAbs();
if (BukkitEntityUtil.checkEntity(type == Material.ARMOR_STAND ? EntityType.ARMOR_STAND : EntityType.ENDER_CRYSTAL,
plot)) {
event.setCancelled(true);
break;
}
}
// Continue with normal place event checks
if (type == Material.ARMOR_STAND) { if (type == Material.ARMOR_STAND) {
location = BukkitUtil.adapt(block.getRelative(event.getBlockFace()).getLocation()); location = BukkitUtil.adapt(block.getRelative(event.getBlockFace()).getLocation());
eventType = PlayerBlockEventType.PLACE_MISC; eventType = PlayerBlockEventType.PLACE_MISC;
@ -1406,16 +1380,6 @@ public class PlayerEventListener implements Listener {
} }
BukkitPlayer pp = BukkitUtil.adapt(event.getPlayer()); BukkitPlayer pp = BukkitUtil.adapt(event.getPlayer());
Plot plot = area.getPlot(location); Plot plot = area.getPlot(location);
final List<BlockTypeWrapper> use =
Optional.ofNullable(plot).map(p -> p.getFlag(UseFlag.class)).orElse(area.isRoadFlags() ?
area.getFlag(UseFlag.class) : Collections.emptyList());
BlockType type = BukkitAdapter.asBlockType(block.getType());
for (final BlockTypeWrapper blockTypeWrapper : use) {
if (blockTypeWrapper.accepts(BlockTypes.AIR) || blockTypeWrapper
.accepts(type)) {
return;
}
}
if (plot == null) { if (plot == null) {
if (pp.hasPermission(Permission.PERMISSION_ADMIN_BUILD_ROAD)) { if (pp.hasPermission(Permission.PERMISSION_ADMIN_BUILD_ROAD)) {
return; return;
@ -1487,16 +1451,6 @@ public class PlayerEventListener implements Listener {
Player player = event.getPlayer(); Player player = event.getPlayer();
BukkitPlayer plotPlayer = BukkitUtil.adapt(player); BukkitPlayer plotPlayer = BukkitUtil.adapt(player);
Plot plot = area.getPlot(location); Plot plot = area.getPlot(location);
final List<BlockTypeWrapper> use =
Optional.ofNullable(plot).map(p -> p.getFlag(UseFlag.class)).orElse(area.isRoadFlags() ?
area.getFlag(UseFlag.class) : Collections.emptyList());
BlockType type = BukkitAdapter.asBlockType(blockClicked.getType());
for (final BlockTypeWrapper blockTypeWrapper : use) {
if (blockTypeWrapper.accepts(BlockTypes.AIR) || blockTypeWrapper
.accepts(type)) {
return;
}
}
if (plot == null) { if (plot == null) {
if (plotPlayer.hasPermission(Permission.PERMISSION_ADMIN_BUILD_ROAD)) { if (plotPlayer.hasPermission(Permission.PERMISSION_ADMIN_BUILD_ROAD)) {
return; return;

View File

@ -354,17 +354,13 @@ public class BukkitEntityUtil {
} }
public static boolean checkEntity(Entity entity, Plot plot) { public static boolean checkEntity(Entity entity, Plot plot) {
return checkEntity(entity.getType(), plot);
}
public static boolean checkEntity(EntityType type, Plot plot) {
if (plot == null || !plot.hasOwner() || plot.getFlags().isEmpty() && plot.getArea() if (plot == null || !plot.hasOwner() || plot.getFlags().isEmpty() && plot.getArea()
.getFlagContainer().getFlagMap().isEmpty()) { .getFlagContainer().getFlagMap().isEmpty()) {
return false; return false;
} }
final com.sk89q.worldedit.world.entity.EntityType entityType = final com.sk89q.worldedit.world.entity.EntityType entityType =
BukkitAdapter.adapt(type); BukkitAdapter.adapt(entity.getType());
if (EntityCategories.PLAYER.contains(entityType)) { if (EntityCategories.PLAYER.contains(entityType)) {
return false; return false;

View File

@ -51,7 +51,7 @@ public interface Caption {
* @param localeHolder Local holder * @param localeHolder Local holder
* @param tagResolvers custom tag resolvers to replace placeholders / parameters * @param tagResolvers custom tag resolvers to replace placeholders / parameters
* @return {@link ComponentLike} * @return {@link ComponentLike}
* @since 7.5.4 * @since TODO
*/ */
@NonNull Component toComponent(@NonNull LocaleHolder localeHolder, @NonNull TagResolver @NonNull... tagResolvers); @NonNull Component toComponent(@NonNull LocaleHolder localeHolder, @NonNull TagResolver @NonNull... tagResolvers);

View File

@ -22,7 +22,7 @@ plugins {
} }
group = "com.intellectualsites.plotsquared" group = "com.intellectualsites.plotsquared"
version = "7.5.5-SNAPSHOT" version = "7.5.4-SNAPSHOT"
if (!File("$rootDir/.git").exists()) { if (!File("$rootDir/.git").exists()) {
logger.lifecycle(""" logger.lifecycle("""
@ -69,8 +69,8 @@ subprojects {
dependencies { dependencies {
// Tests // Tests
testImplementation("org.junit.jupiter:junit-jupiter:5.13.3") testImplementation("org.junit.jupiter:junit-jupiter:5.13.1")
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.13.3") testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.13.1")
} }
plugins.withId("java") { plugins.withId("java") {

View File

@ -3,11 +3,11 @@
paper = "1.20.4-R0.1-SNAPSHOT" paper = "1.20.4-R0.1-SNAPSHOT"
guice = "7.0.0" guice = "7.0.0"
spotbugs = "4.9.3" spotbugs = "4.9.3"
checkerqual = "3.49.5" checkerqual = "3.49.4"
gson = "2.10" gson = "2.10"
guava = "31.1-jre" guava = "31.1-jre"
snakeyaml = "2.0" snakeyaml = "2.0"
adventure = "4.21.0" adventure = "4.23.0"
adventure-bukkit = "4.4.0" adventure-bukkit = "4.4.0"
log4j = "2.19.0" log4j = "2.19.0"
@ -33,9 +33,9 @@ vault = "1.7.1"
serverlib = "2.3.7" serverlib = "2.3.7"
# Gradle plugins # Gradle plugins
shadow = "8.3.8" shadow = "8.3.6"
grgit = "4.1.1" grgit = "4.1.1"
spotless = "7.1.0" spotless = "7.0.4"
publish = "0.33.0" publish = "0.33.0"
runPaper = "2.3.1" runPaper = "2.3.1"

View File

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