mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-04 06:34:42 +02:00
Compare commits
13 Commits
docs/ploti
...
fix/v7/fla
Author | SHA1 | Date | |
---|---|---|---|
ffebffec77 | |||
1e9a27ccea | |||
d95c74d8c9 | |||
c1555ddbc7 | |||
4fe0c586d9 | |||
aae6ea4fee | |||
385d018504 | |||
f4def082c1 | |||
69c9f1df83 | |||
e138dc0267 | |||
ca50b53f94 | |||
f705487055 | |||
b7c9453a1a |
5
.gitignore
vendored
5
.gitignore
vendored
@ -138,6 +138,5 @@ build/
|
||||
|
||||
.DS_Store
|
||||
# Ignore run folders
|
||||
run-[0-0].[0-9]/
|
||||
run-[0-0].[0-9].[0-9]/
|
||||
|
||||
run-[0-9].[0-9][0-9]/
|
||||
run-[0-9].[0-9][0-9].[0-9]/
|
||||
|
@ -252,6 +252,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation") // Paper deprecation
|
||||
public void onEnable() {
|
||||
this.pluginName = getDescription().getName();
|
||||
|
||||
@ -1160,6 +1161,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
return new BukkitPlotGenerator(world, generator, this.plotAreaManager);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation") // Paper deprecation
|
||||
@Override
|
||||
public @NonNull String pluginsFormatted() {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
@ -1181,7 +1183,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
@SuppressWarnings({"ConstantConditions", "deprecation"}) // Paper deprecation
|
||||
public @NonNull String worldEditImplementations() {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
if (Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit") != null) {
|
||||
|
@ -74,6 +74,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
||||
private HorseStats horse;
|
||||
private boolean noGravity;
|
||||
|
||||
@SuppressWarnings("deprecation") // Deprecation exists since 1.20, while we support 1.16 onwards
|
||||
public ReplicatingEntityWrapper(Entity entity, short depth) {
|
||||
super(entity);
|
||||
|
||||
|
@ -369,6 +369,7 @@ public class PlayerEventListener implements Listener {
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
@SuppressWarnings("deprecation") // Paper deprecation
|
||||
public void onConnect(PlayerJoinEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
PlotSquared.platform().playerManager().removePlayer(player.getUniqueId());
|
||||
@ -733,6 +734,7 @@ public class PlayerEventListener implements Listener {
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
@SuppressWarnings("deprecation") // Paper deprecation
|
||||
public void onChat(AsyncPlayerChatEvent event) {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
@ -1063,6 +1065,7 @@ public class PlayerEventListener implements Listener {
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
@SuppressWarnings("deprecation") // Paper deprecation
|
||||
public void onCancelledInteract(PlayerInteractEvent event) {
|
||||
if (event.isCancelled() && event.getAction() == Action.RIGHT_CLICK_AIR) {
|
||||
Player player = event.getPlayer();
|
||||
|
@ -44,6 +44,7 @@ import java.util.stream.IntStream;
|
||||
@Singleton
|
||||
public class BukkitInventoryUtil extends InventoryUtil {
|
||||
|
||||
@SuppressWarnings("deprecation") // Paper deprecation
|
||||
private static @Nullable ItemStack getItem(PlotItemStack item) {
|
||||
if (item == null) {
|
||||
return null;
|
||||
|
@ -67,6 +67,7 @@ public class BukkitSetupUtils extends SetupUtils {
|
||||
this.worldFile = worldFile;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation") // Paper deprecation
|
||||
@Override
|
||||
public void updateGenerators(final boolean force) {
|
||||
if (loaded && !SetupUtils.generators.isEmpty() && !force) {
|
||||
|
@ -35,7 +35,7 @@ import org.bukkit.scheduler.BukkitTask;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.net.URI;
|
||||
|
||||
public class UpdateUtility implements Listener {
|
||||
|
||||
@ -59,8 +59,9 @@ public class UpdateUtility implements Listener {
|
||||
public void updateChecker() {
|
||||
task = Bukkit.getScheduler().runTaskTimerAsynchronously(this.javaPlugin, () -> {
|
||||
try {
|
||||
HttpsURLConnection connection = (HttpsURLConnection) new URL(
|
||||
"https://api.spigotmc.org/simple/0.1/index.php?action=getResource&id=77506")
|
||||
HttpsURLConnection connection = (HttpsURLConnection) URI.create(
|
||||
"https://api.spigotmc.org/simple/0.2/index.php?action=getResource&id=77506")
|
||||
.toURL()
|
||||
.openConnection();
|
||||
connection.setRequestMethod("GET");
|
||||
JsonObject result = new JsonParser()
|
||||
|
@ -84,7 +84,7 @@ import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
@ -210,9 +210,10 @@ public class PlotSquared {
|
||||
try {
|
||||
URL logurl = PlotSquared.class.getProtectionDomain().getCodeSource().getLocation();
|
||||
this.jarFile = new File(
|
||||
new URL(logurl.toURI().toString().split("\\!")[0].replaceAll("jar:file", "file"))
|
||||
.toURI().getPath());
|
||||
} catch (MalformedURLException | URISyntaxException | SecurityException e) {
|
||||
URI.create(
|
||||
logurl.toURI().toString().split("\\!")[0].replaceAll("jar:file", "file"))
|
||||
.getPath());
|
||||
} catch (URISyntaxException | SecurityException e) {
|
||||
e.printStackTrace();
|
||||
this.jarFile = new File(this.platform.getDirectory().getParentFile(), "PlotSquared.jar");
|
||||
if (!this.jarFile.exists()) {
|
||||
|
@ -41,6 +41,7 @@ import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@ -116,7 +117,7 @@ public class Load extends SubCommand {
|
||||
}
|
||||
final URL url;
|
||||
try {
|
||||
url = new URL(Settings.Web.URL + "saves/" + player.getUUID() + '/' + schematic);
|
||||
url = URI.create(Settings.Web.URL + "saves/" + player.getUUID() + '/' + schematic).toURL();
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
player.sendMessage(TranslatableCaption.of("web.load_failed"));
|
||||
|
@ -40,6 +40,7 @@ import net.kyori.adventure.text.minimessage.tag.Tag;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@ -130,8 +131,7 @@ public class SchematicCmd extends SubCommand {
|
||||
if (location.startsWith("url:")) {
|
||||
try {
|
||||
UUID uuid = UUID.fromString(location.substring(4));
|
||||
URL base = new URL(Settings.Web.URL);
|
||||
URL url = new URL(base, "uploads/" + uuid + ".schematic");
|
||||
URL url = URI.create(Settings.Web.URL + "uploads/" + uuid + ".schematic").toURL();
|
||||
schematic = this.schematicHandler.getSchematic(url);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@ -189,7 +189,7 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
||||
}
|
||||
Object value;
|
||||
try {
|
||||
final boolean accessible = field.isAccessible();
|
||||
final boolean accessible = field.canAccess(this);
|
||||
field.setAccessible(true);
|
||||
value = field.get(this);
|
||||
field.setAccessible(accessible);
|
||||
|
@ -51,6 +51,8 @@ import com.plotsquared.core.util.MathMan;
|
||||
import com.plotsquared.core.util.PlotExpression;
|
||||
import com.plotsquared.core.util.RegionUtil;
|
||||
import com.plotsquared.core.util.StringMan;
|
||||
import com.plotsquared.core.util.task.TaskManager;
|
||||
import com.plotsquared.core.util.task.TaskTime;
|
||||
import com.sk89q.worldedit.math.BlockVector2;
|
||||
import com.sk89q.worldedit.math.BlockVector3;
|
||||
import com.sk89q.worldedit.regions.CuboidRegion;
|
||||
@ -391,6 +393,28 @@ public abstract class PlotArea implements ComponentLike {
|
||||
}
|
||||
}
|
||||
|
||||
this.spawnEggs = config.getBoolean("event.spawn.egg");
|
||||
this.spawnCustom = config.getBoolean("event.spawn.custom");
|
||||
this.spawnBreeding = config.getBoolean("event.spawn.breeding");
|
||||
|
||||
if (PlotSquared.get().isWeInitialised()) {
|
||||
loadFlags(config);
|
||||
} else {
|
||||
ConsolePlayer.getConsole().sendMessage(
|
||||
TranslatableCaption.of("flags.delaying_loading_area_flags"),
|
||||
TagResolver.resolver("area", Tag.inserting(Component.text(this.id == null ? this.worldName : this.id)))
|
||||
);
|
||||
TaskManager.runTaskLater(() -> loadFlags(config), TaskTime.ticks(1));
|
||||
}
|
||||
|
||||
loadConfiguration(config);
|
||||
}
|
||||
|
||||
private void loadFlags(ConfigurationSection config) {
|
||||
ConsolePlayer.getConsole().sendMessage(
|
||||
TranslatableCaption.of("flags.loading_area_flags"),
|
||||
TagResolver.resolver("area", Tag.inserting(Component.text(this.id == null ? this.worldName : this.id)))
|
||||
);
|
||||
List<String> flags = config.getStringList("flags.default");
|
||||
if (flags.isEmpty()) {
|
||||
flags = config.getStringList("flags");
|
||||
@ -411,10 +435,6 @@ public abstract class PlotArea implements ComponentLike {
|
||||
TagResolver.resolver("flags", Tag.inserting(Component.text(flags.toString())))
|
||||
);
|
||||
|
||||
this.spawnEggs = config.getBoolean("event.spawn.egg");
|
||||
this.spawnCustom = config.getBoolean("event.spawn.custom");
|
||||
this.spawnBreeding = config.getBoolean("event.spawn.breeding");
|
||||
|
||||
List<String> roadflags = config.getStringList("road.flags");
|
||||
if (roadflags.isEmpty()) {
|
||||
roadflags = new ArrayList<>();
|
||||
@ -426,14 +446,12 @@ public abstract class PlotArea implements ComponentLike {
|
||||
}
|
||||
}
|
||||
}
|
||||
this.roadFlags = roadflags.size() > 0;
|
||||
this.roadFlags = !roadflags.isEmpty();
|
||||
parseFlags(this.getRoadFlagContainer(), roadflags);
|
||||
ConsolePlayer.getConsole().sendMessage(
|
||||
TranslatableCaption.of("flags.road_flags"),
|
||||
TagResolver.resolver("flags", Tag.inserting(Component.text(roadflags.toString())))
|
||||
);
|
||||
|
||||
loadConfiguration(config);
|
||||
}
|
||||
|
||||
public abstract void loadConfiguration(ConfigurationSection config);
|
||||
|
@ -83,6 +83,7 @@ import java.io.OutputStreamWriter;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.nio.channels.Channels;
|
||||
@ -144,7 +145,7 @@ public abstract class SchematicHandler {
|
||||
}
|
||||
final URL url;
|
||||
try {
|
||||
url = new URL(Settings.Web.URL + "?key=" + uuid + "&type=" + extension);
|
||||
url = URI.create(Settings.Web.URL + "?key=" + uuid + "&type=" + extension).toURL();
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
whenDone.run();
|
||||
@ -153,7 +154,7 @@ public abstract class SchematicHandler {
|
||||
TaskManager.runTaskAsync(() -> {
|
||||
try {
|
||||
String boundary = Long.toHexString(System.currentTimeMillis());
|
||||
URLConnection con = new URL(website).openConnection();
|
||||
URLConnection con = URI.create(website).toURL().openConnection();
|
||||
con.setDoOutput(true);
|
||||
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
|
||||
try (OutputStream output = con.getOutputStream();
|
||||
@ -498,9 +499,10 @@ public abstract class SchematicHandler {
|
||||
public List<String> getSaves(UUID uuid) {
|
||||
String rawJSON;
|
||||
try {
|
||||
String website = Settings.Web.URL + "list.php?" + uuid.toString();
|
||||
URL url = new URL(website);
|
||||
URLConnection connection = new URL(url.toString()).openConnection();
|
||||
URLConnection connection = URI.create(
|
||||
Settings.Web.URL + "list.php?" + uuid.toString())
|
||||
.toURL()
|
||||
.openConnection();
|
||||
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
|
||||
rawJSON = reader.lines().collect(Collectors.joining());
|
||||
|
@ -631,6 +631,8 @@
|
||||
"flags.flag_error_double": "Flag value must be a decimal number.",
|
||||
"flags.flag_error_music": "Flag value must be a valid music disc ID.",
|
||||
"flags.flag_error_title": "Flag value must be in the format </red><grey>\"A title\" \"The subtitle\"</grey><red>.",
|
||||
"flags.delaying_loading_area_flags": "<prefix><gray>Delaying loading flags for area `</gray><dark_aqua><area></dark_aqua><gray>` as WorldEdit is not initialised yet.</gray>",
|
||||
"flags.loading_area_flags": "<prefix><gray>Loading flags for area: </gray><dark_aqua><area></dark_aqua>",
|
||||
"flags.area_flags": "<prefix><gray>Area flags: </gray><dark_aqua><flags></dark_aqua>",
|
||||
"flags.road_flags": "<prefix><gray>Road flags: </gray><dark_aqua><flags></dark_aqua>",
|
||||
"commands.description.add": "<gray>Allow a user to build in a plot while the plot owner is online.</gray>",
|
||||
|
@ -1,5 +1,6 @@
|
||||
import com.diffplug.gradle.spotless.SpotlessPlugin
|
||||
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
|
||||
import groovy.json.JsonSlurper
|
||||
import java.net.URI
|
||||
import xyz.jpenilla.runpaper.task.RunServer
|
||||
|
||||
@ -170,8 +171,9 @@ subprojects {
|
||||
|
||||
scm {
|
||||
url.set("https://github.com/IntellectualSites/PlotSquared")
|
||||
connection.set("scm:https://IntellectualSites@github.com/IntellectualSites/PlotSquared.git")
|
||||
developerConnection.set("scm:git://github.com/IntellectualSites/PlotSquared.git")
|
||||
connection.set("scm:git:https://github.com/IntellectualSites/PlotSquared.git")
|
||||
developerConnection.set("scm:git:git@github.com:IntellectualSites/PlotSquared.git")
|
||||
tag.set("${project.version}")
|
||||
}
|
||||
|
||||
issueManagement {
|
||||
@ -218,14 +220,23 @@ tasks.getByName<Jar>("jar") {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
val supportedVersions = listOf("1.16.5", "1.17", "1.17.1", "1.18.2", "1.19", "1.19.1", "1.19.2", "1.19.3", "1.19.4", "1.20")
|
||||
val supportedVersions = listOf("1.16.5", "1.17.1", "1.18.2", "1.19.4", "1.20.1")
|
||||
tasks {
|
||||
val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL()
|
||||
val artifact = ((JsonSlurper().parse(lastSuccessfulBuildUrl) as Map<*, *>)["artifacts"] as List<*>)
|
||||
.map { it as Map<*, *> }
|
||||
.map { it["fileName"] as String }
|
||||
.first { it.contains("Bukkit") }
|
||||
|
||||
supportedVersions.forEach {
|
||||
register<RunServer>("runServer-$it") {
|
||||
minecraftVersion(it)
|
||||
pluginJars(*project(":plotsquared-bukkit").getTasksByName("shadowJar", false).map { (it as Jar).archiveFile }
|
||||
.toTypedArray())
|
||||
jvmArgs("-DPaper.IgnoreJavaVersion=true", "-Dcom.mojang.eula.agree=true")
|
||||
downloadPlugins {
|
||||
url("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/artifact/artifacts/$artifact")
|
||||
}
|
||||
group = "run paper"
|
||||
runDirectory.set(file("run-$it"))
|
||||
}
|
||||
|
@ -8,13 +8,13 @@ gson = "2.10"
|
||||
guava = "31.1-jre"
|
||||
snakeyaml = "2.0"
|
||||
adventure = "4.14.0"
|
||||
adventure-bukkit = "4.3.0"
|
||||
adventure-bukkit = "4.3.1"
|
||||
log4j = "2.19.0"
|
||||
|
||||
# Plugins
|
||||
worldedit = "7.2.15"
|
||||
worldedit = "7.2.16"
|
||||
fawe = "2.7.1"
|
||||
placeholderapi = "2.11.3"
|
||||
placeholderapi = "2.11.4"
|
||||
luckperms = "5.4"
|
||||
essentialsx = "2.20.1"
|
||||
mvdwapi = "3.1.1"
|
||||
@ -22,7 +22,7 @@ mvdwapi = "3.1.1"
|
||||
# Third party
|
||||
prtree = "2.0.1"
|
||||
aopalliance = "1.0"
|
||||
cloud-services = "1.8.3"
|
||||
cloud-services = "1.8.4"
|
||||
arkitektonika = "2.1.2"
|
||||
squirrelid = "0.3.2"
|
||||
paster = "1.1.5"
|
||||
@ -37,7 +37,7 @@ shadow = "8.1.1"
|
||||
grgit = "4.1.1"
|
||||
spotless = "6.21.0"
|
||||
nexus = "1.3.0"
|
||||
runPaper = "2.1.0"
|
||||
runPaper = "2.2.0"
|
||||
|
||||
[libraries]
|
||||
# Platform expectations
|
||||
|
Reference in New Issue
Block a user