geforkt von Mirrors/FastAsyncWorldEdit
fix: correctly handle creation of extents in EditSessionBuilder (#2232)
- Add regionExtent process to the queue (fixes #2227) - Correctly wrap extents in each other
Dieser Commit ist enthalten in:
Ursprung
1b0fb9ed48
Commit
85f5006a0b
@ -531,16 +531,14 @@ public final class EditSessionBuilder {
|
|||||||
}
|
}
|
||||||
if (allowedRegions == null && Settings.settings().REGION_RESTRICTIONS) {
|
if (allowedRegions == null && Settings.settings().REGION_RESTRICTIONS) {
|
||||||
if (actor != null && !actor.hasPermission("fawe.bypass.regions")) {
|
if (actor != null && !actor.hasPermission("fawe.bypass.regions")) {
|
||||||
if (actor instanceof Player) {
|
if (actor instanceof Player player) {
|
||||||
Player player = (Player) actor;
|
|
||||||
allowedRegions = player.getAllowedRegions();
|
allowedRegions = player.getAllowedRegions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (disallowedRegions == null && Settings.settings().REGION_RESTRICTIONS && Settings.settings().REGION_RESTRICTIONS_OPTIONS.ALLOW_BLACKLISTS) {
|
if (disallowedRegions == null && Settings.settings().REGION_RESTRICTIONS && Settings.settings().REGION_RESTRICTIONS_OPTIONS.ALLOW_BLACKLISTS) {
|
||||||
if (actor != null && !actor.hasPermission("fawe.bypass.regions")) {
|
if (actor != null && !actor.hasPermission("fawe.bypass.regions")) {
|
||||||
if (actor instanceof Player) {
|
if (actor instanceof Player player) {
|
||||||
Player player = (Player) actor;
|
|
||||||
disallowedRegions = player.getDisallowedRegions();
|
disallowedRegions = player.getDisallowedRegions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -561,6 +559,9 @@ public final class EditSessionBuilder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (placeChunks && regionExtent != null) {
|
||||||
|
queue.addProcessor(regionExtent);
|
||||||
|
}
|
||||||
// There's no need to do the below (and it'll also just be a pain to implement) if we're not placing chunks
|
// There's no need to do the below (and it'll also just be a pain to implement) if we're not placing chunks
|
||||||
if (placeChunks) {
|
if (placeChunks) {
|
||||||
if (((relightMode != null && relightMode != RelightMode.NONE) || (relightMode == null && Settings.settings().LIGHTING.MODE > 0))) {
|
if (((relightMode != null && relightMode != RelightMode.NONE) || (relightMode == null && Settings.settings().LIGHTING.MODE > 0))) {
|
||||||
@ -597,10 +598,9 @@ public final class EditSessionBuilder {
|
|||||||
this.extent = regionExtent;
|
this.extent = regionExtent;
|
||||||
}
|
}
|
||||||
if (this.limit != null && this.limit.STRIP_NBT != null && !this.limit.STRIP_NBT.isEmpty()) {
|
if (this.limit != null && this.limit.STRIP_NBT != null && !this.limit.STRIP_NBT.isEmpty()) {
|
||||||
|
this.extent = new StripNBTExtent(this.extent, this.limit.STRIP_NBT);
|
||||||
if (placeChunks) {
|
if (placeChunks) {
|
||||||
queue.addProcessor(new StripNBTExtent(this.extent, this.limit.STRIP_NBT));
|
queue.addProcessor((IBatchProcessor) this.extent);
|
||||||
} else {
|
|
||||||
this.extent = new StripNBTExtent(this.extent, this.limit.STRIP_NBT);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.limit != null && !this.limit.isUnlimited()) {
|
if (this.limit != null && !this.limit.isUnlimited()) {
|
||||||
@ -613,10 +613,9 @@ public final class EditSessionBuilder {
|
|||||||
}
|
}
|
||||||
Set<PropertyRemap<?>> remaps = this.limit.REMAP_PROPERTIES;
|
Set<PropertyRemap<?>> remaps = this.limit.REMAP_PROPERTIES;
|
||||||
if (!limitBlocks.isEmpty() || (remaps != null && !remaps.isEmpty())) {
|
if (!limitBlocks.isEmpty() || (remaps != null && !remaps.isEmpty())) {
|
||||||
|
this.extent = new DisallowedBlocksExtent(this.extent, limitBlocks, remaps);
|
||||||
if (placeChunks) {
|
if (placeChunks) {
|
||||||
queue.addProcessor(new DisallowedBlocksExtent(this.extent, limitBlocks, remaps));
|
queue.addProcessor((IBatchProcessor) this.extent);
|
||||||
} else {
|
|
||||||
this.extent = new DisallowedBlocksExtent(this.extent, limitBlocks, remaps);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren