mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-14 19:34:43 +02:00
Compare commits
1 Commits
6.6.2
...
fix/v6/sin
Author | SHA1 | Date | |
---|---|---|---|
fbf07bbf1a |
@ -76,6 +76,7 @@ import com.plotsquared.core.util.EventDispatcher;
|
|||||||
import com.plotsquared.core.util.MathMan;
|
import com.plotsquared.core.util.MathMan;
|
||||||
import com.plotsquared.core.util.Permissions;
|
import com.plotsquared.core.util.Permissions;
|
||||||
import com.plotsquared.core.util.PremiumVerification;
|
import com.plotsquared.core.util.PremiumVerification;
|
||||||
|
import com.plotsquared.core.util.RegExUtil;
|
||||||
import com.plotsquared.core.util.entity.EntityCategories;
|
import com.plotsquared.core.util.entity.EntityCategories;
|
||||||
import com.plotsquared.core.util.task.TaskManager;
|
import com.plotsquared.core.util.task.TaskManager;
|
||||||
import com.plotsquared.core.util.task.TaskTime;
|
import com.plotsquared.core.util.task.TaskTime;
|
||||||
@ -222,9 +223,10 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("StringSplitter")
|
||||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||||
public void playerCommand(PlayerCommandPreprocessEvent event) {
|
public void playerCommand(PlayerCommandPreprocessEvent event) {
|
||||||
String msg = event.getMessage().replace("/", "").toLowerCase(Locale.ROOT).trim();
|
String msg = event.getMessage().toLowerCase().replaceAll("/", "").trim();
|
||||||
if (msg.isEmpty()) {
|
if (msg.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -238,9 +240,11 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
|||||||
String[] parts = msg.split(" ");
|
String[] parts = msg.split(" ");
|
||||||
Plot plot = plotPlayer.getCurrentPlot();
|
Plot plot = plotPlayer.getCurrentPlot();
|
||||||
// Check WorldEdit
|
// Check WorldEdit
|
||||||
switch (parts[0]) {
|
switch (parts[0].toLowerCase()) {
|
||||||
case "up":
|
case "up":
|
||||||
|
case "/up":
|
||||||
case "worldedit:up":
|
case "worldedit:up":
|
||||||
|
case "worldedit:/up":
|
||||||
if (plot == null || (!plot.isAdded(plotPlayer.getUUID()) && !Permissions
|
if (plot == null || (!plot.isAdded(plotPlayer.getUUID()) && !Permissions
|
||||||
.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_BUILD_OTHER, true))) {
|
.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_BUILD_OTHER, true))) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@ -254,40 +258,15 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
|||||||
List<String> blockedCommands = plot != null ?
|
List<String> blockedCommands = plot != null ?
|
||||||
plot.getFlag(BlockedCmdsFlag.class) :
|
plot.getFlag(BlockedCmdsFlag.class) :
|
||||||
area.getFlag(BlockedCmdsFlag.class);
|
area.getFlag(BlockedCmdsFlag.class);
|
||||||
if (blockedCommands.isEmpty()) {
|
if (!blockedCommands.isEmpty() && !Permissions
|
||||||
return;
|
.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS)) {
|
||||||
}
|
|
||||||
if (Permissions.hasPermission(plotPlayer, Permission.PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// When using namespaced commands, we're not interested in the namespace
|
|
||||||
String part = parts[0];
|
String part = parts[0];
|
||||||
if (part.contains(":")) {
|
if (parts[0].contains(":")) {
|
||||||
String[] namespaced = part.split(":");
|
part = parts[0].split(":")[1];
|
||||||
part = namespaced[1];
|
msg = msg.replace(parts[0].split(":")[0] + ':', "");
|
||||||
msg = msg.substring(namespaced[0].length() + 1);
|
|
||||||
}
|
}
|
||||||
msg = replaceAliases(msg, part);
|
|
||||||
for (String blocked : blockedCommands) {
|
|
||||||
if (blocked.equalsIgnoreCase(msg)) {
|
|
||||||
String perm;
|
|
||||||
if (plot != null && plot.isAdded(plotPlayer.getUUID())) {
|
|
||||||
perm = "plots.admin.command.blocked-cmds.shared";
|
|
||||||
} else {
|
|
||||||
perm = "plots.admin.command.blocked-cmds.road";
|
|
||||||
}
|
|
||||||
if (!Permissions.hasPermission(plotPlayer, perm)) {
|
|
||||||
plotPlayer.sendMessage(TranslatableCaption.of("blockedcmds.command_blocked"));
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private String replaceAliases(String msg, String part) {
|
|
||||||
String s1 = part;
|
String s1 = part;
|
||||||
Set<String> aliases = new HashSet<>();
|
List<String> aliases = new ArrayList<>();
|
||||||
for (HelpTopic cmdLabel : Bukkit.getServer().getHelpMap().getHelpTopics()) {
|
for (HelpTopic cmdLabel : Bukkit.getServer().getHelpMap().getHelpTopics()) {
|
||||||
if (part.equals(cmdLabel.getName())) {
|
if (part.equals(cmdLabel.getName())) {
|
||||||
break;
|
break;
|
||||||
@ -296,8 +275,8 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
|||||||
if (aliases.contains(label)) {
|
if (aliases.contains(label)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
PluginCommand p = Bukkit.getPluginCommand(label);
|
PluginCommand p;
|
||||||
if (p != null) {
|
if ((p = Bukkit.getPluginCommand(label)) != null) {
|
||||||
for (String a : p.getAliases()) {
|
for (String a : p.getAliases()) {
|
||||||
if (aliases.contains(a)) {
|
if (aliases.contains(a)) {
|
||||||
continue;
|
continue;
|
||||||
@ -314,7 +293,28 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
|||||||
if (!s1.equals(part)) {
|
if (!s1.equals(part)) {
|
||||||
msg = msg.replace(s1, part);
|
msg = msg.replace(s1, part);
|
||||||
}
|
}
|
||||||
return msg;
|
for (String s : blockedCommands) {
|
||||||
|
Pattern pattern;
|
||||||
|
if (!RegExUtil.compiledPatterns.containsKey(s)) {
|
||||||
|
RegExUtil.compiledPatterns.put(s, pattern = Pattern.compile(s));
|
||||||
|
} else {
|
||||||
|
pattern = RegExUtil.compiledPatterns.get(s);
|
||||||
|
}
|
||||||
|
if (pattern.matcher(msg).matches()) {
|
||||||
|
String perm;
|
||||||
|
if (plot != null && plot.isAdded(plotPlayer.getUUID())) {
|
||||||
|
perm = "plots.admin.command.blocked-cmds.shared";
|
||||||
|
} else {
|
||||||
|
perm = "plots.admin.command.blocked-cmds.road";
|
||||||
|
}
|
||||||
|
if (!Permissions.hasPermission(plotPlayer, perm)) {
|
||||||
|
plotPlayer.sendMessage(TranslatableCaption.of("blockedcmds.command_blocked"));
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
@ -347,16 +347,14 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
final Block block = world.getBlockAt(location.getX(), location.getY(), location.getZ());
|
final Block block = world.getBlockAt(location.getX(), location.getY(), location.getZ());
|
||||||
final Material type = block.getType();
|
final Material type = block.getType();
|
||||||
if (type != Material.LEGACY_SIGN && type != Material.LEGACY_WALL_SIGN) {
|
if (type != Material.LEGACY_SIGN && type != Material.LEGACY_WALL_SIGN) {
|
||||||
BlockFace facing = BlockFace.NORTH;
|
BlockFace facing = BlockFace.EAST;
|
||||||
if (!world.getBlockAt(location.getX(), location.getY(), location.getZ() + 1).getType().isSolid()) {
|
if (world.getBlockAt(location.getX(), location.getY(), location.getZ() + 1).getType().isSolid()) {
|
||||||
if (world.getBlockAt(location.getX() - 1, location.getY(), location.getZ()).getType().isSolid()) {
|
facing = BlockFace.NORTH;
|
||||||
facing = BlockFace.EAST;
|
|
||||||
} else if (world.getBlockAt(location.getX() + 1, location.getY(), location.getZ()).getType().isSolid()) {
|
} else if (world.getBlockAt(location.getX() + 1, location.getY(), location.getZ()).getType().isSolid()) {
|
||||||
facing = BlockFace.WEST;
|
facing = BlockFace.WEST;
|
||||||
} else if (world.getBlockAt(location.getX(), location.getY(), location.getZ() - 1).getType().isSolid()) {
|
} else if (world.getBlockAt(location.getX(), location.getY(), location.getZ() - 1).getType().isSolid()) {
|
||||||
facing = BlockFace.SOUTH;
|
facing = BlockFace.SOUTH;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (PlotSquared.platform().serverVersion()[1] == 13) {
|
if (PlotSquared.platform().serverVersion()[1] == 13) {
|
||||||
block.setType(Material.valueOf(area.legacySignMaterial()), false);
|
block.setType(Material.valueOf(area.legacySignMaterial()), false);
|
||||||
} else {
|
} else {
|
||||||
|
@ -48,7 +48,7 @@ public class Confirm extends SubCommand {
|
|||||||
player.sendMessage(TranslatableCaption.of("confirm.expired_confirm"));
|
player.sendMessage(TranslatableCaption.of("confirm.expired_confirm"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
TaskManager.runTask(command.command);
|
TaskManager.runTaskAsync(command.command);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,6 @@ import com.plotsquared.core.plot.schematic.Schematic;
|
|||||||
import com.plotsquared.core.plot.world.PlotAreaManager;
|
import com.plotsquared.core.plot.world.PlotAreaManager;
|
||||||
import com.plotsquared.core.util.Permissions;
|
import com.plotsquared.core.util.Permissions;
|
||||||
import com.plotsquared.core.util.SchematicHandler;
|
import com.plotsquared.core.util.SchematicHandler;
|
||||||
import com.plotsquared.core.util.TimeUtil;
|
|
||||||
import com.plotsquared.core.util.task.RunnableVal;
|
import com.plotsquared.core.util.task.RunnableVal;
|
||||||
import com.plotsquared.core.util.task.TaskManager;
|
import com.plotsquared.core.util.task.TaskManager;
|
||||||
import net.kyori.adventure.text.minimessage.Template;
|
import net.kyori.adventure.text.minimessage.Template;
|
||||||
@ -206,7 +205,7 @@ public class Load extends SubCommand {
|
|||||||
if (split.length < 5) {
|
if (split.length < 5) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String time = TimeUtil.secToTime((System.currentTimeMillis() / 1000) - Long.parseLong(split[0]));
|
String time = secToTime((System.currentTimeMillis() / 1000) - Long.parseLong(split[0]));
|
||||||
String world = split[1];
|
String world = split[1];
|
||||||
PlotId id = PlotId.fromString(split[2] + ';' + split[3]);
|
PlotId id = PlotId.fromString(split[2] + ';' + split[3]);
|
||||||
String size = split[4];
|
String size = split[4];
|
||||||
@ -224,10 +223,6 @@ public class Load extends SubCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated Use {@link TimeUtil#secToTime(long)}
|
|
||||||
*/
|
|
||||||
@Deprecated(forRemoval = true, since = "6.6.2")
|
|
||||||
public String secToTime(long time) {
|
public String secToTime(long time) {
|
||||||
StringBuilder toreturn = new StringBuilder();
|
StringBuilder toreturn = new StringBuilder();
|
||||||
if (time >= 33868800) {
|
if (time >= 33868800) {
|
||||||
|
@ -29,7 +29,6 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@Deprecated(since = "6.6.2", forRemoval = true)
|
|
||||||
public class RegExUtil {
|
public class RegExUtil {
|
||||||
|
|
||||||
public static Map<String, Pattern> compiledPatterns;
|
public static Map<String, Pattern> compiledPatterns;
|
||||||
|
@ -44,27 +44,27 @@ public final class TimeUtil {
|
|||||||
StringBuilder toReturn = new StringBuilder();
|
StringBuilder toReturn = new StringBuilder();
|
||||||
if (time >= 33868800) {
|
if (time >= 33868800) {
|
||||||
int years = (int) (time / 33868800);
|
int years = (int) (time / 33868800);
|
||||||
time -= years * 33868800L;
|
time -= years * 33868800;
|
||||||
toReturn.append(years).append("y ");
|
toReturn.append(years).append("y ");
|
||||||
}
|
}
|
||||||
if (time >= 604800) {
|
if (time >= 604800) {
|
||||||
int weeks = (int) (time / 604800);
|
int weeks = (int) (time / 604800);
|
||||||
time -= weeks * 604800L;
|
time -= weeks * 604800;
|
||||||
toReturn.append(weeks).append("w ");
|
toReturn.append(weeks).append("w ");
|
||||||
}
|
}
|
||||||
if (time >= 86400) {
|
if (time >= 86400) {
|
||||||
int days = (int) (time / 86400);
|
int days = (int) (time / 86400);
|
||||||
time -= days * 86400L;
|
time -= days * 86400;
|
||||||
toReturn.append(days).append("d ");
|
toReturn.append(days).append("d ");
|
||||||
}
|
}
|
||||||
if (time >= 3600) {
|
if (time >= 3600) {
|
||||||
int hours = (int) (time / 3600);
|
int hours = (int) (time / 3600);
|
||||||
time -= hours * 3600L;
|
time -= hours * 3600;
|
||||||
toReturn.append(hours).append("h ");
|
toReturn.append(hours).append("h ");
|
||||||
}
|
}
|
||||||
if (time >= 60) {
|
if (time >= 60) {
|
||||||
int minutes = (int) (time / 60);
|
int minutes = (int) (time / 60);
|
||||||
time -= minutes * 60L;
|
time -= minutes * 60;
|
||||||
toReturn.append(minutes).append("m ");
|
toReturn.append(minutes).append("m ");
|
||||||
}
|
}
|
||||||
if (toReturn.length() == 0 || time > 0) {
|
if (toReturn.length() == 0 || time > 0) {
|
||||||
|
@ -18,7 +18,7 @@ plugins {
|
|||||||
idea
|
idea
|
||||||
}
|
}
|
||||||
|
|
||||||
version = "6.6.2"
|
version = "6.6.2-SNAPSHOT"
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
group = "com.plotsquared"
|
group = "com.plotsquared"
|
||||||
|
@ -6,7 +6,7 @@ guava = "31.0.1-jre" # Version set by Minecraft
|
|||||||
|
|
||||||
# Platform expectations
|
# Platform expectations
|
||||||
paper = "1.18.1-R0.1-SNAPSHOT"
|
paper = "1.18.1-R0.1-SNAPSHOT"
|
||||||
checker-qual = "3.21.4"
|
checker-qual = "3.21.3"
|
||||||
guice = "5.1.0"
|
guice = "5.1.0"
|
||||||
findbugs = "3.0.1"
|
findbugs = "3.0.1"
|
||||||
snakeyaml = "1.30" # Version set by Bukkit
|
snakeyaml = "1.30" # Version set by Bukkit
|
||||||
@ -17,12 +17,12 @@ adventure-text-minimessage = "4.1.0-SNAPSHOT"
|
|||||||
adventure-platform-bukkit = "4.0.1"
|
adventure-platform-bukkit = "4.0.1"
|
||||||
|
|
||||||
# Plugins
|
# Plugins
|
||||||
worldedit = "7.2.10"
|
worldedit = "7.2.9"
|
||||||
fawe = "2.1.0"
|
fawe = "2.0.2-SNAPSHOT"
|
||||||
vault = "1.7.1"
|
vault = "1.7.1"
|
||||||
placeholderapi = "2.11.1"
|
placeholderapi = "2.11.1"
|
||||||
luckperms = "5.4"
|
luckperms = "5.4"
|
||||||
essentialsx = "2.19.4"
|
essentialsx = "2.19.3"
|
||||||
mvdwapi = "3.1.1"
|
mvdwapi = "3.1.1"
|
||||||
|
|
||||||
# Third party
|
# Third party
|
||||||
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
@ -8,8 +8,7 @@
|
|||||||
"com.google.guava:guava",
|
"com.google.guava:guava",
|
||||||
"com.google.code.gson:gson",
|
"com.google.code.gson:gson",
|
||||||
"gson",
|
"gson",
|
||||||
"snakeyaml",
|
"snakeyaml"
|
||||||
"net.kyori"
|
|
||||||
],
|
],
|
||||||
"timezone": "Europe/Berlin",
|
"timezone": "Europe/Berlin",
|
||||||
"schedule": [
|
"schedule": [
|
||||||
|
Reference in New Issue
Block a user