mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-18 21:34:43 +02:00
Compare commits
15 Commits
editorconf
...
fix/v6/hom
Author | SHA1 | Date | |
---|---|---|---|
a85cab7261 | |||
9cd0ffb709 | |||
5fd314818f | |||
8d76ec549e | |||
d354c626c5 | |||
78c107f176 | |||
bbf1e4fe61 | |||
febac6fa40 | |||
99ee8a780d | |||
577a0d8ed9 | |||
02ae14894a | |||
78dbe7fbbc | |||
669293566b | |||
707c7be5bd | |||
becd8c4eaf |
@ -336,6 +336,48 @@ ij_kotlin_wrap_elvis_expressions = 1
|
|||||||
ij_kotlin_wrap_expression_body_functions = 0
|
ij_kotlin_wrap_expression_body_functions = 0
|
||||||
ij_kotlin_wrap_first_method_in_call_chain = false
|
ij_kotlin_wrap_first_method_in_call_chain = false
|
||||||
|
|
||||||
|
|
||||||
|
[*.json]
|
||||||
|
indent_size = 2
|
||||||
|
ij_json_keep_blank_lines_in_code = 0
|
||||||
|
ij_json_keep_indents_on_empty_lines = false
|
||||||
|
ij_json_keep_line_breaks = true
|
||||||
|
ij_json_space_after_colon = true
|
||||||
|
ij_json_space_after_comma = true
|
||||||
|
ij_json_space_before_colon = true
|
||||||
|
ij_json_space_before_comma = false
|
||||||
|
ij_json_spaces_within_braces = false
|
||||||
|
ij_json_spaces_within_brackets = false
|
||||||
|
ij_json_wrap_long_lines = false
|
||||||
|
|
||||||
|
[{*.htm, *.html, *.sht, *.shtm, *.shtml}]
|
||||||
|
ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3
|
||||||
|
ij_html_align_attributes = true
|
||||||
|
ij_html_align_text = false
|
||||||
|
ij_html_attribute_wrap = normal
|
||||||
|
ij_html_block_comment_at_first_column = true
|
||||||
|
ij_html_do_not_align_children_of_min_lines = 0
|
||||||
|
ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p
|
||||||
|
ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot
|
||||||
|
ij_html_enforce_quotes = false
|
||||||
|
ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var
|
||||||
|
ij_html_keep_blank_lines = 2
|
||||||
|
ij_html_keep_indents_on_empty_lines = false
|
||||||
|
ij_html_keep_line_breaks = true
|
||||||
|
ij_html_keep_line_breaks_in_text = true
|
||||||
|
ij_html_keep_whitespaces = false
|
||||||
|
ij_html_keep_whitespaces_inside = span, pre, textarea
|
||||||
|
ij_html_line_comment_at_first_column = true
|
||||||
|
ij_html_new_line_after_last_attribute = never
|
||||||
|
ij_html_new_line_before_first_attribute = never
|
||||||
|
ij_html_quote_style = double
|
||||||
|
ij_html_remove_new_line_before_tags = br
|
||||||
|
ij_html_space_after_tag_name = false
|
||||||
|
ij_html_space_around_equality_in_attribute = false
|
||||||
|
ij_html_space_inside_empty_tag = false
|
||||||
|
ij_html_text_wrap = normal
|
||||||
|
ij_html_uniform_ident = false
|
||||||
|
|
||||||
[{*.yaml, *.yml}]
|
[{*.yaml, *.yml}]
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
ij_yaml_keep_indents_on_empty_lines = false
|
ij_yaml_keep_indents_on_empty_lines = false
|
||||||
|
@ -122,9 +122,6 @@ public class Plot {
|
|||||||
private static final MiniMessage MINI_MESSAGE = MiniMessage.builder().build();
|
private static final MiniMessage MINI_MESSAGE = MiniMessage.builder().build();
|
||||||
private static final Cleaner CLEANER = Cleaner.create();
|
private static final Cleaner CLEANER = Cleaner.create();
|
||||||
|
|
||||||
static Set<Plot> connected_cache;
|
|
||||||
static Set<CuboidRegion> regions_cache;
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
FLAG_DECIMAL_FORMAT.setMaximumFractionDigits(340);
|
FLAG_DECIMAL_FORMAT.setMaximumFractionDigits(340);
|
||||||
}
|
}
|
||||||
@ -207,6 +204,8 @@ public class Plot {
|
|||||||
*/
|
*/
|
||||||
private Plot origin;
|
private Plot origin;
|
||||||
|
|
||||||
|
private Set<Plot> connectedCache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for a new plot.
|
* Constructor for a new plot.
|
||||||
* (Only changes after plot.create() will be properly set in the database)
|
* (Only changes after plot.create() will be properly set in the database)
|
||||||
@ -576,7 +575,14 @@ public class Plot {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final Set<Plot> connected = getConnectedPlots();
|
final Set<Plot> connected = getConnectedPlots();
|
||||||
return connected.stream().anyMatch(current -> uuid.equals(current.getOwner()));
|
for (Plot current : connected) {
|
||||||
|
// can skip ServerPlotFlag check in getOwner()
|
||||||
|
// as flags are synchronized between plots
|
||||||
|
if (uuid.equals(current.getOwnerAbs())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1294,6 +1300,7 @@ public class Plot {
|
|||||||
DBFunc.delete(current);
|
DBFunc.delete(current);
|
||||||
current.setOwnerAbs(null);
|
current.setOwnerAbs(null);
|
||||||
current.settings = null;
|
current.settings = null;
|
||||||
|
current.clearCache();
|
||||||
for (final PlotPlayer<?> pp : players) {
|
for (final PlotPlayer<?> pp : players) {
|
||||||
this.plotListener.plotEntry(pp, current);
|
this.plotListener.plotEntry(pp, current);
|
||||||
}
|
}
|
||||||
@ -1864,6 +1871,7 @@ public class Plot {
|
|||||||
this.area.removePlot(this.id);
|
this.area.removePlot(this.id);
|
||||||
this.id = plot.getId();
|
this.id = plot.getId();
|
||||||
this.area.addPlotAbs(this);
|
this.area.addPlotAbs(this);
|
||||||
|
clearCache();
|
||||||
DBFunc.movePlot(this, plot);
|
DBFunc.movePlot(this, plot);
|
||||||
TaskManager.runTaskLater(whenDone, TaskTime.ticks(1L));
|
TaskManager.runTaskLater(whenDone, TaskTime.ticks(1L));
|
||||||
return true;
|
return true;
|
||||||
@ -2128,17 +2136,16 @@ public class Plot {
|
|||||||
this.origin.origin = base;
|
this.origin.origin = base;
|
||||||
other.origin = base;
|
other.origin = base;
|
||||||
this.origin = base;
|
this.origin = base;
|
||||||
connected_cache = null;
|
this.connectedCache = null;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.origin != null) {
|
if (this.origin != null) {
|
||||||
this.origin.origin = null;
|
this.origin.origin = null;
|
||||||
this.origin = null;
|
this.origin = null;
|
||||||
}
|
}
|
||||||
connected_cache = null;
|
this.connectedCache = null;
|
||||||
}
|
}
|
||||||
DBFunc.setMerged(this, this.getSettings().getMerged());
|
DBFunc.setMerged(this, this.getSettings().getMerged());
|
||||||
regions_cache = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2173,8 +2180,7 @@ public class Plot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void clearCache() {
|
public void clearCache() {
|
||||||
connected_cache = null;
|
this.connectedCache = null;
|
||||||
regions_cache = null;
|
|
||||||
if (this.origin != null) {
|
if (this.origin != null) {
|
||||||
this.origin.origin = null;
|
this.origin.origin = null;
|
||||||
this.origin = null;
|
this.origin = null;
|
||||||
@ -2301,10 +2307,9 @@ public class Plot {
|
|||||||
if (!this.isMerged()) {
|
if (!this.isMerged()) {
|
||||||
return Collections.singleton(this);
|
return Collections.singleton(this);
|
||||||
}
|
}
|
||||||
if (connected_cache != null && connected_cache.contains(this)) {
|
if (this.connectedCache != null && this.connectedCache.contains(this)) {
|
||||||
return connected_cache;
|
return this.connectedCache;
|
||||||
}
|
}
|
||||||
regions_cache = null;
|
|
||||||
|
|
||||||
HashSet<Plot> tmpSet = new HashSet<>();
|
HashSet<Plot> tmpSet = new HashSet<>();
|
||||||
tmpSet.add(this);
|
tmpSet.add(this);
|
||||||
@ -2409,7 +2414,7 @@ public class Plot {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
connected_cache = tmpSet;
|
this.connectedCache = tmpSet;
|
||||||
return tmpSet;
|
return tmpSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2421,19 +2426,15 @@ public class Plot {
|
|||||||
* @return all regions within the plot
|
* @return all regions within the plot
|
||||||
*/
|
*/
|
||||||
public @NonNull Set<CuboidRegion> getRegions() {
|
public @NonNull Set<CuboidRegion> getRegions() {
|
||||||
if (regions_cache != null && connected_cache != null && connected_cache.contains(this)) {
|
|
||||||
return regions_cache;
|
|
||||||
}
|
|
||||||
if (!this.isMerged()) {
|
if (!this.isMerged()) {
|
||||||
Location pos1 = this.getBottomAbs().withY(getArea().getMinBuildHeight());
|
Location pos1 = this.getBottomAbs().withY(getArea().getMinBuildHeight());
|
||||||
Location pos2 = this.getTopAbs().withY(getArea().getMaxBuildHeight());
|
Location pos2 = this.getTopAbs().withY(getArea().getMaxBuildHeight());
|
||||||
connected_cache = Sets.newHashSet(this);
|
this.connectedCache = Sets.newHashSet(this);
|
||||||
CuboidRegion rg = new CuboidRegion(pos1.getBlockVector3(), pos2.getBlockVector3());
|
CuboidRegion rg = new CuboidRegion(pos1.getBlockVector3(), pos2.getBlockVector3());
|
||||||
regions_cache = Collections.singleton(rg);
|
return Collections.singleton(rg);
|
||||||
return regions_cache;
|
|
||||||
}
|
}
|
||||||
Set<Plot> plots = this.getConnectedPlots();
|
Set<Plot> plots = this.getConnectedPlots();
|
||||||
Set<CuboidRegion> regions = regions_cache = new HashSet<>();
|
Set<CuboidRegion> regions = new HashSet<>();
|
||||||
Set<PlotId> visited = new HashSet<>();
|
Set<PlotId> visited = new HashSet<>();
|
||||||
for (Plot current : plots) {
|
for (Plot current : plots) {
|
||||||
if (visited.contains(current.getId())) {
|
if (visited.contains(current.getId())) {
|
||||||
|
@ -263,6 +263,7 @@ public final class PlotModificationManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Plot current = queue.poll();
|
Plot current = queue.poll();
|
||||||
|
current.clearCache();
|
||||||
if (plot.getArea().getTerrain() != PlotAreaTerrainType.NONE) {
|
if (plot.getArea().getTerrain() != PlotAreaTerrainType.NONE) {
|
||||||
try {
|
try {
|
||||||
PlotSquared.platform().regionManager().regenerateRegion(
|
PlotSquared.platform().regionManager().regenerateRegion(
|
||||||
@ -327,6 +328,7 @@ public final class PlotModificationManager {
|
|||||||
ArrayList<PlotId> ids = new ArrayList<>(plots.size());
|
ArrayList<PlotId> ids = new ArrayList<>(plots.size());
|
||||||
for (Plot current : plots) {
|
for (Plot current : plots) {
|
||||||
current.setHome(null);
|
current.setHome(null);
|
||||||
|
current.clearCache();
|
||||||
ids.add(current.getId());
|
ids.add(current.getId());
|
||||||
}
|
}
|
||||||
this.plot.clearRatings();
|
this.plot.clearRatings();
|
||||||
@ -478,8 +480,7 @@ public final class PlotModificationManager {
|
|||||||
this.plot.updateWorldBorder();
|
this.plot.updateWorldBorder();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Plot.connected_cache = null;
|
this.plot.clearCache();
|
||||||
Plot.regions_cache = null;
|
|
||||||
this.plot.getTrusted().clear();
|
this.plot.getTrusted().clear();
|
||||||
this.plot.getMembers().clear();
|
this.plot.getMembers().clear();
|
||||||
this.plot.getDenied().clear();
|
this.plot.getDenied().clear();
|
||||||
@ -630,6 +631,7 @@ public final class PlotModificationManager {
|
|||||||
if (queue.size() > 0) {
|
if (queue.size() > 0) {
|
||||||
queue.enqueue();
|
queue.enqueue();
|
||||||
}
|
}
|
||||||
|
visited.forEach(Plot::clearCache);
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@ import com.plotsquared.core.plot.PlotArea;
|
|||||||
import com.plotsquared.core.plot.world.PlotAreaManager;
|
import com.plotsquared.core.plot.world.PlotAreaManager;
|
||||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
class GlobalPlotProvider implements PlotProvider {
|
class GlobalPlotProvider implements PlotProvider {
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ class GlobalPlotProvider implements PlotProvider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Plot> getPlots() {
|
public Collection<Plot> getPlots() {
|
||||||
final Set<Plot> plots = new HashSet<>();
|
final List<Plot> plots = new ArrayList<>();
|
||||||
for (final PlotArea plotArea : this.plotAreaManager.getAllPlotAreas()) {
|
for (final PlotArea plotArea : this.plotAreaManager.getAllPlotAreas()) {
|
||||||
plots.addAll(plotArea.getPlots());
|
plots.addAll(plotArea.getPlots());
|
||||||
}
|
}
|
||||||
|
34
HEADER.txt
34
HEADER.txt
@ -1,16 +1,18 @@
|
|||||||
PlotSquared, a land and world management plugin for Minecraft.
|
/*
|
||||||
Copyright (C) IntellectualSites <https://intellectualsites.com>
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
Copyright (C) IntellectualSites team and contributors
|
* 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
|
* This program is free software: you can redistribute it and/or modify
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
* it under the terms of the GNU General Public License as published by
|
||||||
(at your option) any later version.
|
* 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
|
* This program is distributed in the hope that it will be useful,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
GNU General Public License for more details.
|
* 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/>.
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
|
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
|
||||||
import org.cadixdev.gradle.licenser.LicenseExtension
|
|
||||||
import org.cadixdev.gradle.licenser.Licenser
|
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
|
import com.diffplug.gradle.spotless.SpotlessPlugin
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
java
|
java
|
||||||
@ -10,7 +9,7 @@ plugins {
|
|||||||
signing
|
signing
|
||||||
|
|
||||||
alias(libs.plugins.shadow)
|
alias(libs.plugins.shadow)
|
||||||
alias(libs.plugins.licenser)
|
alias(libs.plugins.spotless)
|
||||||
alias(libs.plugins.grgit)
|
alias(libs.plugins.grgit)
|
||||||
alias(libs.plugins.nexus)
|
alias(libs.plugins.nexus)
|
||||||
|
|
||||||
@ -19,7 +18,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "com.plotsquared"
|
group = "com.plotsquared"
|
||||||
version = "6.10.6-SNAPSHOT"
|
version = "6.10.9-SNAPSHOT"
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
group = rootProject.group
|
group = rootProject.group
|
||||||
@ -57,7 +56,7 @@ subprojects {
|
|||||||
plugin<JavaLibraryPlugin>()
|
plugin<JavaLibraryPlugin>()
|
||||||
plugin<MavenPublishPlugin>()
|
plugin<MavenPublishPlugin>()
|
||||||
plugin<ShadowPlugin>()
|
plugin<ShadowPlugin>()
|
||||||
plugin<Licenser>()
|
plugin<SpotlessPlugin>()
|
||||||
plugin<SigningPlugin>()
|
plugin<SigningPlugin>()
|
||||||
|
|
||||||
plugin<EclipsePlugin>()
|
plugin<EclipsePlugin>()
|
||||||
@ -87,10 +86,11 @@ subprojects {
|
|||||||
attributes.attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 17)
|
attributes.attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 17)
|
||||||
}
|
}
|
||||||
|
|
||||||
configure<LicenseExtension> {
|
spotless {
|
||||||
header(rootProject.file("HEADER.txt"))
|
java {
|
||||||
include("**/*.java")
|
licenseHeaderFile(rootProject.file("HEADER.txt"))
|
||||||
newLine.set(false)
|
target("**/*.java")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
|
@ -21,7 +21,7 @@ http4j = "1.3"
|
|||||||
# Gradle plugins
|
# Gradle plugins
|
||||||
shadow = "7.1.2"
|
shadow = "7.1.2"
|
||||||
grgit = "4.1.1"
|
grgit = "4.1.1"
|
||||||
licenser = "0.6.1"
|
spotless = "6.12.1"
|
||||||
nexus = "1.1.0"
|
nexus = "1.1.0"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
@ -49,5 +49,5 @@ http4j = { group = "com.intellectualsites.http", name = "HTTP4J", version.ref =
|
|||||||
[plugins]
|
[plugins]
|
||||||
shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }
|
shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }
|
||||||
grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" }
|
grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" }
|
||||||
licenser = { id = "org.cadixdev.licenser", version.ref = "licenser" }
|
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
|
||||||
nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus" }
|
nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus" }
|
||||||
|
Reference in New Issue
Block a user