mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-26 17:15:28 +02:00
Compare commits
23 Commits
fix/v7/cau
...
main
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6fc25bc034 | ||
![]() |
1054018e1e | ||
![]() |
0508a7f6b6 | ||
![]() |
da0a57a48c | ||
![]() |
87859b002b | ||
![]() |
4f4ba07bd2 | ||
![]() |
53771a3ece | ||
![]() |
f020a6c6da | ||
![]() |
d7e158747e | ||
![]() |
4d64ea83ec | ||
![]() |
7ab334562c | ||
![]() |
fe1ef36f7e | ||
![]() |
70bc02985f | ||
![]() |
3ec7e992a3 | ||
![]() |
9acaa9c554 | ||
![]() |
e132c01331 | ||
![]() |
24e4e51884 | ||
![]() |
84ec090df1 | ||
![]() |
6c6ea1c1b4 | ||
![]() |
97989face1 | ||
![]() |
f471c02330 | ||
![]() |
94322d5982 | ||
![]() |
6cbb894249 |
3
.github/renovate.json
vendored
3
.github/renovate.json
vendored
@@ -2,7 +2,8 @@
|
|||||||
"$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": [
|
||||||
|
@@ -837,7 +837,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
|||||||
case "HOPPER_MINECART":
|
case "HOPPER_MINECART":
|
||||||
case "MINECART_MOB_SPAWNER":
|
case "MINECART_MOB_SPAWNER":
|
||||||
case "SPAWNER_MINECART":
|
case "SPAWNER_MINECART":
|
||||||
case "ENDER_CRYSTAL":
|
case "END_CRYSTAL":
|
||||||
|
case "ENDER_CRYSTAL": // Backwards compatibility for 1.20.4
|
||||||
case "MINECART_TNT":
|
case "MINECART_TNT":
|
||||||
case "TNT_MINECART":
|
case "TNT_MINECART":
|
||||||
case "CHEST_BOAT":
|
case "CHEST_BOAT":
|
||||||
@@ -955,6 +956,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
|||||||
case "ENDERMITE":
|
case "ENDERMITE":
|
||||||
case "ENDER_DRAGON":
|
case "ENDER_DRAGON":
|
||||||
case "GHAST":
|
case "GHAST":
|
||||||
|
case "HAPPY_GHAST": // 1.21.6+
|
||||||
|
case "GHASTLING": // 1.21.6+
|
||||||
case "GIANT":
|
case "GIANT":
|
||||||
case "GUARDIAN":
|
case "GUARDIAN":
|
||||||
case "HORSE":
|
case "HORSE":
|
||||||
|
@@ -115,7 +115,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
this.dataByte = getOrdinal(Boat.Type.values(), boat.getBoatType());
|
this.dataByte = getOrdinal(Boat.Type.values(), boat.getBoatType());
|
||||||
storeInventory(boat);
|
storeInventory(boat);
|
||||||
}
|
}
|
||||||
case "ARROW", "EGG", "ENDER_CRYSTAL", "ENDER_PEARL", "ENDER_SIGNAL", "EXPERIENCE_ORB", "FALLING_BLOCK", "FIREBALL",
|
case "ARROW", "EGG", "END_CRYSTAL", "ENDER_CRYSTAL", "ENDER_PEARL", "ENDER_SIGNAL", "EXPERIENCE_ORB", "FALLING_BLOCK", "FIREBALL",
|
||||||
"FIREWORK", "FISHING_HOOK", "LEASH_HITCH", "LIGHTNING", "MINECART", "MINECART_COMMAND", "MINECART_MOB_SPAWNER",
|
"FIREWORK", "FISHING_HOOK", "LEASH_HITCH", "LIGHTNING", "MINECART", "MINECART_COMMAND", "MINECART_MOB_SPAWNER",
|
||||||
"MINECART_TNT", "PLAYER", "PRIMED_TNT", "SLIME", "SMALL_FIREBALL", "SNOWBALL", "MINECART_FURNACE", "SPLASH_POTION",
|
"MINECART_TNT", "PLAYER", "PRIMED_TNT", "SLIME", "SMALL_FIREBALL", "SNOWBALL", "MINECART_FURNACE", "SPLASH_POTION",
|
||||||
"THROWN_EXP_BOTTLE", "WITHER_SKULL", "UNKNOWN", "SPECTRAL_ARROW", "SHULKER_BULLET", "DRAGON_FIREBALL", "AREA_EFFECT_CLOUD",
|
"THROWN_EXP_BOTTLE", "WITHER_SKULL", "UNKNOWN", "SPECTRAL_ARROW", "SHULKER_BULLET", "DRAGON_FIREBALL", "AREA_EFFECT_CLOUD",
|
||||||
@@ -272,7 +272,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
this.dataByte = (byte) entity1.getPhase().ordinal();
|
this.dataByte = (byte) entity1.getPhase().ordinal();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case "SKELETON", "WITHER_SKELETON", "GUARDIAN", "ELDER_GUARDIAN", "GHAST", "MAGMA_CUBE", "SQUID", "PIG_ZOMBIE", "HOGLIN",
|
case "SKELETON", "WITHER_SKELETON", "GUARDIAN", "ELDER_GUARDIAN", "GHAST", "HAPPY_GHAST", "GHASTLING", "MAGMA_CUBE", "SQUID", "PIG_ZOMBIE", "HOGLIN",
|
||||||
"ZOMBIFIED_PIGLIN", "PIGLIN", "PIGLIN_BRUTE", "ZOMBIE", "WITHER", "WITCH", "SPIDER", "CAVE_SPIDER", "SILVERFISH",
|
"ZOMBIFIED_PIGLIN", "PIGLIN", "PIGLIN_BRUTE", "ZOMBIE", "WITHER", "WITCH", "SPIDER", "CAVE_SPIDER", "SILVERFISH",
|
||||||
"GIANT", "ENDERMAN", "CREEPER", "BLAZE", "SHULKER", "SNOWMAN", "SNOW_GOLEM" -> {
|
"GIANT", "ENDERMAN", "CREEPER", "BLAZE", "SHULKER", "SNOWMAN", "SNOW_GOLEM" -> {
|
||||||
storeLiving((LivingEntity) entity);
|
storeLiving((LivingEntity) entity);
|
||||||
@@ -511,7 +511,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
((Slime) entity).setSize(this.dataByte);
|
((Slime) entity).setSize(this.dataByte);
|
||||||
return entity;
|
return entity;
|
||||||
} */
|
} */
|
||||||
case "ARROW", "EGG", "ENDER_CRYSTAL", "ENDER_PEARL", "ENDER_SIGNAL", "DROPPED_ITEM", "EXPERIENCE_ORB", "FALLING_BLOCK",
|
case "ARROW", "EGG", "END_CRYSTAL", "ENDER_CRYSTAL", "ENDER_PEARL", "ENDER_SIGNAL", "DROPPED_ITEM", "EXPERIENCE_ORB", "FALLING_BLOCK",
|
||||||
"FIREBALL", "FIREWORK", "FISHING_HOOK", "LEASH_HITCH", "LIGHTNING", "MINECART", "MINECART_COMMAND",
|
"FIREBALL", "FIREWORK", "FISHING_HOOK", "LEASH_HITCH", "LIGHTNING", "MINECART", "MINECART_COMMAND",
|
||||||
"MINECART_MOB_SPAWNER", "MINECART_TNT", "PLAYER", "PRIMED_TNT", "SMALL_FIREBALL", "SNOWBALL",
|
"MINECART_MOB_SPAWNER", "MINECART_TNT", "PLAYER", "PRIMED_TNT", "SMALL_FIREBALL", "SNOWBALL",
|
||||||
"SPLASH_POTION", "THROWN_EXP_BOTTLE", "SPECTRAL_ARROW", "SHULKER_BULLET", "AREA_EFFECT_CLOUD",
|
"SPLASH_POTION", "THROWN_EXP_BOTTLE", "SPECTRAL_ARROW", "SHULKER_BULLET", "AREA_EFFECT_CLOUD",
|
||||||
@@ -676,7 +676,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
restoreLiving((LivingEntity) entity);
|
restoreLiving((LivingEntity) entity);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
case "ENDERMITE", "GHAST", "MAGMA_CUBE", "SQUID", "PIG_ZOMBIE", "HOGLIN", "PIGLIN", "ZOMBIFIED_PIGLIN", "PIGLIN_BRUTE", "ZOMBIE", "WITHER", "WITCH", "SPIDER", "CAVE_SPIDER", "SILVERFISH", "GIANT", "ENDERMAN", "CREEPER", "BLAZE", "SNOWMAN", "SHULKER", "GUARDIAN", "ELDER_GUARDIAN", "SKELETON", "WITHER_SKELETON" -> {
|
case "ENDERMITE", "GHAST", "HAPPY_GHAST", "GHASTLING", "MAGMA_CUBE", "SQUID", "PIG_ZOMBIE", "HOGLIN", "PIGLIN", "ZOMBIFIED_PIGLIN", "PIGLIN_BRUTE", "ZOMBIE", "WITHER", "WITCH", "SPIDER", "CAVE_SPIDER", "SILVERFISH", "GIANT", "ENDERMAN", "CREEPER", "BLAZE", "SNOWMAN", "SHULKER", "GUARDIAN", "ELDER_GUARDIAN", "SKELETON", "WITHER_SKELETON" -> {
|
||||||
restoreLiving((LivingEntity) entity);
|
restoreLiving((LivingEntity) entity);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
@@ -79,6 +79,7 @@ import com.plotsquared.core.util.task.TaskManager;
|
|||||||
import com.plotsquared.core.util.task.TaskTime;
|
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.util.Enums;
|
||||||
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;
|
||||||
import io.papermc.lib.PaperLib;
|
import io.papermc.lib.PaperLib;
|
||||||
@@ -159,6 +160,7 @@ 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.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -183,6 +185,15 @@ public class PlayerEventListener implements Listener {
|
|||||||
Material.WRITABLE_BOOK,
|
Material.WRITABLE_BOOK,
|
||||||
Material.WRITTEN_BOOK
|
Material.WRITTEN_BOOK
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The correct EntityType for End Crystal, determined once at class loading time.
|
||||||
|
* Tries END_CRYSTAL first (1.21+), falls back to ENDER_CRYSTAL (1.20.4 and older).
|
||||||
|
*/
|
||||||
|
private static final EntityType END_CRYSTAL_ENTITY_TYPE = Objects.requireNonNull(
|
||||||
|
Enums.findByValue(EntityType.class, "END_CRYSTAL", "ENDER_CRYSTAL")
|
||||||
|
);
|
||||||
|
|
||||||
private static final Set<String> DYES;
|
private static final Set<String> DYES;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
@@ -1313,6 +1324,17 @@ 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();
|
||||||
|
EntityType entityType = type == Material.ARMOR_STAND ? EntityType.ARMOR_STAND : END_CRYSTAL_ENTITY_TYPE;
|
||||||
|
if (BukkitEntityUtil.checkEntity(entityType, 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;
|
||||||
|
@@ -354,13 +354,17 @@ 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(entity.getType());
|
BukkitAdapter.adapt(type);
|
||||||
|
|
||||||
if (EntityCategories.PLAYER.contains(entityType)) {
|
if (EntityCategories.PLAYER.contains(entityType)) {
|
||||||
return false;
|
return false;
|
||||||
|
@@ -101,6 +101,10 @@ public class Grant extends Command {
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
access.set(access.get().orElse(0) + 1);
|
access.set(access.get().orElse(0) + 1);
|
||||||
|
player.sendMessage(
|
||||||
|
TranslatableCaption.of("grants.added"),
|
||||||
|
TagResolver.resolver("grants", Tag.inserting(Component.text(access.get().orElse(0))))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@@ -20,7 +20,6 @@ package com.plotsquared.core.command;
|
|||||||
|
|
||||||
import com.plotsquared.core.configuration.Settings;
|
import com.plotsquared.core.configuration.Settings;
|
||||||
import com.plotsquared.core.configuration.caption.Caption;
|
import com.plotsquared.core.configuration.caption.Caption;
|
||||||
import com.plotsquared.core.configuration.caption.StaticCaption;
|
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.database.DBFunc;
|
import com.plotsquared.core.database.DBFunc;
|
||||||
import com.plotsquared.core.permissions.Permission;
|
import com.plotsquared.core.permissions.Permission;
|
||||||
@@ -131,13 +130,9 @@ public class Info extends SubCommand {
|
|||||||
info = getCaption(arg);
|
info = getCaption(arg);
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
if (Settings.Ratings.USE_LIKES) {
|
if (Settings.Ratings.USE_LIKES) {
|
||||||
player.sendMessage(StaticCaption.of(
|
player.sendMessage(TranslatableCaption.of("info.plot_info_categories.use_likes"));
|
||||||
"&6Categories&7: &amembers&7, &aalias&7, &abiome&7, &aseen&7, &adenied&7, &aflags&7, &aid&7, &asize&7, &atrusted&7, "
|
|
||||||
+ "&aowner&7, " + " &alikes"));
|
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(StaticCaption.of(
|
player.sendMessage(TranslatableCaption.of("info.plot_info_categories.use_rating"));
|
||||||
"&6Categories&7: &amembers&7, &aalias&7, &abiome&7, &aseen&7, &adenied&7, &aflags&7, &aid&7, &asize&7, &atrusted&7, "
|
|
||||||
+ "&aowner&7, " + " &arating"));
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -57,7 +57,7 @@ public class Music extends SubCommand {
|
|||||||
"music_disc_far", "music_disc_mall", "music_disc_mellohi", "music_disc_stal",
|
"music_disc_far", "music_disc_mall", "music_disc_mellohi", "music_disc_stal",
|
||||||
"music_disc_strad", "music_disc_ward", "music_disc_11", "music_disc_wait", "music_disc_otherside",
|
"music_disc_strad", "music_disc_ward", "music_disc_11", "music_disc_wait", "music_disc_otherside",
|
||||||
"music_disc_pigstep", "music_disc_5", "music_disc_relic", "music_disc_creator",
|
"music_disc_pigstep", "music_disc_5", "music_disc_relic", "music_disc_creator",
|
||||||
"music_disc_creator_music_box", "music_disc_precipice"
|
"music_disc_creator_music_box", "music_disc_precipice", "music_disc_tears", "music_disc_lava_chicken"
|
||||||
);
|
);
|
||||||
|
|
||||||
// make sure all discs and the bedrock ("cancel") fit into the inventory
|
// make sure all discs and the bedrock ("cancel") fit into the inventory
|
||||||
|
@@ -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 TODO
|
* @since 7.5.4
|
||||||
*/
|
*/
|
||||||
@NonNull Component toComponent(@NonNull LocaleHolder localeHolder, @NonNull TagResolver @NonNull... tagResolvers);
|
@NonNull Component toComponent(@NonNull LocaleHolder localeHolder, @NonNull TagResolver @NonNull... tagResolvers);
|
||||||
|
|
||||||
|
@@ -63,4 +63,18 @@ public class PlotTitle {
|
|||||||
return subtitle;
|
return subtitle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides a string representation of this plot title value (used in placeholders).
|
||||||
|
*
|
||||||
|
* @return the plot title representation in the format {@code "<title>" "<subtitle>"}
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "\"%s\" \"%s\"".formatted(
|
||||||
|
this.title != null ? this.title : "",
|
||||||
|
this.subtitle != null ? this.subtitle : ""
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -353,6 +353,8 @@
|
|||||||
"info.infinite": "<gray>Infinite</gray>",
|
"info.infinite": "<gray>Infinite</gray>",
|
||||||
"info.plot_unowned": "<prefix><red>The current plot must have an owner to perform this action.</red>",
|
"info.plot_unowned": "<prefix><red>The current plot must have an owner to perform this action.</red>",
|
||||||
"info.plot_info_unclaimed": "<prefix><gray>Plot <gold><plot></gold> is not yet claimed.</gray>",
|
"info.plot_info_unclaimed": "<prefix><gray>Plot <gold><plot></gold> is not yet claimed.</gray>",
|
||||||
|
"info.plot_info_categories.use_rating": "<prefix><gold>Categories: </gold> <gray>members, alias, biome, seen, denied, flags, id, size, trusted, owner, rating</gray>",
|
||||||
|
"info.plot_info_categories.use_likes": "<prefix><gold>Categories: </gold> <gray>members, alias, biome, seen, denied, flags, id, size, trusted, owner, likes</gray>",
|
||||||
"info.plot_info_header": "<dark_gray><strikethrough>--------- <reset><gold>INFO </gold><dark_gray><strikethrough>---------</dark_gray><reset>",
|
"info.plot_info_header": "<dark_gray><strikethrough>--------- <reset><gold>INFO </gold><dark_gray><strikethrough>---------</dark_gray><reset>",
|
||||||
"info.plot_info_hidden": "<prefix><red>You cannot view the information about this plot.</red>",
|
"info.plot_info_hidden": "<prefix><red>You cannot view the information about this plot.</red>",
|
||||||
"info.plot_info_format": "<header>\n<gold>ID: <gray><id></gray>\nCreation: <gray><creationdate></gray>\nArea: <gray><area></gray>\nAlias: <gray><alias></gray>\nOwner: <gray><owner></gray>\nBiome: <gray><biome></gray>\nCan Build: <gray><build></gray>\nRating: <gray><rating></gray>\nSeen: <gray><seen></gray>\nTrusted: <gray><trusted></gray>\nMembers: <gray><members></gray>\nDenied: <gray><denied></gray>\nFlags: <gray><flags></gray>\nDescription: <gray><desc></gray></gold>\n<footer>",
|
"info.plot_info_format": "<header>\n<gold>ID: <gray><id></gray>\nCreation: <gray><creationdate></gray>\nArea: <gray><area></gray>\nAlias: <gray><alias></gray>\nOwner: <gray><owner></gray>\nBiome: <gray><biome></gray>\nCan Build: <gray><build></gray>\nRating: <gray><rating></gray>\nSeen: <gray><seen></gray>\nTrusted: <gray><trusted></gray>\nMembers: <gray><members></gray>\nDenied: <gray><denied></gray>\nFlags: <gray><flags></gray>\nDescription: <gray><desc></gray></gold>\n<footer>",
|
||||||
@@ -454,7 +456,7 @@
|
|||||||
"category.command_category_debug": "<gray>Debug</gray>",
|
"category.command_category_debug": "<gray>Debug</gray>",
|
||||||
"category.command_category_administration": "<gray>Admin</gray>",
|
"category.command_category_administration": "<gray>Admin</gray>",
|
||||||
"grants.granted_plots": "<prefix><gold>Result: <gray><amount> </gray>grants left.</gold>",
|
"grants.granted_plots": "<prefix><gold>Result: <gray><amount> </gray>grants left.</gold>",
|
||||||
"grants.added": "<prefix><gold><grants></gold> <gray>grant(s) have been added.</gray>",
|
"grants.added": "<prefix><gold>1</gold> <gray>grant has been added. (<grants> total grants)</gray>",
|
||||||
"events.event_denied": "<prefix><gold><value> </gold><gray>Cancelled by external plugin.</gray>",
|
"events.event_denied": "<prefix><gold><value> </gold><gray>Cancelled by external plugin.</gray>",
|
||||||
"backups.backup_impossible": "<prefix><red>Backups are not enabled for this plot: <plot>.</red>",
|
"backups.backup_impossible": "<prefix><red>Backups are not enabled for this plot: <plot>.</red>",
|
||||||
"backups.backup_save_success": "<prefix><gold>The backup was created successfully.</gold>",
|
"backups.backup_save_success": "<prefix><gold>The backup was created successfully.</gold>",
|
||||||
|
@@ -37,12 +37,7 @@ class ClickStripTransformTest {
|
|||||||
void removeClickEvent() {
|
void removeClickEvent() {
|
||||||
var commonAction = ClickEvent.Action.OPEN_FILE;
|
var commonAction = ClickEvent.Action.OPEN_FILE;
|
||||||
var transform = new ClickStripTransform(EnumSet.of(commonAction));
|
var transform = new ClickStripTransform(EnumSet.of(commonAction));
|
||||||
var component = Component.text("Hello")
|
var component = Component.text("Hello").clickEvent(ClickEvent.openFile("World"));
|
||||||
.clickEvent(ClickEvent.clickEvent(
|
|
||||||
commonAction,
|
|
||||||
"World"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
var transformedComponent = transform.transform(component);
|
var transformedComponent = transform.transform(component);
|
||||||
Assertions.assertNull(transformedComponent.clickEvent());
|
Assertions.assertNull(transformedComponent.clickEvent());
|
||||||
}
|
}
|
||||||
@@ -52,10 +47,7 @@ class ClickStripTransformTest {
|
|||||||
void ignoreClickEvent() {
|
void ignoreClickEvent() {
|
||||||
var actionToRemove = ClickEvent.Action.SUGGEST_COMMAND;
|
var actionToRemove = ClickEvent.Action.SUGGEST_COMMAND;
|
||||||
var transform = new ClickStripTransform(EnumSet.of(actionToRemove));
|
var transform = new ClickStripTransform(EnumSet.of(actionToRemove));
|
||||||
var originalClickEvent = ClickEvent.clickEvent(
|
var originalClickEvent = ClickEvent.changePage(1337);
|
||||||
ClickEvent.Action.CHANGE_PAGE,
|
|
||||||
"World"
|
|
||||||
);
|
|
||||||
var component = Component.text("Hello")
|
var component = Component.text("Hello")
|
||||||
.clickEvent(originalClickEvent);
|
.clickEvent(originalClickEvent);
|
||||||
var transformedComponent = transform.transform(component);
|
var transformedComponent = transform.transform(component);
|
||||||
@@ -76,12 +68,12 @@ class ClickStripTransformTest {
|
|||||||
.insertion("DEF");
|
.insertion("DEF");
|
||||||
var component = Component.text("Hello ")
|
var component = Component.text("Hello ")
|
||||||
.append(
|
.append(
|
||||||
inner.clickEvent(ClickEvent.clickEvent(ClickEvent.Action.OPEN_URL, "https://example.org"))
|
inner.clickEvent(ClickEvent.openUrl("https://example.org"))
|
||||||
);
|
);
|
||||||
var transformedComponent = transform.transform(component);
|
var transformedComponent = transform.transform(component);
|
||||||
Assertions.assertFalse(transformedComponent.children().isEmpty()); // child still exists
|
Assertions.assertFalse(transformedComponent.children().isEmpty()); // child still exists
|
||||||
Assertions.assertEquals(inner, transformedComponent.children().get(0)); // only the click event has changed
|
Assertions.assertEquals(inner, transformedComponent.children().getFirst()); // only the click event has changed
|
||||||
Assertions.assertNull(transformedComponent.children().get(0).clickEvent());
|
Assertions.assertNull(transformedComponent.children().getFirst().clickEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,7 @@
|
|||||||
import com.diffplug.gradle.spotless.SpotlessPlugin
|
import com.diffplug.gradle.spotless.SpotlessPlugin
|
||||||
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
|
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
|
||||||
import com.vanniktech.maven.publish.SonatypeHost
|
|
||||||
import groovy.json.JsonSlurper
|
import groovy.json.JsonSlurper
|
||||||
import xyz.jpenilla.runpaper.task.RunServer
|
import xyz.jpenilla.runpaper.task.RunServer
|
||||||
import java.net.URI
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
java
|
java
|
||||||
@@ -22,7 +20,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "com.intellectualsites.plotsquared"
|
group = "com.intellectualsites.plotsquared"
|
||||||
version = "7.5.4-SNAPSHOT"
|
version = "7.5.5-SNAPSHOT"
|
||||||
|
|
||||||
if (!File("$rootDir/.git").exists()) {
|
if (!File("$rootDir/.git").exists()) {
|
||||||
logger.lifecycle("""
|
logger.lifecycle("""
|
||||||
@@ -69,8 +67,8 @@ subprojects {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Tests
|
// Tests
|
||||||
testImplementation("org.junit.jupiter:junit-jupiter:5.13.1")
|
testImplementation("org.junit.jupiter:junit-jupiter:5.13.3")
|
||||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.13.1")
|
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.13.3")
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins.withId("java") {
|
plugins.withId("java") {
|
||||||
@@ -172,7 +170,7 @@ subprojects {
|
|||||||
url.set("https://github.com/IntellectualSites/PlotSquared/issues")
|
url.set("https://github.com/IntellectualSites/PlotSquared/issues")
|
||||||
}
|
}
|
||||||
|
|
||||||
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)
|
publishToMavenCentral()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,7 +204,7 @@ tasks.getByName<Jar>("jar") {
|
|||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
val supportedVersions = listOf("1.19.4", "1.20.6", "1.21.1", "1.21.3", "1.21.4", "1.21.5")
|
val supportedVersions = listOf("1.19.4", "1.20.6", "1.21.1", "1.21.3", "1.21.4", "1.21.5", "1.21.6", "1.21.7", "1.21.8")
|
||||||
tasks {
|
tasks {
|
||||||
register("cacheLatestFaweArtifact") {
|
register("cacheLatestFaweArtifact") {
|
||||||
val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL()
|
val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL()
|
||||||
|
@@ -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.4"
|
checkerqual = "3.49.5"
|
||||||
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,10 +33,10 @@ vault = "1.7.1"
|
|||||||
serverlib = "2.3.7"
|
serverlib = "2.3.7"
|
||||||
|
|
||||||
# Gradle plugins
|
# Gradle plugins
|
||||||
shadow = "8.3.6"
|
shadow = "8.3.8"
|
||||||
grgit = "4.1.1"
|
grgit = "4.1.1"
|
||||||
spotless = "7.0.4"
|
spotless = "7.2.0"
|
||||||
publish = "0.32.0"
|
publish = "0.34.0"
|
||||||
runPaper = "2.3.1"
|
runPaper = "2.3.1"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
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-8.14.2-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
Reference in New Issue
Block a user