mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-05 12:36:40 +00:00
This commit is contained in:
@ -108,14 +108,6 @@ public class FaweBukkit implements IFawe, Listener {
|
||||
if (version.isEqualOrHigherThan(MinecraftVersion.CAVES_18) && Settings.settings().HISTORY.SMALL_EDITS) {
|
||||
LOGGER.warn("Small-edits enabled (maximum y range of 0 -> 256) with 1.18 world heights. Are you sure?");
|
||||
}
|
||||
|
||||
if (version.isEqualOrLowerThan(MinecraftVersion.ONE_DOT_SIXTEEN_EOL)) {
|
||||
LOGGER.warn("You are running Minecraft 1.16.5. This version has been released over two years ago (January 2021).");
|
||||
LOGGER.warn("FastAsyncWorldEdit will stop operating on this version in the near future.");
|
||||
LOGGER.warn("Neither Mojang, nor Spigot or other software vendors support this version anymore." +
|
||||
"Please update your server to a newer version of Minecraft (1.20+) to continue receiving updates and " +
|
||||
"support.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,72 @@
|
||||
package com.fastasyncworldedit.bukkit.adapter;
|
||||
|
||||
import com.fastasyncworldedit.core.util.TaskManager;
|
||||
import com.sk89q.worldedit.EditSession;
|
||||
import com.sk89q.worldedit.bukkit.BukkitAdapter;
|
||||
import com.sk89q.worldedit.bukkit.BukkitWorld;
|
||||
import com.sk89q.worldedit.math.BlockVector3;
|
||||
import com.sk89q.worldedit.util.TreeGenerator;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.TreeType;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.BlockState;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A base class for version-specific implementations of the BukkitImplAdapter
|
||||
*
|
||||
* @param <TAG> the version-specific NBT tag type
|
||||
* @param <SERVER_LEVEL> the version-specific ServerLevel type
|
||||
*/
|
||||
public abstract class FaweAdapter<TAG, SERVER_LEVEL> extends CachedBukkitAdapter implements IDelegateBukkitImplAdapter<TAG> {
|
||||
|
||||
@Override
|
||||
public boolean generateTree(
|
||||
final TreeGenerator.TreeType treeType,
|
||||
final EditSession editSession,
|
||||
BlockVector3 blockVector3,
|
||||
final World world
|
||||
) {
|
||||
TreeType bukkitType = BukkitWorld.toBukkitTreeType(treeType);
|
||||
if (bukkitType == TreeType.CHORUS_PLANT) {
|
||||
// bukkit skips the feature gen which does this offset normally, so we have to add it back
|
||||
blockVector3 = blockVector3.add(BlockVector3.UNIT_Y);
|
||||
}
|
||||
BlockVector3 target = blockVector3;
|
||||
SERVER_LEVEL serverLevel = getServerLevel(world);
|
||||
List<BlockState> placed = TaskManager.taskManager().sync(() -> {
|
||||
preCaptureStates(serverLevel);
|
||||
try {
|
||||
if (!world.generateTree(BukkitAdapter.adapt(world, target), bukkitType)) {
|
||||
return null;
|
||||
}
|
||||
return getCapturedBlockStatesCopy(serverLevel);
|
||||
} finally {
|
||||
postCaptureBlockStates(serverLevel);
|
||||
}
|
||||
});
|
||||
|
||||
if (placed == null || placed.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
for (BlockState blockState : placed) {
|
||||
if (blockState == null || blockState.getType() == Material.AIR) {
|
||||
continue;
|
||||
}
|
||||
editSession.setBlock(blockState.getX(), blockState.getY(), blockState.getZ(),
|
||||
BukkitAdapter.adapt(blockState.getBlockData())
|
||||
);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
protected abstract void preCaptureStates(SERVER_LEVEL serverLevel);
|
||||
|
||||
protected abstract List<BlockState> getCapturedBlockStatesCopy(SERVER_LEVEL serverLevel);
|
||||
|
||||
protected abstract void postCaptureBlockStates(SERVER_LEVEL serverLevel);
|
||||
|
||||
protected abstract SERVER_LEVEL getServerLevel(World world);
|
||||
|
||||
}
|
@ -160,6 +160,10 @@ public class FaweDelegateRegionManager {
|
||||
);
|
||||
editSession.setBlocks(onTop, air);
|
||||
}
|
||||
|
||||
FlatRegionFunction replace = new BiomeReplace(editSession, biome);
|
||||
FlatRegionVisitor visitor = new FlatRegionVisitor((CuboidRegion) floorRegion, replace, editSession);
|
||||
Operations.completeLegacy(visitor);
|
||||
}
|
||||
|
||||
if (hybridPlotWorld.PLOT_SCHEMATIC) {
|
||||
|
@ -13,7 +13,6 @@ import java.util.regex.Pattern;
|
||||
public class MinecraftVersion implements Comparable<MinecraftVersion> {
|
||||
|
||||
public static final MinecraftVersion NETHER = new MinecraftVersion(1, 16);
|
||||
public static final MinecraftVersion ONE_DOT_SIXTEEN_EOL = new MinecraftVersion(1, 16, 5);
|
||||
public static final MinecraftVersion CAVES_17 = new MinecraftVersion(1, 17);
|
||||
public static final MinecraftVersion CAVES_18 = new MinecraftVersion(1, 18);
|
||||
private static MinecraftVersion current = null;
|
||||
|
@ -21,7 +21,7 @@ permissions:
|
||||
default: op
|
||||
children:
|
||||
fawe.bypass.regions: true
|
||||
fawe.limit.*: true
|
||||
fawe.limit.unlimited: true
|
||||
fawe.tips:
|
||||
default: op
|
||||
fawe.admin:
|
||||
|
Reference in New Issue
Block a user