From 9896a1339ef7a5aa3fa4565acdfdf8b517021175 Mon Sep 17 00:00:00 2001 From: IronApollo Date: Thu, 1 Nov 2018 07:24:56 -0400 Subject: [PATCH] Updates to FaweLocalBlockQueue to allow FAWE-P2 compatibility --- .../boydti/fawe/bukkit/v0/BukkitQueue_0.java | 7 ++++- .../general/plot/FaweLocalBlockQueue.java | 31 ++++++++++--------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/v0/BukkitQueue_0.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/v0/BukkitQueue_0.java index 3ab621d64..ac294817f 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/v0/BukkitQueue_0.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/v0/BukkitQueue_0.java @@ -278,7 +278,12 @@ public abstract class BukkitQueue_0 extends NMSMa public void sendChunk(int x, int z, int bitMask) {} @Override - public void refreshChunk(FaweChunk fs) {} + public void refreshChunk(FaweChunk fs) { + World world = getWorld(); + if(world != null) { + world.refreshChunk(fs.getX(), fs.getZ()); + } + } @Override public boolean regenerateChunk(World world, int x, int z, BaseBiome biome, Long seed) { diff --git a/worldedit-core/src/main/java/com/boydti/fawe/regions/general/plot/FaweLocalBlockQueue.java b/worldedit-core/src/main/java/com/boydti/fawe/regions/general/plot/FaweLocalBlockQueue.java index 6e86a7dd9..bf1b4a0cf 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/regions/general/plot/FaweLocalBlockQueue.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/regions/general/plot/FaweLocalBlockQueue.java @@ -8,10 +8,15 @@ import com.intellectualcrafters.jnbt.CompoundTag; import com.intellectualcrafters.plot.object.PlotBlock; import com.intellectualcrafters.plot.util.StringMan; import com.intellectualcrafters.plot.util.block.LocalBlockQueue; +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BaseBiome; import com.sk89q.worldedit.world.biome.Biomes; +import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.registry.BiomeRegistry; +import com.sk89q.worldedit.world.registry.LegacyMapper; + import java.util.List; // TODO FIXME @@ -61,15 +66,14 @@ public class FaweLocalBlockQueue extends LocalBlockQueue { @Override public boolean setBlock(int x, int y, int z, int id, int data) { - return false; -// return IMP.setBlock(x, y, z, (short) id, (byte) data); + return IMP.setBlock(x, y, z, LegacyMapper.getInstance().getBlockFromLegacy(id, data)); } @Override public PlotBlock getBlock(int x, int y, int z) { -// int combined = IMP.getCombinedId4Data(x, y, z); -// return PlotBlock.get(FaweCache.getId(combined), FaweCache.getData(combined)); - return null; + int combined = IMP.getCombinedId4Data(x, y, z); + com.sk89q.worldedit.world.block.BlockState state = com.sk89q.worldedit.world.block.BlockState.getFromInternalId(combined); + return PlotBlock.get(state.getInternalBlockTypeId(), state.getInternalPropertiesId()); } private BaseBiome biome; @@ -78,15 +82,14 @@ public class FaweLocalBlockQueue extends LocalBlockQueue { @Override public boolean setBiome(int x, int z, String biome) { -// if (!StringMan.isEqual(biome, lastBiome)) { -// if (reg == null) { -// World weWorld = IMP.getWEWorld(); -// reg = weWorld.getWorldData().getBiomeRegistry(); -// } -// List biomes = reg.getBiomes(); -// lastBiome = biome; -// this.biome = Biomes.findBiomeByName(biomes, biome, reg); -// } + if (!StringMan.isEqual(biome, lastBiome)) { + if (reg == null) { + reg = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.USER_COMMANDS).getRegistries().getBiomeRegistry(); + } + List biomes = reg.getBiomes(); + lastBiome = biome; + this.biome = Biomes.findBiomeByName(biomes, biome, reg); + } return IMP.setBiome(x, z, this.biome); }