1.16.1 Prep work

This commit is contained in:
MattBDev
2020-06-25 19:56:10 -04:00
parent 6d056847c1
commit b7debce4d4
9 changed files with 146 additions and 176 deletions

View File

@ -33,7 +33,6 @@ import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.bukkit.adapter.AdapterLoadException;
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
import com.sk89q.worldedit.bukkit.adapter.BukkitImplLoader;
import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_15_R1;
import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_15_R2;
import com.sk89q.worldedit.event.platform.CommandEvent;
import com.sk89q.worldedit.event.platform.CommandSuggestionEvent;
@ -371,7 +370,6 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
BukkitImplLoader adapterLoader = new BukkitImplLoader();
try {
adapterLoader.addClass(FAWE_Spigot_v1_14_R4.class);
adapterLoader.addClass(FAWE_Spigot_v1_15_R1.class);
adapterLoader.addClass(FAWE_Spigot_v1_15_R2.class);
} catch (Throwable throwable) {
throwable.printStackTrace();

View File

@ -26,11 +26,8 @@ import com.boydti.fawe.beta.IQueueChunk;
import com.boydti.fawe.beta.IQueueExtent;
import com.boydti.fawe.beta.implementation.packet.ChunkPacket;
import com.boydti.fawe.beta.implementation.queue.SingleThreadQueueExtent;
import com.boydti.fawe.bukkit.adapter.mc1_15.BlockMaterial_1_15;
import com.boydti.fawe.bukkit.adapter.mc1_15.BukkitAdapter_1_15;
import com.boydti.fawe.bukkit.adapter.mc1_15.BukkitGetBlocks_1_15;
import com.boydti.fawe.bukkit.adapter.mc1_15.MapChunkUtil_1_15;
import com.boydti.fawe.bukkit.adapter.mc1_15.nbt.LazyCompoundTag_1_15;
import com.boydti.fawe.bukkit.adapter.mc1_16_1.BlockMaterial_1_16_1;
import com.boydti.fawe.bukkit.adapter.mc1_16_1.nbt.LazyCompoundTag_1_16_1;
import com.google.common.io.Files;
import com.sk89q.jnbt.CompoundTag;
import com.sk89q.jnbt.Tag;
@ -48,7 +45,6 @@ import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.regions.Region;
import com.sk89q.worldedit.registry.state.Property;
import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.biome.BiomeTypes;
import com.sk89q.worldedit.world.block.BlockState;
import com.sk89q.worldedit.world.block.*;
import com.sk89q.worldedit.world.entity.EntityType;
@ -81,16 +77,16 @@ import java.util.stream.Stream;
import static com.google.common.base.Preconditions.checkNotNull;
public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements IDelegateBukkitImplAdapter<NBTBase> {
private final Spigot_v1_15_R1 parent;
public final class FAWE_Spigot_v1_16_R1 extends CachedBukkitAdapter implements IDelegateBukkitImplAdapter<NBTBase> {
private final Spigot_v1_16_R1 parent;
private char[] ibdToStateOrdinal;
// ------------------------------------------------------------------------
// Code that may break between versions of Minecraft
// ------------------------------------------------------------------------
public FAWE_Spigot_v1_15_R1() throws NoSuchFieldException, NoSuchMethodException {
this.parent = new Spigot_v1_15_R1();
public FAWE_Spigot_v1_16_R1() throws NoSuchFieldException, NoSuchMethodException {
this.parent = new Spigot_v1_16_R1();
}
@Override
@ -99,11 +95,11 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
}
private synchronized boolean init() {
if (ibdToStateOrdinal != null) return false;
if (ibdToStateOrdinal != null && ibdToStateOrdinal[1] != 0) return false;
ibdToStateOrdinal = new char[Block.REGISTRY_ID.a()]; // size
for (int i = 0; i < ibdToStateOrdinal.length; i++) {
BlockState state = BlockTypesCache.states[i];
BlockMaterial_1_15 material = (BlockMaterial_1_15) state.getMaterial();
BlockMaterial_1_16_1 material = (BlockMaterial_1_16_1) state.getMaterial();
int id = Block.REGISTRY_ID.getId(material.getState());
ibdToStateOrdinal[id] = state.getOrdinalChar();
}
@ -113,13 +109,15 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
@Override
public BlockMaterial getMaterial(BlockType blockType) {
Block block = getBlock(blockType);
return new BlockMaterial_1_15(block);
return new BlockMaterial_1_16_1(block);
}
@Override
public BlockMaterial getMaterial(BlockState state) {
IBlockData bs = ((CraftBlockData) Bukkit.createBlockData(state.getAsString())).getState();
return new BlockMaterial_1_15(bs.getBlock(), bs);
return new BlockMaterial_1_16_1(bs.getBlock(), bs);
}
public Block getBlock(BlockType blockType) {
@ -166,14 +164,14 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
World nmsWorld = nmsChunk.getWorld();
BlockPosition blockPos = new BlockPosition(x, y, z);
IBlockData blockData = ((BlockMaterial_1_15) state.getMaterial()).getState();
IBlockData blockData = ((BlockMaterial_1_16_1) state.getMaterial()).getState();
ChunkSection[] sections = nmsChunk.getSections();
int y4 = y >> 4;
ChunkSection section = sections[y4];
IBlockData existing;
if (section == null) {
existing = ((BlockMaterial_1_15) BlockTypes.AIR.getDefaultState().getMaterial()).getState();
existing = ((BlockMaterial_1_16_1) BlockTypes.AIR.getDefaultState().getMaterial()).getState();
} else {
existing = section.getType(x & 15, y & 15, z & 15);
}
@ -245,7 +243,7 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
@Override
public OptionalInt getInternalBlockStateId(BlockState state) {
BlockMaterial_1_15 material = (BlockMaterial_1_15) state.getMaterial();
BlockMaterial_1_16_1 material = (BlockMaterial_1_16_1) state.getMaterial();
IBlockData mcState = material.getCraftBlockData().getState();
return OptionalInt.of(Block.REGISTRY_ID.getId(mcState));
}
@ -286,7 +284,7 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
} catch (NullPointerException e) {
init();
return adaptToChar(ibd);
} catch (ArrayIndexOutOfBoundsException e1) {
} catch(ArrayIndexOutOfBoundsException e1){
Fawe.debug("Attempted to convert " + ibd.getBlock() + " with ID " + Block.REGISTRY_ID.getId(ibd) + " to char. ibdToStateOrdinal length: " + ibdToStateOrdinal.length + ". Defaulting to air!");
return 0;
}
@ -295,7 +293,7 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
@Override
public <B extends BlockStateHolder<B>> BlockData adapt(B state) {
BlockMaterial_1_15 material = (BlockMaterial_1_15) state.getMaterial();
BlockMaterial_1_16_1 material = (BlockMaterial_1_16_1) state.getMaterial();
return material.getCraftBlockData();
}
@ -304,12 +302,12 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
this.setBlock(position.getChunk(), position.getBlockX(), position.getBlockY(), position.getBlockZ(), previousType, true);
}
private MapChunkUtil_1_15 mapUtil = new MapChunkUtil_1_15();
private MapChunkUtil_1_16_1 mapUtil = new MapChunkUtil_1_16_1();
@Override
public void sendFakeChunk(org.bukkit.World world, Player player, ChunkPacket packet) {
WorldServer nmsWorld = ((CraftWorld) world).getHandle();
PlayerChunk map = BukkitAdapter_1_15.getPlayerChunk(nmsWorld, packet.getChunkX(), packet.getChunkZ());
PlayerChunk map = BukkitAdapter_1_16_1.getPlayerChunk(nmsWorld, packet.getChunkX(), packet.getChunkZ());
if (map != null && map.hasBeenLoaded()) {
boolean flag = false;
PlayerChunk.d players = map.players;
@ -362,8 +360,8 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
@Override
public NBTBase fromNative(Tag foreign) {
if (foreign instanceof LazyCompoundTag_1_15) {
return ((LazyCompoundTag_1_15) foreign).get();
if (foreign instanceof LazyCompoundTag_1_16_1) {
return ((LazyCompoundTag_1_16_1) foreign).get();
}
return parent.fromNative(foreign);
}
@ -399,7 +397,7 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
env,
gen){
@Override
public boolean addEntityChunk(net.minecraft.server.v1_15_R1.Entity entity) {
public boolean addEntityChunk(Entity entity) {
//Fixes #320; Prevent adding entities so we aren't attempting to spawn them asynchronously
return false;
}
@ -410,7 +408,7 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
Fawe.get().getQueueHandler().startSet(true);
try {
IQueueExtent<IQueueChunk> extent = new SingleThreadQueueExtent();
extent.init(null, (x, z) -> new BukkitGetBlocks_1_15(freshWorld, x, z) {
extent.init(null, (x, z) -> new BukkitGetBlocks_1_16_1(freshWorld, x, z) {
@Override
public Chunk ensureLoaded(World nmsWorld, int X, int Z) {
Chunk cached = nmsWorld.getChunkIfLoaded(X, Z);
@ -446,7 +444,7 @@ public final class FAWE_Spigot_v1_15_R1 extends CachedBukkitAdapter implements I
@Override
public IChunkGet get(org.bukkit.World world, int chunkX, int chunkZ) {
return new BukkitGetBlocks_1_15(world, chunkX, chunkZ);
return new BukkitGetBlocks_1_16_1(world, chunkX, chunkZ);
}
@Override