As Jesse would say... *

This commit is contained in:
MattBDev
2019-06-20 20:05:18 -04:00
parent 9d1117303c
commit 0313320816
146 changed files with 906 additions and 2252 deletions

View File

@ -6,7 +6,6 @@ import com.boydti.fawe.bukkit.chat.BukkitChatManager;
import com.boydti.fawe.bukkit.listener.AsyncTabCompleteListener;
import com.boydti.fawe.bukkit.listener.BrushListener;
import com.boydti.fawe.bukkit.listener.BukkitImageListener;
import com.boydti.fawe.bukkit.listener.CFIPacketListener;
import com.boydti.fawe.bukkit.listener.RenderListener;
import com.boydti.fawe.bukkit.listener.SyncTabCompleteListener;
import com.boydti.fawe.bukkit.regions.ASkyBlockHook;
@ -429,7 +428,7 @@ public class FaweBukkit implements IFawe, Listener {
final Plugin factionsPlugin = Bukkit.getServer().getPluginManager().getPlugin("Factions");
if ((factionsPlugin != null) && factionsPlugin.isEnabled()) {
try {
managers.add(new FactionsFeature(factionsPlugin, this));
managers.add(new FactionsFeature(factionsPlugin));
Fawe.debug("Plugin 'Factions' found. Using it now.");
} catch (final Throwable e) {
try {

View File

@ -1,6 +1,5 @@
package com.boydti.fawe.bukkit.regions;
import com.boydti.fawe.bukkit.FaweBukkit;
import com.boydti.fawe.object.FawePlayer;
import com.massivecraft.factions.entity.BoardColl;
import com.massivecraft.factions.entity.Faction;
@ -13,11 +12,9 @@ import org.bukkit.event.Listener;
import org.bukkit.plugin.Plugin;
public class FactionsFeature extends BukkitMaskManager implements Listener {
FaweBukkit plugin;
public FactionsFeature(final Plugin factionsPlugin, final FaweBukkit p3) {
public FactionsFeature(final Plugin factionsPlugin) {
super(factionsPlugin.getName());
this.plugin = p3;
}
@Override

View File

@ -296,7 +296,7 @@ public class BukkitChunk_1_13 extends IntFaweChunk<Chunk, BukkitQueue_1_13> {
@Override
public Chunk getNewChunk() {
return ((BukkitQueue_1_13) getParent()).getWorld().getChunkAt(getX(), getZ());
return getParent().getWorld().getChunkAt(getX(), getZ());
}
public void optimize() {

View File

@ -1,12 +1,10 @@
package com.boydti.fawe.bukkit.v1_13;
import com.boydti.fawe.Fawe;
import com.boydti.fawe.FaweCache;
import com.boydti.fawe.bukkit.BukkitPlayer;
import com.boydti.fawe.bukkit.adapter.v1_13_1.BlockMaterial_1_13;
import com.boydti.fawe.bukkit.adapter.v1_13_1.Spigot_v1_13_R2;
import com.boydti.fawe.bukkit.v0.BukkitQueue_0;
import com.boydti.fawe.config.BBC;
import com.boydti.fawe.config.Settings;
import com.boydti.fawe.example.IntFaweChunk;
import com.boydti.fawe.jnbt.anvil.BitArray4096;
@ -26,32 +24,7 @@ import com.sk89q.worldedit.world.block.BlockState;
import com.sk89q.worldedit.world.block.BlockTypes;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import net.minecraft.server.v1_13_R2.BiomeBase;
import net.minecraft.server.v1_13_R2.Block;
import net.minecraft.server.v1_13_R2.BlockPosition;
import net.minecraft.server.v1_13_R2.ChunkProviderServer;
import net.minecraft.server.v1_13_R2.ChunkSection;
import net.minecraft.server.v1_13_R2.DataBits;
import net.minecraft.server.v1_13_R2.DataPalette;
import net.minecraft.server.v1_13_R2.DataPaletteBlock;
import net.minecraft.server.v1_13_R2.DataPaletteHash;
import net.minecraft.server.v1_13_R2.DataPaletteLinear;
import net.minecraft.server.v1_13_R2.Entity;
import net.minecraft.server.v1_13_R2.EntityPlayer;
import net.minecraft.server.v1_13_R2.EnumSkyBlock;
import net.minecraft.server.v1_13_R2.GameProfileSerializer;
import net.minecraft.server.v1_13_R2.IBlockData;
import net.minecraft.server.v1_13_R2.NBTTagCompound;
import net.minecraft.server.v1_13_R2.Packet;
import net.minecraft.server.v1_13_R2.PacketDataSerializer;
import net.minecraft.server.v1_13_R2.PacketPlayOutMultiBlockChange;
import net.minecraft.server.v1_13_R2.PlayerChunk;
import net.minecraft.server.v1_13_R2.PlayerChunkMap;
import net.minecraft.server.v1_13_R2.RegistryID;
import net.minecraft.server.v1_13_R2.TileEntity;
import net.minecraft.server.v1_13_R2.WorldChunkManager;
import net.minecraft.server.v1_13_R2.WorldData;
import net.minecraft.server.v1_13_R2.WorldServer;
import net.minecraft.server.v1_13_R2.*;
import org.bukkit.Chunk;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_13_R2.CraftChunk;
@ -65,51 +38,50 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.atomic.LongAdder;
import java.util.function.Supplier;
public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R2.Chunk, ChunkSection[], ChunkSection> {
protected final static Field fieldBits;
protected final static Field fieldPalette;
protected final static Field fieldSize;
final static Field fieldBits;
final static Field fieldPalette;
final static Field fieldSize;
protected final static Field fieldHashBlocks;
protected final static Field fieldLinearBlocks;
protected final static Field fieldHashIndex;
protected final static Field fieldRegistryb;
protected final static Field fieldRegistryc;
protected final static Field fieldRegistryd;
protected final static Field fieldRegistrye;
protected final static Field fieldRegistryf;
final static Field fieldHashBlocks;
final static Field fieldLinearBlocks;
private final static Field fieldHashIndex;
final static Field fieldRegistryb;
final static Field fieldRegistryc;
final static Field fieldRegistryd;
final static Field fieldRegistrye;
final static Field fieldRegistryf;
protected final static Field fieldLinearIndex;
protected final static Field fieldDefaultBlock;
final static Field fieldLinearIndex;
final static Field fieldDefaultBlock;
protected final static Field fieldFluidCount;
protected final static Field fieldTickingBlockCount;
protected final static Field fieldNonEmptyBlockCount;
protected final static Field fieldSection;
protected final static Field fieldLiquidCount;
protected final static Field fieldEmittedLight;
protected final static Field fieldSkyLight;
private final static Field fieldFluidCount;
final static Field fieldTickingBlockCount;
final static Field fieldNonEmptyBlockCount;
final static Field fieldSection;
final static Field fieldLiquidCount;
private final static Field fieldEmittedLight;
private final static Field fieldSkyLight;
// protected final static Field fieldBiomes;
protected final static Field fieldChunkGenerator;
protected final static Field fieldSeed;
private final static Field fieldChunkGenerator;
private final static Field fieldSeed;
// protected final static Field fieldBiomeCache;
// protected final static Field fieldBiomes2;
protected final static Field fieldGenLayer1;
protected final static Field fieldGenLayer2;
protected final static Field fieldSave;
private final static Field fieldGenLayer1;
private final static Field fieldGenLayer2;
private final static Field fieldSave;
// protected final static MutableGenLayer genLayer;
protected final static ChunkSection emptySection;
private final static ChunkSection emptySection;
// protected static final Method methodResize;
protected final static Field fieldDirtyCount;
protected final static Field fieldDirtyBits;
private final static Field fieldDirtyCount;
private final static Field fieldDirtyBits;
static {
try {
@ -131,10 +103,8 @@ public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R
fieldTickingBlockCount.setAccessible(true);
fieldNonEmptyBlockCount.setAccessible(true);
// fieldBiomes = ChunkProviderGenerate.class.getDeclaredField("D"); // *
// fieldBiomes.setAccessible(true);
//fieldBiomes = ChunkProviderGenerate.class.getDeclaredField("D"); // *
//fieldBiomes.setAccessible(true);
fieldChunkGenerator = ChunkProviderServer.class.getDeclaredField("chunkGenerator");
fieldChunkGenerator.setAccessible(true);
@ -680,7 +650,7 @@ public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R
return playerChunk;
}
public boolean sendChunk(PlayerChunk playerChunk, net.minecraft.server.v1_13_R2.Chunk nmsChunk, int mask) {
private boolean sendChunk(PlayerChunk playerChunk, net.minecraft.server.v1_13_R2.Chunk nmsChunk, int mask) {
if (playerChunk == null) {
return false;
}
@ -813,7 +783,7 @@ public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R
nmsWorld.r(pos);
}
protected WorldServer nmsWorld;
private WorldServer nmsWorld;
@Override
public World getImpWorld() {
@ -826,13 +796,13 @@ public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R
}
}
public static void setCount(int tickingBlockCount, int nonEmptyBlockCount, ChunkSection section) throws NoSuchFieldException, IllegalAccessException {
static void setCount(int tickingBlockCount, int nonEmptyBlockCount, ChunkSection section) throws NoSuchFieldException, IllegalAccessException {
fieldFluidCount.set(section, 0); // TODO FIXME
fieldTickingBlockCount.set(section, tickingBlockCount);
fieldNonEmptyBlockCount.set(section, nonEmptyBlockCount);
}
public int getNonEmptyBlockCount(ChunkSection section) throws IllegalAccessException {
int getNonEmptyBlockCount(ChunkSection section) throws IllegalAccessException {
return (int) fieldNonEmptyBlockCount.get(section);
}
@ -841,7 +811,7 @@ public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R
Arrays.fill(section.getEmittedLightArray().asBytes(), (byte) 0);
}
public static ChunkSection newChunkSection(int y2, boolean flag, int[] blocks) {
static ChunkSection newChunkSection(int y2, boolean flag, int[] blocks) {
if (blocks == null) {
return new ChunkSection(y2 << 4, flag);
} else {
@ -895,9 +865,7 @@ public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R
// protected DataBits a;
long[] bits = Arrays.copyOfRange(blockstates, 0, blockBitArrayEnd);
DataBits nmsBits = new DataBits(bitsPerEntry, 4096, bits);
DataPalette<IBlockData> palette;
// palette = new DataPaletteHash<>(Block.REGISTRY_ID, bitsPerEntry, dataPaletteBlocks, GameProfileSerializer::d, GameProfileSerializer::a);
palette = new DataPaletteLinear<>(Block.REGISTRY_ID, bitsPerEntry, dataPaletteBlocks, GameProfileSerializer::d);
DataPalette<IBlockData> palette = new DataPaletteLinear<>(Block.REGISTRY_ID, bitsPerEntry, dataPaletteBlocks, GameProfileSerializer::d);
// set palette
for (int i = 0; i < num_palette; i++) {
@ -934,7 +902,7 @@ public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R
return tile != null ? getTag(tile) : null;
}
public CompoundTag getTag(TileEntity tile) {
CompoundTag getTag(TileEntity tile) {
try {
NBTTagCompound tag = new NBTTagCompound();
tile.save(tag); // readTagIntoEntity
@ -950,7 +918,7 @@ public class BukkitQueue_1_13 extends BukkitQueue_0<net.minecraft.server.v1_13_R
net.minecraft.server.v1_13_R2.Chunk c = ((CraftChunk) chunk).getHandle();
c.mustSave = false;
if (chunk.isLoaded()) {
chunk.unload(false, false);
chunk.unload(false);
}
return true;
}

View File

@ -4,15 +4,10 @@ import com.boydti.fawe.bukkit.wrapper.state.AsyncSign;
import com.boydti.fawe.object.FaweQueue;
import com.boydti.fawe.util.TaskManager;
import com.sk89q.worldedit.WorldEditException;
import java.util.Collection;
import java.util.List;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.block.BlockID;
import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.block.BlockTypes;
import org.bukkit.FluidCollisionMode;
import org.bukkit.Location;
import org.bukkit.Material;
@ -27,6 +22,10 @@ import org.bukkit.plugin.Plugin;
import org.bukkit.util.BoundingBox;
import org.bukkit.util.RayTraceResult;
import org.bukkit.util.Vector;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.List;
public class AsyncBlock implements Block {
@ -69,27 +68,27 @@ public class AsyncBlock implements Block {
return BlockTypes.getFromStateId(id).getInternalId();
}
@Override
@NotNull @Override
public AsyncBlock getRelative(int modX, int modY, int modZ) {
return new AsyncBlock(world, queue, x + modX, y + modY, z + modZ);
}
@Override
@NotNull @Override
public AsyncBlock getRelative(BlockFace face) {
return this.getRelative(face.getModX(), face.getModY(), face.getModZ());
}
@Override
@NotNull @Override
public AsyncBlock getRelative(BlockFace face, int distance) {
return this.getRelative(face.getModX() * distance, face.getModY() * distance, face.getModZ() * distance);
}
@Override
@NotNull @Override
public Material getType() {
return getBlockData().getMaterial();
}
@Override
@NotNull @Override
public BlockData getBlockData() {
return BukkitAdapter.getBlockData(queue.getCachedCombinedId4Data(x, y, z, BlockTypes.AIR.getInternalId()));
}
@ -134,7 +133,7 @@ public class AsyncBlock implements Block {
return (byte) queue.getEmmittedLight(x, y, z);
}
@Override
@NotNull @Override
public AsyncWorld getWorld() {
return world;
}
@ -154,7 +153,7 @@ public class AsyncBlock implements Block {
return z;
}
@Override
@NotNull @Override
public Location getLocation() {
return new Location(world, x, y, z);
}
@ -163,20 +162,20 @@ public class AsyncBlock implements Block {
public Location getLocation(Location loc) {
if(loc != null) {
loc.setWorld(this.getWorld());
loc.setX((double)this.x);
loc.setY((double)this.y);
loc.setZ((double)this.z);
loc.setX(this.x);
loc.setY(this.y);
loc.setZ(this.z);
}
return loc;
}
@Override
@NotNull @Override
public AsyncChunk getChunk() {
return world.getChunkAt(x >> 4, z >> 4);
}
@Override
public void setBlockData(BlockData blockData) {
public void setBlockData(@NotNull BlockData blockData) {
try {
queue.setBlock(x, y, z, BukkitAdapter.adapt(blockData));
} catch (WorldEditException e) {
@ -185,12 +184,12 @@ public class AsyncBlock implements Block {
}
@Override
public void setBlockData(BlockData blockData, boolean b) {
public void setBlockData(@NotNull BlockData blockData, boolean b) {
setBlockData(blockData);
}
@Override
public void setType(Material type) {
public void setType(@NotNull Material type) {
try {
queue.setBlock(x, y, z, BukkitAdapter.adapt(type).getDefaultState());
} catch (WorldEditException e) {
@ -199,12 +198,12 @@ public class AsyncBlock implements Block {
}
@Override
public void setType(Material type, boolean applyPhysics) {
public void setType(@NotNull Material type, boolean applyPhysics) {
setType(type);
}
@Override
public BlockFace getFace(Block block) {
public BlockFace getFace(@NotNull Block block) {
BlockFace[] directions = BlockFace.values();
for (BlockFace face : directions) {
if (this.getX() + face.getModX() == block.getX()
@ -216,31 +215,28 @@ public class AsyncBlock implements Block {
return null;
}
@Override
@NotNull @Override
public AsyncBlockState getState() {
int combined = queue.getCombinedId4Data(x, y, z, 0);
BlockType type = BlockTypes.getFromStateId(combined);
switch (type.getInternalId()) {
case BlockID.SIGN:
case BlockID.WALL_SIGN:
return new AsyncSign(this, combined);
default:
return new AsyncBlockState(this, combined);
if (type == BlockTypes.SIGN || type == BlockTypes.WALL_SIGN) {
return new AsyncSign(this, combined);
}
return new AsyncBlockState(this, combined);
}
@Override
@NotNull @Override
public AsyncBlockState getState(boolean useSnapshot) {
return getState();
}
@Override
@NotNull @Override
public Biome getBiome() {
return world.getAdapter().adapt(queue.getBiomeType(x, z));
}
@Override
public void setBiome(Biome bio) {
public void setBiome(@NotNull Biome bio) {
BiomeType biome = world.getAdapter().adapt(bio);
queue.setBiome(x, z, biome);
}
@ -256,17 +252,17 @@ public class AsyncBlock implements Block {
}
@Override
public boolean isBlockFacePowered(BlockFace face) {
public boolean isBlockFacePowered(@NotNull BlockFace face) {
return false;
}
@Override
public boolean isBlockFaceIndirectlyPowered(BlockFace face) {
public boolean isBlockFaceIndirectlyPowered(@NotNull BlockFace face) {
return false;
}
@Override
public int getBlockPower(BlockFace face) {
public int getBlockPower(@NotNull BlockFace face) {
return 0;
}
@ -313,37 +309,37 @@ public class AsyncBlock implements Block {
}
@Override
public boolean breakNaturally(ItemStack tool) {
public boolean breakNaturally(@NotNull ItemStack tool) {
return TaskManager.IMP.sync(() -> getUnsafeBlock().breakNaturally(tool));
}
@Override
@NotNull @Override
public Collection<ItemStack> getDrops() {
return TaskManager.IMP.sync(() -> getUnsafeBlock().getDrops());
}
@Override
public Collection<ItemStack> getDrops(ItemStack tool) {
@NotNull @Override
public Collection<ItemStack> getDrops(@NotNull ItemStack tool) {
return TaskManager.IMP.sync(() -> getUnsafeBlock().getDrops(tool));
}
@Override
public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
public void setMetadata(@NotNull String metadataKey, @NotNull MetadataValue newMetadataValue) {
this.getUnsafeBlock().setMetadata(metadataKey, newMetadataValue);
}
@Override
public List<MetadataValue> getMetadata(String metadataKey) {
@NotNull @Override
public List<MetadataValue> getMetadata(@NotNull String metadataKey) {
return this.getUnsafeBlock().getMetadata(metadataKey);
}
@Override
public boolean hasMetadata(String metadataKey) {
public boolean hasMetadata(@NotNull String metadataKey) {
return this.getUnsafeBlock().hasMetadata(metadataKey);
}
@Override
public void removeMetadata(String metadataKey, Plugin owningPlugin) {
public void removeMetadata(@NotNull String metadataKey, @NotNull Plugin owningPlugin) {
this.getUnsafeBlock().removeMetadata(metadataKey, owningPlugin);
}
@ -353,11 +349,11 @@ public class AsyncBlock implements Block {
}
@Override
public RayTraceResult rayTrace(Location arg0, Vector arg1, double arg2, FluidCollisionMode arg3) {
public RayTraceResult rayTrace(@NotNull Location arg0, @NotNull Vector arg1, double arg2, @NotNull FluidCollisionMode arg3) {
return this.getUnsafeBlock().rayTrace(arg0, arg1, arg2, arg3);
}
@Override
@NotNull @Override
public BoundingBox getBoundingBox() {
return this.getUnsafeBlock().getBoundingBox();
}